@onerjs/core 8.42.7 → 8.42.8

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 (305) hide show
  1. package/Animations/animatable.core.js +1 -1
  2. package/Animations/animatable.core.js.map +1 -1
  3. package/Animations/animatorAvatar.js +2 -2
  4. package/Animations/animatorAvatar.js.map +1 -1
  5. package/Animations/runtimeAnimation.js +1 -1
  6. package/Animations/runtimeAnimation.js.map +1 -1
  7. package/Audio/audioSceneComponent.js +1 -2
  8. package/Audio/audioSceneComponent.js.map +1 -1
  9. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js +3 -3
  10. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js.map +1 -1
  11. package/AudioV2/webAudio/webAudioEngine.js +1 -1
  12. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  13. package/Behaviors/Meshes/followBehavior.js +1 -1
  14. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  15. package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
  16. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  17. package/Bones/boneLookController.js +1 -1
  18. package/Bones/boneLookController.js.map +1 -1
  19. package/Buffers/buffer.js +1 -1
  20. package/Buffers/buffer.js.map +1 -1
  21. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  22. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  23. package/Cameras/camera.js +2 -2
  24. package/Cameras/camera.js.map +1 -1
  25. package/Engines/AbstractEngine/abstractEngine.renderPass.js +1 -0
  26. package/Engines/AbstractEngine/abstractEngine.renderPass.js.map +1 -1
  27. package/Engines/Extensions/engine.query.js +1 -1
  28. package/Engines/Extensions/engine.query.js.map +1 -1
  29. package/Engines/Processors/shaderProcessor.js +2 -3
  30. package/Engines/Processors/shaderProcessor.js.map +1 -1
  31. package/Engines/WebGL/webGLRenderTargetWrapper.js +1 -1
  32. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  33. package/Engines/WebGPU/Extensions/engine.debugging.d.ts +87 -0
  34. package/Engines/WebGPU/Extensions/engine.debugging.js +123 -31
  35. package/Engines/WebGPU/Extensions/engine.debugging.js.map +1 -1
  36. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  37. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  38. package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
  39. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  40. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
  41. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  42. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
  43. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  44. package/Engines/WebGPU/webgpuTextureManager.js +10 -5
  45. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  46. package/Engines/abstractEngine.js +2 -2
  47. package/Engines/abstractEngine.js.map +1 -1
  48. package/Engines/engine.common.js +2 -2
  49. package/Engines/engine.common.js.map +1 -1
  50. package/Engines/engine.js +0 -1
  51. package/Engines/engine.js.map +1 -1
  52. package/Engines/thinEngine.functions.js +1 -1
  53. package/Engines/thinEngine.functions.js.map +1 -1
  54. package/Engines/thinEngine.js +4 -5
  55. package/Engines/thinEngine.js.map +1 -1
  56. package/Engines/thinNativeEngine.js +2 -5
  57. package/Engines/thinNativeEngine.js.map +1 -1
  58. package/Engines/thinWebGPUEngine.d.ts +6 -4
  59. package/Engines/thinWebGPUEngine.js +49 -25
  60. package/Engines/thinWebGPUEngine.js.map +1 -1
  61. package/Engines/webgpuEngine.d.ts +2 -1
  62. package/Engines/webgpuEngine.js +18 -16
  63. package/Engines/webgpuEngine.js.map +1 -1
  64. package/FlowGraph/flowGraph.d.ts +1 -0
  65. package/FlowGraph/flowGraph.js.map +1 -1
  66. package/FlowGraph/flowGraphBlock.d.ts +1 -0
  67. package/FlowGraph/flowGraphBlock.js.map +1 -1
  68. package/FlowGraph/flowGraphContext.d.ts +1 -0
  69. package/FlowGraph/flowGraphContext.js.map +1 -1
  70. package/FlowGraph/flowGraphCoordinator.d.ts +1 -0
  71. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  72. package/FrameGraph/Node/nodeRenderGraph.d.ts +12 -1
  73. package/FrameGraph/Node/nodeRenderGraph.js +36 -2
  74. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  75. package/FrameGraph/Tasks/Layers/baseLayerTask.js +1 -1
  76. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  77. package/FrameGraph/Tasks/PostProcesses/ssao2RenderingPipelineTask.js +3 -0
  78. package/FrameGraph/Tasks/PostProcesses/ssao2RenderingPipelineTask.js.map +1 -1
  79. package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js +3 -0
  80. package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js.map +1 -1
  81. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +3 -1
  82. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +14 -0
  83. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  84. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +2 -2
  85. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +20 -14
  86. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  87. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +3 -2
  88. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +38 -14
  89. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
  90. package/Layers/glowLayer.js +1 -1
  91. package/Layers/glowLayer.js.map +1 -1
  92. package/Layers/highlightLayer.js +1 -1
  93. package/Layers/highlightLayer.js.map +1 -1
  94. package/Lights/Shadows/cascadedShadowGenerator.js +0 -1
  95. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  96. package/Lights/Shadows/shadowGenerator.d.ts +28 -1
  97. package/Lights/Shadows/shadowGenerator.js +77 -11
  98. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  99. package/Lights/lightingVolume.d.ts +1 -0
  100. package/Lights/lightingVolume.js +10 -2
  101. package/Lights/lightingVolume.js.map +1 -1
  102. package/Loading/sceneLoader.js +1 -1
  103. package/Loading/sceneLoader.js.map +1 -1
  104. package/Materials/Node/Blocks/Dual/fogBlock.js +1 -1
  105. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  106. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -1
  107. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  108. package/Materials/Node/Blocks/PBR/sheenBlock.js +1 -2
  109. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  110. package/Materials/Node/Blocks/cloudBlock.js +1 -1
  111. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  112. package/Materials/Node/Blocks/curveBlock.js +2 -3
  113. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  114. package/Materials/Node/nodeMaterial.js +1 -2
  115. package/Materials/Node/nodeMaterial.js.map +1 -1
  116. package/Materials/PBR/openpbrMaterial.js +3 -5
  117. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  118. package/Materials/PBR/pbrBaseMaterial.js +2 -3
  119. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  120. package/Materials/Textures/Procedurals/proceduralTexture.js +0 -1
  121. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  122. package/Materials/Textures/cubeTexture.js +1 -1
  123. package/Materials/Textures/cubeTexture.js.map +1 -1
  124. package/Materials/Textures/htmlElementTexture.js +2 -2
  125. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  126. package/Materials/Textures/multiRenderTarget.js +1 -1
  127. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  128. package/Materials/Textures/renderTargetTexture.js +13 -2
  129. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  130. package/Materials/effect.js +2 -1
  131. package/Materials/effect.js.map +1 -1
  132. package/Materials/materialHelper.functions.js +1 -1
  133. package/Materials/materialHelper.functions.js.map +1 -1
  134. package/Materials/multiMaterial.js +1 -1
  135. package/Materials/multiMaterial.js.map +1 -1
  136. package/Materials/standardMaterial.js +1 -2
  137. package/Materials/standardMaterial.js.map +1 -1
  138. package/Maths/math.geospatial.d.ts +17 -2
  139. package/Maths/math.geospatial.functions.d.ts +16 -2
  140. package/Maths/math.geospatial.functions.js +37 -4
  141. package/Maths/math.geospatial.functions.js.map +1 -1
  142. package/Maths/math.geospatial.js.map +1 -1
  143. package/Maths/math.path.js +1 -1
  144. package/Maths/math.path.js.map +1 -1
  145. package/Maths/math.scalar.functions.js +3 -3
  146. package/Maths/math.scalar.functions.js.map +1 -1
  147. package/Maths/math.vector.js +1 -1
  148. package/Maths/math.vector.js.map +1 -1
  149. package/Meshes/Builders/boxBuilder.js +1 -2
  150. package/Meshes/Builders/boxBuilder.js.map +1 -1
  151. package/Meshes/Builders/cylinderBuilder.js +2 -2
  152. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  153. package/Meshes/Builders/decalBuilder.js +1 -2
  154. package/Meshes/Builders/decalBuilder.js.map +1 -1
  155. package/Meshes/Builders/latheBuilder.js +2 -2
  156. package/Meshes/Builders/latheBuilder.js.map +1 -1
  157. package/Meshes/Builders/linesBuilder.js +11 -15
  158. package/Meshes/Builders/linesBuilder.js.map +1 -1
  159. package/Meshes/Builders/polygonBuilder.js +6 -6
  160. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  161. package/Meshes/Builders/polyhedronBuilder.js +2 -2
  162. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  163. package/Meshes/Builders/ribbonBuilder.js +6 -6
  164. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  165. package/Meshes/Builders/shapeBuilder.js +2 -3
  166. package/Meshes/Builders/shapeBuilder.js.map +1 -1
  167. package/Meshes/Builders/tiledBoxBuilder.js +1 -1
  168. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  169. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  170. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  171. package/Meshes/GreasedLine/greasedLineMesh.js +1 -2
  172. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  173. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +1 -1
  174. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  175. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +1 -1
  176. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  177. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +1 -1
  178. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  179. package/Meshes/Node/Blocks/mappingBlock.js +1 -1
  180. package/Meshes/Node/Blocks/mappingBlock.js.map +1 -1
  181. package/Meshes/abstractMesh.d.ts +4 -0
  182. package/Meshes/abstractMesh.js +14 -10
  183. package/Meshes/abstractMesh.js.map +1 -1
  184. package/Meshes/csg.js +1 -1
  185. package/Meshes/csg.js.map +1 -1
  186. package/Meshes/csg2.js +1 -1
  187. package/Meshes/csg2.js.map +1 -1
  188. package/Meshes/geodesicMesh.js +11 -13
  189. package/Meshes/geodesicMesh.js.map +1 -1
  190. package/Meshes/geometry.js +2 -2
  191. package/Meshes/geometry.js.map +1 -1
  192. package/Meshes/groundMesh.js +7 -7
  193. package/Meshes/groundMesh.js.map +1 -1
  194. package/Meshes/mesh.d.ts +2 -0
  195. package/Meshes/mesh.js +21 -7
  196. package/Meshes/mesh.js.map +1 -1
  197. package/Meshes/mesh.vertexData.js +22 -22
  198. package/Meshes/mesh.vertexData.js.map +1 -1
  199. package/Meshes/meshSimplification.js +1 -1
  200. package/Meshes/meshSimplification.js.map +1 -1
  201. package/Meshes/polygonMesh.js +1 -1
  202. package/Meshes/polygonMesh.js.map +1 -1
  203. package/Meshes/trailMesh.js +1 -1
  204. package/Meshes/trailMesh.js.map +1 -1
  205. package/Misc/HighDynamicRange/hdr.js +4 -6
  206. package/Misc/HighDynamicRange/hdr.js.map +1 -1
  207. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  208. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  209. package/Misc/basisWorker.js +1 -1
  210. package/Misc/basisWorker.js.map +1 -1
  211. package/Misc/environmentTextureTools.js +1 -1
  212. package/Misc/environmentTextureTools.js.map +1 -1
  213. package/Misc/meshExploder.js +1 -2
  214. package/Misc/meshExploder.js.map +1 -1
  215. package/Misc/tga.js +2 -2
  216. package/Misc/tga.js.map +1 -1
  217. package/Misc/timer.js +4 -2
  218. package/Misc/timer.js.map +1 -1
  219. package/Misc/tools.d.ts +7 -0
  220. package/Misc/tools.js +20 -6
  221. package/Misc/tools.js.map +1 -1
  222. package/Morph/morphTargetManager.js +1 -1
  223. package/Morph/morphTargetManager.js.map +1 -1
  224. package/Particles/Node/Blocks/Update/updateNoiseBlock.js +1 -1
  225. package/Particles/Node/Blocks/Update/updateNoiseBlock.js.map +1 -1
  226. package/Particles/Node/Blocks/particleSourceTextureBlock.d.ts +11 -1
  227. package/Particles/Node/Blocks/particleSourceTextureBlock.js +25 -11
  228. package/Particles/Node/Blocks/particleSourceTextureBlock.js.map +1 -1
  229. package/Particles/Node/nodeParticleSystemSet.helper.js +3 -3
  230. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  231. package/Particles/Node/nodeParticleSystemSet.js +1 -1
  232. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  233. package/Particles/computeShaderParticleSystem.js +2 -0
  234. package/Particles/computeShaderParticleSystem.js.map +1 -1
  235. package/Particles/gpuParticleSystem.d.ts +14 -0
  236. package/Particles/gpuParticleSystem.js +94 -12
  237. package/Particles/gpuParticleSystem.js.map +1 -1
  238. package/Particles/particleSystem.js +4 -1
  239. package/Particles/particleSystem.js.map +1 -1
  240. package/Particles/pointsCloudSystem.js +46 -47
  241. package/Particles/pointsCloudSystem.js.map +1 -1
  242. package/Particles/solidParticleSystem.js +5 -6
  243. package/Particles/solidParticleSystem.js.map +1 -1
  244. package/Particles/thinParticleSystem.js +3 -4
  245. package/Particles/thinParticleSystem.js.map +1 -1
  246. package/Particles/webgl2ParticleSystem.js +2 -1
  247. package/Particles/webgl2ParticleSystem.js.map +1 -1
  248. package/Physics/v1/Plugins/ammoJSPlugin.js +0 -8
  249. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  250. package/Physics/v2/characterController.js +4 -8
  251. package/Physics/v2/characterController.js.map +1 -1
  252. package/Physics/v2/ragdoll.js +1 -2
  253. package/Physics/v2/ragdoll.js.map +1 -1
  254. package/PostProcesses/postProcess.js +3 -3
  255. package/PostProcesses/postProcess.js.map +1 -1
  256. package/PostProcesses/thinDepthOfFieldEffect.js +2 -2
  257. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  258. package/Probes/reflectionProbe.js +0 -1
  259. package/Probes/reflectionProbe.js.map +1 -1
  260. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -5
  261. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  262. package/Rendering/depthRenderer.js +0 -11
  263. package/Rendering/depthRenderer.js.map +1 -1
  264. package/Rendering/depthRendererSceneComponent.js +1 -1
  265. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  266. package/Rendering/geometryBufferRenderer.js +0 -1
  267. package/Rendering/geometryBufferRenderer.js.map +1 -1
  268. package/Rendering/objectRenderer.js +7 -5
  269. package/Rendering/objectRenderer.js.map +1 -1
  270. package/Rendering/thinDepthPeelingRenderer.js +1 -1
  271. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  272. package/Rendering/utilityLayerRenderer.js +1 -1
  273. package/Rendering/utilityLayerRenderer.js.map +1 -1
  274. package/Shaders/ShadersInclude/screenSpaceRayTrace.js +18 -8
  275. package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  276. package/Shaders/gpuRenderParticles.vertex.js +4 -0
  277. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  278. package/Shaders/gpuUpdateParticles.vertex.js +15 -3
  279. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  280. package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js +18 -7
  281. package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  282. package/ShadersWGSL/gpuUpdateParticles.compute.js +16 -1
  283. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  284. package/Sprites/spriteManager.js +4 -4
  285. package/Sprites/spriteManager.js.map +1 -1
  286. package/XR/features/WebXRAnchorSystem.js +2 -2
  287. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  288. package/XR/features/WebXRHandTracking.js +1 -1
  289. package/XR/features/WebXRHandTracking.js.map +1 -1
  290. package/XR/features/WebXRNearInteraction.js +1 -1
  291. package/XR/features/WebXRNearInteraction.js.map +1 -1
  292. package/XR/motionController/webXRMicrosoftMixedRealityController.js +1 -1
  293. package/XR/motionController/webXRMicrosoftMixedRealityController.js.map +1 -1
  294. package/XR/motionController/webXROculusTouchMotionController.js +1 -1
  295. package/XR/motionController/webXROculusTouchMotionController.js.map +1 -1
  296. package/XR/webXRFeaturesManager.js +1 -1
  297. package/XR/webXRFeaturesManager.js.map +1 -1
  298. package/assetContainer.js +1 -1
  299. package/assetContainer.js.map +1 -1
  300. package/package.json +1 -1
  301. package/scene.d.ts +16 -0
  302. package/scene.js +28 -0
  303. package/scene.js.map +1 -1
  304. package/sceneComponent.js +1 -1
  305. package/sceneComponent.js.map +1 -1
