@needle-tools/engine 5.1.0-next.1780579670.dramatic-pierogi.b8fa941 → 5.1.0

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 (122) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/components.needle.json +1 -1
  3. package/dist/gltf-progressive-BGQ-cjly.umd.cjs +10 -0
  4. package/dist/gltf-progressive-BvQHrERj.min.js +10 -0
  5. package/dist/{gltf-progressive-CH7aqHHr.js → gltf-progressive-CtYnVfLc.js} +420 -351
  6. package/dist/{materialx-B85WjP7E.min.js → materialx-B5gKeM65.min.js} +1 -1
  7. package/dist/{materialx-B47Bz-xs.umd.cjs → materialx-CFRcCYWy.umd.cjs} +1 -1
  8. package/dist/{materialx-jkHmVPez.js → materialx-DqGmteNO.js} +1 -1
  9. package/dist/{needle-engine.bundle-WQeWxmZD.js → needle-engine.bundle-5oIL49YP.js} +6826 -6685
  10. package/dist/{needle-engine.bundle-BSPk6RkD.min.js → needle-engine.bundle-DAAfj8Cs.min.js} +161 -149
  11. package/dist/{needle-engine.bundle-DCPHDPAd.umd.cjs → needle-engine.bundle-DvOrfXws.umd.cjs} +159 -147
  12. package/dist/needle-engine.d.ts +106 -44
  13. package/dist/needle-engine.js +610 -608
  14. package/dist/needle-engine.min.js +1 -1
  15. package/dist/needle-engine.umd.cjs +1 -1
  16. package/dist/three.js +3 -0
  17. package/dist/three.min.js +22 -22
  18. package/dist/three.umd.cjs +24 -24
  19. package/dist/{vendor-BQ2Vuntm.min.js → vendor-2--bD1c9.min.js} +19 -19
  20. package/dist/{vendor-BslSKZPo.js → vendor-BNtcIZkv.js} +1141 -1138
  21. package/dist/{vendor-1UvpPPSB.umd.cjs → vendor-vbe9sv1t.umd.cjs} +20 -20
  22. package/lib/engine/api.d.ts +1 -1
  23. package/lib/engine/api.js +1 -1
  24. package/lib/engine/api.js.map +1 -1
  25. package/lib/engine/engine_context.js +16 -3
  26. package/lib/engine/engine_context.js.map +1 -1
  27. package/lib/engine/engine_init.js +2 -2
  28. package/lib/engine/engine_init.js.map +1 -1
  29. package/lib/engine/engine_license.d.ts +7 -7
  30. package/lib/engine/engine_license.js +72 -72
  31. package/lib/engine/engine_license.js.map +1 -1
  32. package/lib/engine/engine_networking_blob.js +3 -3
  33. package/lib/engine/engine_networking_blob.js.map +1 -1
  34. package/lib/engine/engine_utils_qrcode.js +2 -2
  35. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  36. package/lib/engine/postprocessing/postprocessing.d.ts +2 -1
  37. package/lib/engine/postprocessing/postprocessing.js +3 -2
  38. package/lib/engine/postprocessing/postprocessing.js.map +1 -1
  39. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  40. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +2 -2
  41. package/lib/engine/webcomponents/needle menu/needle-menu.js +9 -9
  42. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  43. package/lib/engine/webcomponents/needle-engine.js +2 -2
  44. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  45. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  46. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  47. package/lib/engine/xr/NeedleXRSession.d.ts +24 -0
  48. package/lib/engine/xr/NeedleXRSession.js +52 -7
  49. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  50. package/lib/engine/xr/TempXRContext.js +2 -2
  51. package/lib/engine/xr/TempXRContext.js.map +1 -1
  52. package/lib/engine/xr/init.js +2 -3
  53. package/lib/engine/xr/init.js.map +1 -1
  54. package/lib/engine-components/Component.js +14 -1
  55. package/lib/engine-components/Component.js.map +1 -1
  56. package/lib/engine-components/ContactShadows.d.ts +7 -2
  57. package/lib/engine-components/ContactShadows.js +65 -45
  58. package/lib/engine-components/ContactShadows.js.map +1 -1
  59. package/lib/engine-components/GroundProjection.d.ts +6 -0
  60. package/lib/engine-components/GroundProjection.js +69 -7
  61. package/lib/engine-components/GroundProjection.js.map +1 -1
  62. package/lib/engine-components/NeedleMenu.d.ts +1 -1
  63. package/lib/engine-components/NeedleMenu.js +5 -2
  64. package/lib/engine-components/NeedleMenu.js.map +1 -1
  65. package/lib/engine-components/SceneSwitcher.d.ts +2 -0
  66. package/lib/engine-components/SceneSwitcher.js +26 -14
  67. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  68. package/lib/engine-components/SeeThrough.d.ts +39 -0
  69. package/lib/engine-components/SeeThrough.js +69 -1
  70. package/lib/engine-components/SeeThrough.js.map +1 -1
  71. package/lib/engine-components/Skybox.js +9 -0
  72. package/lib/engine-components/Skybox.js.map +1 -1
  73. package/lib/engine-components/api.d.ts +1 -0
  74. package/lib/engine-components/api.js +1 -0
  75. package/lib/engine-components/api.js.map +1 -1
  76. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  77. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  78. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +9 -5
  79. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  80. package/lib/engine-components/particlesystem/ParticleSystem.js +4 -0
  81. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  82. package/lib/engine-components/postprocessing/Volume.d.ts +1 -9
  83. package/lib/engine-components/postprocessing/Volume.js +2 -14
  84. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  85. package/lib/engine-components/webxr/WebXRImageTracking.js +3 -0
  86. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  87. package/package.json +4 -4
  88. package/plugins/common/license.js +4 -4
  89. package/plugins/types/userconfig.d.ts +10 -0
  90. package/plugins/vite/build-pipeline.d.ts +19 -0
  91. package/plugins/vite/build-pipeline.js +67 -5
  92. package/plugins/vite/license.js +4 -4
  93. package/src/engine/api.ts +1 -1
  94. package/src/engine/engine_context.ts +15 -2
  95. package/src/engine/engine_gameobject.ts +1 -1
  96. package/src/engine/engine_init.ts +2 -2
  97. package/src/engine/engine_license.ts +69 -69
  98. package/src/engine/engine_networking_blob.ts +3 -3
  99. package/src/engine/engine_utils_qrcode.ts +2 -2
  100. package/src/engine/postprocessing/postprocessing.ts +3 -2
  101. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  102. package/src/engine/webcomponents/needle menu/needle-menu.ts +10 -10
  103. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  104. package/src/engine/webcomponents/needle-engine.ts +2 -2
  105. package/src/engine/xr/NeedleXRSession.ts +53 -7
  106. package/src/engine/xr/TempXRContext.ts +2 -2
  107. package/src/engine/xr/init.ts +2 -3
  108. package/src/engine-components/Component.ts +13 -1
  109. package/src/engine-components/ContactShadows.ts +75 -49
  110. package/src/engine-components/GroundProjection.ts +71 -7
  111. package/src/engine-components/NeedleMenu.ts +6 -3
  112. package/src/engine-components/SceneSwitcher.ts +23 -13
  113. package/src/engine-components/SeeThrough.ts +75 -1
  114. package/src/engine-components/Skybox.ts +8 -0
  115. package/src/engine-components/api.ts +1 -0
  116. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  117. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +12 -5
  118. package/src/engine-components/particlesystem/ParticleSystem.ts +4 -0
  119. package/src/engine-components/postprocessing/Volume.ts +2 -13
  120. package/src/engine-components/webxr/WebXRImageTracking.ts +1 -0
  121. package/dist/gltf-progressive-9tlS5iCx.umd.cjs +0 -10
  122. package/dist/gltf-progressive-CVg80COO.min.js +0 -10
