@woosh/meep-engine 3.45.0 → 3.46.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 (216) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/package.json +1 -1
  3. package/src/core/assert.d.ts.map +1 -1
  4. package/src/core/assert.js +5 -1
  5. package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
  6. package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
  7. package/src/core/binary/hash/XXH128Hash.js +4 -55
  8. package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
  9. package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
  10. package/src/core/binary/hash/XXH3_SECRET.js +4 -25
  11. package/src/core/binary/hash/crc32.d.ts +1 -15
  12. package/src/core/binary/hash/crc32.d.ts.map +1 -1
  13. package/src/core/binary/hash/crc32.js +4 -96
  14. package/src/core/binary/hash/xxh3_128.d.ts +1 -9
  15. package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
  16. package/src/core/binary/hash/xxh3_128.js +4 -341
  17. package/src/core/binary/hash/xxh3_64.d.ts +1 -8
  18. package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
  19. package/src/core/binary/hash/xxh3_64.js +4 -241
  20. package/src/core/binary/hash/xxh3_common.d.ts +1 -223
  21. package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
  22. package/src/core/binary/hash/xxh3_common.js +90 -476
  23. package/src/core/collection/array/combine_hash.d.ts +6 -0
  24. package/src/core/collection/array/combine_hash.d.ts.map +1 -1
  25. package/src/core/collection/array/combine_hash.js +6 -0
  26. package/src/core/function/FunctionCompiler.js +2 -2
  27. package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
  28. package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
  29. package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
  30. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
  31. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
  32. package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
  33. package/src/core/geom/ConicRay.js +2 -2
  34. package/src/core/geom/Vector4.d.ts.map +1 -1
  35. package/src/core/geom/Vector4.js +8 -5
  36. package/src/core/math/hash/XXH128Hash.d.ts +38 -0
  37. package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
  38. package/src/core/math/hash/XXH128Hash.js +55 -0
  39. package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
  40. package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
  41. package/src/core/math/hash/XXH3_SECRET.js +25 -0
  42. package/src/core/math/hash/crc32.d.ts +16 -0
  43. package/src/core/math/hash/crc32.d.ts.map +1 -0
  44. package/src/core/math/hash/crc32.js +96 -0
  45. package/src/core/math/hash/xxh3_128.d.ts +10 -0
  46. package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
  47. package/src/core/math/hash/xxh3_128.js +341 -0
  48. package/src/core/math/hash/xxh3_64.d.ts +9 -0
  49. package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
  50. package/src/core/math/hash/xxh3_64.js +241 -0
  51. package/src/core/math/hash/xxh3_common.d.ts +224 -0
  52. package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
  53. package/src/core/math/hash/xxh3_common.js +476 -0
  54. package/src/core/math/lookup/ParameterLookupTable.js +2 -2
  55. package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
  56. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
  57. package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
  58. package/src/engine/asset/AssetDescription.js +2 -2
  59. package/src/engine/ecs/animation/Animation.js +2 -2
  60. package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
  61. package/src/engine/ecs/animation/AnimationClip.js +7 -5
  62. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  63. package/src/engine/ecs/gui/GUIElement.js +7 -5
  64. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
  65. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  66. package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
  67. package/src/engine/ecs/transform/Transform64.d.ts +1 -1
  68. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  69. package/src/engine/ecs/transform/Transform64.js +5 -4
  70. package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
  71. package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
  72. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
  73. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
  74. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
  75. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
  76. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
  77. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
  78. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
  79. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
  80. package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
  81. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
  82. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
  83. package/src/engine/graphics3/ParticipatingMedia.js +204 -204
  84. package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
  85. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  86. package/src/engine/graphics3/animation/AnimationClips.js +5 -0
  87. package/src/engine/grid/obstacle/GridObstacle.js +2 -2
  88. package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
  89. package/src/engine/interpolation/Interpolated.js +2 -2
  90. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  91. package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
  92. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
  93. package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
  94. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
  95. package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
  96. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  97. package/src/engine/physics/fluid/FluidField.js +7 -5
  98. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
  99. package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
  100. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
  101. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
  102. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
  103. package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
  104. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
  105. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
  106. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
  107. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
  108. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  109. package/src/engine/sound/ecs/audio/AudioEmitter.js +12 -7
  110. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
  111. package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
  112. package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
  113. package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
  114. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
  115. package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
  116. package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
  117. package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
  118. package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
  119. package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
  120. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  121. package/src/engine/sound/sopra/definition/EventDescription.js +23 -13
  122. package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
  123. package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
  124. package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
  125. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
  126. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
  127. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
  128. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
  129. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
  130. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
  131. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
  132. package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
  133. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
  134. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
  135. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
  136. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
  137. package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +7 -5
  138. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
  139. package/src/engine/sound/sopra/definition/effect/EqEffect.js +8 -5
  140. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +2 -2
  141. package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
  142. package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
  143. package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
  144. package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
  145. package/src/format/image/png/PNGReader.js +644 -644
  146. package/src/format/image/png/crc32.d.ts +1 -1
  147. package/src/format/image/png/crc32.js +7 -8
  148. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
  149. package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
  150. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
  151. package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
  152. package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
  153. package/src/shade/descriptor/blend/BlendComponent.js +2 -2
  154. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
  155. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
  156. package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
  157. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
  158. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
  159. package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
  160. package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
  161. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
  162. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
  163. package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
  164. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
  165. package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
  166. package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
  167. package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
  168. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  169. package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
  170. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  171. package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
  172. package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
  173. package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
  174. package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
  175. package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
  176. package/src/shade/renderer/binding/BufferBinding.js +2 -2
  177. package/src/shade/renderer/camera/Camera.js +2 -2
  178. package/src/shade/renderer/geometry/Attribute.js +2 -2
  179. package/src/shade/renderer/geometry/Geometry.js +2 -2
  180. package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
  181. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
  182. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
  183. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
  184. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
  185. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
  186. package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
  187. package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
  188. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
  189. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
  190. package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
  191. package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
  192. package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
  193. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
  194. package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
  195. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  196. package/src/shade/renderer/texture/ShadeTexture.js +17 -10
  197. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
  198. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
  199. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
  200. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  201. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
  202. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
  203. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
  204. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
  205. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
  206. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
  207. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
  208. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
  209. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
  210. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
  211. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
  212. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
  213. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
  214. package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
  215. package/src/view/common/HTMLElementCacheKey.js +4 -3
  216. package/src/view/minimap/MinimapMarker.js +2 -2
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
 