@@ -1312,7 +1312,7 @@ export class OpenPBRMaterial extends OpenPBRMaterialBase {
1312
1312
  }
1313
1313
  const previousEffect = subMesh.effect;
1314
1314
  const lightDisposed = defines._areLightsDisposed;
1315
- let effect = this._prepareEffect(mesh, subMesh.getRenderingMesh(), defines, this.onCompiled, this.onError, useInstances, null);
1315
+ const effect = this._prepareEffect(mesh, subMesh.getRenderingMesh(), defines, this.onCompiled, this.onError, useInstances, null);
1316
1316
  let forceWasNotReadyPreviously = false;
1317
1317
  if (effect) {
1318
1318
  if (this._onEffectCreatedObservable) {
@@ -1322,7 +1322,6 @@ export class OpenPBRMaterial extends OpenPBRMaterialBase {
1322
1322
  }
1323
1323
  // Use previous effect while new one is compiling
1324
1324
  if (this.allowShaderHotSwapping && previousEffect && !effect.isReady()) {
1325
- effect = previousEffect;
1326
1325
  defines.markAsUnprocessed();
1327
1326
  forceWasNotReadyPreviously = this.isFrozen;
1328
1327
  if (lightDisposed) {
@@ -1429,11 +1428,10 @@ export class OpenPBRMaterial extends OpenPBRMaterialBase {
1429
1428
  const mustRebind = this._mustRebind(scene, effect, subMesh, mesh.visibility);
1430
1429
  // Bones
1431
1430
  BindBonesParameters(mesh, this._activeEffect, this.prePassConfiguration);
1432
- let radianceTexture = null;
1433
1431
  const ubo = this._uniformBuffer;
1434
1432
  if (mustRebind) {
1435
1433
  this.bindViewProjection(effect);
1436
- radianceTexture = this._getRadianceTexture();
1434
+ const radianceTexture = this._getRadianceTexture();
1437
1435
  if (!ubo.useUbo || !this.isFrozen || !ubo.isSync || subMesh._drawWrapper._forceRebindOnNextCall) {
1438
1436
  // Texture uniforms
1439
1437
  if (scene.texturesEnabled) {
@@ -1697,7 +1695,7 @@ export class OpenPBRMaterial extends OpenPBRMaterialBase {
1697
1695
  if (defines.TANGENT) {
1698
1696
  fallbacks.addFallback(fallbackRank++, "TANGENT");
1699
1697
  }
1700
- fallbackRank = HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights, fallbackRank++);
1698
+ fallbackRank = HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights, fallbackRank);
1701
1699
  if (defines.SPECULARTERM) {
1702
1700
  fallbacks.addFallback(fallbackRank++, "SPECULARTERM");
1703
1701
  }