@fps-games/editor 0.2.0-beta.4 → 0.2.1-beta.2

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 (1506) hide show
  1. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.js +12 -6
  3. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  4. package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
  5. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
  6. package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
  7. package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
  8. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  9. package/dist/agent-bridge/capabilities/prefabs.js +208 -73
  10. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
  12. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  13. package/dist/agent-bridge/capabilities/scene-objects.js +24 -23
  14. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  15. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.js +829 -66
  17. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  18. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
  19. package/dist/agent-bridge/capabilities/ui-regions.js +19 -1
  20. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  21. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  22. package/dist/agent-bridge/capabilities/viewport.js +22 -9
  23. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  24. package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
  25. package/dist/agent-bridge/capability-sources.js +2 -0
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/register.d.ts.map +1 -1
  28. package/dist/agent-bridge/register.js +194 -0
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +231 -11
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +162 -20
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.d.ts +17 -1
  35. package/dist/agent-bridge/source-types.d.ts.map +1 -1
  36. package/dist/agent-bridge/source-types.js.map +1 -1
  37. package/dist/build-info.json +57 -42
  38. package/dist/index.d.ts +7 -6
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/internal/babylon-preview-engine.d.ts +3 -0
  43. package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
  44. package/dist/internal/babylon-preview-engine.js +11 -0
  45. package/dist/internal/babylon-preview-engine.js.map +1 -0
  46. package/dist/internal/material-preview.d.ts +22 -0
  47. package/dist/internal/material-preview.d.ts.map +1 -0
  48. package/dist/internal/material-preview.js +186 -0
  49. package/dist/internal/material-preview.js.map +1 -0
  50. package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
  51. package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
  52. package/dist/internal/product-local-editor-cleanup.js +20 -0
  53. package/dist/internal/product-local-editor-cleanup.js.map +1 -0
  54. package/dist/internal/project-model-preview.d.ts +4 -0
  55. package/dist/internal/project-model-preview.d.ts.map +1 -0
  56. package/dist/internal/project-model-preview.js +359 -0
  57. package/dist/internal/project-model-preview.js.map +1 -0
  58. package/dist/local-editor-agent-actions.d.ts +2 -4
  59. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  60. package/dist/local-editor-agent-actions.js +56 -32
  61. package/dist/local-editor-agent-actions.js.map +1 -1
  62. package/dist/local-editor-agent-context.d.ts +17 -6
  63. package/dist/local-editor-agent-context.d.ts.map +1 -1
  64. package/dist/local-editor-agent-context.js +47 -0
  65. package/dist/local-editor-agent-context.js.map +1 -1
  66. package/dist/local-editor-harness.d.ts +353 -35
  67. package/dist/local-editor-harness.d.ts.map +1 -1
  68. package/dist/local-editor-harness.js +4115 -1313
  69. package/dist/local-editor-harness.js.map +1 -1
  70. package/dist/local-editor-marker-graph.d.ts +15 -15
  71. package/dist/local-editor-marker-graph.d.ts.map +1 -1
  72. package/dist/local-editor-marker-graph.js +3 -0
  73. package/dist/local-editor-marker-graph.js.map +1 -1
  74. package/dist/local-editor-performance-stats.d.ts +3 -2
  75. package/dist/local-editor-performance-stats.d.ts.map +1 -1
  76. package/dist/local-editor-performance-stats.js.map +1 -1
  77. package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
  78. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
  79. package/dist/local-editor-prefab-stage-transaction.js +45 -0
  80. package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
  81. package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
  82. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  83. package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
  84. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  85. package/dist/local-editor-tools.d.ts +19 -0
  86. package/dist/local-editor-tools.d.ts.map +1 -0
  87. package/dist/local-editor-tools.js +56 -0
  88. package/dist/local-editor-tools.js.map +1 -0
  89. package/dist/playable-babylon-rendering.d.ts +9 -0
  90. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  91. package/dist/playable-babylon-rendering.js +162 -6
  92. package/dist/playable-babylon-rendering.js.map +1 -1
  93. package/dist/playable-local-editor-entry.d.ts +68 -0
  94. package/dist/playable-local-editor-entry.d.ts.map +1 -0
  95. package/dist/playable-local-editor-entry.js +424 -0
  96. package/dist/playable-local-editor-entry.js.map +1 -0
  97. package/dist/playable-local-editor-host.d.ts +55 -29
  98. package/dist/playable-local-editor-host.d.ts.map +1 -1
  99. package/dist/playable-local-editor-host.js +50 -11
  100. package/dist/playable-local-editor-host.js.map +1 -1
  101. package/dist/playable-product-local-editor.d.ts +10 -12
  102. package/dist/playable-product-local-editor.d.ts.map +1 -1
  103. package/dist/playable-product-local-editor.js +178 -85
  104. package/dist/playable-product-local-editor.js.map +1 -1
  105. package/dist/playable-product-projection-preview.d.ts +4 -1
  106. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  107. package/dist/playable-product-projection-preview.js +122 -5
  108. package/dist/playable-product-projection-preview.js.map +1 -1
  109. package/dist/playable-product-rendering.d.ts +12 -0
  110. package/dist/playable-product-rendering.d.ts.map +1 -1
  111. package/dist/playable-product-rendering.js +128 -6
  112. package/dist/playable-product-rendering.js.map +1 -1
  113. package/dist/playable-product-scene-capabilities.d.ts +24 -7
  114. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  115. package/dist/playable-product-scene-capabilities.js +180 -17
  116. package/dist/playable-product-scene-capabilities.js.map +1 -1
  117. package/dist/playable-project-mode.d.ts +17 -0
  118. package/dist/playable-project-mode.d.ts.map +1 -0
  119. package/dist/playable-project-mode.js +2 -0
  120. package/dist/playable-project-mode.js.map +1 -0
  121. package/dist/playable-runtime-babylon.d.ts +3 -6
  122. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  123. package/dist/playable-runtime-babylon.js +1 -5
  124. package/dist/playable-runtime-babylon.js.map +1 -1
  125. package/dist/playable-sdk.d.ts +16 -9
  126. package/dist/playable-sdk.d.ts.map +1 -1
  127. package/dist/playable-sdk.js +6 -4
  128. package/dist/playable-sdk.js.map +1 -1
  129. package/dist/playable-standard-project.d.ts +23 -14
  130. package/dist/playable-standard-project.d.ts.map +1 -1
  131. package/dist/playable-standard-project.js +57 -20
  132. package/dist/playable-standard-project.js.map +1 -1
  133. package/dist/vite-client.d.ts +4 -0
  134. package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
  135. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
  136. package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
  137. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
  138. package/node_modules/@babel/parser/lib/index.js +0 -1
  139. package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
  140. package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
  141. package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
  142. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
  143. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
  144. package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
  145. package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
  146. package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
  147. package/node_modules/@babel/types/lib/builders/productions.js +0 -1
  148. package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
  149. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
  150. package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
  151. package/node_modules/@babel/types/lib/clone/clone.js +0 -1
  152. package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
  153. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
  154. package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
  155. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
  156. package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
  157. package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
  158. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
  159. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
  160. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
  161. package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
  162. package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
  163. package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
  164. package/node_modules/@babel/types/lib/constants/index.js +0 -1
  165. package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
  166. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
  167. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
  168. package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
  169. package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
  170. package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
  171. package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
  172. package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
  173. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  174. package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
  175. package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
  176. package/node_modules/@babel/types/lib/definitions/core.js +0 -1
  177. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
  178. package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
  179. package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  180. package/node_modules/@babel/types/lib/definitions/index.js +0 -1
  181. package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
  182. package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
  183. package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
  184. package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
  185. package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
  186. package/node_modules/@babel/types/lib/index.js +0 -1
  187. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
  188. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
  189. package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
  190. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
  191. package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
  192. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
  193. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
  194. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
  195. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
  196. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
  197. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
  198. package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
  199. package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
  200. package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
  201. package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
  202. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
  203. package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
  204. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
  205. package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
  206. package/node_modules/@babel/types/lib/validators/is.js +0 -1
  207. package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
  208. package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
  209. package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
  210. package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
  211. package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
  212. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
  213. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
  214. package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
  215. package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  216. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
  217. package/node_modules/@babel/types/lib/validators/isType.js +0 -1
  218. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  219. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
  220. package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
  221. package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
  222. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
  223. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
  224. package/node_modules/@babel/types/lib/validators/validate.js +0 -1
  225. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
  226. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
  227. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
  228. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
  229. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
  230. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
  231. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
  232. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
  233. package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
  234. package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
  235. package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
  236. package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
  237. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
  238. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
  239. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
  240. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
  241. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
  242. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
  243. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
  244. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
  245. package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
  246. package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
  247. package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
  248. package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
  249. package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
  250. package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
  251. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
  252. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
  253. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
  254. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
  255. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
  256. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
  257. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
  258. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
  259. package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
  260. package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
  261. package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
  262. package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
  263. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
  264. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
  265. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
  266. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
  267. package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
  268. package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
  269. package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
  270. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
  271. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
  272. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
  273. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
  274. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
  275. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
  276. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
  277. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
  278. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
  279. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
  280. package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
  281. package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
  282. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
  283. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
  284. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
  285. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
  286. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
  287. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
  288. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
  289. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
  290. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
  291. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
  292. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
  293. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
  294. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
  295. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
  296. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
  297. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
  298. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
  299. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
  300. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
  301. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
  302. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
  303. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
  304. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
  305. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
  306. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
  307. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
  308. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
  309. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
  310. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
  311. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
  312. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
  313. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
  314. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
  315. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
  316. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
  317. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
  318. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
  319. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
  320. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
  321. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
  322. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
  323. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
  324. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
  325. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
  326. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
  327. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
  328. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
  329. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
  330. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
  331. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
  332. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
  333. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
  334. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
  335. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
  336. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
  337. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
  338. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
  339. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
  340. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
  341. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
  342. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
  343. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
  344. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
  345. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
  346. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
  347. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
  348. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
  349. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
  350. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
  351. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
  352. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
  353. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
  354. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
  355. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
  356. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
  357. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
  358. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
  359. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
  360. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
  361. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
  362. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
  363. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
  364. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
  365. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
  366. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
  367. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
  368. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
  369. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
  370. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
  371. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
  372. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
  373. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
  374. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
  375. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
  376. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
  377. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
  378. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
  379. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
  380. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
  381. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
  382. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
  383. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
  384. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
  385. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
  386. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
  387. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
  388. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
  389. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
  390. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
  391. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
  392. package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
  393. package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
  394. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
  395. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
  396. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
  397. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
  398. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
  399. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
  400. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
  401. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
  402. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
  403. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
  404. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
  405. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
  406. package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
  407. package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
  408. package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
  409. package/node_modules/@babylonjs/loaders/index.js +7 -0
  410. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
  411. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
  412. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
  413. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
  414. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
  415. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
  416. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
  417. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
  418. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
  419. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
  420. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
  421. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
  422. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
  423. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
  424. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
  425. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
  426. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
  427. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
  428. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
  429. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
  430. package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
  431. package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
  432. package/node_modules/@babylonjs/loaders/license.md +71 -0
  433. package/node_modules/@babylonjs/loaders/package.json +49 -0
  434. package/node_modules/@babylonjs/loaders/readme.md +23 -0
  435. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
  436. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
  437. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
  438. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
  439. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
  440. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
  441. package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
  442. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  443. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
  444. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
  445. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
  446. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
  447. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
  448. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  449. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
  450. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  451. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +2 -0
  452. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  453. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
  454. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  455. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts +4 -0
  456. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.map +1 -1
  457. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  458. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts +1 -0
  459. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
  460. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
  461. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  462. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts +14 -0
  463. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
  464. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
  465. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
  466. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
  467. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
  468. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
  469. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
  470. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
  471. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
  472. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
  473. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
  474. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  475. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
  476. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  477. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
  478. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  479. package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
  480. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  481. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
  482. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
  483. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
  484. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  485. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js +24 -0
  486. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  487. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
  488. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
  489. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  490. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
  491. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  492. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +26 -5
  493. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  494. package/node_modules/@fps-games/editor-babylon/dist/projection.js +396 -363
  495. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  496. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
  497. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
  498. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
  499. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  500. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.d.ts.map +1 -1
  501. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js +85 -22
  502. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  503. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
  504. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
  505. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
  506. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
  507. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +87 -0
  508. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
  509. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1746 -0
  510. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
  511. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
  512. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
  513. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
  514. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  515. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +1 -0
  516. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  517. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +249 -15
  518. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  519. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +1 -1
  520. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
  521. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  522. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
  523. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
  524. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
  525. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
  526. package/node_modules/@fps-games/editor-babylon/package.json +6 -5
  527. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +13 -11
  528. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  529. package/node_modules/@fps-games/editor-browser/dist/index.js +9 -9
  530. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  531. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts +35 -0
  532. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts.map +1 -0
  533. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js +136 -0
  534. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js.map +1 -0
  535. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts +46 -0
  536. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts.map +1 -0
  537. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js +283 -0
  538. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js.map +1 -0
  539. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
  540. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
  541. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
  542. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
  543. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
  544. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
  545. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
  546. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  547. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts +12 -0
  548. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts.map +1 -0
  549. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js +67 -0
  550. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js.map +1 -0
  551. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts +6 -0
  552. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts.map +1 -0
  553. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js +9 -0
  554. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js.map +1 -0
  555. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts +7 -0
  556. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts.map +1 -0
  557. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js +20 -0
  558. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js.map +1 -0
  559. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts +9 -0
  560. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts.map +1 -0
  561. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js +219 -0
  562. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js.map +1 -0
  563. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts +14 -0
  564. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts.map +1 -0
  565. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js +42 -0
  566. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js.map +1 -0
  567. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
  568. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
  569. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +8 -0
  570. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  571. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts +27 -0
  572. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts.map +1 -0
  573. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js +288 -0
  574. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js.map +1 -0
  575. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
  576. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
  577. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  578. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.d.ts.map +1 -1
  579. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
  580. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  581. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +19 -0
  582. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
  583. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
  584. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
  585. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
  586. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  587. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
  588. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  589. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts +8 -7
  590. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
  591. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
  592. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  593. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts +7 -0
  594. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
  595. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
  596. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
  597. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
  598. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  599. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
  600. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  601. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  602. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  603. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +34 -0
  604. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  605. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  606. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
  607. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  608. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +14 -0
  609. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
  610. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
  611. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  612. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +30 -8
  613. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  614. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +911 -698
  615. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  616. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +10 -37
  617. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
  618. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +29 -105
  619. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  620. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  621. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
  622. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  623. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +1 -3
  624. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  625. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
  626. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  627. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  628. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
  629. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  630. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +16 -1
  631. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
  632. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
  633. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
  634. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
  635. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
  636. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
  637. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
  638. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
  639. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
  640. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  641. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
  642. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
  643. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  644. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -1
  645. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
  646. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  647. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +114 -343
  648. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  649. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  650. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +13 -14
  651. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  652. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +120 -134
  653. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  654. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +6 -10
  655. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  656. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +2019 -861
  657. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  658. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts +13 -0
  659. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts.map +1 -0
  660. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js +15 -0
  661. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js.map +1 -0
  662. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
  663. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
  664. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
  665. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  666. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
  667. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
  668. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
  669. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
  670. package/node_modules/@fps-games/editor-browser/package.json +15 -4
  671. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
  672. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
  673. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
  674. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
  675. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
  676. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  677. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
  678. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  679. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +24 -2
  680. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  681. package/node_modules/@fps-games/editor-core/dist/editor-session.js +70 -10
  682. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  683. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +113 -0
  684. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
  685. package/node_modules/@fps-games/editor-core/dist/editor-tools.js +615 -0
  686. package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
  687. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
  688. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  689. package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
  690. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  691. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
  692. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  693. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  694. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +11 -2
  695. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
  696. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +12 -1
  697. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  698. package/node_modules/@fps-games/editor-core/package.json +14 -6
  699. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  700. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
  701. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  702. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +1 -1
  703. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
  704. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +1 -1
  705. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  706. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +14 -0
  707. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  708. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +49 -1
  709. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  710. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts +1 -0
  711. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
  712. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +63 -2
  713. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  714. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
  715. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
  716. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  717. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts +1 -1
  718. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
  719. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +1 -1
  720. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  721. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.d.ts.map +1 -1
  722. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js +15 -1
  723. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  724. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.d.ts.map +1 -1
  725. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js +3 -0
  726. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  727. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts +6 -1
  728. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts.map +1 -1
  729. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  730. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +28 -3
  731. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  732. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
  733. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  734. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts +2 -0
  735. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
  736. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
  737. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  738. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts +11 -0
  739. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
  740. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
  741. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
  742. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
  743. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
  744. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
  745. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
  746. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
  747. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  748. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  749. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +4 -0
  750. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  751. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +7 -0
  752. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  753. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
  754. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
  755. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  756. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts +41 -0
  757. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
  758. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
  759. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
  760. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
  761. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
  762. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
  763. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
  764. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
  765. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
  766. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
  767. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
  768. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
  769. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
  770. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
  771. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
  772. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
  773. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  774. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  775. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +1 -0
  776. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  777. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +53 -17
  778. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  779. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +16 -8
  780. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  781. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
  782. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  783. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +5 -3
  784. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  785. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +2 -1
  786. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  787. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  788. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
  789. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  790. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +11 -0
  791. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  792. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +21 -14
  793. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  794. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +17 -9
  795. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  796. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  797. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  798. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
  799. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  800. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
  801. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
  802. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  803. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
  804. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  805. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -0
  806. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  807. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
  808. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
  809. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
  810. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  811. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts +1 -1
  812. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
  813. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
  814. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  815. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts +11 -0
  816. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
  817. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
  818. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
  819. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
  820. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
  821. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
  822. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  823. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts +36 -51
  824. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
  825. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
  826. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  827. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +5 -2
  828. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  829. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -1
  830. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  831. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  832. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  833. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
  834. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  835. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +18 -7
  836. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  837. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +110 -18
  838. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  839. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +9 -0
  840. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
  841. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +16 -1
  842. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  843. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts +5 -2
  844. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  845. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
  846. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  847. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts +4 -0
  848. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts.map +1 -0
  849. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js +4 -0
  850. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js.map +1 -0
  851. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts +4 -0
  852. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts.map +1 -0
  853. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js +86 -0
  854. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js.map +1 -0
  855. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts +9 -0
  856. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts.map +1 -0
  857. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js +76 -0
  858. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js.map +1 -0
  859. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts +34 -0
  860. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts.map +1 -0
  861. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js +2 -0
  862. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js.map +1 -0
  863. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
  864. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
  865. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  866. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
  867. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  868. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  869. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  870. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
  871. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  872. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
  873. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  874. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  875. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +2 -0
  876. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
  877. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
  878. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  879. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +1 -0
  880. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
  881. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
  882. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  883. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts +31 -0
  884. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
  885. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
  886. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
  887. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
  888. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
  889. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  890. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +17 -0
  891. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
  892. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
  893. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  894. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts +4 -0
  895. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  896. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +54 -0
  897. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  898. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
  899. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
  900. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  901. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
  902. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -1
  903. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  904. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +4 -0
  905. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  906. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  907. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
  908. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
  909. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  910. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.d.ts.map +1 -1
  911. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -1
  912. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  913. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +5 -0
  914. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  915. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
  916. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  917. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts +1 -1
  918. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
  919. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -1
  920. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  921. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts +6 -0
  922. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.map +1 -1
  923. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  924. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +31 -3
  925. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  926. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +5 -2
  927. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  928. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +40 -4
  929. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  930. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +1 -0
  931. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  932. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +1 -0
  933. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  934. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  935. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
  936. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  937. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +2 -1
  938. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  939. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -0
  940. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  941. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +17 -1
  942. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  943. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +50 -2
  944. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  945. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +1 -0
  946. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  947. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +101 -5
  948. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  949. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +5 -6
  950. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  951. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +31 -17
  952. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  953. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts +14 -0
  954. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts.map +1 -0
  955. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js +101 -0
  956. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js.map +1 -0
  957. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts +23 -0
  958. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts.map +1 -0
  959. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js +180 -0
  960. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js.map +1 -0
  961. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
  962. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  963. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  964. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  965. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
  966. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
  967. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
  968. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  969. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +23 -3
  970. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
  971. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  972. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
  973. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
  974. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
  975. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
  976. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
  977. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  978. package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
  979. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  980. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  981. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
  982. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
  983. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  984. package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
  985. package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
  986. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  987. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  988. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts +107 -0
  989. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
  990. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
  991. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
  992. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
  993. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
  994. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
  995. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
  996. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
  997. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
  998. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
  999. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
  1000. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
  1001. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
  1002. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +746 -0
  1003. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
  1004. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
  1005. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
  1006. package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
  1007. package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
  1008. package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
  1009. package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
  1010. package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
  1011. package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
  1012. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
  1013. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
  1014. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
  1015. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
  1016. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
  1017. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
  1018. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
  1019. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
  1020. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
  1021. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
  1022. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
  1023. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
  1024. package/node_modules/@fps-games/editor-ui/package.json +23 -0
  1025. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  1026. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
  1027. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
  1028. package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
  1029. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  1030. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
  1031. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
  1032. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
  1033. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
  1034. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  1035. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
  1036. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
  1037. package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
  1038. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  1039. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
  1040. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  1041. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
  1042. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
  1043. package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
  1044. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  1045. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
  1046. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
  1047. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
  1048. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
  1049. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
  1050. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
  1051. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
  1052. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
  1053. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
  1054. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
  1055. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
  1056. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
  1057. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  1058. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
  1059. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
  1060. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
  1061. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  1062. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  1063. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  1064. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  1065. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  1066. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  1067. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  1068. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  1069. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  1070. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
  1071. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
  1072. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
  1073. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
  1074. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
  1075. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
  1076. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
  1077. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
  1078. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
  1079. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
  1080. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
  1081. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
  1082. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
  1083. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
  1084. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
  1085. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
  1086. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
  1087. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
  1088. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
  1089. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
  1090. package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
  1091. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  1092. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  1093. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  1094. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  1095. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  1096. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  1097. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  1098. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  1099. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  1100. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  1101. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  1102. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  1103. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  1104. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  1105. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  1106. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  1107. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  1108. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
  1109. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
  1110. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
  1111. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
  1112. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
  1113. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
  1114. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
  1115. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
  1116. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
  1117. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
  1118. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
  1119. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
  1120. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
  1121. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  1122. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  1123. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  1124. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  1125. package/node_modules/@playcanvas/observer/LICENSE +19 -0
  1126. package/node_modules/@playcanvas/observer/README.md +72 -0
  1127. package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
  1128. package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
  1129. package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
  1130. package/node_modules/@playcanvas/observer/package.json +78 -0
  1131. package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
  1132. package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
  1133. package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
  1134. package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
  1135. package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
  1136. package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
  1137. package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
  1138. package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
  1139. package/node_modules/@playcanvas/pcui/LICENSE +19 -0
  1140. package/node_modules/@playcanvas/pcui/README.md +164 -0
  1141. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1142. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1143. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1144. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1145. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1146. package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
  1147. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1148. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1149. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1150. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1151. package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
  1152. package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1153. package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1154. package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
  1155. package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
  1156. package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
  1157. package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1158. package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
  1159. package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
  1160. package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
  1161. package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1162. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
  1163. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1164. package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
  1165. package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
  1166. package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
  1167. package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1168. package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
  1169. package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
  1170. package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
  1171. package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
  1172. package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
  1173. package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
  1174. package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
  1175. package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1176. package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
  1177. package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
  1178. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1179. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
  1180. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
  1181. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1182. package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
  1183. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
  1184. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
  1185. package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
  1186. package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
  1187. package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
  1188. package/node_modules/@playcanvas/pcui/package.json +150 -0
  1189. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1190. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1191. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1192. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1193. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1194. package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
  1195. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1196. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1197. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1198. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1199. package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
  1200. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
  1201. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1202. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
  1203. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1204. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
  1205. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
  1206. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
  1207. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
  1208. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
  1209. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
  1210. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
  1211. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1212. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
  1213. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
  1214. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
  1215. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
  1216. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
  1217. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
  1218. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
  1219. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1220. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
  1221. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
  1222. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
  1223. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1224. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
  1225. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
  1226. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
  1227. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
  1228. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
  1229. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
  1230. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1231. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
  1232. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
  1233. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
  1234. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
  1235. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
  1236. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
  1237. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
  1238. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
  1239. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
  1240. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
  1241. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
  1242. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
  1243. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
  1244. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
  1245. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1246. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
  1247. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
  1248. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
  1249. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
  1250. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
  1251. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1252. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
  1253. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
  1254. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
  1255. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
  1256. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
  1257. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1258. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
  1259. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
  1260. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
  1261. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
  1262. package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
  1263. package/node_modules/@playcanvas/pcui/react/package.json +18 -0
  1264. package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
  1265. package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
  1266. package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1267. package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1268. package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
  1269. package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
  1270. package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
  1271. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
  1272. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
  1273. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
  1274. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
  1275. package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
  1276. package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
  1277. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
  1278. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
  1279. package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
  1280. package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
  1281. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
  1282. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
  1283. package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
  1284. package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
  1285. package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
  1286. package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
  1287. package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
  1288. package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
  1289. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
  1290. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
  1291. package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
  1292. package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
  1293. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
  1294. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
  1295. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
  1296. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
  1297. package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
  1298. package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
  1299. package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
  1300. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
  1301. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
  1302. package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
  1303. package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
  1304. package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
  1305. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
  1306. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
  1307. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
  1308. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
  1309. package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
  1310. package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
  1311. package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
  1312. package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
  1313. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
  1314. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
  1315. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
  1316. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
  1317. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
  1318. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
  1319. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
  1320. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
  1321. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
  1322. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
  1323. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
  1324. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
  1325. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
  1326. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
  1327. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
  1328. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
  1329. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
  1330. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
  1331. package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
  1332. package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
  1333. package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
  1334. package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
  1335. package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
  1336. package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
  1337. package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
  1338. package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
  1339. package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
  1340. package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1341. package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1342. package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
  1343. package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
  1344. package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
  1345. package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
  1346. package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
  1347. package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
  1348. package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
  1349. package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
  1350. package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
  1351. package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
  1352. package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
  1353. package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
  1354. package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
  1355. package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
  1356. package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
  1357. package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
  1358. package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
  1359. package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
  1360. package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
  1361. package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
  1362. package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
  1363. package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
  1364. package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
  1365. package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
  1366. package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
  1367. package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
  1368. package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
  1369. package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
  1370. package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
  1371. package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
  1372. package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
  1373. package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
  1374. package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
  1375. package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
  1376. package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
  1377. package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
  1378. package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
  1379. package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
  1380. package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
  1381. package/node_modules/babylonjs-gltf2interface/license.md +71 -0
  1382. package/node_modules/babylonjs-gltf2interface/package.json +26 -0
  1383. package/package.json +31 -19
  1384. package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
  1385. package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
  1386. package/dist/editor-plugin-hierarchy-command.js +0 -119
  1387. package/dist/editor-plugin-hierarchy-command.js.map +0 -1
  1388. package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
  1389. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
  1390. package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
  1391. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
  1392. package/node_modules/@babel/parser/lib/index.js.map +0 -1
  1393. package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
  1394. package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
  1395. package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
  1396. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
  1397. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
  1398. package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
  1399. package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
  1400. package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
  1401. package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
  1402. package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
  1403. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
  1404. package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
  1405. package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
  1406. package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
  1407. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
  1408. package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
  1409. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
  1410. package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
  1411. package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
  1412. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
  1413. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
  1414. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
  1415. package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
  1416. package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
  1417. package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
  1418. package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
  1419. package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
  1420. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
  1421. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
  1422. package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
  1423. package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
  1424. package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
  1425. package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
  1426. package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
  1427. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
  1428. package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
  1429. package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
  1430. package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
  1431. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
  1432. package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
  1433. package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
  1434. package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
  1435. package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
  1436. package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
  1437. package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
  1438. package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
  1439. package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
  1440. package/node_modules/@babel/types/lib/index.js.map +0 -1
  1441. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
  1442. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
  1443. package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
  1444. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
  1445. package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
  1446. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
  1447. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
  1448. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
  1449. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
  1450. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
  1451. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
  1452. package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
  1453. package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
  1454. package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
  1455. package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
  1456. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
  1457. package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
  1458. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
  1459. package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
  1460. package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
  1461. package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
  1462. package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
  1463. package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
  1464. package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
  1465. package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
  1466. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
  1467. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
  1468. package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
  1469. package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
  1470. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
  1471. package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
  1472. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
  1473. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
  1474. package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
  1475. package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
  1476. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
  1477. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
  1478. package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
  1479. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
  1480. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
  1481. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
  1482. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
  1483. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
  1484. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
  1485. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
  1486. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
  1487. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
  1488. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
  1489. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
  1490. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
  1491. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
  1492. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
  1493. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
  1494. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
  1495. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
  1496. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
  1497. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
  1498. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
  1499. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
  1500. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
  1501. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
  1502. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
  1503. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
  1504. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
  1505. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
  1506. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-presentation-controller.js","sourceRoot":"","sources":["../src/selection-presentation-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AAGnC,MAAM,oCAAoC,GAAG,8BAA8B,CAAC;AAC5E,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAC9E,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AACzC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAC5C,MAAM,4BAA4B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AA+B7D,MAAM,wCAAwC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHhD,CAAC;AAEF,MAAM,oCAAoC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgL5C,CAAC;AAsFF,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAwC,CAAC;AAa7E,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAAkC,CAAC;AAC9E,MAAM,0CAA0C,GAAG,8BAA8B,CAAC;AAalF,MAAM,+BAA+B,GAAG,IAAI,OAAO,EAAkD,CAAC;AAEtG,MAAM,UAAU,kDAAkD,CAChE,OAA4D;IAE5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2D,CAAC;IACjF,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoD,CAAC;IAC5F,IAAI,SAAS,GAAyB,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1E,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAO,CAAC;IACvC,IAAI,cAAc,GAAwD,IAAI,CAAC;IAE/E,MAAM,gBAAgB,GAAG,CAAC,UAAwD,EAAQ,EAAE;QAC1F,cAAc,GAAG,UAAU,CAAC;QAC5B,IAAI,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO;QACzD,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5G,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAqD,EAAE;QAC3E,IAAI,QAAQ,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,4CAA4C,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC7G,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;YACd,gBAAgB,CAAC;gBACf,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,iGAAiG;gBAC1G,KAAK;aACN,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAS,EAAE;QACvC,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW;aACjC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACnB,WAAW;YACX,MAAM,EAAE,iCAAiC,CAAC,KAAK,EAAE;gBAC/C,WAAW,EAAE,CAAC,WAAW,CAAC;gBAC1B,QAAQ,EAAE,WAAW;aACtB,CAAC;SACH,CAAC,CAAC;aACF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAO,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM;gBAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QACD,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,yEAAyE;YACzE,qEAAqE;YACrE,qEAAqE;YACrE,wEAAwE;YACxE,IAAI,SAAS,IAAI,yBAAyB,KAAK,CAAC;gBAAE,OAAO;YACzD,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,IAAI,CAAC;YACH,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;YACd,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACpD,OAAO,GAAG,IAAI,CAAC;YACf,gBAAgB,CAAC;gBACf,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,qFAAqF;gBAC9F,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAC7B,IAAqD,EAC/C,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QACvF,MAAM,UAAU,GAAG,iCAAiC,CAClD,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAC9B,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CACtD,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,OAAO;YAAE,OAAO;QAClC,yEAAyE;QACzE,uEAAuE;QACvE,oEAAoE;QACpE,SAAS,GAAG,IAAI,CAAC;QACjB,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,SAAS,IAAI,UAAU;gBAAE,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtE,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;YACrC,gBAAgB,CAAC;gBACf,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,2FAA2F;gBACpG,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,mBAAmB,CAAC,IAAI;YACtB,IAAI,QAAQ;gBAAE,OAAO;YACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,mBAAmB,CAAC,IAAI;YACtB,IAAI,QAAQ;gBAAE,OAAO;YACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,mBAAmB,CAAC,MAAM;YACxB,IAAI,QAAQ;gBAAE,OAAO;YACrB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,qBAAqB,EAAE,CAAC;QAC1B,CAAC;QACD,aAAa,CAAC,aAAa;YACzB,IAAI,QAAQ;gBAAE,OAAO;YACrB,SAAS,GAAG;gBACV,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACpD,QAAQ,EAAE,aAAa,CAAC,QAAQ;aACjC,CAAC;YACF,qBAAqB,EAAE,CAAC;QAC1B,CAAC;QACD,YAAY;YACV,IAAI,QAAQ,IAAI,MAAM,IAAI,iBAAiB,KAAK,CAAC;gBAAE,OAAO;YAC1D,IAAI,CAAC;gBACH,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,OAAO;oBAAE,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC7D,OAAO,GAAG,IAAI,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,sGAAsG;oBAC/G,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,cAAc;YACZ,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBAC7F,kBAAkB,EAAE,KAAK,CAAC,IAAI;gBAC9B,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM;gBAC/C,iBAAiB;gBACjB,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC;gBACtD,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,IAAI,IAAI;gBAC9D,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI;gBACxC,cAAc;aACf,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,iBAAiB,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO;gBAAE,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC7D,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAA2E,EAC3E,SAA+B;IAE/B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAO,CAAC;IAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAChF,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;aACzB,GAAG,CAAC,mCAAmC,CAAC;aACxC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACvE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAAE,SAAS;YAC9F,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,4BAA4B,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC;gBAAE,SAAS;YACvD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY;gBAAE,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACvE,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YAC3C,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAa,EAAE,IAAc,EAAE,IAAS;IACtE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;QAAE,OAAO;IAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAS;IACpD,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC;IACxD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,4CAA4C,CACnD,OAA4D,EAC5D,gBAAoF;IAEpF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,sBAAsB,GAAG,KAAK,EAAE,wBAAwB,CAAC;IAC/D,IAAI,oBAAoB,GAAY,IAAI,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,cAAc,GAAU,EAAE,CAAC;IAC/B,IAAI,eAAe,GAA6C,EAAE,CAAC;IACnE,IAAI,MAAM,GAAyB,IAAI,CAAC;IACxC,IAAI,eAAe,GAAuD,IAAI,CAAC;IAC/E,IAAI,qBAAqB,GAAQ,IAAI,CAAC;IACtC,IAAI,gBAAgB,GAAQ,IAAI,CAAC;IACjC,IAAI,qBAAqB,GAAwC,IAAI,CAAC;IACtE,MAAM,iBAAiB,GAAG;QACxB,QAAQ,EAAE,IAAW;QACrB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAqB;QAClC,SAAS,EAAE,EAAE;KACd,CAAC;IACF,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,IAAW;QACrB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAqB;QAClC,SAAS,EAAE,EAAE;KACd,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,oBAAoB,GAAG,4BAA4B,CAAC;IACxD,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,IAAI,0BAA0B,GAAY,IAAI,CAAC;IAC/C,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,iBAAiB,GAAmC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAErE,iCAAiC,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,6BAA6B,GAAG,GAAY,EAAE,CAAC,CACnD,eAAe,CAAC,MAAM,GAAG,CAAC;WACvB,CAAC,CAAC,OAAO,CAAC,cAAc;WACxB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAClC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,IAA8B,EAAQ,EAAE;QACrE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACxD,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YAC/D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC/B,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxE,IAAI,aAAa,IAAI,CAAC;gBAAE,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;YACzD,MAAM,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,iCAAiC,CAC/B,MAAM,EACN,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,oBAAoB,CACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,iCAAiC,CAC/B,MAAM,EACN,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,oBAAoB,CACrB,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC;gBACf,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,oEAAoE;gBAC7E,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,GAAS,EAAE;QACrC,eAAe,GAAG,KAAK,CAAC;QACxB,qBAAqB,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,eAAe,IAAI,qBAAqB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,eAAe,CAAC,UAAU,EAAE,CAAC;gBAC7B,qBAAqB,GAAG,KAAK,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,gEAAgE;oBACzE,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,gBAAgB,IAAI,sBAAsB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBAClD,sBAAsB,GAAG,KAAK,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,0DAA0D;oBACnE,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACrC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,+BAA+B,GAAG,GAAS,EAAE;QACjD,IAAI,0BAA0B,IAAI,IAAI;YAAE,OAAO;QAC/C,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,0BAA0B,CAAC,CAAC;QACrE,0BAA0B,GAAG,IAAI,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,UAAU,GAAG,KAAK,CAAC;QACnB,+BAA+B,EAAE,CAAC;QAClC,sBAAsB,GAAG,CAAC,CAAC;QAC3B,yBAAyB,GAAG,CAAC,CAAC;QAC9B,cAAc,GAAG,EAAE,CAAC;QACpB,eAAe,GAAG,EAAE,CAAC;QACrB,IAAI,gBAAgB;YAAE,gBAAgB,CAAC,UAAU,GAAG,cAAc,CAAC;QACnE,OAAO,GAAG,KAAK,CAAC;QAChB,mBAAmB,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACnC,IACE,CAAC,OAAO;eACL,CAAC,eAAe;eAChB,CAAC,gBAAgB;eACjB,CAAC,iBAAiB,CAAC,QAAQ;eAC3B,CAAC,aAAa,CAAC,QAAQ;eACvB,6BAA6B,EAAE,KAAK,CAAC,CAAC,qBAAqB;eAC3D,CAAC,MAAM;YACV,OAAO;QACT,IAAI,eAAe;YAAE,OAAO;QAC5B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,WAAW,GAAG,4BAA4B,CAC1D,MAAM,EACN,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,QAAQ,CAC3B,CAAC;YACF,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,WAAW,GAAG,4BAA4B,CACtD,MAAM,EACN,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,QAAQ,CACvB,CAAC;YACF,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC3B,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,sBAAsB,GAAG,IAAI,CAAC;YAC9B,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACjD,CAAC;QACD,qBAAqB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,IAA8B,EAAE,WAAiC,EAAQ,EAAE;QACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,6EAA6E;oBACtF,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,iCAAiC,CAC/B,WAAW,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,eAAe,GAAG,KAAK,EAAQ,EAAE;QAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,+BAA+B,EAAE,CAAC;YAClC,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,mBAAmB,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC;QAC3B,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACnD,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;QAC/C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,sEAAsE;oBAC/E,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,gEAAgE;oBACzE,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,4DAA4D;oBACrE,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,qBAAqB,GAAG,IAAI,CAAC;QAC7B,gBAAgB,GAAG,IAAI,CAAC;QACxB,sBAAsB,GAAG,KAAK,CAAC;QAC/B,qBAAqB,GAAG,IAAI,CAAC;QAC7B,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC;oBACf,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,8DAA8D;oBACvE,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,eAAe,GAAG,IAAI,CAAC;QACvB,qBAAqB,GAAG,KAAK,CAAC;QAC9B,MAAM,GAAG,IAAI,CAAC;QACd,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,CAAC,CAAC;QACX,oBAAoB,GAAG,4BAA4B,CAAC;QACpD,oBAAoB,GAAG,CAAC,CAAC;QACzB,eAAe,GAAG,KAAK,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,UAAyB,EAAQ,EAAE;QAChE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,aAAa,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,SAAS,GAAuD,IAAI,CAAC;QACzE,IAAI,oBAAoB,GAAQ,IAAI,CAAC;QACrC,IAAI,eAAe,GAAQ,IAAI,CAAC;QAChC,IAAI,yBAAyB,GAAwC,IAAI,CAAC;QAC1E,IAAI,qBAAqB,GAAQ,IAAI,CAAC;QACtC,IAAI,iBAAiB,GAAQ,IAAI,CAAC;QAClC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,eAAe,GAAG,IAAI,mBAAmB,CACvC,8BAA8B,EAC9B;gBACE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,wBAAwB,CAAC,CAAC;gBACnE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,CAAC;aACtE,EACD,KAAK,EACL;gBACE,eAAe,EAAE,KAAK;gBACtB,sBAAsB,EAAE,IAAI;gBAC5B,IAAI,EAAE,cAAc;gBACpB,YAAY,EAAE,6BAA6B;gBAC3C,mBAAmB,EAAE,IAAI;gBACzB,qBAAqB,EAAE,KAAK;aAC7B,CACF,CAAC;YACF,oBAAoB,GAAG,IAAI,aAAa,CACtC,KAAK,EACL,cAAc,EACd,UAAU,EACV,IAAI,EACJ,6BAA6B,EAC7B,KAAK,EACL,sCAAsC,EACtC,eAAe,CAChB,CAAC;YACF,oBAAoB,CAAC,gCAAgC,GAAG,IAAI,CAAC;YAC7D,eAAe,CAAC,UAAU,GAAG,cAAc,CAAC;YAC5C,IAAI,6BAA6B,EAAE,EAAE,CAAC;gBACpC,yBAAyB,GAAG,IAAI,4BAA4B,CAAC;oBAC3D,OAAO;oBACP,KAAK;oBACL,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,wBAAwB,CAAC,CAAC;oBACnE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,CAAC;iBACtE,CAAC,CAAC;gBACH,yBAAyB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC1D,CAAC;YACD,qBAAqB,GAAG,IAAI,WAAW,CACrC,8BAA8B,EAC9B,oCAAoC,EACpC;gBACE,8BAA8B;gBAC9B,uBAAuB;gBACvB,6BAA6B;gBAC7B,yBAAyB;gBACzB,2BAA2B;gBAC3B,gCAAgC;aACjC,EACD;gBACE,4BAA4B;gBAC5B,gCAAgC;aACjC,EACD,CAAC,EACD,IAAI,EACJ,8BAA8B,EAC9B,MAAM,EACN,KAAK,CACN,CAAC;YACF,qBAAqB,CAAC,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE;gBAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;gBACzF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC;gBAC7F,MAAM,gBAAgB,GAAG,gCAAgC,CACvD,MAAM,EACN,WAAW,EACX,YAAY,CACb,CAAC;gBACF,iBAAiB,GAAG,UAAU;oBAC5B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACd,CAAC,CAAC,oCAAoC,CAClC,OAAO,EACP,KAAK,EACL,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iCAAiC,CAClC,CAAC;gBACN,MAAM,CAAC,UAAU,EAAE,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;gBACnE,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI;oBAClD,KAAK,EAAE,SAAS,GAAG,wBAAwB;oBAC3C,MAAM,EAAE,UAAU,GAAG,wBAAwB;iBAC9C,CAAC;gBACF,MAAM,CAAC,SAAS,EAAE,CAChB,8BAA8B,EAC9B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAC3C,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAC7C,CAAC;gBACF,MAAM,CAAC,SAAS,EAAE,CAAC,yBAAyB,EAAE,GAAG,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,QAAQ,EAAE,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvF,MAAM,CAAC,UAAU,EAAE,CACjB,gCAAgC,EAChC,yBAAyB,EAAE,OAAO,IAAI,eAAe,CACtD,CAAC;gBACF,MAAM,CAAC,SAAS,EAAE,CAAC,uBAAuB,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC/E,MAAM,CAAC,SAAS,EAAE,CAChB,6BAA6B,EAC7B,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAC1B,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAC5B,CAAC;gBACF,MAAM,CAAC,QAAQ,EAAE,CACf,gCAAgC,EAChC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;YACJ,CAAC,CAAC;YACF,iBAAiB,GAAG,IAAI,WAAW,CACjC,oCAAoC,EACpC,gCAAgC,EAChC;gBACE,uBAAuB;gBACvB,6BAA6B;gBAC7B,yBAAyB;gBACzB,sBAAsB;gBACtB,wBAAwB;gBACxB,2BAA2B;gBAC3B,gCAAgC;gBAChC,4BAA4B;gBAC5B,oBAAoB;aACrB,EACD;gBACE,yBAAyB;gBACzB,yBAAyB;gBACzB,4BAA4B;aAC7B,EACD,CAAC,EACD,IAAI,EACJ,8BAA8B,EAC9B,MAAM,EACN,KAAK,CACN,CAAC;YACF,SAAS,GAAG,CAAC,OAAO,CAAC,wBAAwB,IAAI,wCAAwC,CAAC,CAAC,OAAO,CAAC;gBACjG,OAAO;gBACP,KAAK;gBACL,MAAM,EAAE,UAAU;gBAClB,mBAAmB,EAAE,iBAAiB;gBACtC,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,UAAU;gBAClB,gBAAgB;aACjB,CAAC,CAAC;YACH,iBAAiB,CAAC,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;gBACzF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC;gBAC7F,MAAM,gBAAgB,GAAG,gCAAgC,CACvD,MAAM,EACN,WAAW,EACX,YAAY,CACb,CAAC;gBACF,MAAM,CAAC,yBAAyB,EAAE,CAChC,yBAAyB,EACzB,qBAAqB,CACtB,CAAC;gBACF,MAAM,CAAC,UAAU,EAAE,CAAC,yBAAyB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBACxE,MAAM,CAAC,UAAU,EAAE,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;gBACnE,MAAM,CAAC,SAAS,EAAE,CAAC,uBAAuB,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC/E,MAAM,CAAC,SAAS,EAAE,CAChB,6BAA6B,EAC7B,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAC1B,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAC5B,CAAC;gBACF,MAAM,CAAC,SAAS,EAAE,CAAC,yBAAyB,EAAE,GAAG,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,SAAS,EAAE,CAAC,sBAAsB,EAAE,GAAG,4BAA4B,CAAC,CAAC;gBAC5E,MAAM,CAAC,QAAQ,EAAE,CAAC,wBAAwB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,CAAC,QAAQ,EAAE,CAAC,4BAA4B,EAAE,SAAS,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,QAAQ,EAAE,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvF,MAAM,CAAC,QAAQ,EAAE,CACf,gCAAgC,EAChC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;gBACF,MAAM,CAAC,QAAQ,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC,CAAC;YACF,MAAM,GAAG,UAAU,CAAC;YACpB,eAAe,GAAG,SAAS,CAAC;YAC5B,qBAAqB,GAAG,oBAAoB,CAAC;YAC7C,gBAAgB,GAAG,eAAe,CAAC;YACnC,qBAAqB,GAAG,yBAAyB,CAAC;YAClD,iBAAiB,CAAC,QAAQ,GAAG,qBAAqB,CAAC;YACnD,aAAa,CAAC,QAAQ,GAAG,iBAAiB,CAAC;YAC3C,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,GAAG,UAAU,CAAC;YACpB,oBAAoB,GAAG,wBAAwB,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC;YACf,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,sBAAsB,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAC1D,IAAI,CAAC;oBAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAC9D,IAAI,CAAC;oBAAC,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACnD,IAAI,CAAC;oBAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAC9C,IAAI,CAAC;oBAAC,yBAAyB,EAAE,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACtD,IAAI,CAAC;oBAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACxC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,IAAI,QAAQ,IAAI,CAAC,OAAO;YAAE,OAAO;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IACE,MAAM,KAAK,UAAU;eAClB,CAAC,eAAe;eAChB,CAAC,gBAAgB;eACjB,CAAC,iBAAiB,CAAC,QAAQ;eAC3B,CAAC,aAAa,CAAC,QAAQ;eACvB,6BAA6B,EAAE,KAAK,CAAC,CAAC,qBAAqB,EAC9D,CAAC;YACD,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACrE,IACE,SAAS,KAAK,KAAK;eAChB,UAAU,KAAK,MAAM;eACrB,wBAAwB,KAAK,oBAAoB,EACpD,CAAC;YACD,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,GAAG,UAAU,CAAC;YACpB,oBAAoB,GAAG,wBAAwB,CAAC;YAChD,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC9C,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,CAAC;gBAC/D,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,CAAC;aAClE,CAAC,CAAC;YACH,qBAAqB,EAAE,MAAM,CAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,CAAC,EACxD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC,UAAU,GAAG,cAAc,CAAC;QAC7C,iBAAiB,EAAE,CAAC;QACpB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,KAAK,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACrG,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;YACjF,oBAAoB,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,oBAAoB,IAAI,CAAC,CAAC;YAC1B,IAAI,oBAAoB,GAAG,GAAG,EAAE,CAAC;gBAC/B,gBAAgB,CAAC;oBACf,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,0FAA0F;iBACpG,CAAC,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,sBAAsB,EAAE,GAAG,EAAE,CAAC;QAChC,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,iBAAiB,CAAC,MAAM,EAAE,MAAM;YAC9B,IAAI,UAAU,EAAE,CAAC;gBACf,kEAAkE;gBAClE,kEAAkE;gBAClE,oEAAoE;gBACpE,uCAAuC;gBACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAChC,UAAU,GAAG,KAAK,CAAC;gBACnB,+BAA+B,EAAE,CAAC;gBAClC,sBAAsB,GAAG,CAAC,CAAC;gBAC3B,yBAAyB,GAAG,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,cAAc,GAAG,6BAA6B,EAAE,CAAC;YACvD,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC7B,eAAe,GAAG,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;aAC1B,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,gBAAgB;gBAAE,gBAAgB,CAAC,UAAU,GAAG,cAAc,CAAC;YACnE,MAAM,aAAa,GAAG,6BAA6B,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;gBAC/C,sBAAsB,EAAE,CAAC;gBACzB,IAAI,OAAO;oBAAE,YAAY,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,qBAAqB,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC;QACD,UAAU,CAAC,WAAW;YACpB,IAAI,UAAU,IAAI,CAAC,WAAW;gBAAE,OAAO;YACvC,IAAI,QAAQ,IAAI,OAAO,KAAK,WAAW;gBAAE,OAAO;YAChD,OAAO,GAAG,WAAW,CAAC;YACtB,IAAI,OAAO;gBAAE,YAAY,EAAE,CAAC;iBACvB,CAAC;gBACJ,UAAU,GAAG,KAAK,CAAC;gBACnB,+BAA+B,EAAE,CAAC;gBAClC,sBAAsB,GAAG,CAAC,CAAC;gBAC3B,yBAAyB,GAAG,CAAC,CAAC;gBAC9B,mBAAmB,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM;YACZ,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC;gBAAE,OAAO;YACxE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;gBACzC,KAAK,MAAM,IAAI,IAAI,MAAM;oBAAE,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBAClF,cAAc,GAAG,YAAY,CAAC;gBAC9B,IAAI,gBAAgB;oBAAE,gBAAgB,CAAC,UAAU,GAAG,cAAc,CAAC;gBACnE,sBAAsB,GAAG,CAAC,CAAC;gBAC3B,yBAAyB,GAAG,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC7B,eAAe,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,IAAI,CAAC;YAClB,sBAAsB,GAAG,CAAC,CAAC;YAC3B,yBAAyB,GAAG,CAAC,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,EAAE,CAAC;YACf,MAAM,qBAAqB,GAAG,KAAK,EAAE,uBAAuB,CAAC;YAC7D,IAAI,qBAAqB,EAAE,GAAG,EAAE,CAAC;gBAC/B,0BAA0B,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC1D,yBAAyB,IAAI,CAAC,CAAC;oBAC/B,MAAM,kBAAkB,GAAG,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,IAAI,IAAI,CAAC;oBAC7E,MAAM,kBAAkB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;2BACvE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;oBACnD,sBAAsB,GAAG,kBAAkB,IAAI,kBAAkB;wBAC/D,CAAC,CAAC,sBAAsB,GAAG,CAAC;wBAC5B,CAAC,CAAC,CAAC,CAAC;oBACN,+DAA+D;oBAC/D,kEAAkE;oBAClE,iCAAiC;oBACjC,IAAI,sBAAsB,GAAG,CAAC,IAAI,yBAAyB,GAAG,CAAC;wBAAE,OAAO;oBACxE,+BAA+B,EAAE,CAAC;oBAClC,IAAI,oBAAoB;wBAAE,OAAO;oBACjC,oBAAoB,GAAG,IAAI,CAAC;oBAC5B,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,oBAAoB,GAAG,KAAK,CAAC;wBAC7B,aAAa,EAAE,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QACD,YAAY;QACZ,gBAAgB;YACd,IACE,CAAC,eAAe;mBACb,CAAC,qBAAqB;mBACtB,CAAC,qBAAqB;mBACtB,CAAC,iBAAiB,CAAC,QAAQ;mBAC3B,CAAC,aAAa,CAAC,QAAQ;gBAC1B,OAAO,CAAC,CAAC;YACX,OAAO,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;kBAC5B,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC;kBAC/B,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC;kBAC/B,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;kBACpC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,uBAAuB;YACrB,OAAO,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;QACvC,CAAC;QACD,WAAW;YACT,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;YACtB,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,+BAA+B,EAAE,CAAC;YAClC,UAAU,GAAG,KAAK,CAAC;YACnB,oBAAoB,GAAG,KAAK,CAAC;YAC7B,sBAAsB,GAAG,CAAC,CAAC;YAC3B,yBAAyB,GAAG,CAAC,CAAC;YAC9B,IAAI,oBAAoB,IAAI,IAAI;gBAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC;YACzF,oBAAoB,GAAG,IAAI,CAAC;YAC5B,sBAAsB,EAAE,CAAC;YACzB,cAAc,GAAG,EAAE,CAAC;YACpB,eAAe,GAAG,EAAE,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,OAAmD;IAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC;IAClD,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,GAAG,oCAAoC,aAAa,CAAC;IAC3E,MAAM,kBAAkB,GAAG,GAAG,gCAAgC,aAAa,CAAC;IAC5E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;QAAE,YAAY,CAAC,aAAa,CAAC,GAAG,wCAAwC,CAAC;IACzG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,YAAY,CAAC,kBAAkB,CAAC,GAAG,oCAAoC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,OAAmD,EACnD,KAAmB,EACnB,MAAqB,EACrB,MAAsB,EACtB,KAAa,EACb,MAAc,EACd,SAAS,GAAG,iCAAiC;IAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAc,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;WACtD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBAAE,SAAS;YAC3C,IAAI,wBAAwB,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACjF,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;uBAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;uBAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;uBAC9B,SAAS,CAAC,CAAC,GAAG,CAAC;uBACf,SAAS,CAAC,CAAC,GAAG,CAAC;oBAClB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,mBAAmB,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;IAC7C,OAAO;QACL,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAS;IACzC,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;IACpC,OAAO,CAAC,CAAC,CACP,IAAI,EAAE,QAAQ;WACX,IAAI,EAAE,kBAAkB;WACxB,IAAI,EAAE,2BAA2B;WACjC,UAAU,EAAE,QAAQ;WACpB,UAAU,EAAE,kBAAkB;WAC9B,UAAU,EAAE,2BAA2B,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAW;IAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CACb,4BAA4B,EAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CACvC,MAAW,EACX,WAAmB,EACnB,YAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,GAAG,CAAC;QACrF,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,CAAC,CAAC;IACN,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,WAAW,GAAG,aAAa,CAAC;QAC9E,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,YAAY,GAAG,aAAa,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,wCAAwC,GAAmD;IACtG,OAAO,CAAC,OAAO;QACb,OAAO,4CAA4C,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC;AAEF,SAAS,4CAA4C,CACnD,OAAsD;IAEtD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC;QAC7C,CAAC,CAAC,2CAA2C,CAAC,OAAO,CAAC;QACtD,CAAC,CAAC,6CAA6C,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,0BAA0B,GAAG,GAAS,EAAE;QAC5C,IAAI,CAAC;YAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACpC,QAAQ,GAAG,6CAA6C,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,IAAI,KAAK,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,IAAI,eAAe,KAAK,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1D,UAAU,KAAK,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9C,QAAQ;YACN,IAAI,QAAQ,IAAI,SAAS;gBAAE,OAAO;YAClC,IAAI,CAAC;gBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,KAAK,CAAC;gBAC7C,0BAA0B,EAAE,CAAC;gBAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,UAAU;YACR,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,SAAS,EAAE,UAAU;YAC1B,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,GAAG,UAAU,CAAC;YACpB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAsD;IACrF,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,KAAK,EAAE,qBAAqB;WACjC,OAAO,CAAC,mBAAmB;WAC3B,OAAO,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,KAAK,UAAU;WACpE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,sCAAsC,CAAC,CACvF,CAAC;AACJ,CAAC;AAED,SAAS,2CAA2C,CAClD,OAAsD;IAEtD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,sCAAsC,CAAC;IAC1F,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAC7C,MAAM,0BAA0B,GAAG,QAAQ,CAAC,kBAAkB,CAAC;IAC/D,IAAI,KAAK,GAAkC,IAAI,CAAC;IAChD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,IAAI,QAAQ,CAAC,kBAAkB,KAAK,kBAAkB,EAAE,CAAC;YACvD,QAAQ,CAAC,kBAAkB,GAAG,0BAA0B,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,UAAU,eAAoB;QACvD,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe;YAAE,OAAO,cAAc,CAAC;QAC/E,KAAK,CAAC,aAAa,GAAG,eAAe,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClF,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACzD,OAAO,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACjE,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;YACzD,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAQ,EAAE;QAC3B,MAAM,KAAK,GAAG,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YACnD,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1G,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,CAAC;QAClB,UAAU;QACV,QAAQ;YACN,IAAI,QAAQ,IAAI,MAAM;gBAAE,OAAO;YAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC3E,CAAC;YACD,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAe,CAAC,IAAI;gBAC9D,eAAe;gBACf,aAAa,EAAE;oBACb,IAAI,EAAE,0CAA0C;oBAChD,OAAO,EAAE,KAAK;oBACd,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;oBACpC,oBAAoB,EAAE,KAAK;iBAC5B;gBACD,gBAAgB,EAAE,CAAC;aACpB,CAAC;YACF,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;YACD,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAe,EAAE,KAAK,CAAC,CAAC;YAC5D,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAC5B,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YACjD,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,CAAC;gBACH,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpF,UAAU,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,UAAU;QACV,MAAM;YACJ,wEAAwE;QAC1E,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,6CAA6C,CACpD,OAAsD;IAEtD,MAAM,KAAK,GAAG,sBAAsB,CAClC,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,CACf,CAAC;IACF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;QAChC,QAAQ;YACN,IAAI,QAAQ,IAAI,MAAM;gBAAE,OAAO;YAC/B,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,UAAU;YACR,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,MAAM;YAClB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM;gBAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,GAAG,KAAK,CAAC;YACf,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAW;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,sBAAsB;QAAE,OAAO,uBAAuB,CAAC;IAChE,IAAI,IAAI,CAAC,kBAAkB;QAAE,OAAO,kBAAkB,CAAC;IACvD,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAmD,EACnD,KAAmB,EACnB,MAAqB,EACrB,IAAY,EACZ,KAAa,EACb,MAAc;IAEd,IAAI,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjF,IAAI,QAAQ,GAAQ,IAAI,CAAC;IACzB,IAAI,QAAQ,GAAQ,IAAI,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,aAAa,CAC1B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,6BAA6B,EAC7B,KAAK,EACL,mCAAmC,CACpC,CAAC;QACF,QAAQ,CAAC,gCAAgC,GAAG,IAAI,CAAC;QACjD,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClC,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,8BAA8B,CAAC;QAC9F,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAoB;YAC7B,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,CAAC;YACb,KAAK;YACL,MAAM;SACP,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACvC,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACvC,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAmB,EAAE,KAAsB;IAC1E,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;QAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmB,EAAE,KAAsB;IAC5E,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC;QAAE,OAAO;IAClC,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;QAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAsB,EAAE,KAAa,EAAE,MAAc;IAClF,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO;IAC7D,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAmB,EACnB,KAAsB,EACtB,gBAAoF;IAEpF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO;IAC3B,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,6DAA6D;YACtE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,YAAY,EAAE,IAAI,KAAK,CAAC;QAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,8DAA8D;YACvE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,6DAA6D;YACtE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAmB,EAAE,MAAW;IAC7D,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAmB,EAAE,MAAW;IAChE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAAE,OAAO;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,KAAK,IAAI,CAAC;QAAE,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAqB,EAAE,WAAgB;IACzE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;QAC1C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5C,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AAED,SAAS,yCAAyC,CAChD,MAAqB;IAErB,IAAI,QAAQ,GAAG,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3D,+BAA+B,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CACvC,KAAqB,EACrB,QAA+B;IAE/B,OAAO,QAAQ,IAAI,IAAI;WAClB,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;WAChC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,iCAAiC,CACxC,MAAqB,EACrB,KAAa,EACb,WAA0B,EAC1B,oBAA2C;IAE3C,MAAM,KAAK,GAAG,MAAM,EAAE,cAAc,CAAC;IACrC,MAAM,QAAQ,GAAG,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;QAAE,OAAO;IAC7D,MAAM,aAAa,GAAG,WAAW,IAAI,SAAS,CAAC,KAAK,CAAC;IACrD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3F,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;QAChC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,8CAA8C,CAC5C,QAAQ,EACR,KAAK,EACL,oBAAoB,EACpB,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,8CAA8C,CACrD,QAAgD,EAChD,KAAqB,EACrB,sBAA6C,EAC7C,gBAA+B,IAAI;IAEnC,IAAI,CAAC,sBAAsB;QAAE,OAAO;IACpC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5C,IACE,KAAK,KAAK,aAAa;eACpB,IAAI,CAAC,KAAK,IAAI,IAAI;eAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM;eACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;eAC1B,gCAAgC,CAAC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,EAChF,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;QACrC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC/D,IACE,aAAa,GAAG,KAAK,CAAC,MAAM;eACzB,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI;eAC7B,gCAAgC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EACrE,CAAC;YACD,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,MAAqB,EACrB,KAAa,EACb,WAAgB;IAEhB,MAAM,QAAQ,GAAG,yCAAyC,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,EAAE,cAAc,CAAC;IACrC,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;WACjB,SAAS,IAAI,IAAI;WACjB,SAAS,CAAC,WAAW,KAAK,WAAW;WACrC,SAAS,CAAC,KAAK,IAAI,IAAI;WACvB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM;WAC9B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;WAC/B,gCAAgC,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,EACpE,CAAC;QACD,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;YACvB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAC1E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAC3C,IACE,aAAa,IAAI,KAAK,CAAC,MAAM;mBAC1B,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI;mBAC7B,CAAC,gCAAgC,CAAC,KAAK,EAAE,QAAQ,CAAC,EACrD,CAAC;gBACD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,aAAa,GAAG,aAAa,CAAC;YAC9B,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC;YACvE,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,0BAA0B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAClG,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,8CAA8C,CAC5C,QAAQ,EACR,KAAK,EACL,oBAAoB,EACpB,KAAK,CACN,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB,EAAE,WAAgB;IAC3E,MAAM,KAAK,GAAG,MAAM,EAAE,cAAc,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,SAAS,IAAI,CAAC;QAAE,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,iCAAiC,CACxC,MAA4B,EAC5B,KAAa,EACb,WAA0B,EAC1B,WAAgB;IAEhB,MAAM,KAAK,GAAG,MAAM,EAAE,cAAc,CAAC;IACrC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAC7C,MAAM,QAAQ,GAAG,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACxB,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;SAAM,IAAI,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;QACrE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAC1B,aAAa,GAAG,WAAW,CAAC;IAC9B,CAAC;SAAM,IACL,SAAS,EAAE,KAAK,IAAI,IAAI;WACrB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM;WAC9B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;WAC/B,gCAAgC,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,EACpE,CAAC;QACD,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAEzC,0FAA0F;IAC1F,yFAAyF;IACzF,8FAA8F;IAC9F,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACxE,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,8CAA8C,CAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1D,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3F,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACpE,+BAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAkD,EAClD,gBAAoF;IAEpF,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,+DAA+D;YACxE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["import type { EditorSelectionState } from '@fps-games/editor-core';\nimport {\n BabylonSelectionIdentityPass,\n type BabylonSelectionIdentityGroup,\n} from './selection-identity-pass';\nimport type { BabylonRuntimeGlobal, RuntimeCamera, RuntimeScene } from './types';\n\nconst SELECTION_OCCUPANCY_MASK_SHADER_NAME = 'editorSelectionOccupancyMask';\nconst SELECTION_SILHOUETTE_SHADER_NAME = 'editorSelectionSilhouetteComposite';\nconst MAX_SELECTION_SOURCE_DENSITY = 2;\nconst TEXTURE_TYPE_UNSIGNED_BYTE = 0;\nconst TEXTURE_TYPE_FLOAT = 1;\nconst TEXTURE_TYPE_HALF_FLOAT = 2;\nconst TEXTURE_NEAREST_SAMPLING_MODE = 1;\nconst TEXTURE_BILINEAR_SAMPLING_MODE = 2;\nconst SELECTION_PRESENTATION_PADDING_PX = 6;\nconst SELECTION_PRESENTATION_COLOR = [1, 0.9, 0.22] as const;\n\nexport type BabylonEditorSelectionUvBounds = readonly [number, number, number, number];\nexport type BabylonEditorSelectionSceneDepthSourceKind = 'external' | 'prepass' | 'dedicated';\n\nexport interface BabylonEditorSelectionSceneDepthSourceLease {\n readonly kind: BabylonEditorSelectionSceneDepthSourceKind;\n readonly packed: boolean;\n readonly backgroundDepth: 0 | 1;\n getTexture(): any;\n activate(): void;\n deactivate(): void;\n resize(width: number, height: number): void;\n dispose(): void;\n}\n\nexport interface BabylonEditorSelectionSceneDepthSourceRequest {\n babylon: BabylonRuntimeGlobal & Record<string, any>;\n scene: RuntimeScene;\n camera: RuntimeCamera;\n consumerPostProcess: any;\n textureType: number;\n width: number;\n height: number;\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void;\n}\n\nexport interface BabylonEditorSelectionSceneDepthSourceProvider {\n acquire(request: BabylonEditorSelectionSceneDepthSourceRequest): BabylonEditorSelectionSceneDepthSourceLease;\n}\n\nconst SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER = `\nprecision highp float;\nvarying vec2 vUV;\nuniform sampler2D editorSelectedDepthSampler;\nuniform sampler2D editorSelectionIdentitySampler;\nuniform vec2 editorSelectedDepthTexelSize;\nuniform vec2 editorOutputTexelSize;\nuniform vec2 editorPresentationTexelSize;\nuniform vec4 editorSelectionUvBounds;\nuniform float editorSelectedPackedDepth;\nuniform float editorSelectionIdentityEnabled;\n\nfloat unpackEditorDepth(vec4 color) {\n const vec4 bitShift = vec4(\n 1.0 / (255.0 * 255.0 * 255.0),\n 1.0 / (255.0 * 255.0),\n 1.0 / 255.0,\n 1.0\n );\n return dot(color, bitShift);\n}\n\nfloat selectionOccupancyAt(vec2 uv) {\n vec2 sampleUv = clamp(uv, vec2(0.0), vec2(1.0));\n vec4 selectedDepthSample = texture2D(editorSelectedDepthSampler, sampleUv);\n float selectedDepth = mix(\n selectedDepthSample.r,\n unpackEditorDepth(selectedDepthSample),\n editorSelectedPackedDepth\n );\n return 1.0 - step(0.999999, selectedDepth);\n}\n\nfloat selectionIdentityValue(vec4 color) {\n vec3 bytes = floor(color.rgb * 255.0 + 0.5);\n return dot(bytes, vec3(65536.0, 256.0, 1.0));\n}\n\nfloat selectionIdentityBoundaryAgainst(\n vec2 neighborUv,\n float centerSelected,\n float centerValue\n) {\n vec4 neighborIdentity = texture2D(editorSelectionIdentitySampler, neighborUv);\n float neighborValue = selectionIdentityValue(neighborIdentity);\n float identitiesDiffer = step(0.5, abs(centerValue - neighborValue));\n // The object-ID target already depth-resolves the selected surface. Pick one\n // deterministic owner for each differing-ID edge to avoid double thickness.\n float stableIdentityOwner = step(0.5, centerValue - neighborValue);\n return centerSelected * identitiesDiffer * stableIdentityOwner;\n}\n\nfloat selectionIdentityBoundarySampleAt(vec2 uv, vec2 identityTexel) {\n vec4 centerIdentity = texture2D(editorSelectionIdentitySampler, uv);\n float centerSelected = step(0.001, centerIdentity.a);\n float centerValue = selectionIdentityValue(centerIdentity);\n float boundary = 0.0;\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(-identityTexel.x, 0.0), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(identityTexel.x, 0.0), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(0.0, -identityTexel.y), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(0.0, identityTexel.y), centerSelected, centerValue\n ));\n return boundary;\n}\n\nfloat selectionIdentityBoundaryCoverageAt(\n vec2 uv,\n vec2 outputTexel,\n vec2 boundaryStep\n) {\n vec2 ringWide = outputTexel * vec2(0.32476, 0.1875);\n vec2 ringTall = outputTexel * vec2(0.0, 0.375);\n float coverage = selectionIdentityBoundarySampleAt(uv - ringTall, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(\n uv + vec2(ringWide.x, -ringWide.y), boundaryStep\n );\n coverage += selectionIdentityBoundarySampleAt(uv + ringWide, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(uv + ringTall, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(\n uv + vec2(-ringWide.x, ringWide.y), boundaryStep\n );\n coverage += selectionIdentityBoundarySampleAt(uv - ringWide, boundaryStep);\n return coverage / 6.0;\n}\n\nvoid main(void) {\n if (\n vUV.x < editorSelectionUvBounds.x\n || vUV.y < editorSelectionUvBounds.y\n || vUV.x > editorSelectionUvBounds.z\n || vUV.y > editorSelectionUvBounds.w\n ) {\n gl_FragColor = vec4(0.0);\n return;\n }\n vec2 subpixelOffset = editorSelectedDepthTexelSize * 0.5;\n float coverage = 0.0;\n coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, -subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, -subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, subpixelOffset.y));\n float identityBoundary = 0.0;\n if (editorSelectionIdentityEnabled > 0.5) {\n identityBoundary = selectionIdentityBoundaryCoverageAt(\n vUV,\n editorOutputTexelSize,\n editorPresentationTexelSize\n );\n }\n gl_FragColor = vec4(identityBoundary, 0.0, 0.0, coverage * 0.25);\n}\n`;\n\nconst SELECTION_SILHOUETTE_FRAGMENT_SHADER = `\nprecision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D editorSceneColorSampler;\nuniform sampler2D editorSceneDepthSampler;\nuniform sampler2D editorSelectedDepthSampler;\nuniform vec2 editorOutputTexelSize;\nuniform vec2 editorPresentationTexelSize;\nuniform vec4 editorSelectionUvBounds;\nuniform vec3 editorSelectionColor;\nuniform float editorScenePackedDepth;\nuniform float editorSelectedPackedDepth;\nuniform float editorSelectionIdentityEnabled;\nuniform float editorSceneBackgroundDepth;\nuniform float editorDepthEpsilon;\n\nfloat unpackEditorDepth(vec4 color) {\n const vec4 bitShift = vec4(\n 1.0 / (255.0 * 255.0 * 255.0),\n 1.0 / (255.0 * 255.0),\n 1.0 / 255.0,\n 1.0\n );\n return dot(color, bitShift);\n}\n\nfloat readEditorDepth(sampler2D depthSampler, vec2 uv, float packedDepth) {\n vec4 sampleValue = texture2D(depthSampler, clamp(uv, vec2(0.0), vec2(1.0)));\n return mix(sampleValue.r, unpackEditorDepth(sampleValue), packedDepth);\n}\n\nfloat selectionCoverageAt(vec2 uv) {\n return texture2D(textureSampler, clamp(uv, vec2(0.0), vec2(1.0))).a;\n}\n\nfloat resolvedSelectionIdentityBoundaryAt(vec2 uv, vec2 outputTexel) {\n vec2 halfTexel = outputTexel * 0.5;\n float coverage = texture2D(\n textureSampler,\n uv + vec2(-halfTexel.x, -halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(halfTexel.x, -halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(-halfTexel.x, halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(halfTexel.x, halfTexel.y)\n ).r;\n return coverage * 0.25;\n}\n\nvoid considerStrongestSelectionNeighbor(\n inout vec3 strongestSample,\n vec2 uv,\n vec2 texel,\n vec2 offset\n) {\n float coverage = selectionCoverageAt(uv + offset * texel);\n float isStronger = step(strongestSample.x, coverage);\n strongestSample = mix(\n strongestSample,\n vec3(coverage, offset),\n isStronger\n );\n}\n\nvec3 strongestSelectionNeighbor(vec2 uv, vec2 texel) {\n vec3 strongestSample = vec3(0.0, 0.0, 0.0);\n for (int y = -1; y <= 1; y++) {\n for (int x = -1; x <= 1; x++) {\n if (x != 0 || y != 0) {\n considerStrongestSelectionNeighbor(\n strongestSample,\n uv,\n texel,\n vec2(float(x), float(y))\n );\n }\n }\n }\n return strongestSample;\n}\n\nfloat selectionSubpixelVisibilityAt(vec2 uv) {\n float selectedDepth = readEditorDepth(\n editorSelectedDepthSampler,\n uv,\n editorSelectedPackedDepth\n );\n float sceneDepth = readEditorDepth(editorSceneDepthSampler, uv, editorScenePackedDepth);\n float sceneBackgroundIsZero = 1.0 - step(0.5, editorSceneBackgroundDepth);\n float emptyZeroDepth = sceneBackgroundIsZero * (1.0 - step(0.000001, sceneDepth));\n sceneDepth = mix(sceneDepth, 1.0, emptyZeroDepth);\n float hasSelection = 1.0 - step(0.999999, selectedDepth);\n float depthDelta = selectedDepth - sceneDepth;\n float isVisible = 1.0 - smoothstep(\n editorDepthEpsilon,\n editorDepthEpsilon * 4.0,\n depthDelta\n );\n return hasSelection * isVisible;\n}\n\nfloat selectionSurfaceVisibilityAt(vec2 uv, vec2 texel) {\n vec2 subpixelOffset = texel * 0.25;\n float visibility = 0.0;\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, -subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, -subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, subpixelOffset.y))\n );\n return visibility;\n}\n\nvoid main(void) {\n vec4 sceneColor = texture2D(editorSceneColorSampler, vUV);\n float center = texture2D(textureSampler, vUV).a;\n if (\n vUV.x < editorSelectionUvBounds.x\n || vUV.y < editorSelectionUvBounds.y\n || vUV.x > editorSelectionUvBounds.z\n || vUV.y > editorSelectionUvBounds.w\n ) {\n gl_FragColor = vec4(sceneColor.rgb, 1.0);\n return;\n }\n float identityAlpha = 0.0;\n if (editorSelectionIdentityEnabled > 0.5) {\n float identityBoundary = resolvedSelectionIdentityBoundaryAt(\n vUV,\n editorOutputTexelSize\n );\n float perceptualIdentityCoverage = pow(\n clamp(identityBoundary, 0.0, 1.0),\n 0.75\n );\n identityAlpha = perceptualIdentityCoverage * selectionSurfaceVisibilityAt(\n vUV,\n editorOutputTexelSize\n );\n }\n float unionAlpha = 0.0;\n if (editorSelectionIdentityEnabled < 0.5 && center < 0.999) {\n float outsideCoverage = 1.0 - clamp(center, 0.0, 1.0);\n vec3 strongestSample = strongestSelectionNeighbor(vUV, editorPresentationTexelSize);\n vec2 strongestSampleUv = vUV + strongestSample.yz * editorPresentationTexelSize;\n float boundaryVisibility = selectionSurfaceVisibilityAt(\n strongestSampleUv,\n editorOutputTexelSize\n );\n unionAlpha = smoothstep(\n 0.0,\n 1.0,\n strongestSample.x * outsideCoverage\n ) * boundaryVisibility;\n }\n float alpha = max(unionAlpha, identityAlpha);\n gl_FragColor = vec4(mix(sceneColor.rgb, editorSelectionColor, alpha), 1.0);\n}\n`;\n\nexport interface BabylonEditorSelectionPresentationProjectedNode {\n nodeId: string;\n outlineMeshes: readonly any[];\n selectionMeshes?: readonly any[];\n selectionPresentationTargets?: readonly BabylonEditorSelectionPresentationTarget[];\n}\n\nexport interface BabylonEditorSelectionPresentationTarget {\n selectionNodeId: string;\n renderMeshes: readonly any[];\n}\n\nexport type BabylonEditorSelectionPresentationDiagnosticCode =\n | 'backend-initialization-failed'\n | 'shader-not-ready'\n | 'camera-replacement-failed'\n | 'resource-dispose-failed';\n\nexport interface BabylonEditorSelectionPresentationDiagnostic {\n code: BabylonEditorSelectionPresentationDiagnosticCode;\n message: string;\n cause?: unknown;\n}\n\nexport interface BabylonEditorSelectionPresentationDiagnostics {\n status: 'idle' | 'active' | 'failed' | 'disposed';\n projectedNodeCount: number;\n selectedNodeCount: number;\n selectedMeshCount: number;\n backendResourceCount: number;\n sceneDepthSource: BabylonEditorSelectionSceneDepthSourceKind | null;\n cameraId: string | null;\n lastDiagnostic: BabylonEditorSelectionPresentationDiagnostic | null;\n}\n\nexport interface BabylonEditorSelectionPresentationBackend {\n setSelectedMeshes(\n meshes: readonly any[],\n groups?: readonly BabylonSelectionIdentityGroup[],\n ): void;\n setEnabled(enabled: boolean): void;\n prewarm?(meshes: readonly any[]): void;\n prepareFrame(): void;\n getResourceCount(): number;\n getSceneDepthSourceKind?(): BabylonEditorSelectionSceneDepthSourceKind | null;\n getCameraId(): string | null;\n dispose(): void;\n}\n\nexport interface BabylonEditorSelectionPresentationControllerOptions {\n babylon: BabylonRuntimeGlobal & Record<string, any>;\n scene: RuntimeScene;\n logger?: Pick<Console, 'warn'>;\n onDiagnostic?: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void;\n sceneDepthSourceProvider?: BabylonEditorSelectionSceneDepthSourceProvider;\n prewarm?: boolean;\n createBackend?: (\n options: BabylonEditorSelectionPresentationControllerOptions,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n ) => BabylonEditorSelectionPresentationBackend;\n}\n\nexport interface BabylonEditorSelectionPresentationController {\n attachProjectedNode(node: BabylonEditorSelectionPresentationProjectedNode): void;\n updateProjectedNode(node: BabylonEditorSelectionPresentationProjectedNode): void;\n detachProjectedNode(nodeId: string): void;\n syncSelection(selection: EditorSelectionState): void;\n prepareFrame(): void;\n getDiagnostics(): BabylonEditorSelectionPresentationDiagnostics;\n dispose(): void;\n}\n\ntype SceneDepthLease = {\n camera: RuntimeCamera;\n renderer: any;\n depthMap: any;\n type: number;\n packed: boolean;\n refs: number;\n activeRefs: number;\n width: number;\n height: number;\n};\n\nconst sceneDepthLeases = new WeakMap<object, Map<object, SceneDepthLease>>();\n\ntype PrePassSceneDepthState = {\n prePassRenderer: any;\n configuration: {\n name: string;\n enabled: boolean;\n texturesRequired: number[];\n needsImageProcessing: boolean;\n };\n activeLeaseCount: number;\n};\n\nconst prePassSceneDepthStates = new WeakMap<object, PrePassSceneDepthState>();\nconst PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME = 'fpsEditorSelectionSceneDepth';\n\ntype CameraSelectionPostProcessSlot = {\n index: number | null;\n postProcess: any;\n vacantTopology: readonly any[] | null;\n};\n\ntype CameraSelectionPostProcessSlotRegistry = {\n owners: Map<object, CameraSelectionPostProcessSlot>;\n releasedSlots: Map<number, readonly any[]>;\n};\n\nconst cameraSelectionPostProcessSlots = new WeakMap<object, CameraSelectionPostProcessSlotRegistry>();\n\nexport function createBabylonEditorSelectionPresentationController(\n options: BabylonEditorSelectionPresentationControllerOptions,\n): BabylonEditorSelectionPresentationController {\n const nodes = new Map<string, BabylonEditorSelectionPresentationProjectedNode>();\n const reportedDiagnosticCodes = new Set<BabylonEditorSelectionPresentationDiagnosticCode>();\n let selection: EditorSelectionState = { selectedIds: [], activeId: null };\n let backend: BabylonEditorSelectionPresentationBackend | null = null;\n let failed = false;\n let disposed = false;\n let selectedMeshCount = 0;\n let prewarmed = false;\n const prewarmedMeshes = new Set<any>();\n let lastDiagnostic: BabylonEditorSelectionPresentationDiagnostic | null = null;\n\n const reportDiagnostic = (diagnostic: BabylonEditorSelectionPresentationDiagnostic): void => {\n lastDiagnostic = diagnostic;\n if (reportedDiagnosticCodes.has(diagnostic.code)) return;\n reportedDiagnosticCodes.add(diagnostic.code);\n options.logger?.warn(`[selection-presentation:${diagnostic.code}] ${diagnostic.message}`, diagnostic.cause);\n options.onDiagnostic?.(diagnostic);\n };\n\n const ensureBackend = (): BabylonEditorSelectionPresentationBackend | null => {\n if (disposed || failed) return null;\n if (backend) return backend;\n try {\n backend = (options.createBackend ?? createDepthAwareSelectionPresentationBackend)(options, reportDiagnostic);\n return backend;\n } catch (cause) {\n failed = true;\n reportDiagnostic({\n code: 'backend-initialization-failed',\n message: 'Selection silhouette resources could not be initialized; visual selection feedback is disabled.',\n cause,\n });\n return null;\n }\n };\n\n const syncBackendMembership = (): void => {\n if (disposed) return;\n const previousSelectedMeshCount = selectedMeshCount;\n const groups = selection.selectedIds\n .map(selectionId => ({\n selectionId,\n meshes: collectSelectedPresentationMeshes(nodes, {\n selectedIds: [selectionId],\n activeId: selectionId,\n }),\n }))\n .filter(group => group.meshes.length > 0);\n const meshes: any[] = [];\n const seenMeshes = new Set<any>();\n for (const group of groups) {\n for (const mesh of group.meshes) appendPresentationMesh(meshes, seenMeshes, mesh);\n }\n selectedMeshCount = meshes.length;\n if (meshes.length === 0) {\n // Projection attaches nodes incrementally. Once a cold-start prewarm has\n // begun, later empty-selection membership updates must not cancel it\n // before the first warm frame has rendered. A real deselection still\n // clears the backend because it transitions from a non-empty selection.\n if (prewarmed && previousSelectedMeshCount === 0) return;\n backend?.setSelectedMeshes([], groups);\n backend?.setEnabled(false);\n return;\n }\n const nextBackend = ensureBackend();\n if (!nextBackend) return;\n try {\n nextBackend.setSelectedMeshes(meshes, groups);\n nextBackend.setEnabled(true);\n nextBackend.prepareFrame();\n } catch (cause) {\n failed = true;\n safelyDisposeBackend(nextBackend, reportDiagnostic);\n backend = null;\n reportDiagnostic({\n code: 'backend-initialization-failed',\n message: 'Selection silhouette synchronization failed; visual selection feedback is disabled.',\n cause,\n });\n }\n };\n\n const prewarmBackendIfNeeded = (\n node: BabylonEditorSelectionPresentationProjectedNode,\n ): void => {\n if (!options.prewarm || disposed || failed || selection.selectedIds.length > 0) return;\n const candidates = collectSelectedPresentationMeshes(\n new Map([[node.nodeId, node]]),\n { selectedIds: [node.nodeId], activeId: node.nodeId },\n ).filter(mesh => !prewarmedMeshes.has(mesh));\n if (candidates.length === 0) return;\n const nextBackend = ensureBackend();\n if (!nextBackend?.prewarm) return;\n // Mark the controller before entering the backend because depth/pre-pass\n // allocation can synchronously re-enter projection membership updates.\n // Those empty-selection updates must observe the in-flight prewarm.\n prewarmed = true;\n for (const candidate of candidates) prewarmedMeshes.add(candidate);\n try {\n nextBackend.prewarm(candidates);\n } catch (cause) {\n for (const candidate of candidates) prewarmedMeshes.delete(candidate);\n prewarmed = prewarmedMeshes.size > 0;\n reportDiagnostic({\n code: 'backend-initialization-failed',\n message: 'Selection silhouette prewarm failed; the first selection may compile resources on demand.',\n cause,\n });\n }\n };\n\n return {\n attachProjectedNode(node) {\n if (disposed) return;\n nodes.set(node.nodeId, node);\n syncBackendMembership();\n prewarmBackendIfNeeded(node);\n },\n updateProjectedNode(node) {\n if (disposed) return;\n nodes.set(node.nodeId, node);\n syncBackendMembership();\n prewarmBackendIfNeeded(node);\n },\n detachProjectedNode(nodeId) {\n if (disposed) return;\n nodes.delete(nodeId);\n syncBackendMembership();\n },\n syncSelection(nextSelection) {\n if (disposed) return;\n selection = {\n selectedIds: [...new Set(nextSelection.selectedIds)],\n activeId: nextSelection.activeId,\n };\n syncBackendMembership();\n },\n prepareFrame() {\n if (disposed || failed || selectedMeshCount === 0) return;\n try {\n backend?.prepareFrame();\n } catch (cause) {\n failed = true;\n if (backend) safelyDisposeBackend(backend, reportDiagnostic);\n backend = null;\n reportDiagnostic({\n code: 'camera-replacement-failed',\n message: 'Selection silhouette camera resources could not be refreshed; visual selection feedback is disabled.',\n cause,\n });\n }\n },\n getDiagnostics() {\n return {\n status: disposed ? 'disposed' : failed ? 'failed' : selectedMeshCount > 0 ? 'active' : 'idle',\n projectedNodeCount: nodes.size,\n selectedNodeCount: selection.selectedIds.length,\n selectedMeshCount,\n backendResourceCount: backend?.getResourceCount() ?? 0,\n sceneDepthSource: backend?.getSceneDepthSourceKind?.() ?? null,\n cameraId: backend?.getCameraId() ?? null,\n lastDiagnostic,\n };\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n nodes.clear();\n selectedMeshCount = 0;\n if (backend) safelyDisposeBackend(backend, reportDiagnostic);\n backend = null;\n },\n };\n}\n\nexport function collectSelectedPresentationMeshes(\n nodes: ReadonlyMap<string, BabylonEditorSelectionPresentationProjectedNode>,\n selection: EditorSelectionState,\n): any[] {\n const selectedIds = new Set(selection.selectedIds);\n const meshes: any[] = [];\n const seen = new Set<any>();\n for (const [nodeId, node] of nodes) {\n const rootSelected = selectedIds.has(nodeId);\n const mappedSelectionNodeIds = new Set(\n (node.selectionPresentationTargets ?? []).map(target => target.selectionNodeId),\n );\n const proxyNodeIds = new Set(\n (node.selectionMeshes ?? [])\n .map(readPresentationMeshSelectionNodeId)\n .filter((id): id is string => !!id),\n );\n for (const mesh of node.outlineMeshes) {\n const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;\n if (!rootSelected && (proxyNodeIds.has(meshNodeId) || !selectedIds.has(meshNodeId))) continue;\n appendPresentationMesh(meshes, seen, mesh);\n }\n for (const target of node.selectionPresentationTargets ?? []) {\n if (!selectedIds.has(target.selectionNodeId)) continue;\n for (const mesh of target.renderMeshes) appendPresentationMesh(meshes, seen, mesh);\n }\n for (const mesh of node.selectionMeshes ?? []) {\n const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;\n if (mappedSelectionNodeIds.has(meshNodeId)) continue;\n if (!selectedIds.has(meshNodeId)) continue;\n appendPresentationMesh(meshes, seen, mesh);\n }\n }\n return meshes;\n}\n\nfunction appendPresentationMesh(meshes: any[], seen: Set<any>, mesh: any): void {\n if (!mesh || seen.has(mesh) || mesh.isDisposed?.()) return;\n seen.add(mesh);\n meshes.push(mesh);\n}\n\nfunction readPresentationMeshSelectionNodeId(mesh: any): string | null {\n const nodeId = mesh?.metadata?.editorProjection?.nodeId;\n return typeof nodeId === 'string' && nodeId.length > 0 ? nodeId : null;\n}\n\nfunction createDepthAwareSelectionPresentationBackend(\n options: BabylonEditorSelectionPresentationControllerOptions,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): BabylonEditorSelectionPresentationBackend {\n const { babylon, scene } = options;\n const beforeRenderObservable = scene?.onBeforeRenderObservable;\n let beforeRenderObserver: unknown = null;\n let enabled = false;\n let disposed = false;\n let selectedMeshes: any[] = [];\n let selectionGroups: readonly BabylonSelectionIdentityGroup[] = [];\n let camera: RuntimeCamera | null = null;\n let sceneDepthLease: BabylonEditorSelectionSceneDepthSourceLease | null = null;\n let selectedDepthRenderer: any = null;\n let selectedDepthMap: any = null;\n let selectionIdentityPass: BabylonSelectionIdentityPass | null = null;\n const occupancyMaskPass = {\n resource: null as any,\n attached: false,\n insertIndex: null as number | null,\n slotOwner: {},\n };\n const compositePass = {\n resource: null as any,\n attached: false,\n insertIndex: null as number | null,\n slotOwner: {},\n };\n let width = 0;\n let height = 0;\n let selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;\n let shaderNotReadyFrames = 0;\n let prewarming = false;\n let prewarmCleanupQueued = false;\n let prewarmReadyFrameCount = 0;\n let prewarmRenderedFrameCount = 0;\n let prewarmAfterRenderObserver: unknown = null;\n let resourcesActive = false;\n let sceneDepthLeaseActive = false;\n let selectedDepthMapActive = false;\n let selectionUvBounds: BabylonEditorSelectionUvBounds = [0, 0, 1, 1];\n\n registerSelectionSilhouetteShader(babylon);\n\n const requiresSelectionIdentityPass = (): boolean => (\n selectionGroups.length > 1\n && !!babylon.ShaderMaterial\n && !!babylon.Effect?.ShadersStore\n );\n\n const detachPostProcessPass = (pass: typeof occupancyMaskPass): void => {\n if (!camera || !pass.resource || !pass.attached) return;\n const topologyBeforeDetach = Array.isArray(camera._postProcesses)\n ? camera._postProcesses.slice()\n : null;\n try {\n const attachedIndex = findCameraPostProcessIndex(camera, pass.resource);\n if (attachedIndex >= 0) pass.insertIndex = attachedIndex;\n camera.detachPostProcess?.(pass.resource);\n pass.attached = false;\n reserveOwnedCameraPostProcessSlot(\n camera,\n pass.slotOwner,\n pass.insertIndex,\n topologyBeforeDetach,\n );\n } catch (cause) {\n if (forceDetachCameraPostProcess(camera, pass.resource)) {\n pass.attached = false;\n reserveOwnedCameraPostProcessSlot(\n camera,\n pass.slotOwner,\n pass.insertIndex,\n topologyBeforeDetach,\n );\n }\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette post-process could not be detached cleanly.',\n cause,\n });\n }\n };\n\n const deactivateResources = (): void => {\n resourcesActive = false;\n selectionIdentityPass?.setEnabled(false);\n if (sceneDepthLease && sceneDepthLeaseActive) {\n try {\n sceneDepthLease.deactivate();\n sceneDepthLeaseActive = false;\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The shared scene depth lease could not be deactivated cleanly.',\n cause,\n });\n }\n }\n if (selectedDepthMap && selectedDepthMapActive) {\n try {\n removeCustomRenderTarget(scene, selectedDepthMap);\n selectedDepthMapActive = false;\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The selected depth target could not be detached cleanly.',\n cause,\n });\n }\n }\n detachPostProcessPass(compositePass);\n detachPostProcessPass(occupancyMaskPass);\n };\n\n const clearPrewarmAfterRenderObserver = (): void => {\n if (prewarmAfterRenderObserver == null) return;\n scene?.onAfterRenderObservable?.remove?.(prewarmAfterRenderObserver);\n prewarmAfterRenderObserver = null;\n };\n\n const finishPrewarm = (): void => {\n if (!prewarming) return;\n prewarming = false;\n clearPrewarmAfterRenderObserver();\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n selectedMeshes = [];\n selectionGroups = [];\n if (selectedDepthMap) selectedDepthMap.renderList = selectedMeshes;\n enabled = false;\n deactivateResources();\n };\n\n const activateResources = (): void => {\n if (\n !enabled\n || !sceneDepthLease\n || !selectedDepthMap\n || !occupancyMaskPass.resource\n || !compositePass.resource\n || requiresSelectionIdentityPass() !== !!selectionIdentityPass\n || !camera\n ) return;\n if (resourcesActive) return;\n if (!occupancyMaskPass.attached) {\n occupancyMaskPass.insertIndex = attachOwnedCameraPostProcess(\n camera,\n occupancyMaskPass.slotOwner,\n occupancyMaskPass.resource,\n );\n occupancyMaskPass.attached = true;\n }\n if (!compositePass.attached) {\n compositePass.insertIndex = attachOwnedCameraPostProcess(\n camera,\n compositePass.slotOwner,\n compositePass.resource,\n );\n compositePass.attached = true;\n }\n if (!sceneDepthLeaseActive) {\n sceneDepthLease.activate();\n sceneDepthLeaseActive = true;\n }\n if (!selectedDepthMapActive) {\n selectedDepthMapActive = true;\n addCustomRenderTarget(scene, selectedDepthMap);\n }\n selectionIdentityPass?.setEnabled(true);\n resourcesActive = true;\n };\n\n const disposePostProcessPass = (pass: typeof occupancyMaskPass, ownedCamera: RuntimeCamera | null): void => {\n const resource = pass.resource;\n if (resource) {\n try {\n resource.dispose?.(ownedCamera ?? undefined);\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette post-process resource could not be disposed cleanly.',\n cause,\n });\n }\n releaseOwnedCameraPostProcessSlot(\n ownedCamera,\n pass.slotOwner,\n pass.insertIndex,\n resource,\n );\n }\n pass.resource = null;\n pass.attached = false;\n pass.insertIndex = null;\n };\n\n const disposeCameraResources = (preservePrewarm = false): void => {\n if (!preservePrewarm) {\n clearPrewarmAfterRenderObserver();\n prewarming = false;\n }\n deactivateResources();\n const ownedCamera = camera;\n disposePostProcessPass(compositePass, ownedCamera);\n disposePostProcessPass(occupancyMaskPass, ownedCamera);\n const ownedSelectedDepthMap = selectedDepthMap;\n if (selectedDepthRenderer) {\n try {\n selectedDepthRenderer.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette depth resource could not be disposed cleanly.',\n cause,\n });\n }\n }\n if (ownedSelectedDepthMap) {\n try {\n ownedSelectedDepthMap.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned selected depth target could not be disposed cleanly.',\n cause,\n });\n }\n }\n if (selectionIdentityPass) {\n try {\n selectionIdentityPass.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The selection identity pass could not be disposed cleanly.',\n cause,\n });\n }\n }\n selectedDepthRenderer = null;\n selectedDepthMap = null;\n selectedDepthMapActive = false;\n selectionIdentityPass = null;\n if (sceneDepthLease) {\n try {\n sceneDepthLease.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The leased scene depth source could not be disposed cleanly.',\n cause,\n });\n }\n }\n sceneDepthLease = null;\n sceneDepthLeaseActive = false;\n camera = null;\n width = 0;\n height = 0;\n selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;\n shaderNotReadyFrames = 0;\n resourcesActive = false;\n };\n\n const createCameraResources = (nextCamera: RuntimeCamera): void => {\n const DepthRenderer = babylon.DepthRenderer;\n const RenderTargetTexture = babylon.RenderTargetTexture;\n const PostProcess = babylon.PostProcess;\n if (!DepthRenderer || !RenderTargetTexture || !PostProcess) {\n throw new Error('Babylon runtime is missing DepthRenderer, RenderTargetTexture, or PostProcess.');\n }\n const engine = scene.getEngine?.();\n if (!engine) throw new Error('Selection silhouette requires an active Babylon engine.');\n const nextWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? 1));\n const nextHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? 1));\n const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);\n const sceneDepthType = resolveDepthTextureType(engine);\n let nextLease: BabylonEditorSelectionSceneDepthSourceLease | null = null;\n let nextSelectedRenderer: any = null;\n let nextSelectedMap: any = null;\n let nextSelectionIdentityPass: BabylonSelectionIdentityPass | null = null;\n let nextOccupancyMaskPass: any = null;\n let nextCompositePass: any = null;\n let adopted = false;\n try {\n nextSelectedMap = new RenderTargetTexture(\n 'editorSelectionSelectedDepth',\n {\n width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),\n },\n scene,\n {\n generateMipMaps: false,\n doNotChangeAspectRatio: true,\n type: sceneDepthType,\n samplingMode: TEXTURE_NEAREST_SAMPLING_MODE,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n },\n );\n nextSelectedRenderer = new DepthRenderer(\n scene,\n sceneDepthType,\n nextCamera,\n true,\n TEXTURE_NEAREST_SAMPLING_MODE,\n false,\n 'editorSelectionSelectedDepthRenderer',\n nextSelectedMap,\n );\n nextSelectedRenderer.forceDepthWriteTransparentMeshes = true;\n nextSelectedMap.renderList = selectedMeshes;\n if (requiresSelectionIdentityPass()) {\n nextSelectionIdentityPass = new BabylonSelectionIdentityPass({\n babylon,\n scene,\n camera: nextCamera,\n width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),\n });\n nextSelectionIdentityPass.setSelection(selectionGroups);\n }\n nextOccupancyMaskPass = new PostProcess(\n 'editorSelectionOccupancyMask',\n SELECTION_OCCUPANCY_MASK_SHADER_NAME,\n [\n 'editorSelectedDepthTexelSize',\n 'editorOutputTexelSize',\n 'editorPresentationTexelSize',\n 'editorSelectionUvBounds',\n 'editorSelectedPackedDepth',\n 'editorSelectionIdentityEnabled',\n ],\n [\n 'editorSelectedDepthSampler',\n 'editorSelectionIdentitySampler',\n ],\n 1,\n null,\n TEXTURE_BILINEAR_SAMPLING_MODE,\n engine,\n false,\n );\n nextOccupancyMaskPass.onApply = (effect: any) => {\n const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));\n const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));\n const presentationSize = resolveSelectionPresentationSize(\n engine,\n outputWidth,\n outputHeight,\n );\n selectionUvBounds = prewarming\n ? [1, 1, 0, 0]\n : computeSelectionPresentationUvBounds(\n babylon,\n scene,\n nextCamera,\n selectedMeshes,\n outputWidth,\n outputHeight,\n SELECTION_PRESENTATION_PADDING_PX,\n );\n effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);\n const selectedSize = nextSelectedMap.getSize?.() ?? {\n width: nextWidth * nextSelectionSourceRatio,\n height: nextHeight * nextSelectionSourceRatio,\n };\n effect.setFloat2?.(\n 'editorSelectedDepthTexelSize',\n 1 / Math.max(1, Number(selectedSize.width)),\n 1 / Math.max(1, Number(selectedSize.height)),\n );\n effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);\n effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);\n effect.setTexture?.(\n 'editorSelectionIdentitySampler',\n nextSelectionIdentityPass?.texture ?? nextSelectedMap,\n );\n effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);\n effect.setFloat2?.(\n 'editorPresentationTexelSize',\n 1 / presentationSize.width,\n 1 / presentationSize.height,\n );\n effect.setFloat?.(\n 'editorSelectionIdentityEnabled',\n nextSelectionIdentityPass ? 1 : 0,\n );\n };\n nextCompositePass = new PostProcess(\n 'editorSelectionSilhouetteComposite',\n SELECTION_SILHOUETTE_SHADER_NAME,\n [\n 'editorOutputTexelSize',\n 'editorPresentationTexelSize',\n 'editorSelectionUvBounds',\n 'editorSelectionColor',\n 'editorScenePackedDepth',\n 'editorSelectedPackedDepth',\n 'editorSelectionIdentityEnabled',\n 'editorSceneBackgroundDepth',\n 'editorDepthEpsilon',\n ],\n [\n 'editorSceneColorSampler',\n 'editorSceneDepthSampler',\n 'editorSelectedDepthSampler',\n ],\n 1,\n null,\n TEXTURE_BILINEAR_SAMPLING_MODE,\n engine,\n false,\n );\n nextLease = (options.sceneDepthSourceProvider ?? defaultSelectionSceneDepthSourceProvider).acquire({\n babylon,\n scene,\n camera: nextCamera,\n consumerPostProcess: nextCompositePass,\n textureType: sceneDepthType,\n width: nextWidth,\n height: nextHeight,\n reportDiagnostic,\n });\n nextCompositePass.onApply = (effect: any) => {\n const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));\n const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));\n const presentationSize = resolveSelectionPresentationSize(\n engine,\n outputWidth,\n outputHeight,\n );\n effect.setTextureFromPostProcess?.(\n 'editorSceneColorSampler',\n nextOccupancyMaskPass,\n );\n effect.setTexture?.('editorSceneDepthSampler', nextLease?.getTexture());\n effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);\n effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);\n effect.setFloat2?.(\n 'editorPresentationTexelSize',\n 1 / presentationSize.width,\n 1 / presentationSize.height,\n );\n effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);\n effect.setFloat3?.('editorSelectionColor', ...SELECTION_PRESENTATION_COLOR);\n effect.setFloat?.('editorScenePackedDepth', nextLease?.packed ? 1 : 0);\n effect.setFloat?.('editorSceneBackgroundDepth', nextLease?.backgroundDepth ?? 1);\n effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);\n effect.setFloat?.(\n 'editorSelectionIdentityEnabled',\n nextSelectionIdentityPass ? 1 : 0,\n );\n effect.setFloat?.('editorDepthEpsilon', 0.0015);\n };\n camera = nextCamera;\n sceneDepthLease = nextLease;\n selectedDepthRenderer = nextSelectedRenderer;\n selectedDepthMap = nextSelectedMap;\n selectionIdentityPass = nextSelectionIdentityPass;\n occupancyMaskPass.resource = nextOccupancyMaskPass;\n compositePass.resource = nextCompositePass;\n width = nextWidth;\n height = nextHeight;\n selectionSourceRatio = nextSelectionSourceRatio;\n adopted = true;\n activateResources();\n } catch (cause) {\n if (adopted) {\n disposeCameraResources();\n } else {\n try { nextCompositePass?.dispose?.(nextCamera); } catch {}\n try { nextOccupancyMaskPass?.dispose?.(nextCamera); } catch {}\n try { nextSelectedRenderer?.dispose?.(); } catch {}\n try { nextSelectedMap?.dispose?.(); } catch {}\n try { nextSelectionIdentityPass?.dispose(); } catch {}\n try { nextLease?.dispose(); } catch {}\n }\n throw cause;\n }\n };\n\n const prepareFrame = (): void => {\n if (disposed || !enabled) return;\n const nextCamera = scene.activeCamera ?? null;\n if (!nextCamera) return;\n if (\n camera !== nextCamera\n || !sceneDepthLease\n || !selectedDepthMap\n || !occupancyMaskPass.resource\n || !compositePass.resource\n || requiresSelectionIdentityPass() !== !!selectionIdentityPass\n ) {\n disposeCameraResources(true);\n createCameraResources(nextCamera);\n return;\n }\n const engine = scene.getEngine?.();\n const nextWidth = Math.max(1, Number(engine?.getRenderWidth?.() ?? width));\n const nextHeight = Math.max(1, Number(engine?.getRenderHeight?.() ?? height));\n const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);\n if (\n nextWidth !== width\n || nextHeight !== height\n || nextSelectionSourceRatio !== selectionSourceRatio\n ) {\n width = nextWidth;\n height = nextHeight;\n selectionSourceRatio = nextSelectionSourceRatio;\n sceneDepthLease.resize(nextWidth, nextHeight);\n selectedDepthMap.resize?.({\n width: Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)),\n });\n selectionIdentityPass?.resize(\n Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)),\n Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)),\n );\n }\n selectedDepthMap.renderList = selectedMeshes;\n activateResources();\n if (occupancyMaskPass.resource.isSupported === false || compositePass.resource.isSupported === false) {\n throw new Error('Selection silhouette post-process is not supported by the active engine.');\n }\n if (occupancyMaskPass.resource.isReady?.() && compositePass.resource.isReady?.()) {\n shaderNotReadyFrames = 0;\n } else {\n shaderNotReadyFrames += 1;\n if (shaderNotReadyFrames > 120) {\n reportDiagnostic({\n code: 'shader-not-ready',\n message: 'Selection silhouette shader did not become ready; visual selection feedback is disabled.',\n });\n throw new Error('Selection silhouette shader readiness timed out.');\n }\n }\n };\n\n if (beforeRenderObservable?.add) {\n beforeRenderObserver = beforeRenderObservable.add(prepareFrame);\n }\n\n return {\n setSelectedMeshes(meshes, groups) {\n if (prewarming) {\n // Projected nodes can publish empty membership while the scene is\n // still being assembled. Treat that as prewarm noise; a non-empty\n // selection is the only state transition that may take ownership of\n // the warmed resources before cleanup.\n if (meshes.length === 0) return;\n prewarming = false;\n clearPrewarmAfterRenderObserver();\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n }\n const requiredBefore = requiresSelectionIdentityPass();\n selectedMeshes = [...meshes];\n selectionGroups = groups?.map(group => ({\n selectionId: group.selectionId,\n meshes: [...group.meshes],\n })) ?? [];\n if (selectedDepthMap) selectedDepthMap.renderList = selectedMeshes;\n const requiredAfter = requiresSelectionIdentityPass();\n if (camera && requiredBefore !== requiredAfter) {\n disposeCameraResources();\n if (enabled) prepareFrame();\n return;\n }\n selectionIdentityPass?.setSelection(selectionGroups);\n },\n setEnabled(nextEnabled) {\n if (prewarming && !nextEnabled) return;\n if (disposed || enabled === nextEnabled) return;\n enabled = nextEnabled;\n if (enabled) prepareFrame();\n else {\n prewarming = false;\n clearPrewarmAfterRenderObserver();\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n deactivateResources();\n }\n },\n prewarm(meshes) {\n if (disposed || meshes.length === 0 || (enabled && !prewarming)) return;\n if (prewarming) {\n const mergedMeshes = [...selectedMeshes];\n const seenMeshes = new Set(mergedMeshes);\n for (const mesh of meshes) appendPresentationMesh(mergedMeshes, seenMeshes, mesh);\n selectedMeshes = mergedMeshes;\n if (selectedDepthMap) selectedDepthMap.renderList = selectedMeshes;\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n return;\n }\n selectedMeshes = [...meshes];\n selectionGroups = [];\n prewarming = true;\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n enabled = true;\n prepareFrame();\n const afterRenderObservable = scene?.onAfterRenderObservable;\n if (afterRenderObservable?.add) {\n prewarmAfterRenderObserver = afterRenderObservable.add(() => {\n prewarmRenderedFrameCount += 1;\n const selectedDepthReady = selectedDepthMap?.isReadyForRendering?.() ?? true;\n const postProcessesReady = (occupancyMaskPass.resource?.isReady?.() ?? true)\n && (compositePass.resource?.isReady?.() ?? true);\n prewarmReadyFrameCount = selectedDepthReady && postProcessesReady\n ? prewarmReadyFrameCount + 1\n : 0;\n // One readiness probe can itself trigger deferred shader work.\n // Require a second rendered frame with all resources ready before\n // detaching them from the scene.\n if (prewarmReadyFrameCount < 2 && prewarmRenderedFrameCount < 4) return;\n clearPrewarmAfterRenderObserver();\n if (prewarmCleanupQueued) return;\n prewarmCleanupQueued = true;\n void Promise.resolve().then(() => {\n prewarmCleanupQueued = false;\n finishPrewarm();\n });\n });\n } else {\n finishPrewarm();\n }\n },\n prepareFrame,\n getResourceCount() {\n if (\n !sceneDepthLease\n && !selectedDepthRenderer\n && !selectionIdentityPass\n && !occupancyMaskPass.resource\n && !compositePass.resource\n ) return 0;\n return Number(!!sceneDepthLease)\n + Number(!!selectedDepthRenderer)\n + Number(!!selectionIdentityPass)\n + Number(!!occupancyMaskPass.resource)\n + Number(!!compositePass.resource);\n },\n getSceneDepthSourceKind() {\n return sceneDepthLease?.kind ?? null;\n },\n getCameraId() {\n const id = camera?.id;\n return typeof id === 'string' ? id : null;\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n clearPrewarmAfterRenderObserver();\n prewarming = false;\n prewarmCleanupQueued = false;\n prewarmReadyFrameCount = 0;\n prewarmRenderedFrameCount = 0;\n if (beforeRenderObserver != null) beforeRenderObservable?.remove?.(beforeRenderObserver);\n beforeRenderObserver = null;\n disposeCameraResources();\n selectedMeshes = [];\n selectionGroups = [];\n },\n };\n}\n\nfunction registerSelectionSilhouetteShader(babylon: BabylonRuntimeGlobal & Record<string, any>): void {\n const shadersStore = babylon.Effect?.ShadersStore;\n if (!shadersStore) throw new Error('Babylon runtime is missing Effect.ShadersStore.');\n const maskShaderKey = `${SELECTION_OCCUPANCY_MASK_SHADER_NAME}PixelShader`;\n const compositeShaderKey = `${SELECTION_SILHOUETTE_SHADER_NAME}PixelShader`;\n if (!shadersStore[maskShaderKey]) shadersStore[maskShaderKey] = SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER;\n if (!shadersStore[compositeShaderKey]) {\n shadersStore[compositeShaderKey] = SELECTION_SILHOUETTE_FRAGMENT_SHADER;\n }\n}\n\nexport function computeSelectionPresentationUvBounds(\n babylon: BabylonRuntimeGlobal & Record<string, any>,\n scene: RuntimeScene,\n camera: RuntimeCamera,\n meshes: readonly any[],\n width: number,\n height: number,\n paddingPx = SELECTION_PRESENTATION_PADDING_PX,\n): BabylonEditorSelectionUvBounds {\n const Vector3 = babylon.Vector3 as any;\n const Matrix = babylon.Matrix;\n const transform = scene.getTransformMatrix?.();\n if (!Vector3?.Project || !Matrix?.Identity || !transform || width <= 0 || height <= 0) {\n return [0, 0, 1, 1];\n }\n const viewport = camera.viewport?.toGlobal?.(width, height)\n ?? { x: 0, y: 0, width, height };\n let minU = 1;\n let minV = 1;\n let maxU = 0;\n let maxV = 0;\n let projectedPointCount = 0;\n try {\n for (const mesh of meshes) {\n if (!mesh || mesh.isDisposed?.()) continue;\n if (hasRuntimeDeformedBounds(mesh)) return [0, 0, 1, 1];\n mesh.computeWorldMatrix?.(true);\n const vectors = mesh.getBoundingInfo?.()?.boundingBox?.vectorsWorld;\n if (!Array.isArray(vectors) || vectors.length === 0) return [0, 0, 1, 1];\n for (const point of vectors) {\n const projected = Vector3.Project(point, Matrix.Identity(), transform, viewport);\n if (\n !Number.isFinite(projected?.x)\n || !Number.isFinite(projected?.y)\n || !Number.isFinite(projected?.z)\n || projected.z < 0\n || projected.z > 1\n ) return [0, 0, 1, 1];\n const u = projected.x / width;\n const v = 1 - (projected.y / height);\n minU = Math.min(minU, u);\n minV = Math.min(minV, v);\n maxU = Math.max(maxU, u);\n maxV = Math.max(maxV, v);\n projectedPointCount += 1;\n }\n }\n } catch {\n return [0, 0, 1, 1];\n }\n if (projectedPointCount === 0) return [0, 0, 1, 1];\n const padU = Math.max(0, paddingPx) / width;\n const padV = Math.max(0, paddingPx) / height;\n return [\n clampUnit(minU - padU),\n clampUnit(minV - padV),\n clampUnit(maxU + padU),\n clampUnit(maxV + padV),\n ];\n}\n\nfunction hasRuntimeDeformedBounds(mesh: any): boolean {\n const sourceMesh = mesh?.sourceMesh;\n return !!(\n mesh?.skeleton\n || mesh?.morphTargetManager\n || mesh?.bakedVertexAnimationManager\n || sourceMesh?.skeleton\n || sourceMesh?.morphTargetManager\n || sourceMesh?.bakedVertexAnimationManager\n );\n}\n\nfunction clampUnit(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nfunction resolveSelectionSourceRatio(engine: any): number {\n const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);\n if (!Number.isFinite(hardwareScalingLevel) || hardwareScalingLevel <= 0) {\n return MAX_SELECTION_SOURCE_DENSITY;\n }\n return Math.min(\n MAX_SELECTION_SOURCE_DENSITY,\n Math.max(1, MAX_SELECTION_SOURCE_DENSITY * hardwareScalingLevel),\n );\n}\n\nfunction resolveSelectionPresentationSize(\n engine: any,\n outputWidth: number,\n outputHeight: number,\n): { width: number; height: number } {\n const canvas = engine?.getRenderingCanvas?.();\n const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);\n const fallbackScale = Number.isFinite(hardwareScalingLevel) && hardwareScalingLevel > 0\n ? hardwareScalingLevel\n : 1;\n return {\n width: Math.max(1, Number(canvas?.clientWidth) || outputWidth * fallbackScale),\n height: Math.max(1, Number(canvas?.clientHeight) || outputHeight * fallbackScale),\n };\n}\n\nexport const defaultSelectionSceneDepthSourceProvider: BabylonEditorSelectionSceneDepthSourceProvider = {\n acquire(request) {\n return createAdaptiveSelectionSceneDepthSourceLease(request);\n },\n};\n\nfunction createAdaptiveSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n let width = request.width;\n let height = request.height;\n let delegate = canUsePrePassSceneDepth(request)\n ? createPrePassSelectionSceneDepthSourceLease(request)\n : createDedicatedSelectionSceneDepthSourceLease(request);\n let disposed = false;\n let activated = false;\n\n const replaceWithDedicatedSource = (): void => {\n try { delegate.dispose(); } catch {}\n delegate = createDedicatedSelectionSceneDepthSourceLease({ ...request, width, height });\n };\n\n return {\n get kind() { return delegate.kind; },\n get packed() { return delegate.packed; },\n get backgroundDepth() { return delegate.backgroundDepth; },\n getTexture() { return delegate.getTexture(); },\n activate() {\n if (disposed || activated) return;\n try {\n delegate.activate();\n } catch (cause) {\n if (delegate.kind !== 'prepass') throw cause;\n replaceWithDedicatedSource();\n delegate.activate();\n }\n activated = true;\n },\n deactivate() {\n if (!activated) return;\n delegate.deactivate();\n activated = false;\n },\n resize(nextWidth, nextHeight) {\n width = nextWidth;\n height = nextHeight;\n delegate.resize(nextWidth, nextHeight);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n delegate.dispose();\n activated = false;\n },\n };\n}\n\nfunction canUsePrePassSceneDepth(request: BabylonEditorSelectionSceneDepthSourceRequest): boolean {\n return !!(\n request.scene?.enablePrePassRenderer\n && request.consumerPostProcess\n && typeof request.consumerPostProcess.setPrePassRenderer === 'function'\n && Number.isInteger(request.babylon.Constants?.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE)\n );\n}\n\nfunction createPrePassSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n const depthTextureType = request.babylon.Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE;\n const consumer = request.consumerPostProcess;\n const originalSetPrePassRenderer = consumer.setPrePassRenderer;\n let state: PrePassSceneDepthState | null = null;\n let active = false;\n let disposed = false;\n\n const restoreConsumer = (): void => {\n if (consumer.setPrePassRenderer === setPrePassRenderer) {\n consumer.setPrePassRenderer = originalSetPrePassRenderer;\n }\n };\n\n const setPrePassRenderer = function (prePassRenderer: any): boolean {\n const originalNeeded = originalSetPrePassRenderer.call(consumer, prePassRenderer);\n if (!state || state.prePassRenderer !== prePassRenderer) return originalNeeded;\n state.configuration = prePassRenderer.addEffectConfiguration(state.configuration);\n state.configuration.enabled = state.activeLeaseCount > 0;\n return originalNeeded || state.configuration.enabled;\n };\n\n const deactivate = (): void => {\n if (!active) return;\n active = false;\n restoreConsumer();\n if (state) {\n state.activeLeaseCount = Math.max(0, state.activeLeaseCount - 1);\n state.configuration.enabled = state.activeLeaseCount > 0;\n state.prePassRenderer.markAsDirty?.();\n state.prePassRenderer.update?.();\n }\n };\n\n const getTexture = (): any => {\n const index = state?.prePassRenderer?.getIndex?.(depthTextureType);\n const texture = Number.isInteger(index) && index >= 0\n ? state?.prePassRenderer?.defaultRT?.textures?.[index]\n : null;\n if (!texture) throw new Error('Babylon pre-pass did not expose a compatible screen-space depth texture.');\n return texture;\n };\n\n return {\n kind: 'prepass',\n packed: false,\n backgroundDepth: 0,\n getTexture,\n activate() {\n if (disposed || active) return;\n const prePassRenderer = request.scene.enablePrePassRenderer?.();\n if (!prePassRenderer?.isSupported) {\n throw new Error('Babylon pre-pass is unavailable on the active engine.');\n }\n state = prePassSceneDepthStates.get(request.scene as object) ?? {\n prePassRenderer,\n configuration: {\n name: PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME,\n enabled: false,\n texturesRequired: [depthTextureType],\n needsImageProcessing: false,\n },\n activeLeaseCount: 0,\n };\n if (state.prePassRenderer !== prePassRenderer) {\n throw new Error('The scene pre-pass renderer changed while acquiring selection depth.');\n }\n prePassSceneDepthStates.set(request.scene as object, state);\n state.activeLeaseCount += 1;\n state.configuration.enabled = true;\n consumer.setPrePassRenderer = setPrePassRenderer;\n active = true;\n try {\n prePassRenderer.markAsDirty?.();\n prePassRenderer.update?.();\n if (!prePassRenderer.enabled) throw new Error('Babylon pre-pass did not activate.');\n getTexture();\n } catch (cause) {\n deactivate();\n throw cause;\n }\n },\n deactivate,\n resize() {\n // Babylon owns this target and resizes it with the main render surface.\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n deactivate();\n restoreConsumer();\n },\n };\n}\n\nfunction createDedicatedSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n const lease = acquireSceneDepthLease(\n request.babylon,\n request.scene,\n request.camera,\n request.textureType,\n request.width,\n request.height,\n );\n let active = false;\n let disposed = false;\n return {\n kind: 'dedicated',\n packed: lease.packed,\n backgroundDepth: 1,\n getTexture: () => lease.depthMap,\n activate() {\n if (disposed || active) return;\n activateSceneDepthLease(request.scene, lease);\n active = true;\n },\n deactivate() {\n if (!active) return;\n deactivateSceneDepthLease(request.scene, lease);\n active = false;\n },\n resize(width, height) {\n resizeSceneDepthLease(lease, width, height);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n if (active) deactivateSceneDepthLease(request.scene, lease);\n active = false;\n releaseSceneDepthLease(request.scene, lease, request.reportDiagnostic);\n },\n };\n}\n\nfunction resolveDepthTextureType(engine: any): number {\n const caps = engine.getCaps?.() ?? {};\n if (caps.textureHalfFloatRender) return TEXTURE_TYPE_HALF_FLOAT;\n if (caps.textureFloatRender) return TEXTURE_TYPE_FLOAT;\n return TEXTURE_TYPE_UNSIGNED_BYTE;\n}\n\nfunction acquireSceneDepthLease(\n babylon: BabylonRuntimeGlobal & Record<string, any>,\n scene: RuntimeScene,\n camera: RuntimeCamera,\n type: number,\n width: number,\n height: number,\n): SceneDepthLease {\n let cameraLeases = sceneDepthLeases.get(scene);\n if (!cameraLeases) {\n cameraLeases = new Map();\n sceneDepthLeases.set(scene, cameraLeases);\n }\n const existing = cameraLeases.get(camera);\n if (existing && existing.type === type) {\n resizeSceneDepthLease(existing, width, height);\n existing.refs += 1;\n return existing;\n }\n const DepthRenderer = babylon.DepthRenderer;\n if (!DepthRenderer) throw new Error('Babylon runtime is missing DepthRenderer.');\n let renderer: any = null;\n let depthMap: any = null;\n try {\n renderer = new DepthRenderer(\n scene,\n type,\n camera,\n true,\n TEXTURE_NEAREST_SAMPLING_MODE,\n false,\n 'editorSelectionSceneDepthRenderer',\n );\n renderer.forceDepthWriteTransparentMeshes = true;\n depthMap = renderer.getDepthMap();\n depthMap.renderListPredicate = (mesh: any) => !mesh?.metadata?.editorProjectionSelectionProxy;\n depthMap.resize?.({ width, height });\n const lease: SceneDepthLease = {\n camera,\n renderer,\n depthMap,\n type,\n packed: !!renderer.isPacked,\n refs: 1,\n activeRefs: 0,\n width,\n height,\n };\n cameraLeases.set(camera, lease);\n return lease;\n } catch (cause) {\n try { renderer?.dispose?.(); } catch {}\n try { depthMap?.dispose?.(); } catch {}\n if (cameraLeases.size === 0) sceneDepthLeases.delete(scene);\n throw cause;\n }\n}\n\nfunction activateSceneDepthLease(scene: RuntimeScene, lease: SceneDepthLease): void {\n if (lease.activeRefs === 0) addCustomRenderTarget(scene, lease.depthMap);\n lease.activeRefs += 1;\n}\n\nfunction deactivateSceneDepthLease(scene: RuntimeScene, lease: SceneDepthLease): void {\n if (lease.activeRefs <= 0) return;\n if (lease.activeRefs === 1) removeCustomRenderTarget(scene, lease.depthMap);\n lease.activeRefs -= 1;\n}\n\nfunction resizeSceneDepthLease(lease: SceneDepthLease, width: number, height: number): void {\n if (lease.width === width && lease.height === height) return;\n lease.depthMap.resize?.({ width, height });\n lease.width = width;\n lease.height = height;\n}\n\nfunction releaseSceneDepthLease(\n scene: RuntimeScene,\n lease: SceneDepthLease,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): void {\n lease.refs = Math.max(0, lease.refs - 1);\n if (lease.refs > 0) return;\n lease.activeRefs = 0;\n try {\n removeCustomRenderTarget(scene, lease.depthMap);\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned scene depth target could not be detached cleanly.',\n cause,\n });\n }\n const cameraLeases = sceneDepthLeases.get(scene);\n cameraLeases?.delete(lease.camera);\n if (cameraLeases?.size === 0) sceneDepthLeases.delete(scene);\n try {\n lease.renderer.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A leased scene depth resource could not be disposed cleanly.',\n cause,\n });\n }\n try {\n lease.depthMap.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned scene depth target could not be disposed cleanly.',\n cause,\n });\n }\n}\n\nfunction addCustomRenderTarget(scene: RuntimeScene, target: any): void {\n if (!target) return;\n scene.customRenderTargets = Array.isArray(scene.customRenderTargets) ? scene.customRenderTargets : [];\n if (!scene.customRenderTargets.includes(target)) scene.customRenderTargets.push(target);\n}\n\nfunction removeCustomRenderTarget(scene: RuntimeScene, target: any): void {\n if (!target || !Array.isArray(scene.customRenderTargets)) return;\n const index = scene.customRenderTargets.indexOf(target);\n if (index >= 0) scene.customRenderTargets.splice(index, 1);\n}\n\nfunction findCameraPostProcessIndex(camera: RuntimeCamera, postProcess: any): number {\n return Array.isArray(camera?._postProcesses)\n ? camera._postProcesses.indexOf(postProcess)\n : -1;\n}\n\nfunction getCameraSelectionPostProcessSlotRegistry(\n camera: RuntimeCamera,\n): CameraSelectionPostProcessSlotRegistry {\n let registry = cameraSelectionPostProcessSlots.get(camera);\n if (!registry) {\n registry = { owners: new Map(), releasedSlots: new Map() };\n cameraSelectionPostProcessSlots.set(camera, registry);\n }\n return registry;\n}\n\nfunction cameraPostProcessTopologyMatches(\n slots: readonly any[],\n topology: readonly any[] | null,\n): boolean {\n return topology != null\n && slots.length === topology.length\n && slots.every((slot, index) => slot === topology[index]);\n}\n\nfunction reserveOwnedCameraPostProcessSlot(\n camera: RuntimeCamera,\n owner: object,\n insertIndex: number | null,\n topologyBeforeDetach: readonly any[] | null,\n): void {\n const slots = camera?._postProcesses;\n const registry = cameraSelectionPostProcessSlots.get(camera);\n const ownedSlot = registry?.owners.get(owner);\n if (!Array.isArray(slots) || !registry || !ownedSlot) return;\n const reservedIndex = insertIndex ?? ownedSlot.index;\n if (reservedIndex != null && reservedIndex < slots.length && slots[reservedIndex] === null) {\n ownedSlot.index = reservedIndex;\n ownedSlot.vacantTopology = slots.slice();\n } else {\n ownedSlot.index = null;\n ownedSlot.vacantTopology = null;\n }\n refreshProvenVacantCameraPostProcessTopologies(\n registry,\n slots,\n topologyBeforeDetach,\n owner,\n );\n}\n\nfunction refreshProvenVacantCameraPostProcessTopologies(\n registry: CameraSelectionPostProcessSlotRegistry,\n slots: readonly any[],\n topologyBeforeMutation: readonly any[] | null,\n excludedOwner: object | null = null,\n): void {\n if (!topologyBeforeMutation) return;\n const nextTopology = slots.slice();\n for (const [owner, slot] of registry.owners) {\n if (\n owner !== excludedOwner\n && slot.index != null\n && slot.index < slots.length\n && slots[slot.index] === null\n && cameraPostProcessTopologyMatches(topologyBeforeMutation, slot.vacantTopology)\n ) {\n slot.vacantTopology = nextTopology;\n }\n }\n for (const [releasedIndex, topology] of registry.releasedSlots) {\n if (\n releasedIndex < slots.length\n && slots[releasedIndex] === null\n && cameraPostProcessTopologyMatches(topologyBeforeMutation, topology)\n ) {\n registry.releasedSlots.set(releasedIndex, nextTopology);\n }\n }\n}\n\nfunction attachOwnedCameraPostProcess(\n camera: RuntimeCamera,\n owner: object,\n postProcess: any,\n): number {\n const registry = getCameraSelectionPostProcessSlotRegistry(camera);\n const slots = camera?._postProcesses;\n const topologyBeforeAttach = Array.isArray(slots) ? slots.slice() : null;\n const ownedSlot = registry.owners.get(owner);\n let reusableIndex: number | null = null;\n if (\n Array.isArray(slots)\n && ownedSlot != null\n && ownedSlot.postProcess === postProcess\n && ownedSlot.index != null\n && ownedSlot.index < slots.length\n && slots[ownedSlot.index] === null\n && cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)\n ) {\n reusableIndex = ownedSlot.index;\n } else if (Array.isArray(slots)) {\n if (ownedSlot) {\n ownedSlot.index = null;\n ownedSlot.vacantTopology = null;\n }\n for (const [releasedIndex, topology] of [...registry.releasedSlots.entries()]\n .sort(([left], [right]) => left - right)) {\n if (\n releasedIndex >= slots.length\n || slots[releasedIndex] !== null\n || !cameraPostProcessTopologyMatches(slots, topology)\n ) {\n registry.releasedSlots.delete(releasedIndex);\n continue;\n }\n reusableIndex = releasedIndex;\n break;\n }\n }\n\n try {\n const attachedIndex = camera.attachPostProcess?.(postProcess, reusableIndex);\n const actualIndex = Number.isInteger(attachedIndex) && attachedIndex >= 0\n ? attachedIndex\n : findCameraPostProcessIndex(camera, postProcess);\n if (actualIndex < 0) {\n throw new Error('The selection silhouette post-process was not attached to the active camera.');\n }\n registry.owners.set(owner, { index: actualIndex, postProcess, vacantTopology: null });\n registry.releasedSlots.delete(actualIndex);\n if (Array.isArray(slots)) {\n refreshProvenVacantCameraPostProcessTopologies(\n registry,\n slots,\n topologyBeforeAttach,\n owner,\n );\n }\n return actualIndex;\n } catch (cause) {\n forceDetachCameraPostProcess(camera, postProcess);\n throw cause;\n }\n}\n\nfunction forceDetachCameraPostProcess(camera: RuntimeCamera, postProcess: any): boolean {\n const slots = camera?._postProcesses;\n if (!Array.isArray(slots)) return false;\n const liveIndex = slots.indexOf(postProcess);\n if (liveIndex >= 0) slots[liveIndex] = null;\n return slots.indexOf(postProcess) < 0;\n}\n\nfunction releaseOwnedCameraPostProcessSlot(\n camera: RuntimeCamera | null,\n owner: object,\n insertIndex: number | null,\n postProcess: any,\n): void {\n const slots = camera?._postProcesses;\n if (!camera || !Array.isArray(slots)) return;\n const registry = cameraSelectionPostProcessSlots.get(camera);\n const ownedSlot = registry?.owners.get(owner);\n const liveIndex = slots.indexOf(postProcess);\n let releasedIndex: number | null = null;\n if (liveIndex >= 0) {\n slots[liveIndex] = null;\n releasedIndex = liveIndex;\n } else if (insertIndex != null && slots[insertIndex] === postProcess) {\n slots[insertIndex] = null;\n releasedIndex = insertIndex;\n } else if (\n ownedSlot?.index != null\n && ownedSlot.index < slots.length\n && slots[ownedSlot.index] === null\n && cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)\n ) {\n releasedIndex = ownedSlot.index;\n }\n registry?.owners.delete(owner);\n const topologyBeforeTrim = slots.slice();\n\n // Babylon uses null placeholders for detached passes. A released selection-owned hole may\n // be reclaimed by a successor controller; only trailing placeholders are removed here so\n // live passes never shift. Reserved inactive owners trimmed from the tail append on reattach.\n while (slots.length > 0 && slots[slots.length - 1] == null) slots.pop();\n if (!registry) return;\n refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeTrim);\n for (const slot of registry.owners.values()) {\n if (slot.index != null && slot.index >= slots.length) {\n slot.index = null;\n slot.vacantTopology = null;\n }\n }\n for (const released of [...registry.releasedSlots.keys()]) {\n if (released >= slots.length) {\n registry.releasedSlots.delete(released);\n }\n }\n if (releasedIndex != null && releasedIndex < slots.length && slots[releasedIndex] === null) {\n registry.releasedSlots.set(releasedIndex, slots.slice());\n }\n if (registry.owners.size === 0 && registry.releasedSlots.size === 0) {\n cameraSelectionPostProcessSlots.delete(camera);\n }\n}\n\nfunction safelyDisposeBackend(\n backend: BabylonEditorSelectionPresentationBackend,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): void {\n try {\n backend.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'Selection silhouette resources could not be disposed cleanly.',\n cause,\n });\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type StaticProjectedShadowArtifact, type StaticProjectedShadowArtifactOptions, type StaticProjectedShadowArtifactTextureReadyEvent, type StaticProjectedShadowOptions, type BlobShadowOptions, type PlanarShadowCasterDebugInfo, type PlanarShadowOptions } from '@fps-games/babylon-renderer';
1
+ import { createBabylonShadowMapExperimentSystem, type StaticProjectedShadowArtifact, type StaticProjectedShadowArtifactOptions, type StaticProjectedShadowArtifactTextureReadyEvent, type StaticProjectedShadowOptions, type BlobShadowOptions, type BabylonShadowMapExperimentEvidence, type PlanarShadowCasterDebugInfo, type PlanarShadowOptions } from '@fps-games/babylon-renderer';
2
2
  import type { BabylonEditorProjection } from './projection';
3
3
  import type { RuntimeScene } from './types';
4
4
  export type BabylonEditorPlanarShadowPreviewOptions = Partial<PlanarShadowOptions> & {
@@ -19,15 +19,21 @@ export interface BabylonEditorShadowPreviewOptions {
19
19
  blob?: BabylonEditorBlobShadowPreviewOptions | false | null;
20
20
  staticProjected?: BabylonEditorStaticProjectedShadowPreviewOptions | false | null;
21
21
  planar?: BabylonEditorPlanarShadowPreviewOptions | false | null;
22
+ shadowMapExperiment?: BabylonEditorShadowMapExperimentPlan | null;
22
23
  }
24
+ export type BabylonEditorShadowMapExperimentPlan = Exclude<Parameters<typeof createBabylonShadowMapExperimentSystem>[1], null | undefined>;
23
25
  export interface BabylonEditorShadowPreviewController {
24
- setOptions(options?: BabylonEditorShadowPreviewOptions | null): void;
26
+ setOptions(options?: BabylonEditorShadowPreviewOptions | null, refreshOptions?: BabylonEditorShadowPreviewRefreshOptions): void;
25
27
  invalidateStaticProjectedArtifact(): void;
28
+ getShadowMapExperimentPlan(): BabylonEditorShadowMapExperimentPlan | null;
26
29
  getDebugInfo(): BabylonEditorShadowPreviewDebugInfo;
27
- refresh(): void;
30
+ refresh(options?: BabylonEditorShadowPreviewRefreshOptions): void;
28
31
  rebuild(): void;
29
32
  dispose(): void;
30
33
  }
34
+ export interface BabylonEditorShadowPreviewRefreshOptions {
35
+ staticProjectedMetadataChanged?: boolean;
36
+ }
31
37
  export interface BabylonEditorPlanarShadowPreviewDebugInfo {
32
38
  enabled: boolean;
33
39
  casterCount: number;
@@ -38,11 +44,13 @@ export interface BabylonEditorPlanarShadowPreviewDebugInfo {
38
44
  }
39
45
  export interface BabylonEditorShadowPreviewDebugInfo {
40
46
  planar?: BabylonEditorPlanarShadowPreviewDebugInfo;
47
+ shadowMapExperiment?: BabylonShadowMapExperimentEvidence;
41
48
  }
42
49
  export interface BabylonEditorShadowPreviewControllerOptions {
43
50
  scene: RuntimeScene;
44
51
  projection: BabylonEditorProjection;
45
52
  options?: BabylonEditorShadowPreviewOptions | null;
53
+ requestSceneFrame?: (reason: string) => void;
46
54
  onStaticProjectedShadowTextureReady?: (event: StaticProjectedShadowArtifactTextureReadyEvent) => void;
47
55
  }
48
56
  export declare function createBabylonEditorShadowPreviewController(options: BabylonEditorShadowPreviewControllerOptions): BabylonEditorShadowPreviewController;
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,6BAA6B,EAElC,KAAK,oCAAoC,EACzC,KAAK,8CAA8C,EACnD,KAAK,4BAA4B,EAEjC,KAAK,iBAAiB,EAEtB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,uBAAuB,EAAqC,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gDAAgD,GAC1D,OAAO,CAAC,4BAA4B,CAAC,GACnC,OAAO,CAAC,oCAAoC,CAAC,GAC7C;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,iCAAiC;IAChD,WAAW,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,EAAE,qCAAqC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5D,eAAe,CAAC,EAAE,gDAAgD,GAAG,KAAK,GAAG,IAAI,CAAC;IAClF,MAAM,CAAC,EAAE,uCAAuC,GAAG,KAAK,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oCAAoC;IACnD,UAAU,CAAC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,GAAG,IAAI,CAAC;IACrE,iCAAiC,IAAI,IAAI,CAAC;IAC1C,YAAY,IAAI,mCAAmC,CAAC;IACpD,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,yCAAyC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,2BAA2B,GAAG;QAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,CAAC,EAAE,yCAAyC,CAAC;CACpD;AAED,MAAM,WAAW,2CAA2C;IAC1D,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACnD,mCAAmC,CAAC,EAAE,CAAC,KAAK,EAAE,8CAA8C,KAAK,IAAI,CAAC;CACvG;AAkED,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,2CAA2C,GACnD,oCAAoC,CAiStC"}
1
+ {"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createBlobShadowSystem, createPlanarShadowSystem, collectStaticProjectedShadowBakeRoots, createStaticProjectedShadowArtifactSystem, createStaticProjectedShadowBakeHashes, } from '@fps-games/babylon-renderer';
1
+ import { createBabylonShadowMapExperimentSystem, createBlobShadowSystem, createPlanarShadowSystem, collectStaticProjectedShadowBakeRoots, createStaticProjectedShadowArtifactSystem, createStaticProjectedShadowBakeHashes, } from '@fps-games/babylon-renderer';
2
2
  import { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator.js';
3
3
  const PLANAR_PREVIEW_ROOT_BOUNDARY_PATTERNS = ['root', 'scene_builder_root'];
4
4
  const SHADOW_DEBUG_STORAGE_KEY = 'fps.shadow.debug';
@@ -11,13 +11,21 @@ export function createBabylonEditorShadowPreviewController(options) {
11
11
  let dynamicGenerator = null;
12
12
  let dynamicLight = null;
13
13
  let dynamicMapSize = 0;
14
+ const shadowMapExperimentSystem = createBabylonShadowMapExperimentSystem(options.scene, null, {
15
+ requestFrame: options.requestSceneFrame,
16
+ // Product Preview and Game Runtime intentionally execute the same authored
17
+ // plan; the Editor host must not replace its fixed coverage/backend.
18
+ coverageMode: 'fixed',
19
+ });
14
20
  let disposed = false;
21
+ let staticProjectedArtifactNeedsSceneRevalidation = false;
15
22
  let meshAddedObserver = null;
16
23
  let routeSyncFrame = null;
17
24
  let routeSyncQueued = false;
18
25
  const blobCasters = new Set();
19
26
  const planarCasters = new Set();
20
27
  const dynamicCasters = new Set();
28
+ const dynamicReceiverMeshes = new Set();
21
29
  const disposeBlob = () => {
22
30
  blobSystem?.dispose();
23
31
  blobSystem = null;
@@ -39,9 +47,24 @@ export function createBabylonEditorShadowPreviewController(options) {
39
47
  dynamicLight = null;
40
48
  dynamicMapSize = 0;
41
49
  dynamicCasters.clear();
42
- for (const mesh of readSceneMeshes(options.scene)) {
50
+ for (const mesh of dynamicReceiverMeshes) {
43
51
  setPreviewMeshReceiveShadows(mesh, false);
44
52
  }
53
+ dynamicReceiverMeshes.clear();
54
+ };
55
+ const syncDynamicReceivers = (next) => {
56
+ for (const mesh of [...dynamicReceiverMeshes]) {
57
+ if (dynamicGenerator && next.has(mesh))
58
+ continue;
59
+ setPreviewMeshReceiveShadows(mesh, false);
60
+ dynamicReceiverMeshes.delete(mesh);
61
+ }
62
+ if (!dynamicGenerator)
63
+ return;
64
+ for (const mesh of next) {
65
+ setPreviewMeshReceiveShadows(mesh, true);
66
+ dynamicReceiverMeshes.add(mesh);
67
+ }
45
68
  };
46
69
  const syncBlob = () => {
47
70
  const blobOptions = currentOptions.blob;
@@ -84,18 +107,51 @@ export function createBabylonEditorShadowPreviewController(options) {
84
107
  disposeStatic();
85
108
  return;
86
109
  }
87
- const expectedHashes = createStaticExpectedHashes(options.scene, options.projection, staticOptions);
110
+ let validationOptions = staticOptions;
111
+ if (staticProjectedArtifactNeedsSceneRevalidation) {
112
+ if (!canValidateStaticExpectedHashes(options.projection)) {
113
+ disposeStatic();
114
+ return;
115
+ }
116
+ validationOptions = {
117
+ ...staticOptions,
118
+ expectedHashes: null,
119
+ };
120
+ }
121
+ const expectedHashes = createStaticExpectedHashes(options.scene, options.projection, validationOptions);
122
+ if (staticProjectedArtifactNeedsSceneRevalidation && !expectedHashes) {
123
+ disposeStatic();
124
+ return;
125
+ }
88
126
  if (!staticSystem) {
89
- staticSystem = createStaticProjectedShadowArtifactSystem(options.scene, staticOptions.artifact, toStaticArtifactOptions(staticOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
127
+ staticSystem = createStaticProjectedShadowArtifactSystem(options.scene, staticOptions.artifact, toStaticArtifactOptions(validationOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
90
128
  staticSystem.initialize();
129
+ if (staticProjectedArtifactNeedsSceneRevalidation
130
+ && staticSystem.getDiagnostics().status === 'loaded') {
131
+ staticProjectedArtifactNeedsSceneRevalidation = false;
132
+ }
91
133
  return;
92
134
  }
93
- staticSystem.setOptions(toStaticArtifactOptions(staticOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
135
+ staticSystem.setOptions(toStaticArtifactOptions(validationOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
94
136
  staticSystem.setArtifact(staticOptions.artifact);
137
+ if (staticProjectedArtifactNeedsSceneRevalidation
138
+ && staticSystem.getDiagnostics().status === 'loaded') {
139
+ staticProjectedArtifactNeedsSceneRevalidation = false;
140
+ }
95
141
  };
96
142
  const syncRoutes = () => {
97
143
  if (disposed)
98
144
  return;
145
+ if (currentOptions.shadowMapExperiment?.enabled === true) {
146
+ disposeBlob();
147
+ disposeStatic();
148
+ disposePlanar();
149
+ disposeDynamic();
150
+ syncShadowMapExperiment();
151
+ return;
152
+ }
153
+ if (!syncShadowMapExperiment())
154
+ return;
99
155
  syncBlob();
100
156
  syncStatic();
101
157
  syncPlanar();
@@ -127,21 +183,32 @@ export function createBabylonEditorShadowPreviewController(options) {
127
183
  dynamicCasters: [...nextDynamicCasters].map(readShadowPreviewMeshDebugName),
128
184
  dynamicReceivers: [...nextDynamicReceivers].map(readShadowPreviewMeshDebugName),
129
185
  });
186
+ if (planarSystem && hasRemovedShadowCaster(planarCasters, nextPlanarCasters)) {
187
+ disposePlanar();
188
+ syncPlanar();
189
+ }
130
190
  syncDynamic(nextDynamicReceivers, [...nextDynamicCasters]);
131
191
  syncDynamicShadowCasters(blobSystem, blobCasters, nextBlobCasters);
132
192
  syncDynamicShadowCasters(planarSystem, planarCasters, nextPlanarCasters);
133
193
  syncBabylonDynamicShadowCasters(dynamicGenerator, dynamicCasters, nextDynamicCasters);
134
- for (const mesh of meshes) {
135
- setPreviewMeshReceiveShadows(mesh, false);
136
- }
137
- if (dynamicGenerator) {
138
- for (const mesh of nextDynamicReceivers) {
139
- setPreviewMeshReceiveShadows(mesh, true);
140
- }
141
- }
194
+ syncDynamicReceivers(nextDynamicReceivers);
142
195
  blobSystem?.refresh();
143
196
  planarSystem?.refresh();
144
197
  };
198
+ const syncShadowMapExperiment = () => {
199
+ try {
200
+ shadowMapExperimentSystem.setPlan(currentOptions.shadowMapExperiment ?? null);
201
+ return true;
202
+ }
203
+ catch (error) {
204
+ // Directional lights are projected asynchronously. A later projection
205
+ // batch refresh retries the exact same plan once the light exists.
206
+ logShadowDebug('preview.shadow-map-experiment.pending', {
207
+ message: error instanceof Error ? error.message : String(error),
208
+ });
209
+ return false;
210
+ }
211
+ };
145
212
  const cancelScheduledRouteSync = () => {
146
213
  if (routeSyncFrame !== null && typeof globalThis.cancelAnimationFrame === 'function') {
147
214
  globalThis.cancelAnimationFrame(routeSyncFrame);
@@ -210,7 +277,10 @@ export function createBabylonEditorShadowPreviewController(options) {
210
277
  };
211
278
  syncRoutes();
212
279
  return {
213
- setOptions(nextOptions) {
280
+ setOptions(nextOptions, refreshOptions) {
281
+ if (refreshOptions?.staticProjectedMetadataChanged) {
282
+ staticProjectedArtifactNeedsSceneRevalidation = true;
283
+ }
214
284
  currentOptions = normalizeShadowPreviewOptions(nextOptions);
215
285
  syncRoutes();
216
286
  },
@@ -228,6 +298,9 @@ export function createBabylonEditorShadowPreviewController(options) {
228
298
  }
229
299
  disposeStatic();
230
300
  },
301
+ getShadowMapExperimentPlan() {
302
+ return shadowMapExperimentSystem.getPlan();
303
+ },
231
304
  getDebugInfo() {
232
305
  return {
233
306
  planar: {
@@ -238,10 +311,18 @@ export function createBabylonEditorShadowPreviewController(options) {
238
311
  ...readPlanarShadowSourceNodeInfo(info, options.scene),
239
312
  })),
240
313
  },
314
+ shadowMapExperiment: shadowMapExperimentSystem.getEvidence(),
241
315
  };
242
316
  },
243
- refresh() {
317
+ refresh(refreshOptions) {
318
+ if (refreshOptions?.staticProjectedMetadataChanged) {
319
+ staticProjectedArtifactNeedsSceneRevalidation = true;
320
+ }
244
321
  syncRoutes();
322
+ if (currentOptions.shadowMapExperiment?.enabled === true) {
323
+ shadowMapExperimentSystem.markDirty('static-depth-invalidated');
324
+ shadowMapExperimentSystem.markDirty('dynamic-depth-invalidated');
325
+ }
245
326
  },
246
327
  rebuild() {
247
328
  disposeBlob();
@@ -261,6 +342,7 @@ export function createBabylonEditorShadowPreviewController(options) {
261
342
  disposeStatic();
262
343
  disposePlanar();
263
344
  disposeDynamic();
345
+ shadowMapExperimentSystem.dispose();
264
346
  },
265
347
  };
266
348
  }
@@ -270,6 +352,7 @@ function normalizeShadowPreviewOptions(options) {
270
352
  blob: options?.blob ?? null,
271
353
  staticProjected: options?.staticProjected ?? null,
272
354
  planar: options?.planar ?? null,
355
+ shadowMapExperiment: options?.shadowMapExperiment ?? null,
273
356
  };
274
357
  }
275
358
  function disableBlobAutoDetection(options) {
@@ -341,6 +424,13 @@ function canValidateStaticExpectedHashes(projection) {
341
424
  return false;
342
425
  }
343
426
  }
427
+ function hasRemovedShadowCaster(current, next) {
428
+ for (const mesh of current) {
429
+ if (!next.has(mesh))
430
+ return true;
431
+ }
432
+ return false;
433
+ }
344
434
  function syncDynamicShadowCasters(system, current, next) {
345
435
  for (const mesh of [...current]) {
346
436
  if (!next.has(mesh)) {