@@ -72,7 +72,7 @@ onStart(ctx => {
72
72
  * @link https://engine.needle.tools/samples/contact-shadows for a demo of contact shadows
73
73
  */
74
74
  export class ContactShadows extends Behaviour {
75
- static _instances = new Map();
75
+ static _instances = new WeakMap();
76
76
  /**
77
77
  * Create contact shadows for the scene. Automatically fits the shadows to the scene.
78
78
  * The instance of contact shadows will be created only once.
@@ -158,8 +158,8 @@ export class ContactShadows extends Behaviour {
158
158
  * in which case ContactShadows scale would affect the projection
159
159
  **/
160
160
  shadowsRoot = new Object3D();
161
- shadowCamera;
162
161
  shadowGroup = new Group();
162
+ shadowCamera;
163
163
  renderTarget;
164
164
  renderTargetBlur;
165
165
  plane;
@@ -222,15 +222,75 @@ export class ContactShadows extends Behaviour {
222
222
  if (debug)
223
223
  console.log("Fitted shadows to scene", this.shadowsRoot.scale.clone());
224
224
  }
225
+ /**
226
+ * Call to update the shadows immediately. Only needed if `manualUpdate` is enabled, usually the shadows will update automatically when the scene changes or when the component is enabled.
227
+ */
228
+ renderShadowsNow() {
229
+ this._renderShadows();
230
+ }
225
231
  /** @internal */
226
232
  awake() {
227
233
  ContactShadows._instances.set(this.context, this);
234
+ }
235
+ /** @internal */
236
+ onEnable() {
228
237
  this.shadowsRoot.hideFlags = HideFlags.DontExport;
229
238
  // ignore self for autofitting
230
239
  setAutoFitEnabled(this.shadowsRoot, false);
240
+ this._needsUpdate = true;
241
+ this.autoCleanup(this.context.events.on("scene-content-changed", () => {
242
+ if (!this.autoFit)
243
+ return;
244
+ this._needsFit = true;
245
+ this._needsUpdate = true;
246
+ }));
247
+ if (this.autoFit)
248
+ this.fitShadows();
249
+ else
250
+ this.applyMinSize();
231
251
  }
232
252
  /** @internal */
233
- start() {
253
+ onDestroy() {
254
+ if (debug)
255
+ console.warn("Destroying ContactShadows on " + this.gameObject.name);
256
+ const instance = ContactShadows._instances.get(this.context);
257
+ if (instance === this) {
258
+ ContactShadows._instances.delete(this.context);
259
+ }
260
+ // dispose the render targets
261
+ this.renderTarget?.dispose();
262
+ this.renderTargetBlur?.dispose();
263
+ // dispose the materials
264
+ this.depthMaterial?.dispose();
265
+ this.horizontalBlurMaterial?.dispose();
266
+ this.verticalBlurMaterial?.dispose();
267
+ // dispose the geometries
268
+ this.blurPlane?.geometry.dispose();
269
+ this.plane?.geometry.dispose();
270
+ this.occluderMesh?.geometry.dispose();
271
+ }
272
+ /** @internal */
273
+ onBeforeRender(_frame) {
274
+ if (this._needsFit && this.autoFit) {
275
+ this._needsFit = false;
276
+ this.fitShadows();
277
+ }
278
+ if (this.manualUpdate) {
279
+ if (!this._needsUpdate)
280
+ return;
281
+ }
282
+ this._needsUpdate = false;
283
+ this._renderShadows();
284
+ }
285
+ _ensureSetup() {
286
+ // Make sure the shadows root is parented to the game object. This is needed for the shadows to be in the correct position and scale relative to the game object. We need to do this before checking if the materials are set up because some properties (e.g. darkness) can be changed in the editor before the component is enabled, so we want to avoid re-creating everything in that case.
287
+ if (this.shadowsRoot.parent !== this.gameObject) {
288
+ this.gameObject.add(this.shadowsRoot);
289
+ }
290
+ // Check if everything is already set up. We need to do this because some properties (e.g. darkness) can be changed in the editor before the component is enabled, so we want to avoid re-creating everything in that case.
291
+ if (this.depthMaterial && this.horizontalBlurMaterial && this.verticalBlurMaterial && this.planeMaterial) {
292
+ return;
293
+ }
234
294
  if (debug)
235
295
  console.log("Create ContactShadows on " + this.gameObject.name, this);
236
296
  this.gameObject.add(this.shadowsRoot);
@@ -326,49 +386,9 @@ export class ContactShadows extends Behaviour {
326
386
  this.verticalBlurMaterial = new ShaderMaterial(VerticalBlurShader);
327
387
  this.verticalBlurMaterial.depthTest = false;
328
388
  this.shadowGroup.visible = false;
329
- if (this.autoFit)
330
- this.fitShadows();
331
- else
332
- this.applyMinSize();
333
- }
334
- onEnable() {
335
- this._needsUpdate = true;
336
- this.autoCleanup(this.context.events.on("scene-content-changed", () => {
337
- if (!this.autoFit)
338
- return;
339
- this._needsFit = true;
340
- this._needsUpdate = true;
341
- }));
342
389
  }
343
- /** @internal */
344
- onDestroy() {
345
- const instance = ContactShadows._instances.get(this.context);
346
- if (instance === this) {
347
- ContactShadows._instances.delete(this.context);
348
- }
349
- // dispose the render targets
350
- this.renderTarget?.dispose();
351
- this.renderTargetBlur?.dispose();
352
- // dispose the materials
353
- this.depthMaterial?.dispose();
354
- this.horizontalBlurMaterial?.dispose();
355
- this.verticalBlurMaterial?.dispose();
356
- // dispose the geometries
357
- this.blurPlane?.geometry.dispose();
358
- this.plane?.geometry.dispose();
359
- this.occluderMesh?.geometry.dispose();
360
- }
361
- /** @internal */
362
- onBeforeRender(_frame) {
363
- if (this._needsFit && this.autoFit) {
364
- this._needsFit = false;
365
- this.fitShadows();
366
- }
367
- if (this.manualUpdate) {
368
- if (!this._needsUpdate)
369
- return;
370
- }
371
- this._needsUpdate = false;
390
+ _renderShadows() {
391
+ this._ensureSetup();
372
392
  if (!this.renderTarget || !this.renderTargetBlur ||
373
393
  !this.depthMaterial || !this.shadowCamera ||
374
394
  !this.blurPlane || !this.shadowGroup || !this.plane ||
@@ -1 +1 @@
1
- {"version":3,"file":"ContactShadows.js","sourceRoot":"","sources":["../../src/engine-components/ContactShadows.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAqB,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,EAAqC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAc,cAAc,EAAE,OAAO,EAAe,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAChT,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,SAAS,EAAqB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAKvD,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAE9C,OAAO,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC5G,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;YAC5B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;AACL,CAAC,CAAC,CAAC;AASH,kGAAkG;AAElG,gBAAgB;AAChB,oBAAoB;AACpB,wDAAwD;AACxD,gEAAgE;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAEjC,MAAM,CAAU,UAAU,GAAiC,IAAI,GAAG,EAAE,CAAC;IAC7E;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,OAAiB,EAAE,MAAsB;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;YAC5B,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE;gBACzC,OAAO,EAAE,IAAI;gBACb,kBAAkB,EAAE,KAAK;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH,OAAO,GAAY,KAAK,CAAC;IACzB;;;OAGG;IAEH,QAAQ,GAAW,GAAG,CAAC;IACvB;;;OAGG;IAEH,OAAO,GAAW,GAAG,CAAC;IACtB;;;OAGG;IAEH,IAAI,GAAW,GAAG,CAAC;IACnB;;;OAGG;IAEH,kBAAkB,GAAY,KAAK,CAAC;IACpC;;;OAGG;IAEH,eAAe,GAAY,IAAI,CAAC;IAEhC;;;OAGG;IACH,OAAO,CAAiB;IAExB;;;;OAIG;IACH,YAAY,GAAY,KAAK,CAAC;IAC9B;;OAEG;IACH,IAAI,WAAW,CAAC,GAAY;QACxB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACO,YAAY,GAAY,KAAK,CAAC;IAC9B,SAAS,GAAY,KAAK,CAAC;IAEnC,0FAA0F;IAC1F,6EAA6E;IAE7E;;;QAGI;IACa,WAAW,GAAgB,IAAI,QAAQ,EAAiB,CAAC;IAClE,YAAY,CAAsB;IACzB,WAAW,GAAU,IAAI,KAAK,EAAE,CAAC;IAE1C,YAAY,CAAqB;IACjC,gBAAgB,CAAqB;IAErC,KAAK,CAAQ;IACb,YAAY,CAAQ;IACpB,SAAS,CAAQ;IAEjB,aAAa,CAAqB;IAClC,aAAa,CAAqB;IAClC,sBAAsB,CAAkB;IACxC,oBAAoB,CAAkB;IAEtC,WAAW,GAAG,GAAG,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,SAAwB,EAAE;QACjC,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACpD,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,qDAAqD;QACrD,wCAAwC;QACxC,sHAAsH;QACtH,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,KAAK,EAAE,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,mDAAmD;YACnD,GAAG,CAAC,YAAY,CAAE,IAAI,CAAC,UAAU,CAAC,MAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC;QACpB,gEAAgE;QAChE,gFAAgF;QAChF,+FAA+F;QAC/F,wIAAwI;QACxI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAClG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAClG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACzF,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACzF,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAC/C,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC;IAGD,gBAAgB;IAChB,KAAK;QACD,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;QAElD,8BAA8B;QAC9B,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAGD,gBAAgB;IAChB,KAAK;QACD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEhF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,oEAAoE;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAElD,qEAAqE;QACrE,IAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAEtD,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,UAAU,YAAY,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;YACvG,wBAAwB;YACxB,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC5C,+CAA+C;YAC/C,6FAA6F;YAC7F,wFAAwF;YACxF,uCAAuC;YACvC,8BAA8B;YAC9B,0BAA0B;YAC1B,0BAA0B;YAC1B,0BAA0B;YAC1B,qFAAqF;YACrF,0CAA0C;YAC1C,0BAA0B;YAC1B,0BAA0B;QAC9B,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAiB,CAAC;YAC7D,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAE3C,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,iBAAiB,CAAC;YACpE,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;YACC,oBAAoB;aACnB,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAExC,2CAA2C;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,sDAAsD;QACtD,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,4BAA4B;QACxE,0EAA0E;QAC1E,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,0DAA0D;QAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAEjC,6DAA6D;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChE,gDAAgD;QAChD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,WAAW,CAAC;QAE/C,kDAAkD;QAClD,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChE,MAAM,CAAC,cAAc,GAAG,UAAU,CAAA;;kBAE5B,MAAM,CAAC,cAAc,CAAC,OAAO,CAC/B,2DAA2D;YAC3D,gFAAgF;YAChF,gHAAgH,CACnH;aACA,CAAC;QACN,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;QAEtC,IAAI,CAAC,sBAAsB,GAAG,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACvE,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,KAAK,CAAC;QAE9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,KAAK,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAEjC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,gBAAgB;IAChB,SAAS;QACL,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAEjC,wBAAwB;QACxB,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,sBAAsB,EAAE,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAErC,yBAAyB;QACzB,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,cAAc,CAAC,MAAsB;QAEjC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;QACnC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY;YACzC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK;YACnD,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACpF,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAG1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAEvD,wFAAwF;QACxF;;;UAGE;QAEF,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,YAAY,IAAI,EAAE,CAAC;YAClC,mCAAmC;YACnC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,wBAAwB;QACxB,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC;QAC3C,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QAExB,wCAAwC;QACxC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAI,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;aACpC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QACnD,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;QACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QAE5B,MAAM,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAEjD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAEhC,yEAAyE;QACzE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,SAAS;YACpC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAgC,CAAC;YACnD,yCAAyC;YACzC,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,iCAAiC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;YACrI,0CAA0C;YAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC3C,IAAI,GAAG,IAAI,CAAC;YAChB,yBAAyB;YACzB,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAC7C,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,EAAE,CAAC;gBACP,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBACtD,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,CAAC;QACL,CAAC;QAED,wFAAwF;QACxF,sDAAsD;QACtD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;QAElF,gDAAgD;QAChD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QAEnC,kCAAkC;QAClC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,gDAAgD;QAEhD,kCAAkC;QAClC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,wCAAwC;QACxC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC;QAErC,oCAAoC;QACpC,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC9C,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC1C,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACrC,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,yBAAyB,CAAC;IACzE,CAAC;IAED,iHAAiH;IACzG,UAAU,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY;YACrC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAC1D,OAAO;QAEX,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAE9B,iDAAiD;QACjD,8FAA8F;QAC9F,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACvC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QAE3B,qDAAqD;QACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,QAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAChG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAEvF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEvC,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7C,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnD,oDAAoD;QACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,QAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACpG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAErF,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAE/B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CAAC;QACN,CAAC;IACL,CAAC;;AAvdD;IADC,YAAY,EAAE;+CACU;AAMzB;IADC,YAAY,EAAE;gDACQ;AAMvB;IADC,YAAY,EAAE;+CACO;AAMtB;IADC,YAAY,EAAE;4CACI;AAMnB;IADC,YAAY,EAAE;0DACqB;AAMpC;IADC,YAAY,EAAE;uDACiB;AA4bpC,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,cAAc,GAAG,IAAI,KAAK,EAAY,CAAC"}
1
+ {"version":3,"file":"ContactShadows.js","sourceRoot":"","sources":["../../src/engine-components/ContactShadows.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,12 @@ export declare class GroundProjectedEnv extends Behaviour {
69
69
  private _lastHeight?;
70
70
  private _projection?;
71
71
  private _watcher?;
72
+ /** The scene's real backgroundBlurriness, stored while we temporarily override it for the render. */
73
+ private _savedBackgroundBlur;
74
+ /** pre_render_callback: force the skybox blur just before the render (after all component onBeforeRender). */
75
+ private readonly _forceBackgroundBlur;
76
+ /** post_render_callback: restore the scene's real blur right after the render. */
77
+ private readonly _restoreBackgroundBlur;
72
78
  /** @internal */
73
79
  awake(): void;
74
80
  /** @internal */
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { CubeUVReflectionMapping, ShaderMaterial, Texture } from "three";
7
+ import { CubeUVReflectionMapping, Euler, Matrix3, Matrix4, ShaderMaterial, Texture } from "three";
8
8
  import { GroundedSkybox as GroundProjection } from 'three/examples/jsm/objects/GroundedSkybox.js';
9
9
  import { Gizmos } from "../engine/engine_gizmos.js";
10
10
  import { serializable } from "../engine/engine_serialization_decorator.js";
@@ -12,6 +12,9 @@ import { getBoundingBox, getTempVector, getWorldScale, Graphics, setVisibleInCus
12
12
  import { delayForFrames, getParam, Watch as Watch } from "../engine/engine_utils.js";
13
13
  import { Behaviour } from "./Component.js";
14
14
  const debug = getParam("debuggroundprojection");
15
+ // Reused per-frame to build the background-rotation matrix without allocating in onBeforeRender.
16
+ const _backgroundRotationEuler = new Euler();
17
+ const _backgroundRotationMatrix = new Matrix4();
15
18
  const needleCubeUvMapVarying = /* glsl */ `
16
19
  #ifdef NEEDLE_USE_CUBE_UV_MAP
17
20
  varying vec3 vNeedleGroundProjectionWorldDirection;
@@ -66,7 +69,10 @@ const needleCubeUvMapFragment = /* glsl */ `
66
69
 
67
70
  #endif
68
71
 
69
- sampledDiffuseColor.rgb *= mix(1.0, needleGroundProjectionBackgroundIntensity, needleGroundProjectionBlurFactorValue);
72
+ // Apply backgroundIntensity uniformly across the whole projection (center included), matching how the
73
+ // skybox applies it (backgroundCube.glsl: texColor.rgb *= backgroundIntensity). Only the blurriness
74
+ // ramps toward the horizon - the intensity must not.
75
+ sampledDiffuseColor.rgb *= needleGroundProjectionBackgroundIntensity;
70
76
  diffuseColor *= sampledDiffuseColor;
71
77
 
72
78
  #endif
@@ -103,7 +109,8 @@ function getGroundProjectionShaderUniforms(material) {
103
109
  needleGroundProjectionBlurriness: { value: 0 },
104
110
  needleGroundProjectionBlending: { value: 0 },
105
111
  needleGroundProjectionAlphaFactor: { value: 1 },
106
- needleGroundProjectionBackgroundIntensity: { value: 1 }
112
+ needleGroundProjectionBackgroundIntensity: { value: 1 },
113
+ needleGroundProjectionBackgroundRotation: { value: new Matrix3() }
107
114
  };
108
115
  }
109
116
  function configureGroundProjectionMaterial(material, texture) {
@@ -113,12 +120,22 @@ function configureGroundProjectionMaterial(material, texture) {
113
120
  shader.uniforms.needleGroundProjectionBlending = projectionUniforms.needleGroundProjectionBlending;
114
121
  shader.uniforms.needleGroundProjectionAlphaFactor = projectionUniforms.needleGroundProjectionAlphaFactor;
115
122
  shader.uniforms.needleGroundProjectionBackgroundIntensity = projectionUniforms.needleGroundProjectionBackgroundIntensity;
123
+ shader.uniforms.needleGroundProjectionBackgroundRotation = projectionUniforms.needleGroundProjectionBackgroundRotation;
116
124
  shader.vertexShader = shader.vertexShader
117
- .replace("#include <uv_pars_vertex>", `#include <uv_pars_vertex>\n${needleCubeUvMapVarying}`)
125
+ .replace("#include <uv_pars_vertex>", `#include <uv_pars_vertex>\n${needleCubeUvMapVarying}
126
+ #ifdef NEEDLE_USE_CUBE_UV_MAP
127
+ uniform mat3 needleGroundProjectionBackgroundRotation;
128
+ #endif`)
118
129
  .replace("#include <worldpos_vertex>", `#include <worldpos_vertex>
119
130
  #ifdef NEEDLE_USE_CUBE_UV_MAP
120
- // GroundedSkybox mirrors geometry on Z, so undo that before deriving the sampling direction.
121
- vNeedleGroundProjectionWorldDirection = transformDirection( vec3( position.x, position.y, -position.z ), modelMatrix );
131
+ // Sample the environment in the fragment's actual world direction. GroundedSkybox mirrors the geometry
132
+ // on Z (geometry.scale(1,1,-1)) and that mirrored vertex IS the on-screen direction; the skybox and
133
+ // environment lighting are likewise sampled in true world directions. So we must NOT undo the mirror
134
+ // here - doing so reflects the sampling azimuth and flips the panorama left-right vs. the skybox.
135
+ // backgroundRotation is applied to the sampling direction (exactly like the skybox does in
136
+ // backgroundCube.glsl), NOT by rotating the mesh - that keeps the floor flat and matches the skybox at
137
+ // the horizon for any background rotation.
138
+ vNeedleGroundProjectionWorldDirection = needleGroundProjectionBackgroundRotation * transformDirection( position, modelMatrix );
122
139
  #endif`);
123
140
  shader.fragmentShader = shader.fragmentShader
124
141
  .replace("#include <map_pars_fragment>", `#include <map_pars_fragment>
@@ -229,6 +246,25 @@ export class GroundProjectedEnv extends Behaviour {
229
246
  _lastHeight;
230
247
  _projection;
231
248
  _watcher;
249
+ /** The scene's real backgroundBlurriness, stored while we temporarily override it for the render. */
250
+ _savedBackgroundBlur = null;
251
+ /** pre_render_callback: force the skybox blur just before the render (after all component onBeforeRender). */
252
+ _forceBackgroundBlur = (_frame) => {
253
+ if (this._savedBackgroundBlur !== null)
254
+ return; // already overriding (safety)
255
+ if (!(this.scene.background instanceof Texture))
256
+ return; // no skybox to blur
257
+ const current = this.scene.backgroundBlurriness ?? 0;
258
+ this._savedBackgroundBlur = current;
259
+ this.scene.backgroundBlurriness = 1;
260
+ };
261
+ /** post_render_callback: restore the scene's real blur right after the render. */
262
+ _restoreBackgroundBlur = () => {
263
+ if (this._savedBackgroundBlur === null)
264
+ return;
265
+ this.scene.backgroundBlurriness = this._savedBackgroundBlur;
266
+ this._savedBackgroundBlur = null;
267
+ };
232
268
  /** @internal */
233
269
  awake() {
234
270
  if (this.applyOnAwake)
@@ -249,11 +285,25 @@ export class GroundProjectedEnv extends Behaviour {
249
285
  this._needsTextureUpdate = true;
250
286
  });
251
287
  }
288
+ // Force the skybox blur via the render-bracketing callbacks (these run after every component's
289
+ // onBeforeRender, so the override can't be clobbered by e.g. Camera.applyClearFlags).
290
+ if (this.context.pre_render_callbacks.indexOf(this._forceBackgroundBlur) < 0)
291
+ this.context.pre_render_callbacks.push(this._forceBackgroundBlur);
292
+ if (this.context.post_render_callbacks.indexOf(this._restoreBackgroundBlur) < 0)
293
+ this.context.post_render_callbacks.push(this._restoreBackgroundBlur);
252
294
  }
253
295
  /** @internal */
254
296
  onDisable() {
255
297
  this._watcher?.revoke();
256
298
  this._projection?.removeFromParent();
299
+ const pre = this.context.pre_render_callbacks.indexOf(this._forceBackgroundBlur);
300
+ if (pre >= 0)
301
+ this.context.pre_render_callbacks.splice(pre, 1);
302
+ const post = this.context.post_render_callbacks.indexOf(this._restoreBackgroundBlur);
303
+ if (post >= 0)
304
+ this.context.post_render_callbacks.splice(post, 1);
305
+ // If we were disabled mid-frame (after force, before restore), put the real value back.
306
+ this._restoreBackgroundBlur();
257
307
  }
258
308
  /** @internal */
259
309
  onEnterXR() {
@@ -272,7 +322,19 @@ export class GroundProjectedEnv extends Behaviour {
272
322
  /** @internal */
273
323
  onBeforeRender() {
274
324
  if (this._projection && this.scene.backgroundRotation) {
275
- this._projection.rotation.copy(this.scene.backgroundRotation);
325
+ // Mirror three's WebGLBackground: build the same mat3 it applies to the skybox sampling
326
+ // direction and feed it to our shader. This rotates the sampled environment exactly like the
327
+ // skybox (backgroundCube.glsl) instead of rotating the mesh - keeping the floor flat and the
328
+ // horizon aligned with the skybox for any background rotation.
329
+ _backgroundRotationEuler.copy(this.scene.backgroundRotation);
330
+ // accommodate left-handed frame (same as WebGLBackground.js)
331
+ _backgroundRotationEuler.x *= -1;
332
+ _backgroundRotationEuler.y *= -1;
333
+ _backgroundRotationEuler.z *= -1;
334
+ // Note: the extra cube-texture flip in WebGLBackground only applies to raw CubeTextures, not the
335
+ // PMREM render-target env this shader path samples - so it is intentionally omitted here.
336
+ const uniforms = getGroundProjectionShaderUniforms(this._projection.material);
337
+ uniforms.needleGroundProjectionBackgroundRotation.value.setFromMatrix4(_backgroundRotationMatrix.makeRotationFromEuler(_backgroundRotationEuler));
276
338
  }
277
339
  if (this._projection && this.context.scene.background instanceof Texture) {
278
340
  const blurriness = this.context.scene.backgroundBlurriness ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../src/engine-components/GroundProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../src/engine-components/GroundProjection.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAClG,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9J,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAchD,iGAAiG;AACjG,MAAM,wBAAwB,GAAG,IAAI,KAAK,EAAE,CAAC;AAC7C,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAE,CAAC;AAEhD,MAAM,sBAAsB,GAAG,UAAU,CAAA;;;;CAIxC,CAAC;AAEF,MAAM,kCAAkC,GAAG,UAAU,CAAA;EACnD,sBAAsB;;;;;;;;;;;;;;;;;;CAkBvB,CAAC;AAEF,MAAM,uBAAuB,GAAG,UAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCzC,CAAC;AAEF,MAAM,mCAAmC,GAAG,UAAU,CAAA;;;;;;;;;;;;;;;;CAgBrD,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,iCAAiC,CAAC,QAAkC;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAEzB,CAAC;IAEF,OAAO,QAAQ,CAAC,8BAA8B,KAAK;QAC/C,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAC9C,8BAA8B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAC5C,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAC/C,yCAAyC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACvD,wCAAwC,EAAE,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,EAAE;KACrE,CAAC;AACN,CAAC;AAED,SAAS,iCAAiC,CAAC,QAAkC,EAAE,OAAgB;IAC3F,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACvE,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE;QAChC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,GAAG,kBAAkB,CAAC,gCAAgC,CAAC;QACvG,MAAM,CAAC,QAAQ,CAAC,8BAA8B,GAAG,kBAAkB,CAAC,8BAA8B,CAAC;QACnG,MAAM,CAAC,QAAQ,CAAC,iCAAiC,GAAG,kBAAkB,CAAC,iCAAiC,CAAC;QACzG,MAAM,CAAC,QAAQ,CAAC,yCAAyC,GAAG,kBAAkB,CAAC,yCAAyC,CAAC;QACzH,MAAM,CAAC,QAAQ,CAAC,wCAAwC,GAAG,kBAAkB,CAAC,wCAAwC,CAAC;QAEvH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;aACpC,OAAO,CAAC,2BAA2B,EAAE,8BAA8B,sBAAsB;;;OAG/F,CAAC;aACK,OAAO,CACJ,4BAA4B,EAC5B;;;;;;;;;;OAUT,CACM,CAAC;QAEN,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;aACxC,OAAO,CACJ,8BAA8B,EAC9B;EACd,kCAAkC;uCACG,CAC1B;aACA,OAAO,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;aAC3D,OAAO,CAAC,4BAA4B,EAAE,GAAG,mCAAmC,8BAA8B,CAAC,CAAC;IACrH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,EAAE,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/F,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,sBAAsB,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;QACnD,OAAO,CAAC,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC;QACrD,OAAO,CAAC,cAAc,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC;IACtD,CAAC;SACI,CAAC;QACF,OAAO,OAAO,CAAC,sBAAsB,CAAC;QACtC,OAAO,OAAO,CAAC,mBAAmB,CAAC;QACnC,OAAO,OAAO,CAAC,kBAAkB,CAAC;QAClC,OAAO,OAAO,CAAC,mBAAmB,CAAC;QACnC,OAAO,OAAO,CAAC,cAAc,CAAC;IAClC,CAAC;IAED,IAAI,eAAe,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAE7C;;;OAGG;IAEH,YAAY,GAAY,IAAI,CAAC;IAE7B;;;OAGG;IAEH,OAAO,GAAY,IAAI,CAAC;IAExB;;;OAGG;IAEH,IAAI,MAAM,CAAC,GAAW;QAClB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,OAAO,GAAW,EAAE,CAAC;IAE7B;;;OAGG;IAEH,IAAI,MAAM,CAAC,GAAW;QAClB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,OAAO,GAAW,CAAC,CAAC;IAE5B;;;;;OAKG;IAEH,IAAI,UAAU,CAAC,GAAW;QACtB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACpC,CAAC;IACD,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,WAAW,GAAG,CAAC,CAAC;IAEhB,eAAe,CAAW;IAC1B,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,WAAW,CAAoB;IAC/B,QAAQ,CAAS;IAEzB,qGAAqG;IAC7F,oBAAoB,GAAkB,IAAI,CAAC;IAEnD,8GAA8G;IAC7F,oBAAoB,GAAG,CAAC,MAAuB,EAAE,EAAE;QAChE,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI;YAAE,OAAO,CAAC,8BAA8B;QAC9E,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,YAAY,OAAO,CAAC;YAAE,OAAO,CAAC,oBAAoB;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,kFAAkF;IACjE,sBAAsB,GAAG,GAAG,EAAE;QAC3C,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI;YAAE,OAAO;QAC/C,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC5D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACrC,CAAC,CAAC;IAGF,gBAAgB;IAChB,KAAK;QACD,IAAI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IACD,gBAAgB;IAChB,QAAQ;QACJ,uGAAuG;QACvG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY;gBACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBAC7B,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC5E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC;QACD,+FAA+F;QAC/F,sFAAsF;QACtF,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC7E,CAAC;IACD,gBAAgB;IAChB,SAAS;QACL,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjF,IAAI,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrF,IAAI,IAAI,IAAI,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,wFAAwF;QACxF,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAClC,CAAC;IACD,gBAAgB;IAChB,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IACD,gBAAgB;IAChB,KAAK,CAAC,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACnC,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IACD,gBAAgB;IAChB,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACpD,wFAAwF;YACxF,6FAA6F;YAC7F,6FAA6F;YAC7F,+DAA+D;YAC/D,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7D,6DAA6D;YAC7D,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,iGAAiG;YACjG,0FAA0F;YAC1F,MAAM,QAAQ,GAAG,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9E,QAAQ,CAAC,wCAAwC,CAAC,KAAK,CAAC,cAAc,CAClE,yBAAyB,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAC5E,CAAC;QACN,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,YAAY,OAAO,EAAE,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC;YAC9D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChH,CAAC;IACL,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAGO,mBAAmB,GAAG,KAAK,CAAC;IAEpC;;OAEG;IACH,gBAAgB;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,CAAC,iBAAiB,YAAY,OAAO,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;gBACrC,OAAO;YACX,CAAC;QACL,CAAC;QACD,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,6HAA6H;QAC7H,MAAM,MAAM,GAAG,CAAC,CAAC;QAEjB,MAAM,UAAU,GAAG,iBAAiB,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC;QAExI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC;YAClC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAElF,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;YAErC,IAAI,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC3F,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;gBAC1D,OAAO;YACX,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC;YAC3C,iCAAiC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;aACI,CAAC;YACF,eAAe,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;YAClC,0CAA0C;YAC1C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAE5E,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;gBACrB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;gBAC3B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/C,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;gBACjD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,KAAK;gBAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAED;;;;UAIE;QAEF,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAEvD,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,CAAC;IAEO,iBAAiB,GAA0B,IAAI,CAAC;IAChD,eAAe,GAAW,CAAC,CAAC,CAAC;IAE7B,wBAAwB,CAAC,OAAgB,EAAE,kBAAkB,GAAG,KAAK;QACzE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,KAAK,uBAAuB,CAAC;QAElE,IAAI,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;YACvC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC;YAC/G,IAAI,kBAAkB,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnD,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/D,CAAC;iBACI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACrC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;YAClD,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,aAAa,CAAC;QAClD,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC;QAChE,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACzC,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAE7E,MAAM,cAAc,GAAG,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpF,cAAc,CAAC,gCAAgC,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,cAAc,CAAC,yCAAyC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAE7G,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC;QAChH,cAAc,CAAC,8BAA8B,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,cAAc,CAAC,iCAAiC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjG,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,OAAgB,EAAE,UAAkB;QACzD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,KAAK,IAAI,cAAc,CAAC;YAC1C,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE;gBACN,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;gBACvB,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;aACpC;YACD,YAAY,EAAE,gBAAgB;YAC9B,cAAc,EAAE,kBAAkB;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;QACpD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;QAC9D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7E,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACzC,OAAO,cAAc,CAAC;IAC1B,CAAC;CAEJ;AAzTG;IADC,YAAY,EAAE;wDACc;AAO7B;IADC,YAAY,EAAE;mDACS;AAOxB;IADC,YAAY,EAAE;gDAId;AASD;IADC,YAAY,EAAE;gDAId;AAWD;IADC,YAAY,EAAE;oDAId;AAiRL,MAAM,gBAAgB,GAAG;;;;;;;CAOxB,CAAC;AAEF,kBAAkB;AAClB,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0D1B,CAAC"}
@@ -40,7 +40,7 @@ export declare class NeedleMenu extends Behaviour {
40
40
  */
41
41
  position: "top" | "bottom";
42
42
  /**
43
- * Controls the visibility of the Needle logo in the menu (requires PRO license)
43
+ * Controls the visibility of the Needle logo in the menu (requires a commercial license)
44
44
  */
45
45
  showNeedleLogo: boolean;
46
46
  /**
@@ -48,7 +48,7 @@ export class NeedleMenu extends Behaviour {
48
48
  */
49
49
  position = "bottom";
50
50
  /**
51
- * Controls the visibility of the Needle logo in the menu (requires PRO license)
51
+ * Controls the visibility of the Needle logo in the menu (requires a commercial license)
52
52
  */
53
53
  showNeedleLogo = false;
54
54
  /**
@@ -89,7 +89,10 @@ export class NeedleMenu extends Behaviour {
89
89
  this.context.menu.showFullscreenOption(true);
90
90
  if (this.createMuteButton === true)
91
91
  this.context.menu.showAudioPlaybackOption(true);
92
- if (this.showSpatialMenu === true)
92
+ // Apply the value in BOTH directions: the spatial menu is enabled by
93
+ // default, so unchecking the option must explicitly disable it. Only skip
94
+ // when the field is unset (undefined) to keep the engine default.
95
+ if (this.showSpatialMenu !== undefined)
93
96
  this.context.menu.showSpatialMenu(this.showSpatialMenu);
94
97
  if (this.createQRCodeButton === true) {
95
98
  if (!DeviceUtilities.isMobileDevice()) {
@@ -1 +1 @@
1
- {"version":3,"file":"NeedleMenu.js","sourceRoot":"","sources":["../../src/engine-components/NeedleMenu.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCI;AACJ,MAAM,OAAO,UAAW,SAAQ,SAAS;IAErC;;OAEG;IAEH,QAAQ,GAAqB,QAAQ,CAAC;IAEtC;;OAEG;IAEH,cAAc,GAAY,KAAK,CAAC;IAEhC;;;OAGG;IAEH,eAAe,CAAW;IAE1B;;;OAGG;IAEH,sBAAsB,CAAW;IAEjC;;;OAGG;IAEH,gBAAgB,CAAW;IAE3B;;;;OAIG;IAEH,kBAAkB,CAAW;IAE7B;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;CAEJ;AAhEG;IADC,YAAY,EAAE;4CACuB;AAMtC;IADC,YAAY,EAAE;kDACiB;AAOhC;IADC,YAAY,EAAE;mDACW;AAO1B;IADC,YAAY,EAAE;0DACkB;AAOjC;IADC,YAAY,EAAE;oDACY;AAQ3B;IADC,YAAY,EAAE;sDACc"}
1
+ {"version":3,"file":"NeedleMenu.js","sourceRoot":"","sources":["../../src/engine-components/NeedleMenu.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCI;AACJ,MAAM,OAAO,UAAW,SAAQ,SAAS;IAErC;;OAEG;IAEH,QAAQ,GAAqB,QAAQ,CAAC;IAEtC;;OAEG;IAEH,cAAc,GAAY,KAAK,CAAC;IAEhC;;;OAGG;IAEH,eAAe,CAAW;IAE1B;;;OAGG;IAEH,sBAAsB,CAAW;IAEjC;;;OAGG;IAEH,gBAAgB,CAAW;IAE3B;;;;OAIG;IAEH,kBAAkB,CAAW;IAE7B;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpD,qEAAqE;QACrE,0EAA0E;QAC1E,kEAAkE;QAClE,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;CAEJ;AAnEG;IADC,YAAY,EAAE;4CACuB;AAMtC;IADC,YAAY,EAAE;kDACiB;AAOhC;IADC,YAAY,EAAE;mDACW;AAO1B;IADC,YAAY,EAAE;0DACkB;AAOjC;IADC,YAAY,EAAE;oDACY;AAQ3B;IADC,YAAY,EAAE;sDACc"}
@@ -261,6 +261,8 @@ export declare class SceneSwitcher extends Behaviour {
261
261
  switchScene(scene: AssetReference): Promise<boolean>;
262
262
  private __unloadCurrentScene;
263
263
  private _currentlyLoadingScene?;
264
+ private _loadingRequestId;
265
+ private _activeLoadingRequestId;
264
266
  /** @internal */
265
267
  private __internalSwitchScene;
266
268
  preload(index: number): Promise<boolean> | Promise<ArrayBufferLike | null>;
@@ -508,7 +508,8 @@ export class SceneSwitcher extends Behaviour {
508
508
  if (current) {
509
509
  if (debug)
510
510
  console.log("[SceneSwitcher] UNLOAD", current.url, "HasURL?: " + current.hasUrl);
511
- const sceneListener = this.tryGetSceneEventListener(current.asset);
511
+ const activeSceneInstance = this._currentSceneAsset;
512
+ const sceneListener = this.tryGetSceneEventListener(activeSceneInstance);
512
513
  if (sceneListener?.sceneClosing) {
513
514
  const res = sceneListener.sceneClosing();
514
515
  if (res instanceof Promise)
@@ -518,19 +519,23 @@ export class SceneSwitcher extends Behaviour {
518
519
  // // then we unload it
519
520
  if (current.hasUrl) {
520
521
  current.unload();
521
- if (this._currentSceneAsset)
522
- destroy(this._currentSceneAsset, true, false);
522
+ if (activeSceneInstance)
523
+ destroy(activeSceneInstance, true, false);
523
524
  }
524
525
  else {
525
- GameObject.remove(this._currentSceneAsset);
526
+ GameObject.remove(activeSceneInstance);
526
527
  }
528
+ this._currentSceneAsset = undefined;
527
529
  }
528
530
  }
529
531
  _currentlyLoadingScene;
532
+ _loadingRequestId = 0;
533
+ _activeLoadingRequestId = 0;
530
534
  /** @internal */
531
535
  async __internalSwitchScene(scene) {
532
536
  await this.__unloadCurrentScene();
533
537
  const index = this._currentIndex = this.scenes?.indexOf(scene) ?? -1;
538
+ const loadingRequestId = ++this._loadingRequestId;
534
539
  try {
535
540
  if (debug)
536
541
  console.debug(`${Date.now()} [SceneSwitcher] Loading scene start: ${scene.url} (index: ${index})`);
@@ -539,9 +544,11 @@ export class SceneSwitcher extends Behaviour {
539
544
  const loadStartEvt = new CustomEvent("loadscene-start", { detail: { scene: scene, switcher: this, index: index } });
540
545
  this.dispatchEvent(loadStartEvt);
541
546
  this.sceneLoadingStart?.invoke(loadStartEvt.detail);
542
- await this.onStartLoading();
547
+ await this.onStartLoading(loadingRequestId);
543
548
  // start loading and wait for the scene to be loaded
544
549
  await scene.loadAssetAsync((_, prog) => {
550
+ if (loadingRequestId !== this._activeLoadingRequestId)
551
+ return;
545
552
  if (debug) {
546
553
  const t01 = prog.loaded / prog.total;
547
554
  const progressBarString = "[" + "=".repeat(Math.floor(t01 * 20)) + "-".repeat(20 - Math.floor(t01 * 20)) + "]";
@@ -551,11 +558,13 @@ export class SceneSwitcher extends Behaviour {
551
558
  this.dispatchEvent(prog);
552
559
  this.sceneLoadingProgress?.invoke(prog);
553
560
  }).catch(console.error);
554
- await this.onEndLoading();
561
+ await this.onEndLoading(loadingRequestId);
555
562
  const finishedEvt = new CustomEvent("loadscene-finished", { detail: { scene: scene, switcher: this, index: index } });
556
563
  this.dispatchEvent(finishedEvt);
557
- this._currentLoadingProgress = undefined;
558
- this._currentlyLoadingScene = undefined;
564
+ if (loadingRequestId === this._activeLoadingRequestId) {
565
+ this._currentLoadingProgress = undefined;
566
+ this._currentlyLoadingScene = undefined;
567
+ }
559
568
  if (finishedEvt.defaultPrevented) {
560
569
  if (debug)
561
570
  console.warn("[SceneSwitcher] Adding loaded scene prevented:", scene, finishedEvt);
@@ -628,8 +637,8 @@ export class SceneSwitcher extends Behaviour {
628
637
  history.pushState(stateName, "unused", location.href);
629
638
  }
630
639
  }
631
- // Call SceneListener opened callback (if a SceneListener is in the scene)
632
- const sceneListener = this.tryGetSceneEventListener(scene.asset);
640
+ // Call SceneListener opened callback on the scene instance that was actually added.
641
+ const sceneListener = this.tryGetSceneEventListener(this._currentSceneAsset);
633
642
  if (sceneListener?.sceneOpened) {
634
643
  const res = sceneListener.sceneOpened(this);
635
644
  if (res instanceof Promise)
@@ -720,7 +729,8 @@ export class SceneSwitcher extends Behaviour {
720
729
  _loadingScenePromise = undefined;
721
730
  _isCurrentlyLoading = false;
722
731
  _currentLoadingProgress = undefined;
723
- async onStartLoading() {
732
+ async onStartLoading(loadingRequestId) {
733
+ this._activeLoadingRequestId = loadingRequestId;
724
734
  this._isCurrentlyLoading = true;
725
735
  if (this.loadingScene) {
726
736
  // save the last loading scene reference so that it can be changed at runtime
@@ -733,7 +743,7 @@ export class SceneSwitcher extends Behaviour {
733
743
  this._loadingScenePromise = this.loadingScene?.loadAssetAsync().then(res => res != null);
734
744
  }
735
745
  await this._loadingScenePromise;
736
- if (this._isCurrentlyLoading && this.loadingScene?.asset) {
746
+ if (loadingRequestId === this._activeLoadingRequestId && this._isCurrentlyLoading && this.loadingScene?.asset) {
737
747
  if (debug)
738
748
  console.log("Add loading scene", this.loadingScene.url, this.loadingScene.asset);
739
749
  const loadingScene = this.loadingScene.asset;
@@ -747,7 +757,7 @@ export class SceneSwitcher extends Behaviour {
747
757
  }
748
758
  }
749
759
  // Invoke the event on a loading listener on the same object as the scene switcher
750
- if (this._isCurrentlyLoading) {
760
+ if (loadingRequestId === this._activeLoadingRequestId && this._isCurrentlyLoading) {
751
761
  const listener = this.tryGetSceneEventListener(this.gameObject);
752
762
  if (listener) {
753
763
  if (listener.sceneOpened) {
@@ -758,7 +768,9 @@ export class SceneSwitcher extends Behaviour {
758
768
  }
759
769
  }
760
770
  }
761
- async onEndLoading() {
771
+ async onEndLoading(loadingRequestId) {
772
+ if (loadingRequestId !== this._activeLoadingRequestId)
773
+ return;
762
774
  this._isCurrentlyLoading = false;
763
775
  if (this.loadingScene?.asset) {
764
776
  if (debug)