4
4
  /**
@@ -80,7 +80,7 @@ export class AcousticMedium {
80
80
  }
81
81
 
82
82
  hash() {
83
- return combine_hash(
83
+ return hash_mix3(
84
84
  computeHashFloat(this.airAbsorption[0]),
85
85
  computeHashFloat(this.airAbsorption[1]),
86
86
  computeHashFloat(this.airAbsorption[2])
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../core/math/hash/hash_mix2.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
 
4
4
  /**
@@ -79,7 +79,7 @@ export class AcousticDirectivity {
79
79
  }
80
80
 
81
81
  hash() {
82
- return combine_hash(
82
+ return hash_mix2(
83
83
  computeHashFloat(this.dipoleWeight),
84
84
  computeHashFloat(this.dipolePower)
85
85
  );
@@ -1 +1 @@
1
- {"version":3,"file":"AcousticMaterial.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/definition/AcousticMaterial.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH;IA4BI;;;OAGG;IACH,uDAHW;QAAC,UAAU,CAAC,EAAC,MAAM,EAAE,GAAC,YAAY,CAAC;QAAC,UAAU,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,EAAE,GAAC,YAAY,CAAA;KAAC,GAC1F,gBAAgB,CAsB5B;IAnDD;;;;OAIG;IACH,YAFU,YAAY,CAEyB;IAE/C;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;;;;;;;;;OAWG;IACH,cAFU,YAAY,CAEqB;IA4B3C;;;OAGG;IACH,cAHW,gBAAgB,GACd,OAAO,CAUnB;IAED,eAUC;IAED;;OAEG;IACH,SAFa,gBAAgB,CAc5B;IAED;;;;MAMC;IAED;;OAEG;IACH,mDAFW;QAAC,UAAU,EAAC,MAAM,EAAE,CAAC;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,YAAY,EAAC,MAAM,EAAE,CAAA;KAAC,QAUzE;CACJ"}
1
+ {"version":3,"file":"AcousticMaterial.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/definition/AcousticMaterial.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH;IA4BI;;;OAGG;IACH,uDAHW;QAAC,UAAU,CAAC,EAAC,MAAM,EAAE,GAAC,YAAY,CAAC;QAAC,UAAU,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,EAAE,GAAC,YAAY,CAAA;KAAC,GAC1F,gBAAgB,CAsB5B;IAnDD;;;;OAIG;IACH,YAFU,YAAY,CAEyB;IAE/C;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;;;;;;;;;OAWG;IACH,cAFU,YAAY,CAEqB;IA4B3C;;;OAGG;IACH,cAHW,gBAAgB,GACd,OAAO,CAUnB;IAED,eAcC;IAED;;OAEG;IACH,SAFa,gBAAgB,CAc5B;IAED;;;;MAMC;IAED;;OAEG;IACH,mDAFW;QAAC,UAAU,EAAC,MAAM,EAAE,CAAC;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,YAAY,EAAC,MAAM,EAAE,CAAA;KAAC,QAUzE;CACJ"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
 
4
4
  /**
@@ -77,12 +77,16 @@ export class AcousticMaterial {
77
77
  }
78
78
 
79
79
  hash() {
80
- return combine_hash(
81
- computeHashFloat(this.absorption[0]),
82
- computeHashFloat(this.absorption[1]),
83
- computeHashFloat(this.absorption[2]),
84
- computeHashFloat(this.scattering),
85
- computeHashFloat(this.transmission[0]),
80
+ return hash_mix3(
81
+ hash_mix3(
82
+ hash_mix3(
83
+ computeHashFloat(this.absorption[0]),
84
+ computeHashFloat(this.absorption[1]),
85
+ computeHashFloat(this.absorption[2])
86
+ ),
87
+ computeHashFloat(this.scattering),
88
+ computeHashFloat(this.transmission[0])
89
+ ),
86
90
  computeHashFloat(this.transmission[1]),
87
91
  computeHashFloat(this.transmission[2])
88
92
  );
@@ -1 +1 @@
1
- {"version":3,"file":"BusDefinition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/BusDefinition.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;;GAIG;AACH;IAiCI;;;;;OAKG;IACH,gBAJW,MAAM,yCACN;QAAC,QAAQ,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,mBAAmB,EAAE,CAAC;QAAC,KAAK,CAAC,EAAC;YAAC,WAAW,EAAC,MAAM,CAAC;YAAA,OAAO,EAAC,MAAM,CAAA;SAAC,EAAE,CAAA;KAAC,GAC9G,aAAa,CAYzB;IA/CD;;;OAGG;IACH,IAFU,MAAM,CAER;IAER;;;;OAIG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,SAFU,mBAAmB,EAAE,CAElB;IAEb;;;OAGG;IACH,OAFU;QAAC,WAAW,EAAC,MAAM,CAAC;QAAC,OAAO,EAAC,MAAM,CAAA;KAAC,EAAE,CAErC;IAoBX;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CA0BnB;IAED,eAgBC;IAED,uBAUC;IAED;;;;;;;;;;;;MAQC;IAED;;;;;;aAMC;CACJ;;;;kCAzIY,OAAO,iCAAiC,EAAE,mBAAmB"}
1
+ {"version":3,"file":"BusDefinition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/BusDefinition.js"],"names":[],"mappings":"AAMA;;GAEG;AAEH;;;;GAIG;AACH;IAiCI;;;;;OAKG;IACH,gBAJW,MAAM,yCACN;QAAC,QAAQ,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,mBAAmB,EAAE,CAAC;QAAC,KAAK,CAAC,EAAC;YAAC,WAAW,EAAC,MAAM,CAAC;YAAA,OAAO,EAAC,MAAM,CAAA;SAAC,EAAE,CAAA;KAAC,GAC9G,aAAa,CAYzB;IA/CD;;;OAGG;IACH,IAFU,MAAM,CAER;IAER;;;;OAIG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,SAFU,mBAAmB,EAAE,CAElB;IAEb;;;OAGG;IACH,OAFU;QAAC,WAAW,EAAC,MAAM,CAAC;QAAC,OAAO,EAAC,MAAM,CAAA;KAAC,EAAE,CAErC;IAoBX;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CA0BnB;IAED,eAgBC;IAED,uBAUC;IAED;;;;;;;;;;;;MAQC;IAED;;;;;;aAMC;CACJ;;;;kCAzIY,OAAO,iCAAiC,EAAE,mBAAmB"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
3
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
4
  import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
4
5
  import { deserializeAudioEffectFromJSON, serializeAudioEffectToJSON } from "../serialization/sopraJSON.js";
@@ -95,18 +96,18 @@ export class BusDefinition {
95
96
  }
96
97
 
97
98
  hash() {
98
- let h = combine_hash(
99
+ let h = hash_mix3(
99
100
  computeStringHash(this.id),
100
101
  computeStringHash(this.parentId),
101
102
  computeHashFloat(this.gainDb)
102
103
  );
103
104
 
104
105
  for (let i = 0; i < this.effects.length; i++) {
105
- h = combine_hash(h, this.effects[i].hash());
106
+ h = hash_mix2(h, this.effects[i].hash());
106
107
  }
107
108
 
108
109
  for (let i = 0; i < this.sends.length; i++) {
109
- h = combine_hash(h, computeStringHash(this.sends[i].targetBusId), computeHashFloat(this.sends[i].levelDb));
110
+ h = hash_mix3(h, computeStringHash(this.sends[i].targetBusId), computeHashFloat(this.sends[i].levelDb));
110
111
  }
111
112
 
112
113
  return h;
@@ -1 +1 @@
1
- {"version":3,"file":"DuckingRule.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/DuckingRule.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH;IAgCI;;;OAGG;IACH,qEAHW;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAC,GAC1F,WAAW,CAYvB;IA5CD;;;OAGG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,aAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,QAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,SAFU,MAAM,CAEF;IAkBd;;;OAGG;IACH,cAHW,WAAW,GACT,OAAO,CAQnB;IAED,eAQC;IAED,qBAEC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ"}
1
+ {"version":3,"file":"DuckingRule.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/DuckingRule.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH;IAgCI;;;OAGG;IACH,qEAHW;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAC,GAC1F,WAAW,CAYvB;IA5CD;;;OAGG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,aAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,QAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,SAFU,MAAM,CAEF;IAkBd;;;OAGG;IACH,cAHW,WAAW,GACT,OAAO,CAQnB;IAED,eAUC;IAED,qBAEC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
4
4
 
@@ -71,10 +71,12 @@ export class DuckingRule {
71
71
  }
72
72
 
73
73
  hash() {
74
- return combine_hash(
75
- computeStringHash(this.triggerBusId),
76
- computeStringHash(this.targetBusId),
77
- computeHashFloat(this.duckDb),
74
+ return hash_mix3(
75
+ hash_mix3(
76
+ computeStringHash(this.triggerBusId),
77
+ computeStringHash(this.targetBusId),
78
+ computeHashFloat(this.duckDb)
79
+ ),
78
80
  computeHashFloat(this.attack),
79
81
  computeHashFloat(this.release)
80
82
  );
@@ -1 +1 @@
1
- {"version":3,"file":"EventDescription.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/EventDescription.js"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH;IA+EI;;;;;;OAMG;IACH,mBALW,MAAM,YACN,iBAAiB,wIACjB,QAAQ,gBAAgB,CAAC,GACvB,gBAAgB,CAgC5B;IAlHD;;;OAGG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,iBAAiB,CAEO;IAElC;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,MAFU,OAAO,CAEJ;IAEb;;;OAGG;IACH,cAFU,iBAAiB,GAAC,MAAM,CAEI;IAEtC;;OAEG;IACH,aAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,aAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,aAFU,cAAc,CAEW;IAEnC;;;OAGG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,WAFU,cAAc,GAAC,MAAM,CAEG;IAElC;;;OAGG;IACH,oBAFU,MAAM,CAES;IAyCzB;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAgBnB;IAED;;;;;OAKG;IACH,QAFa,MAAM,CAkBlB;IAED,0BAkBC;IAED;;;;;;;;;;;;;;;;;;;MAgBC;IAED;;;;;;;;;;;;;;aAmCC;CACJ;;;;gCA7PY,OAAO,6BAA6B,EAAE,iBAAiB;kCAJlC,wBAAwB;+BAH3B,4CAA4C;+BAI5C,qBAAqB"}
1
+ {"version":3,"file":"EventDescription.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/EventDescription.js"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH;IA+EI;;;;;;OAMG;IACH,mBALW,MAAM,YACN,iBAAiB,wIACjB,QAAQ,gBAAgB,CAAC,GACvB,gBAAgB,CAgC5B;IAlHD;;;OAGG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,iBAAiB,CAEO;IAElC;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,MAFU,OAAO,CAEJ;IAEb;;;OAGG;IACH,cAFU,iBAAiB,GAAC,MAAM,CAEI;IAEtC;;OAEG;IACH,aAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,aAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,aAFU,cAAc,CAEW;IAEnC;;;OAGG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,WAFU,cAAc,GAAC,MAAM,CAEG;IAElC;;;OAGG;IACH,oBAFU,MAAM,CAES;IAyCzB;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAgBnB;IAED;;;;;OAKG;IACH,QAFa,MAAM,CA4BlB;IAED,0BAkBC;IAED;;;;;;;;;;;;;;;;;;;MAgBC;IAED;;;;;;;;;;;;;;aAmCC;CACJ;;;;gCAvQY,OAAO,6BAA6B,EAAE,iBAAiB;kCAJlC,wBAAwB;+BAH3B,4CAA4C;+BAI5C,qBAAqB"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
4
4
  import { AnimationCurve } from "../../../animation/curve/AnimationCurve.js";
@@ -170,18 +170,28 @@ export class EventDescription {
170
170
  * @returns {number}
171
171
  */
172
172
  hash() {
173
- return combine_hash(
174
- computeStringHash(this.label),
175
- computeStringHash(this.busId),
176
- computeHashFloat(this.gainDb),
177
- this.is3D ? 1 : 0,
178
- this.panningModel,
179
- computeHashFloat(this.distanceMin),
180
- computeHashFloat(this.distanceMax),
181
- this.maxInstances,
182
- computeHashFloat(this.priority),
183
- this.stealMode,
184
- computeHashFloat(this.virtualThresholdDb),
173
+ return hash_mix3(
174
+ hash_mix3(
175
+ hash_mix3(
176
+ hash_mix3(
177
+ hash_mix3(
178
+ hash_mix3(
179
+ computeStringHash(this.label),
180
+ computeStringHash(this.busId),
181
+ computeHashFloat(this.gainDb)
182
+ ),
183
+ this.is3D ? 1 : 0,
184
+ this.panningModel
185
+ ),
186
+ computeHashFloat(this.distanceMin),
187
+ computeHashFloat(this.distanceMax)
188
+ ),
189
+ this.maxInstances,
190
+ computeHashFloat(this.priority)
191
+ ),
192
+ this.stealMode,
193
+ computeHashFloat(this.virtualThresholdDb)
194
+ ),
185
195
  this.attenuation.hash(),
186
196
  this.rootClip.hash()
187
197
  );
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
4
4
 
@@ -57,7 +57,7 @@ export class MixerSnapshot {
57
57
  let h = computeStringHash(this.id);
58
58
 
59
59
  for (let i = 0; i < this.buses.length; i++) {
60
- h = combine_hash(h, computeStringHash(this.buses[i].busId), computeHashFloat(this.buses[i].gainDb));
60
+ h = hash_mix3(h, computeStringHash(this.buses[i].busId), computeHashFloat(this.buses[i].gainDb));
61
61
  }
62
62
 
63
63
  return h;
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterDefinition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/ParameterDefinition.js"],"names":[],"mappings":";;;6BAMU,MAAM;;;;;AAOhB;;;GAGG;AACH;IA2BI;;;;;OAKG;IACH,kBAJW,MAAM,sCACN;QAAC,GAAG,CAAC,EAAC,MAAM,CAAC;QAAC,GAAG,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,cAAc,GAAC,MAAM,CAAA;KAAC,GAC5E,mBAAmB,CAY/B;IAzCD;;OAEG;IACH,MAFU,MAAM,CAEN;IAEV;;OAEG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,cAFU,MAAM,CAEC;IAEjB;;OAEG;IACH,OAFU,cAAc,GAAC,MAAM,CAED;IAoB9B;;;;OAIG;IACH,cAHW,mBAAmB,GACjB,OAAO,CAQnB;IAED,eAQC;IAED,6BAUC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ"}
1
+ {"version":3,"file":"ParameterDefinition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/definition/ParameterDefinition.js"],"names":[],"mappings":";;;6BAMU,MAAM;;;;;AAOhB;;;GAGG;AACH;IA2BI;;;;;OAKG;IACH,kBAJW,MAAM,sCACN;QAAC,GAAG,CAAC,EAAC,MAAM,CAAC;QAAC,GAAG,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,cAAc,GAAC,MAAM,CAAA;KAAC,GAC5E,mBAAmB,CAY/B;IAzCD;;OAEG;IACH,MAFU,MAAM,CAEN;IAEV;;OAEG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,cAFU,MAAM,CAEC;IAEjB;;OAEG;IACH,OAFU,cAAc,GAAC,MAAM,CAED;IAoB9B;;;;OAIG;IACH,cAHW,mBAAmB,GACjB,OAAO,CAQnB;IAED,eAUC;IAED,6BAUC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
4
4
 
@@ -74,10 +74,12 @@ export class ParameterDefinition {
74
74
  }
75
75
 
76
76
  hash() {
77
- return combine_hash(
78
- computeStringHash(this.name),
79
- computeHashFloat(this.min),
80
- computeHashFloat(this.max),
77
+ return hash_mix3(
78
+ hash_mix3(
79
+ computeStringHash(this.name),
80
+ computeHashFloat(this.min),
81
+ computeHashFloat(this.max)
82
+ ),
81
83
  computeHashFloat(this.defaultValue),
82
84
  this.scope
83
85
  );
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
3
 
4
4
  /**
@@ -57,7 +57,7 @@ export class AbstractAudioClip {
57
57
  * @returns {number}
58
58
  */
59
59
  hash() {
60
- return combine_hash(
60
+ return hash_mix2(
61
61
  computeHashFloat(this.gain),
62
62
  computeHashFloat(this.pitch)
63
63
  );
@@ -1 +1 @@
1
- {"version":3,"file":"BlendContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH;IAqBI;;;;OAIG;IACH,uBAJW,mBAAmB,wCACnB;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,cAAc,EAAE,CAAA;KAAC,GACjE,uBAAuB,CAWnC;IAjCD;;;OAGG;IACH,WAFU,MAAM,CAED;IAEf;;;OAGG;IACH,cAFU,MAAM,CAEC;IAEjB;;;;OAIG;IACH,QAFU,cAAc,EAAE,CAEd;IAkCZ;;;;;;;;;MA+BC;IAED;;;OAGG;IACH,cAHW,uBAAuB,GACrB,OAAO,CAkBnB;IAqBD,iCAaC;IAED;;;;;;;;;;;;MASC;IAED;;;;;;;aAWC;;CACJ;;;;mCAjLkC,yBAAyB;+BAF7B,+CAA+C"}
1
+ {"version":3,"file":"BlendContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH;IAqBI;;;;OAIG;IACH,uBAJW,mBAAmB,wCACnB;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,cAAc,EAAE,CAAA;KAAC,GACjE,uBAAuB,CAWnC;IAjCD;;;OAGG;IACH,WAFU,MAAM,CAED;IAEf;;;OAGG;IACH,cAFU,MAAM,CAEC;IAEjB;;;;OAIG;IACH,QAFU,cAAc,EAAE,CAEd;IAkCZ;;;;;;;;;MA+BC;IAED;;;OAGG;IACH,cAHW,uBAAuB,GACrB,OAAO,CAkBnB;IAqBD,iCAaC;IAED;;;;;;;;;;;;MASC;IAED;;;;;;;aAWC;;CACJ;;;;mCAjLkC,yBAAyB;+BAF7B,+CAA+C"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
3
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
4
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
4
5
  import { AnimationCurve } from "../../../../animation/curve/AnimationCurve.js";
@@ -127,7 +128,7 @@ export class BlendContainerAudioClip extends ContainerAudioClip {
127
128
  // super.hash() already folds gain/pitch + children; only this class's own fields go on top.
128
129
  // `blends` MUST be folded here — `equals` compares the curves element-wise, so leaving them out
129
130
  // made two containers differing only in their blend curves compare unequal yet hash identically.
130
- let h = combine_hash(
131
+ let h = hash_mix3(
131
132
  super.hash(),
132
133
  computeStringHash(this.parameter),
133
134
  computeHashFloat(this.defaultValue)
@@ -136,7 +137,7 @@ export class BlendContainerAudioClip extends ContainerAudioClip {
136
137
  const blends = this.blends;
137
138
 
138
139
  for (let i = 0; i < blends.length; i++) {
139
- h = combine_hash(h, blends[i].hash());
140
+ h = hash_mix2(h, blends[i].hash());
140
141
  }
141
142
 
142
143
  return h;
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../../../core/assert.js";
2
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
3
3
  import { AbstractAudioClip } from "./AbstractAudioClip.js";
4
4
 
5
5
  /**
@@ -120,7 +120,7 @@ export class ContainerAudioClip extends AbstractAudioClip {
120
120
  const children = this.children;
121
121
 
122
122
  for (let i = 0; i < children.length; i++) {
123
- h = combine_hash(h, children[i].hash());
123
+ h = hash_mix2(h, children[i].hash());
124
124
  }
125
125
 
126
126
  return h;
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { weightedRandomFromArray } from "../../../../../core/collection/array/weightedRandomFromArray.js";
3
3
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
4
4
  import { ContainerAudioClip } from "./ContainerAudioClip.js";
@@ -126,11 +126,11 @@ export class RandomContainerAudioClip extends ContainerAudioClip {
126
126
 
127
127
  hash() {
128
128
  // super.hash() already folds gain/pitch + children; only this class's own fields go on top
129
- let h = combine_hash(super.hash(), this.avoid_repeating_last);
129
+ let h = hash_mix2(super.hash(), this.avoid_repeating_last);
130
130
 
131
131
  const weights = this.weights;
132
132
  for (let i = 0; i < weights.length; i++) {
133
- h = combine_hash(h, computeHashFloat(weights[i]));
133
+ h = hash_mix2(h, computeHashFloat(weights[i]));
134
134
  }
135
135
 
136
136
  return h;
@@ -1 +1 @@
1
- {"version":3,"file":"SampleAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/SampleAudioClip.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;IA2CI;;;;;OAKG;IACH,iBAJW,MAAM,mFACN;QAAC,UAAU,CAAC,EAAC,OAAO,CAAC;QAAC,IAAI,CAAC,EAAC,OAAO,CAAC;QAAC,IAAI,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAC,MAAM,CAAC;QAAC,UAAU,CAAC,EAAC,MAAM,CAAA;KAAC,GAC5I,eAAe,CAyB3B;IAtED;;;OAGG;IACH,KAFU,MAAM,CAEP;IAET;;;OAGG;IACH,YAFU,OAAO,CAEE;IAEnB;;OAEG;IACH,MAFU,OAAO,CAEJ;IAEb;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,aAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,YAFU,MAAM,CAED;IAiCf;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAWnB;IAkBD;;OAEG;IACH,SAFa,eAAe,CAe3B;IAED;;;;;;;;;;MAYC;IAED;;;;;;;;;;aAUC;IAED;;;;;;OAMG;IACH,gCALW,MAAM,eACN,MAAM,WACN,MAAM,GACJ;QAAC,KAAK,EAAE;YAAC,IAAI,EAAE,eAAe,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAC,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CA6BtI;IAED,uCAGC;CAKJ;;;;kCAzMiC,wBAAwB"}
1
+ {"version":3,"file":"SampleAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/SampleAudioClip.js"],"names":[],"mappings":"AAMA;;;;GAIG;AACH;IA2CI;;;;;OAKG;IACH,iBAJW,MAAM,mFACN;QAAC,UAAU,CAAC,EAAC,OAAO,CAAC;QAAC,IAAI,CAAC,EAAC,OAAO,CAAC;QAAC,IAAI,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAC,MAAM,CAAC;QAAC,UAAU,CAAC,EAAC,MAAM,CAAA;KAAC,GAC5I,eAAe,CAyB3B;IAtED;;;OAGG;IACH,KAFU,MAAM,CAEP;IAET;;;OAGG;IACH,YAFU,OAAO,CAEE;IAEnB;;OAEG;IACH,MAFU,OAAO,CAEJ;IAEb;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,aAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,YAFU,MAAM,CAED;IAiCf;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAWnB;IAwBD;;OAEG;IACH,SAFa,eAAe,CAe3B;IAED;;;;;;;;;;MAYC;IAED;;;;;;;;;;aAUC;IAED;;;;;;OAMG;IACH,gCALW,MAAM,eACN,MAAM,WACN,MAAM,GACJ;QAAC,KAAK,EAAE;YAAC,IAAI,EAAE,eAAe,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAC,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CA6BtI;IAED,uCAGC;CAKJ;;;;kCA/MiC,wBAAwB"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
3
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
4
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
4
5
  import { AbstractAudioClip } from "./AbstractAudioClip.js";
@@ -102,14 +103,20 @@ export class SampleAudioClip extends AbstractAudioClip {
102
103
  * @returns {number}
103
104
  */
104
105
  hash() {
105
- return combine_hash(
106
- super.hash(),
107
- computeStringHash(this.url),
108
- this.usingAlias ? 1 : 0,
109
- this.loop ? 1 : 0,
110
- computeHashFloat(this.loopStart),
111
- computeHashFloat(this.loopEnd),
112
- computeHashFloat(this.pitchRandom),
106
+ return hash_mix2(
107
+ hash_mix3(
108
+ hash_mix3(
109
+ hash_mix3(
110
+ super.hash(),
111
+ computeStringHash(this.url),
112
+ this.usingAlias ? 1 : 0
113
+ ),
114
+ this.loop ? 1 : 0,
115
+ computeHashFloat(this.loopStart)
116
+ ),
117
+ computeHashFloat(this.loopEnd),
118
+ computeHashFloat(this.pitchRandom)
119
+ ),
113
120
  computeHashFloat(this.gainRandom)
114
121
  );
115
122
  }
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { AbstractAudioClip } from "./AbstractAudioClip.js";
4
4
 
@@ -39,7 +39,7 @@ export class SilenceAudioClip extends AbstractAudioClip {
39
39
  }
40
40
 
41
41
  hash() {
42
- return combine_hash(
42
+ return hash_mix2(
43
43
  super.hash(),
44
44
  computeHashFloat(this.duration)
45
45
  );
@@ -46,12 +46,12 @@ export class SwitchContainerAudioClip extends ContainerAudioClip {
46
46
  parameter: string;
47
47
  defaultValue: number;
48
48
  children: {
49
- type: string;
50
49
  /**
51
50
  * @param {AbstractAudioClip[]} [children]
52
51
  * @param {{parameter?:string, defaultValue?:number}} [options]
53
52
  * @returns {SwitchContainerAudioClip}
54
53
  */
54
+ type: string;
55
55
  data: any;
56
56
  }[];
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH;IAcI;;;;OAIG;IACH,uBAJW,mBAAmB,gCACnB;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAA;KAAC,GACvC,wBAAwB,CAUpC;IAzBD;;;OAGG;IACH,WAFU,MAAM,CAED;IAEf;;;OAGG;IACH,cAFU,MAAM,CAEC;IAmCjB;;;;;;;;;MAWC;IAED;;;OAGG;IACH,cAHW,wBAAwB,GACtB,OAAO,CAMnB;IAWD,kCAYC;IAED;;;;;;;YA/EA;;;;eAIG;;;MAmFF;IAED;;;;;;aAMC;;CACJ;;;;mCAvHkC,yBAAyB"}
1
+ {"version":3,"file":"SwitchContainerAudioClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH;IAcI;;;;OAIG;IACH,uBAJW,mBAAmB,gCACnB;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAA;KAAC,GACvC,wBAAwB,CAUpC;IAzBD;;;OAGG;IACH,WAFU,MAAM,CAED;IAEf;;;OAGG;IACH,cAFU,MAAM,CAEC;IAmCjB;;;;;;;;;MAWC;IAED;;;OAGG;IACH,cAHW,wBAAwB,GACtB,OAAO,CAMnB;IAWD,kCAYC;IAED;;;;;;YA/EA;;;;eAIG;;;;MAmFF;IAED;;;;;;aAMC;;CACJ;;;;mCAvHkC,yBAAyB"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
4
4
  import { ContainerAudioClip } from "./ContainerAudioClip.js";
@@ -82,7 +82,7 @@ export class SwitchContainerAudioClip extends ContainerAudioClip {
82
82
 
83
83
  hash() {
84
84
  // super.hash() already folds gain/pitch + children; only this class's own fields go on top
85
- return combine_hash(
85
+ return hash_mix3(
86
86
  super.hash(),
87
87
  computeStringHash(this.parameter),
88
88
  computeHashFloat(this.defaultValue)
@@ -1 +1 @@
1
- {"version":3,"file":"CompressorEffect.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/effect/CompressorEffect.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH;IA+BI;;;;OAIG;IACH,0DAHW;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,IAAI,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAC,GAC/E,gBAAgB,CAY5B;IA5CD;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEN;IAEV;;OAEG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,QAFU,MAAM,CAED;IAEf;;;OAGG;IACH,SAFU,MAAM,CAED;IAmCf;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAQnB;IAED,eAQC;IAED,0BAEC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ;;;;oCAnHmC,0BAA0B"}
1
+ {"version":3,"file":"CompressorEffect.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/effect/CompressorEffect.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH;IA+BI;;;;OAIG;IACH,0DAHW;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,IAAI,CAAC,EAAC,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAC,GAC/E,gBAAgB,CAY5B;IA5CD;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEN;IAEV;;OAEG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,QAFU,MAAM,CAED;IAEf;;;OAGG;IACH,SAFU,MAAM,CAED;IAmCf;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAQnB;IAED,eAUC;IAED,0BAEC;IAED;;;;;;MAQC;IAED;;;;;;aAMC;CACJ;;;;oCArHmC,0BAA0B"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
3
  import { AbstractAudioEffect } from "./AbstractAudioEffect.js";
4
4
 
@@ -85,10 +85,12 @@ export class CompressorEffect extends AbstractAudioEffect {
85
85
  }
86
86
 
87
87
  hash() {
88
- return combine_hash(
89
- computeHashFloat(this.threshold),
90
- computeHashFloat(this.knee),
91
- computeHashFloat(this.ratio),
88
+ return hash_mix3(
89
+ hash_mix3(
90
+ computeHashFloat(this.threshold),
91
+ computeHashFloat(this.knee),
92
+ computeHashFloat(this.ratio)
93
+ ),
92
94
  computeHashFloat(this.attack),
93
95
  computeHashFloat(this.release)
94
96
  );
@@ -1 +1 @@
1
- {"version":3,"file":"EqEffect.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/effect/EqEffect.js"],"names":[],"mappings":";;;2BAMU,MAAM;;;;;;;;;;;AAoBhB;;GAEG;AACH;IAyBI;;;;OAIG;IACH,mDAHW;QAAC,UAAU,CAAC,EAAC,YAAY,GAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,CAAC,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAA;KAAC,GAC7E,QAAQ,CAWpB;IArCD;;OAEG;IACH,YAFU,YAAY,GAAC,MAAM,CAEK;IAElC;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,GAFU,MAAM,CAEV;IAEN;;;OAGG;IACH,QAFU,MAAM,CAEL;IAiCX;;;;OAIG;IACH,cAHW,QAAQ,GACN,OAAO,CAOnB;IAED,eAOC;IAED,kBAEC;IAED;;;;;MAOC;IAED;;;;;aAKC;CACJ;;;;oCA3HmC,0BAA0B"}
1
+ {"version":3,"file":"EqEffect.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/sound/sopra/definition/effect/EqEffect.js"],"names":[],"mappings":";;;2BAOU,MAAM;;;;;;;;;;;AAoBhB;;GAEG;AACH;IAyBI;;;;OAIG;IACH,mDAHW;QAAC,UAAU,CAAC,EAAC,YAAY,GAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,CAAC,CAAC,EAAC,MAAM,CAAC;QAAC,MAAM,CAAC,EAAC,MAAM,CAAA;KAAC,GAC7E,QAAQ,CAWpB;IArCD;;OAEG;IACH,YAFU,YAAY,GAAC,MAAM,CAEK;IAElC;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,GAFU,MAAM,CAEV;IAEN;;;OAGG;IACH,QAFU,MAAM,CAEL;IAiCX;;;;OAIG;IACH,cAHW,QAAQ,GACN,OAAO,CAOnB;IAED,eASC;IAED,kBAEC;IAED;;;;;MAOC;IAED;;;;;aAKC;CACJ;;;;oCA7HmC,0BAA0B"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
3
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
4
  import { AbstractAudioEffect } from "./AbstractAudioEffect.js";
4
5
 
@@ -96,10 +97,12 @@ export class EqEffect extends AbstractAudioEffect {
96
97
  }
97
98
 
98
99
  hash() {
99
- return combine_hash(
100
- this.filterType,
101
- computeHashFloat(this.frequency),
102
- computeHashFloat(this.Q),
100
+ return hash_mix2(
101
+ hash_mix3(
102
+ this.filterType,
103
+ computeHashFloat(this.frequency),
104
+ computeHashFloat(this.Q)
105
+ ),
103
106
  computeHashFloat(this.gainDb)
104
107
  );
105
108
  }
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { seededRandom } from "../../../../../core/math/random/seededRandom.js";
3
3
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
4
4
  import { reverbImpulseResponse } from "../../../simulation/render/reverbImpulseResponse.js";
@@ -87,7 +87,7 @@ export class ReverbEffect extends AbstractAudioEffect {
87
87
  }
88
88
 
89
89
  hash() {
90
- return combine_hash(
90
+ return hash_mix2(
91
91
  computeHashFloat(this.decaySeconds),
92
92
  computeHashFloat(this.decayPower)
93
93
  );
@@ -1 +1 @@
1
- {"version":3,"file":"SoundEmitter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/legacy/SoundEmitter.js"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AACH;IAqTI;;;;OAIG;IACH,4BAFa,YAAY,CAQxB;IA7TD;;;OAGG;IACH,iBAFU,KAAK,UAAU,CAAC,CAEN;IAEpB;;;;;OAKG;IACH,SAFU,SAAO,IAAI,CAEK;IAE1B;;;;OAIG;IACH,sBAAkB;IAElB;;;;OAIG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,cAFU,qBAAqB,CAEW;IAE1C;;;OAGG;IACH,aAFU,wBAAwB,GAAC,MAAM,CAEI;IAE7C;;;OAGG;IACH,OAFU,MAAM,GAAC,iBAAiB,CAExB;IAEV;;;OAGG;IACH,QAFU,OAAO,CAEO;IAExB;;;;OAIG;IACH,eAHW,YAAY,UAqDtB;IAGD;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,OAAO,CAInB;IAGD;;;OAGG;IACH,6BAEC;IAED;;;OAGG;IACH,4BAEC;IAED;;;OAGG;IACH,cAFW,YAAY,GADV,OAAO,CAWnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAWjB;IAUD;;OAEG;IACH,2BAEC;IAbD;;;OAGG;IACH,0BAEC;IAiBD;;OAEG;IACH,2BAEC;IAbD;;;OAGG;IACH,0BAEC;IASD;;;;;;;;;;MAYC;IAED,0BA+DC;CAeJ;;;;iBA1VgB,0CAA0C;2BAUhC,iBAAiB;sCADN,4BAA4B;yCAFzB,+BAA+B;kCACtC,wBAAwB;oBAPtC,kCAAkC"}
1
+ {"version":3,"file":"SoundEmitter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/legacy/SoundEmitter.js"],"names":[],"mappings":"AAmBA;;;;;;;GAOG;AACH;IAyTI;;;;OAIG;IACH,4BAFa,YAAY,CAQxB;IAjUD;;;OAGG;IACH,iBAFU,KAAK,UAAU,CAAC,CAEN;IAEpB;;;;;OAKG;IACH,SAFU,SAAO,IAAI,CAEK;IAE1B;;;;OAIG;IACH,sBAAkB;IAElB;;;;OAIG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,cAFU,qBAAqB,CAEW;IAE1C;;;OAGG;IACH,aAFU,wBAAwB,GAAC,MAAM,CAEI;IAE7C;;;OAGG;IACH,OAFU,MAAM,GAAC,iBAAiB,CAExB;IAEV;;;OAGG;IACH,QAFU,OAAO,CAEO;IAExB;;;;OAIG;IACH,eAHW,YAAY,UAqDtB;IAGD;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,OAAO,CAInB;IAGD;;;OAGG;IACH,6BAEC;IAED;;;OAGG;IACH,4BAEC;IAED;;;OAGG;IACH,cAFW,YAAY,GADV,OAAO,CAWnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAejB;IAUD;;OAEG;IACH,2BAEC;IAbD;;;OAGG;IACH,0BAEC;IAiBD;;OAEG;IACH,2BAEC;IAbD;;;OAGG;IACH,0BAEC;IASD;;;;;;;;;;MAYC;IAED,0BA+DC;CAeJ;;;;iBA9VgB,0CAA0C;2BAUhC,iBAAiB;sCADN,4BAA4B;yCAFzB,+BAA+B;kCACtC,wBAAwB;oBAPtC,kCAAkC"}