@zephyr3d/scene 0.9.25 → 0.9.26
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.
- package/dist/animation/hair/gpu_hair_simulation.js +1090 -0
- package/dist/animation/hair/gpu_hair_simulation.js.map +1 -0
- package/dist/animation/joint_dynamics/controller.js +7 -5
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +81 -5
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
- package/dist/animation/morphtrack.js +3 -4
- package/dist/animation/morphtrack.js.map +1 -1
- package/dist/animation/skeleton.js +58 -24
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/spring/multi_chain_spring_system.js +577 -179
- package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
- package/dist/animation/spring/spring_collider.js +4 -3
- package/dist/animation/spring/spring_collider.js.map +1 -1
- package/dist/animation/spring/spring_node_pose_tracker.js +40 -0
- package/dist/animation/spring/spring_node_pose_tracker.js.map +1 -0
- package/dist/animation/spring/spring_particle.js +2 -0
- package/dist/animation/spring/spring_particle.js.map +1 -1
- package/dist/animation/spring/spring_system.js +11 -3
- package/dist/animation/spring/spring_system.js.map +1 -1
- package/dist/animation/spring_modifier.js +10 -0
- package/dist/animation/spring_modifier.js.map +1 -1
- package/dist/app/engine.js +53 -43
- package/dist/app/engine.js.map +1 -1
- package/dist/app/scriptingsystem.js +119 -6
- package/dist/app/scriptingsystem.js.map +1 -1
- package/dist/app/scriptregistry.js +3 -2
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +284 -67
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/loaders/zhair/zhair_format.js +288 -0
- package/dist/asset/loaders/zhair/zhair_format.js.map +1 -0
- package/dist/asset/loaders/zhair/zhair_loader.js +221 -0
- package/dist/asset/loaders/zhair/zhair_loader.js.map +1 -0
- package/dist/asset/model.js +178 -67
- package/dist/asset/model.js.map +1 -1
- package/dist/camera/camera.js +193 -21
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/perspectivecamera.js +3 -1
- package/dist/camera/perspectivecamera.js.map +1 -1
- package/dist/index.d.ts +4019 -1278
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/material/eye.js +932 -0
- package/dist/material/eye.js.map +1 -0
- package/dist/material/hair.js +917 -0
- package/dist/material/hair.js.map +1 -0
- package/dist/material/hairstrand.js +842 -0
- package/dist/material/hairstrand.js.map +1 -0
- package/dist/material/hairstrand_data.js +162 -0
- package/dist/material/hairstrand_data.js.map +1 -0
- package/dist/material/lambert.js +5 -2
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +338 -300
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +120 -19
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/albedocolor.js +1 -1
- package/dist/material/mixins/albedocolor.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +5 -3
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +5 -4
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +3 -3
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +5 -5
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +3 -3
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +73 -18
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +4 -4
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/mixins/texture.js +48 -11
- package/dist/material/mixins/texture.js.map +1 -1
- package/dist/material/mtoon.js +6 -5
- package/dist/material/mtoon.js.map +1 -1
- package/dist/material/pbrblueprint.js +146 -28
- package/dist/material/pbrblueprint.js.map +1 -1
- package/dist/material/pbrblueprint_instance.js +501 -0
- package/dist/material/pbrblueprint_instance.js.map +1 -0
- package/dist/material/pbrmr.js +15 -16
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/shader/helper.js +330 -20
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/shader/terrain_blend.js +55 -0
- package/dist/material/shader/terrain_blend.js.map +1 -0
- package/dist/material/skin.js +192 -32
- package/dist/material/skin.js.map +1 -1
- package/dist/material/spriteblueprint.js +16 -1
- package/dist/material/spriteblueprint.js.map +1 -1
- package/dist/material/subsurfaceprofile.js +86 -23
- package/dist/material/subsurfaceprofile.js.map +1 -1
- package/dist/material/water.js +3 -1
- package/dist/material/water.js.map +1 -1
- package/dist/posteffect/bloom.js +167 -7
- package/dist/posteffect/bloom.js.map +1 -1
- package/dist/posteffect/coloradjust.js +2 -1
- package/dist/posteffect/coloradjust.js.map +1 -1
- package/dist/posteffect/compositor.js.map +1 -1
- package/dist/posteffect/fxaa.js +2 -1
- package/dist/posteffect/fxaa.js.map +1 -1
- package/dist/posteffect/grayscale.js +3 -1
- package/dist/posteffect/grayscale.js.map +1 -1
- package/dist/posteffect/motionblur.js +4 -1
- package/dist/posteffect/motionblur.js.map +1 -1
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/skinsss.js +368 -69
- package/dist/posteffect/skinsss.js.map +1 -1
- package/dist/posteffect/ssgi.js +16 -9
- package/dist/posteffect/ssgi.js.map +1 -1
- package/dist/posteffect/ssr.js +3 -0
- package/dist/posteffect/ssr.js.map +1 -1
- package/dist/posteffect/sss.js +91 -34
- package/dist/posteffect/sss.js.map +1 -1
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/posteffect/tonemap.js +44 -1
- package/dist/posteffect/tonemap.js.map +1 -1
- package/dist/render/abuffer_oit.js +45 -39
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/cull_visitor.js +19 -0
- package/dist/render/cull_visitor.js.map +1 -1
- package/dist/render/depthpass.js +36 -2
- package/dist/render/depthpass.js.map +1 -1
- package/dist/render/drawable_mixin.js +26 -1
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/dualdepthpeeling_oit.js +52 -51
- package/dist/render/dualdepthpeeling_oit.js.map +1 -1
- package/dist/render/envlight.js +1 -1
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/fbm_wavegenerator.js +3 -0
- package/dist/render/fbm_wavegenerator.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +3 -0
- package/dist/render/gerstner_wavegenerator.js.map +1 -1
- package/dist/render/globalbindgroup_allocator.js +3 -0
- package/dist/render/globalbindgroup_allocator.js.map +1 -1
- package/dist/render/oit.js +29 -0
- package/dist/render/oit.js.map +1 -0
- package/dist/render/render_queue.js +3 -0
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
- package/dist/render/rendergraph/executor.js +2 -0
- package/dist/render/rendergraph/executor.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +61 -1
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/rendergraph.js.map +1 -1
- package/dist/render/rendergraph/texture_affinity_cache.js +1 -1
- package/dist/render/rendergraph/texture_affinity_cache.js.map +1 -1
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/shadow_mask_pass.js +73 -8
- package/dist/render/shadow_mask_pass.js.map +1 -1
- package/dist/render/sky.js +166 -126
- package/dist/render/sky.js.map +1 -1
- package/dist/render/weightedblended_oit.js +36 -35
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/basesprite.js +8 -0
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/batchgroup.js +3 -0
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +4 -1
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/hair.js +963 -0
- package/dist/scene/hair.js.map +1 -0
- package/dist/scene/light.js +5 -1
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/mesh.js +481 -47
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/meshdrawable.js +6 -0
- package/dist/scene/meshdrawable.js.map +1 -1
- package/dist/scene/msdftext.js +3 -0
- package/dist/scene/msdftext.js.map +1 -1
- package/dist/scene/msdftextsprite.js +3 -0
- package/dist/scene/msdftextsprite.js.map +1 -1
- package/dist/scene/particlesys.js +6 -0
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/scene.js +3 -0
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +6 -1
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/terrain-cm/grass.js +3 -0
- package/dist/scene/terrain-cm/grass.js.map +1 -1
- package/dist/scene/terrain-cm/grassmaterial.js +3 -0
- package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +6 -0
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/scene/terrain-cm/texture_cache.js +309 -0
- package/dist/scene/terrain-cm/texture_cache.js.map +1 -0
- package/dist/scene/water.js +6 -0
- package/dist/scene/water.js.map +1 -1
- package/dist/shaders/atmosphere.js.map +1 -1
- package/dist/shaders/diffusion.js +54 -0
- package/dist/shaders/diffusion.js.map +1 -0
- package/dist/shaders/shadow.js +33 -21
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shaders/temporal.js +71 -33
- package/dist/shaders/temporal.js.map +1 -1
- package/dist/shadow/dom.js +546 -0
- package/dist/shadow/dom.js.map +1 -0
- package/dist/shadow/pcf_opt.js +3 -5
- package/dist/shadow/pcf_opt.js.map +1 -1
- package/dist/shadow/pcf_pd.js +1 -1
- package/dist/shadow/pcf_pd.js.map +1 -1
- package/dist/shadow/receiver_bias.js +41 -0
- package/dist/shadow/receiver_bias.js.map +1 -0
- package/dist/shadow/shader.js +20 -60
- package/dist/shadow/shader.js.map +1 -1
- package/dist/shadow/shadow_impl.js +89 -0
- package/dist/shadow/shadow_impl.js.map +1 -1
- package/dist/shadow/shadow_region.js +50 -50
- package/dist/shadow/shadow_region.js.map +1 -1
- package/dist/shadow/shadowmapper.js +150 -37
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shapes/shape.js +11 -2
- package/dist/shapes/shape.js.map +1 -1
- package/dist/shapes/sphere.js +50 -9
- package/dist/shapes/sphere.js.map +1 -1
- package/dist/utility/blueprint/common/constants.js +112 -2
- package/dist/utility/blueprint/common/constants.js.map +1 -1
- package/dist/utility/blueprint/material/func.js +142 -49
- package/dist/utility/blueprint/material/func.js.map +1 -1
- package/dist/utility/blueprint/material/ir.js +490 -25
- package/dist/utility/blueprint/material/ir.js.map +1 -1
- package/dist/utility/blueprint/material/texture.js +898 -4
- package/dist/utility/blueprint/material/texture.js.map +1 -1
- package/dist/utility/serialization/manager.js +431 -100
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +370 -3
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/batch.js +4 -0
- package/dist/utility/serialization/scene/batch.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +133 -1
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/common.js +26 -5
- package/dist/utility/serialization/scene/common.js.map +1 -1
- package/dist/utility/serialization/scene/hair.js +1141 -0
- package/dist/utility/serialization/scene/hair.js.map +1 -0
- package/dist/utility/serialization/scene/light.js +84 -4
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +1867 -166
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +231 -14
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +141 -7
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/particle.js +4 -0
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/primitive.js +18 -0
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/sprite.js +4 -0
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +4 -0
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/text.js +4 -0
- package/dist/utility/serialization/scene/text.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +4 -0
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/dist/utility/shprojector.js +96 -95
- package/dist/utility/shprojector.js.map +1 -1
- package/dist/values.js +49 -2
- package/dist/values.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.js","sources":["../../../../src/utility/serialization/scene/material.ts"],"sourcesContent":["import type { FaceMode, Texture2D } from '@zephyr3d/device';\r\nimport type { BlendMode } from '../../../material';\r\nimport {\r\n BlinnMaterial,\r\n LambertMaterial,\r\n MeshMaterial,\r\n MToonMaterial,\r\n ParticleMaterial,\r\n PBRBluePrintMaterial,\r\n PBRMetallicRoughnessMaterial,\r\n PBRSpecularGlossinessMaterial,\r\n SkinMaterial,\r\n SubsurfaceProfile,\r\n type MToonOutlineWidthMode,\r\n type SubsurfaceProfilePreset,\r\n SpriteBlueprintMaterial,\r\n UnlitMaterial\r\n} from '../../../material';\r\nimport type { PBRBlueprintOutputName } from '../../../material/pbrblueprint';\r\nimport { defineProps, type PropertyAccessor, type SerializableClass } from '../types';\r\nimport type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport { getTextureProps } from './common';\r\nimport type { ResourceManager } from '../manager';\r\nimport { getMeshMaterialInstanceUniformsClass } from './common';\r\nimport { SpriteMaterial } from '../../../material/sprite';\r\nimport { StandardSpriteMaterial } from '../../../material/sprite_std';\r\nimport type { PBRReflectionMode } from '../../../material/mixins/lightmodel/pbrmetallicroughness';\r\n\r\ntype PBRMaterial = PBRMetallicRoughnessMaterial | PBRSpecularGlossinessMaterial;\r\ntype LitPropTypes = LambertMaterial | BlinnMaterial | SkinMaterial | PBRMaterial;\r\ntype UnlitPropTypes = UnlitMaterial | LitPropTypes;\r\n\r\nfunction createBlueprintOutputHiddenPredicate(_outputs: readonly PBRBlueprintOutputName[]) {\r\n return function (this: any) {\r\n return this instanceof PBRBluePrintMaterial;\r\n };\r\n}\r\n\r\nexport function getSubsurfaceProfileClass(): SerializableClass {\r\n return {\r\n ctor: SubsurfaceProfile,\r\n name: 'SubsurfaceProfile',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Preset',\r\n type: 'string',\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n }\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.str[0] = this.preset;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.preset = value.str[0] as SubsurfaceProfilePreset;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n type: 'rgb',\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathColor.x;\r\n value.num[1] = this.meanFreePathColor.y;\r\n value.num[2] = this.meanFreePathColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterDistance',\r\n type: 'float',\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathDistance;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWeight',\r\n type: 'float',\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.strength;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterScale',\r\n type: 'float',\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WorldUnitScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.worldUnitScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.worldUnitScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BoundaryColorBleed',\r\n type: 'float',\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.boundaryColorBleed;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.boundaryColorBleed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionTintColor',\r\n type: 'rgb',\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.transmissionTintColor.x;\r\n value.num[1] = this.transmissionTintColor.y;\r\n value.num[2] = this.transmissionTintColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.transmissionTintColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ExtinctionScale',\r\n type: 'float',\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.extinctionScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.extinctionScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.normalScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatteringDistribution',\r\n type: 'float',\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scatteringDistribution;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scatteringDistribution = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction getPBRCommonProps(manager: ResourceManager): PropertyAccessor<PBRMaterial>[] {\r\n const supportsSSSThicknessAuthoring = function (this: PBRMaterial) {\r\n return (\r\n !this.$isInstance &&\r\n !!(this.transmission || (this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile)\r\n );\r\n };\r\n return defineProps([\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction for the material surface',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength multiplier for the occlusion texture effect',\r\n type: 'float',\r\n phase: 2,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['AO']),\r\n isValid(this: PBRMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'occlusionTexture', '2D', false, 0, undefined, ['AO']),\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description:\r\n 'Display-referred intensity multiplier for the emissive color and texture, used by legacy ' +\r\n 'lighting. Physical lighting uses EmissiveLuminance instead.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'EmissiveLuminance',\r\n description:\r\n 'Emissive multiplier used by physical lighting. With EmissiveExposureWeight at 1 it is a ' +\r\n 'luminance in cd/m²: a display is 200-1000, a neon sign 5,000-20,000, a sunlit white ' +\r\n 'surface ~25,000. With the weight at 0, as on imported glTF/FBX materials, the exposure ' +\r\n 'cancels out and it is a display-referred multiplier where the useful range is about [0, 1].',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveLuminance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveLuminance = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveLuminance : 1000;\r\n }\r\n },\r\n {\r\n name: 'EmissiveExposureWeight',\r\n description:\r\n 'How strongly the emissive term follows camera exposure, and therefore what unit ' +\r\n 'EmissiveLuminance carries. 1 reads it as a cd/m² luminance that dims as the camera stops ' +\r\n 'down; 0 cancels the exposure out, making it a display-referred multiplier that ignores ' +\r\n 'aperture, shutter and ISO. Imported glTF/FBX materials are set to 0.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveExposureWeight;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveExposureWeight = value.num[0];\r\n },\r\n // Materials are not scene-bound, so this cannot be gated on lightingMode. It is inert in\r\n // legacy anyway (pre-exposure is 1 there), so it stays visible like the other emissive props.\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveExposureWeight : 1;\r\n }\r\n },\r\n {\r\n name: 'RectSpecularScale',\r\n type: 'float',\r\n options: {\r\n label: 'RectSpecularScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.rectSpecularScale;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.rectSpecularScale = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.rectSpecularScale : 1;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'emissiveTexture', '2D', true, 0, undefined, ['Emissive']),\r\n ...getTextureProps<PBRMaterial>(manager, 'specularTexture', '2D', false, 0, undefined, [\r\n 'SpecularWeight'\r\n ]),\r\n {\r\n name: 'Transmission',\r\n description: 'If true, enables light transmission through the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.transmission;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.transmission = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'TransmissionFactor',\r\n description: 'Amount of transmitted light, from fully opaque to fully transparent',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.transmissionFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.transmissionFactor = value.num[0];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'transmissionTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'ThicknessFactor',\r\n description: 'Physical thickness used by transmission and volume attenuation',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.thicknessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.thicknessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'thicknessTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'AttenuationColor',\r\n description: 'Color tint applied to transmitted light as it travels through the material',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationColor.x;\r\n value.num[1] = this.attenuationColor.y;\r\n value.num[2] = this.attenuationColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.attenuationColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'AttenuationDistance',\r\n description: 'Distance over which transmitted light is attenuated inside the material',\r\n type: 'float',\r\n phase: 1,\r\n default: 99999,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationDistance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.attenuationDistance = value.num[0];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'Iridescence',\r\n description: 'If true, enables thin-film iridescence on the material surface',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.iridescence;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescence = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'IridescenceFactor',\r\n description: 'Strength of the iridescence effect',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'IridescenceIOR',\r\n description: 'Index of refraction used for the iridescence layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.3,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceIor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceIor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMin',\r\n description: 'Minimum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 100,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMin;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMin = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMax',\r\n description: 'Maximum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 400,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMax;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMax = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceThicknessTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'ClearCoat',\r\n description: 'If true, enables a clear coat layer on top of the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.clearcoat;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoat = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'ClearCoatIntensity',\r\n description: 'Strength of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatIntensity;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.clearcoat;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatIntensityTexture', '2D', false, 1, function () {\r\n return this.clearcoat;\r\n }),\r\n {\r\n name: 'ClearCoatRoughnessFactor',\r\n description: 'Roughness of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.clearcoat;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatRoughnessTexture', '2D', false, 1, function () {\r\n return this.clearcoat;\r\n }),\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatNormalTexture', '2D', false, 1, function () {\r\n return this.clearcoat;\r\n }),\r\n {\r\n name: 'Sheen',\r\n description: 'If true, enables a soft fabric-like sheen layer',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.sheen;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheen = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'SheenColorFactor',\r\n description: 'Color of the sheen layer',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenColorFactor.x;\r\n value.num[1] = this.sheenColorFactor.y;\r\n value.num[2] = this.sheenColorFactor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenColorTexture', '2D', true, 1, function () {\r\n return this.sheen;\r\n }),\r\n {\r\n name: 'SheenRoughnessFactor',\r\n description: 'Roughness of the sheen layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenRoughnessTexture', '2D', false, 1, function () {\r\n return this.sheen;\r\n }),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n}\r\n\r\nfunction getLitMaterialProps(manager: ResourceManager): PropertyAccessor<LitPropTypes>[] {\r\n return defineProps([\r\n ...getUnlitMaterialProps(manager),\r\n {\r\n name: 'doubleSidedLighting',\r\n description: 'If true, lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.doubleSidedLighting = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n description: 'Scalar applied to the normal texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.normalScale = value.num[0];\r\n },\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance && !!this.normalTexture;\r\n }\r\n },\r\n {\r\n name: 'vertexNormal',\r\n description: 'If true, uses vertex normals for lighting and normal mapping',\r\n type: 'bool',\r\n default: true,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexNormal;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexNormal = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'If true, uses vertex tangents for tangent-space normal mapping',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Tangent']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance && !!this.vertexNormal;\r\n }\r\n },\r\n ...getTextureProps<LitPropTypes>(manager, 'normalTexture', '2D', false, 0, undefined, ['Normal'])\r\n ]);\r\n}\r\n\r\nfunction getUnlitMaterialProps(manager: ResourceManager): PropertyAccessor<UnlitPropTypes>[] {\r\n return defineProps([\r\n {\r\n name: 'vertexColor',\r\n description: 'If true, multiplies the material color by per-vertex color data',\r\n type: 'bool',\r\n default: false,\r\n get(this: UnlitPropTypes, value) {\r\n value.bool[0] = this.vertexColor;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.vertexColor = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor']),\r\n isValid(this: UnlitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the material before lighting',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: UnlitPropTypes, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor', 'Opacity']),\r\n getDefaultValue(this: UnlitPropTypes) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<UnlitPropTypes>(manager, 'albedoTexture', '2D', true, 0, undefined, [\r\n 'BaseColor',\r\n 'Opacity'\r\n ])\r\n ]);\r\n}\r\n\r\nfunction getMToonMaterialProps(manager: ResourceManager): PropertyAccessor<MToonMaterial>[] {\r\n return defineProps([\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the MToon material',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'albedoTexture', '2D', true, 0),\r\n {\r\n name: 'NormalScale',\r\n description: 'Scalar applied to the MToon normal texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.normalScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.normalTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'normalTexture', '2D', false, 0),\r\n {\r\n name: 'DoubleSidedLighting',\r\n description: 'If true, MToon lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.doubleSidedLighting = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the MToon material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description: 'Intensity multiplier for the MToon emissive color and texture',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'emissiveTexture', '2D', true, 0),\r\n {\r\n name: 'ShadeColorFactor',\r\n description: 'MToon shadow-side color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadeColorFactor.x;\r\n value.num[1] = this.shadeColorFactor.y;\r\n value.num[2] = this.shadeColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadeColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadeColorFactor : [0, 0, 0];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadeMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'ShadingShiftFactor',\r\n description: 'MToon terminator shift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingShiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'ShadingShiftTextureScale',\r\n description: 'Scale applied to the MToon shading shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftTextureScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftTextureScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.shadingShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadingShiftTexture', '2D', false, 0),\r\n {\r\n name: 'ShadingToonyFactor',\r\n description: 'MToon shadow edge sharpness factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 0.99\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingToonyFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingToonyFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingToonyFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'GIEqualizationFactor',\r\n description: 'MToon indirect lighting equalization factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.giEqualizationFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.giEqualizationFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.giEqualizationFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'MatcapFactor',\r\n description: 'MToon matcap color factor',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.matcapFactor.x;\r\n value.num[1] = this.matcapFactor.y;\r\n value.num[2] = this.matcapFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.matcapFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.matcapFactor : [1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'matcapTexture', '2D', true, 0),\r\n {\r\n name: 'ParametricRimColorFactor',\r\n description: 'MToon parametric rim color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimColorFactor.x;\r\n value.num[1] = this.parametricRimColorFactor.y;\r\n value.num[2] = this.parametricRimColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimColorFactor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'ParametricRimFresnelPowerFactor',\r\n description: 'MToon parametric rim Fresnel power factor',\r\n type: 'float',\r\n default: 5,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimFresnelPowerFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimFresnelPowerFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimFresnelPowerFactor : 5;\r\n }\r\n },\r\n {\r\n name: 'ParametricRimLiftFactor',\r\n description: 'MToon parametric rim lift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimLiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimLiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimLiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'RimLightingMixFactor',\r\n description: 'MToon rim lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.rimLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.rimLightingMixFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.rimLightingMixFactor : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'rimMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'OutlineWidthMode',\r\n description: 'MToon outline width mode',\r\n type: 'string',\r\n default: 'none',\r\n options: {\r\n enum: {\r\n labels: ['None', 'World Coordinates', 'Screen Coordinates'],\r\n values: ['none', 'worldCoordinates', 'screenCoordinates']\r\n }\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.str[0] = this.outlineWidthMode;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthMode = value.str[0] as MToonOutlineWidthMode;\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OutlineWidthFactor',\r\n description: 'MToon outline width factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineWidthFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'outlineWidthMultiplyTexture', '2D', false, 1, function () {\r\n return this.outlineWidthMode !== 'none';\r\n }),\r\n {\r\n name: 'OutlineColorFactor',\r\n description: 'MToon outline color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineColorFactor.x;\r\n value.num[1] = this.outlineColorFactor.y;\r\n value.num[2] = this.outlineColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineLightingMixFactor',\r\n description: 'MToon outline lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineLightingMixFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineUsesTangentNormals',\r\n description: 'Use the tangent attribute xyz as smooth normals for MToon outline expansion',\r\n type: 'boolean',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.outlineUsesTangentNormals;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineUsesTangentNormals = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'uvAnimationMaskTexture', '2D', false, 0),\r\n {\r\n name: 'UVAnimationScrollXSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the X axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollXSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollXSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollXSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationScrollYSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the Y axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollYSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollYSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollYSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationRotationSpeedFactor',\r\n description: 'MToon UV animation rotation speed',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationRotationSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationRotationSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationRotationSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'TransparentWithZWrite',\r\n description: 'If true, transparent MToon pixels also write depth',\r\n type: 'bool',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.transparentWithZWrite;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.transparentWithZWrite = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'RenderQueueOffsetNumber',\r\n description: 'MToon render queue offset number',\r\n type: 'int',\r\n default: 0,\r\n options: {\r\n minValue: -9,\r\n maxValue: 9\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.renderQueueOffsetNumber;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.renderQueueOffsetNumber = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n}\r\n\r\n/** @internal */\r\nexport function getMeshMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MeshMaterial,\r\n name: 'MeshMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaCutoff',\r\n description:\r\n 'If greater then 0, pixels which have alpha smaller than alpha cutoff will be discarded',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.alphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaCutoff = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlphaToCoverage',\r\n description: 'If true, alpha-to-coverage will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaToCoverage;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaToCoverage = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlphaDither',\r\n description: 'If true, alpha-dithering will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaDither;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaDither = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return !this.$isInstance && this.alphaCutoff > 0;\r\n }\r\n },\r\n {\r\n name: 'BlendMode',\r\n description: 'Blending mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Blend', 'Additive'], values: ['none', 'blend', 'additive'] }\r\n },\r\n default: 'none',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.blendMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.blendMode = value.str[0] as BlendMode;\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'TransparentShadowCaster',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.transparentShadowCaster;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.transparentShadowCaster = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return !this.$isInstance && this.blendMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'ShadowAlphaCutoff',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.shadowAlphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.shadowAlphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return !this.$isInstance && this.blendMode !== 'none' && this.transparentShadowCaster;\r\n }\r\n },\r\n {\r\n name: 'CullMode',\r\n description: 'Cull mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Front', 'Back'], values: ['none', 'front', 'back'] }\r\n },\r\n default: 'back',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.cullMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.cullMode = value.str[0] as FaceMode;\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'Opacity',\r\n description: 'Opacity value for this material, no effect if blendingMode is `none`',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 1,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.opacity;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.opacity = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Opacity']),\r\n getDefaultValue(this: MeshMaterial) {\r\n return this.$isInstance ? this.coreMaterial.opacity : 1;\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'TAA strength for this material',\r\n type: 'float',\r\n options: {\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 15 / 16,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.TAAStrength = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MeshMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteMaterialClass(_manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteMaterial,\r\n name: 'SpriteMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getStandardSpriteMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: StandardSpriteMaterial,\r\n name: 'StandardSpriteMaterial',\r\n parent: SpriteMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpriteTexture',\r\n description: 'Texture file path for the sprite',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(value) {\r\n value.str[0] = manager.getAssetId(this.spriteTexture) ?? '';\r\n },\r\n async set(this: StandardSpriteMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.spriteTexture = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, {\r\n linearColorSpace: false\r\n });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.spriteTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(StandardSpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getParticleMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: ParticleMaterial,\r\n name: 'ParticleMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaMap',\r\n description: 'Alpha texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.alphaMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.alphaMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.alphaMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'RampMap',\r\n description: 'Ramp texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.rampMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.rampMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.rampMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(ParticleMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterial,\r\n parent: PBRMetallicRoughnessMaterial,\r\n name: 'PBRBluePrintMaterial',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteBlueprintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteBlueprintMaterial,\r\n parent: MeshMaterial,\r\n name: 'SpriteBlueprintMaterial',\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteBlueprintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getUnlitMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: UnlitMaterial,\r\n parent: MeshMaterial,\r\n name: 'UnlitMaterial',\r\n getProps() {\r\n return getUnlitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(UnlitMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getMToonMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MToonMaterial,\r\n parent: MeshMaterial,\r\n name: 'MToonMaterial',\r\n getProps() {\r\n return getMToonMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MToonMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getLambertMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: LambertMaterial,\r\n parent: MeshMaterial,\r\n name: 'LambertMaterial',\r\n getProps() {\r\n return getLitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(LambertMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getBlinnMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: BlinnMaterial,\r\n parent: MeshMaterial,\r\n name: 'BlinnMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Shininess value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2048\r\n },\r\n get(this: BlinnMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: BlinnMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: BlinnMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 32;\r\n }\r\n },\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(BlinnMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSkinMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SkinMaterial,\r\n parent: MeshMaterial,\r\n name: 'SkinMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Blinn specular exponent for skin highlights',\r\n type: 'float',\r\n default: 72,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 2048\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 72;\r\n }\r\n },\r\n {\r\n name: 'SpecularStrength',\r\n description: 'Direct specular strength for restrained skin highlights',\r\n type: 'float',\r\n default: 0.22,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.specularStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.specularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularStrength : 0.22;\r\n }\r\n },\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap amount for visible diffuse lighting',\r\n type: 'float',\r\n default: 0.28,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseWrap : 0.28;\r\n }\r\n },\r\n {\r\n name: 'DiffuseSoftness',\r\n description: 'Blend from hard Lambert lighting to wrapped diffuse lighting',\r\n type: 'float',\r\n default: 0.45,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseSoftness;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseSoftness : 0.45;\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Wide wrap amount written to the Skin SSS scattering source',\r\n type: 'float',\r\n default: 0.65,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterWrap : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ScatterStrength',\r\n description: 'Strength of the lighting multiplier written to the Skin SSS side buffer',\r\n type: 'float',\r\n default: 0.7,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Warm tint for the blurred skin scattering contribution',\r\n type: 'rgba',\r\n default: [1, 0.42, 0.28, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n value.num[3] = this.scatterColor.w;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n const color = this.$isInstance ? this.coreMaterial.scatterColor : new Vector4(1, 0.42, 0.28, 1);\r\n return [color.x, color.y, color.z, color.w];\r\n }\r\n },\r\n ...getTextureProps<SkinMaterial>(manager, 'subsurfaceTexture', '2D', false, 1),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SkinMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRMetallicRoughnessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRMetallicRoughnessMaterial,\r\n parent: MeshMaterial,\r\n name: 'PBRMetallicRoughnessMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Metallic',\r\n description: 'Metallic value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.metallic;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.metallic = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Metallic']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.metallic : 1;\r\n }\r\n },\r\n {\r\n name: 'Roughness',\r\n description: 'Roughness value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.roughness;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.roughness = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Roughness']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.roughness : 1;\r\n }\r\n },\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGBA specular factor used to tint and scale specular reflections',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n value.num[3] = this.specularFactor.w;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.specularFactor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Specular', 'SpecularWeight']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'Reflection',\r\n description: 'Reflection mode',\r\n type: 'string',\r\n default: 'ggx',\r\n options: {\r\n enum: {\r\n labels: ['None', 'GGX', 'Anisotropic', 'Glint'],\r\n values: ['none', 'ggx', 'anisotropic', 'glint']\r\n }\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.reflectionMode;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.reflectionMode = value.str[0] as PBRReflectionMode;\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.reflectionMode : 'ggx';\r\n }\r\n },\r\n {\r\n name: 'Anisotropy',\r\n description: 'Strength of anisotropic reflections; values near 0 behave isotropically',\r\n type: 'float',\r\n default: 0.75,\r\n options: {\r\n animatable: true,\r\n minValue: -0.95,\r\n maxValue: 0.95\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropy;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropy = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropy : 0.75;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n {\r\n name: 'AnisotropyDirection',\r\n description: 'Rotation angle in degrees for the anisotropic highlight direction',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 360\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirection;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirection = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirection : 0;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'anisotropyDirectionTexture',\r\n '2D',\r\n false,\r\n 0,\r\n function () {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n ),\r\n {\r\n name: 'AnisotropyDirectionScaleBias',\r\n description: 'Scale and bias applied when decoding anisotropy direction from its texture',\r\n type: 'vec2',\r\n default: [1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirectionScaleBias.x;\r\n value.num[1] = this.anisotropyDirectionScaleBias.y;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirectionScaleBias = new Vector2(value.num[0], value.num[1]);\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirectionScaleBias : [1, 0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n this.reflectionMode === 'anisotropic' &&\r\n !!this.anisotropyDirectionTexture\r\n );\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceProfile',\r\n description: 'If true, enables subsurface scattering for translucent materials',\r\n type: 'object',\r\n phase: 1,\r\n default: null,\r\n options: {\r\n objectTypes: [SubsurfaceProfile]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.object[0] = this.subsurfaceProfile;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.subsurfaceProfile = (value.object[0] as SubsurfaceProfile) ?? null;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'subsurfaceTexture',\r\n '2D',\r\n false,\r\n 1,\r\n function () {\r\n return !!this.subsurfaceProfile;\r\n }\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'metallicRoughnessTexture',\r\n '2D',\r\n false,\r\n 0,\r\n undefined,\r\n ['Metallic', 'Roughness']\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'specularColorTexture',\r\n '2D',\r\n true,\r\n 0,\r\n undefined,\r\n ['Specular']\r\n ),\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRMetallicRoughnessMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRSpecularGlossinessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRSpecularGlossinessMaterial,\r\n name: 'PBRSpecularGlossinessMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGB specular color multiplier for reflected highlights',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.specularFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'GlossnessFactor',\r\n description: 'Glossiness of the surface; higher values produce sharper reflections',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.glossinessFactor;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.glossinessFactor = value.num[0];\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.glossinessFactor : 1;\r\n }\r\n },\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRSpecularGlossinessMaterial)\r\n ];\r\n}\r\n"],"names":["createBlueprintOutputHiddenPredicate","_outputs","PBRBluePrintMaterial","getSubsurfaceProfileClass","ctor","SubsurfaceProfile","name","getProps","defineProps","type","default","options","label","enum","labels","values","get","value","str","preset","set","animatable","minValue","maxValue","num","meanFreePathColor","x","y","z","Vector3","meanFreePathDistance","strength","scale","worldUnitScale","boundaryColorBleed","transmissionTintColor","extinctionScale","normalScale","scatteringDistribution","getPBRCommonProps","manager","supportsSSSThicknessAuthoring","$isInstance","transmission","subsurfaceProfile","description","ior","isValid","phase","occlusionStrength","isHidden","occlusionTexture","getTextureProps","undefined","emissiveColor","getDefaultValue","coreMaterial","emissiveStrength","emissiveLuminance","emissiveExposureWeight","rectSpecularScale","bool","transmissionFactor","call","thicknessFactor","attenuationColor","attenuationDistance","iridescence","iridescenceFactor","iridescenceIor","iridescenceThicknessMin","iridescenceThicknessMax","clearcoat","clearcoatIntensity","clearcoatRoughnessFactor","sheen","sheenColorFactor","sheenRoughnessFactor","getLitMaterialProps","getUnlitMaterialProps","doubleSidedLighting","normalTexture","vertexNormal","vertexTangent","vertexColor","color","albedoColor","w","Vector4","getMToonMaterialProps","shadeColorFactor","shadingShiftFactor","shadingShiftTextureScale","shadingShiftTexture","shadingToonyFactor","giEqualizationFactor","matcapFactor","parametricRimColorFactor","parametricRimFresnelPowerFactor","parametricRimLiftFactor","rimLightingMixFactor","outlineWidthMode","outlineWidthFactor","outlineColorFactor","outlineLightingMixFactor","outlineUsesTangentNormals","uvAnimationScrollXSpeedFactor","uvAnimationScrollYSpeedFactor","uvAnimationRotationSpeedFactor","transparentWithZWrite","renderQueueOffsetNumber","getMeshMaterialClass","MeshMaterial","alphaCutoff","alphaToCoverage","alphaDither","blendMode","transparentShadowCaster","shadowAlphaCutoff","cullMode","opacity","TAAStrength","getMeshMaterialInstanceUniformsClass","getSpriteMaterialClass","_manager","SpriteMaterial","parent","getStandardSpriteMaterialClass","StandardSpriteMaterial","mimeTypes","isNullable","getAssetId","spriteTexture","assetId","tex","fetchTexture","linearColorSpace","err","console","error","isTexture2D","getParticleMaterialClass","ParticleMaterial","alphaMap","rampMap","getPBRBluePrintMaterialClass","PBRMetallicRoughnessMaterial","getSpriteBlueprintMaterialClass","SpriteBlueprintMaterial","getUnlitMaterialClass","UnlitMaterial","getMToonMaterialClass","MToonMaterial","getLambertMaterialClass","LambertMaterial","getBlinnMaterialClass","BlinnMaterial","shininess","getSkinMaterialClass","SkinMaterial","specularStrength","diffuseWrap","diffuseSoftness","scatterWrap","scatterStrength","scatterColor","getPBRMetallicRoughnessMaterialClass","metallic","roughness","specularFactor","reflectionMode","anisotropy","anisotropyDirection","anisotropyDirectionScaleBias","Vector2","anisotropyDirectionTexture","objectTypes","object","getPBRSpecularGlossinessMaterialClass","PBRSpecularGlossinessMaterial","glossinessFactor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAASA,qCAAqCC,QAA2C,EAAA;IACvF,OAAO,WAAA;AACL,QAAA,OAAO,IAAI,YAAYC,oBAAAA;AACzB,KAAA;AACF;AAEO,SAASC,yBAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,iBAAAA;QACNC,IAAM,EAAA,mBAAA;AACNC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEF,IAAM,EAAA,QAAA;oBACNG,IAAM,EAAA,QAAA;oBACNC,OAAS,EAAA,cAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,YAAA;wBACPC,IAAM,EAAA;4BACJC,MAAQ,EAAA;AACN,gCAAA,WAAA;AACA,gCAAA,cAAA;AACA,gCAAA,kBAAA;AACA,gCAAA,aAAA;AACA,gCAAA,UAAA;AACA,gCAAA,cAAA;AACA,gCAAA;AACD,6BAAA;4BACDC,MAAQ,EAAA;AACN,gCAAA,WAAA;AACA,gCAAA,cAAA;AACA,gCAAA,mBAAA;AACA,gCAAA,aAAA;AACA,gCAAA,UAAA;AACA,gCAAA,cAAA;AACA,gCAAA;AACD;AACH;AACF,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,MAAM;AAC5B,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACE,MAAM,GAAGF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF,iBAAA;AACA,gBAAA;oBACEZ,IAAM,EAAA,cAAA;oBACNG,IAAM,EAAA,KAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,IAAA;AAAM,wBAAA;AAAK,qBAAA;oBACxBC,OAAS,EAAA;wBACPC,KAAO,EAAA,mBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;wBAChCA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACC,iBAAiB,CAACC,CAAC;wBACvCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACC,iBAAiB,CAACE,CAAC;wBACvCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACC,iBAAiB,CAACG,CAAC;AACzC,qBAAA;AACAR,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACQ,iBAAiB,GAAG,IAAII,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC/E;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,iBAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,sBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACM,oBAAoB;AAC1C,qBAAA;AACAV,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACa,oBAAoB,GAAGb,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1C;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,eAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,eAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACO,QAAQ;AAC9B,qBAAA;AACAX,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACc,QAAQ,GAAGd,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9B;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,cAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,cAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACQ,KAAK;AAC3B,qBAAA;AACAZ,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACe,KAAK,GAAGf,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC3B;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,gBAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,gBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,IAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACS,cAAc;AACpC,qBAAA;AACAb,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACgB,cAAc,GAAGhB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,oBAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,oBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACU,kBAAkB;AACxC,qBAAA;AACAd,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACiB,kBAAkB,GAAGjB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,uBAAA;oBACNG,IAAM,EAAA,KAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,IAAA;AAAM,wBAAA;AAAK,qBAAA;oBACxBC,OAAS,EAAA;wBACPC,KAAO,EAAA,uBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;wBAChCA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACW,qBAAqB,CAACT,CAAC;wBAC3CT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACW,qBAAqB,CAACR,CAAC;wBAC3CV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACW,qBAAqB,CAACP,CAAC;AAC7C,qBAAA;AACAR,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACkB,qBAAqB,GAAG,IAAIN,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACnF;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,iBAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,iBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACY,eAAe;AACrC,qBAAA;AACAhB,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACmB,eAAe,GAAGnB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,aAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,aAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACa,WAAW;AACjC,qBAAA;AACAjB,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACoB,WAAW,GAAGpB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACElB,IAAM,EAAA,wBAAA;oBACNG,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,wBAAA;wBACPS,UAAY,EAAA,IAAA;wBACZC,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACc,sBAAsB;AAC5C,qBAAA;AACAlB,oBAAAA,GAAAA,CAAAA,CAA6BH,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACqB,sBAAsB,GAAGrB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5C;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,SAASe,kBAAkBC,OAAwB,EAAA;AACjD,IAAA,MAAMC,6BAAgC,GAAA,WAAA;AACpC,QAAA,OACE,CAAC,IAAI,CAACC,WAAW,IACjB,CAAC,EAAE,IAAI,CAACC,YAAY,IAAK,IAAI,CAAmDC,iBAAiB,CAAD;AAEpG,KAAA;AACA,IAAA,OAAOpC,WAAY,CAAA;AACjB,QAAA;YACEF,IAAM,EAAA,KAAA;YACNuC,WAAa,EAAA,8CAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsB,GAAG;AACzB,aAAA;AACA1B,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC6B,GAAG,GAAG7B,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACzB,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,mBAAA;YACNuC,WAAa,EAAA,sDAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACyB,iBAAiB;AACvC,aAAA;AACA7B,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACgC,iBAAiB,GAAGhC,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC,aAAA;AACA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAM,CAAA;AACrD+C,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACS,gBAAgB;AACrD;AACF,SAAA;AACGC,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,kBAAA,EAAoB,IAAM,EAAA,KAAA,EAAO,GAAGa,SAAW,EAAA;AAAC,YAAA;AAAK,SAAA,CAAA;AAC9F,QAAA;YACE/C,IAAM,EAAA,eAAA;YACNuC,WAAa,EAAA,sDAAA;YACbpC,IAAM,EAAA,KAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;gBAC1BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC5B,CAAC;gBACnCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC3B,CAAC;gBACnCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC1B,CAAC;AACrC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACqC,aAAa,GAAG,IAAIzB,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC3E,aAAA;AACA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAY,CAAA;AAC3DuD,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACF,aAAa,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AACvE;AACF,SAAA;AACA,QAAA;YACEhD,IAAM,EAAA,kBAAA;AACNuC,YAAAA,WAAAA,EACE,2FACA,GAAA,6DAAA;YACFpC,IAAM,EAAA,OAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA;AACZ,aAAA;AACAN,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiC,gBAAgB;AACtC,aAAA;AACArC,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACwC,gBAAgB,GAAGxC,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACtC,aAAA;AACA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAY,CAAA;AAC3DuD,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACC,gBAAgB,GAAG,CAAA;AACjE;AACF,SAAA;AACA,QAAA;YACEnD,IAAM,EAAA,mBAAA;YACNuC,WACE,EAAA,0FAAA,GACA,yFACA,yFACA,GAAA,6FAAA;YACFpC,IAAM,EAAA,OAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA;AACZ,aAAA;AACAN,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACkC,iBAAiB;AACvC,aAAA;AACAtC,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACyC,iBAAiB,GAAGzC,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC,aAAA;AACA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAY,CAAA;AAC3DuD,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACE,iBAAiB,GAAG,IAAA;AAClE;AACF,SAAA;AACA,QAAA;YACEpD,IAAM,EAAA,wBAAA;YACNuC,WACE,EAAA,kFAAA,GACA,8FACA,yFACA,GAAA,sEAAA;YACFpC,IAAM,EAAA,OAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmC,sBAAsB;AAC5C,aAAA;AACAvC,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC0C,sBAAsB,GAAG1C,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5C,aAAA;;;AAGA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAY,CAAA;AAC3DuD,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACG,sBAAsB,GAAG,CAAA;AACvE;AACF,SAAA;AACA,QAAA;YACErD,IAAM,EAAA,mBAAA;YACNG,IAAM,EAAA,OAAA;YACNE,OAAS,EAAA;gBACPC,KAAO,EAAA,mBAAA;gBACPS,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACoC,iBAAiB;AACvC,aAAA;AACAxC,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC2C,iBAAiB,GAAG3C,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACI,iBAAiB,GAAG,CAAA;AAClE;AACF,SAAA;AACGR,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,iBAAA,EAAmB,IAAM,EAAA,IAAA,EAAM,GAAGa,SAAW,EAAA;AAAC,YAAA;AAAW,SAAA,CAAA;AAC/FD,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,iBAAA,EAAmB,IAAM,EAAA,KAAA,EAAO,GAAGa,SAAW,EAAA;AACrF,YAAA;AACD,SAAA,CAAA;AACD,QAAA;YACE/C,IAAM,EAAA,cAAA;YACNuC,WAAa,EAAA,0DAAA;YACbpC,IAAM,EAAA,MAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAAClB,YAAY;AACnC,aAAA;AACAvB,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC0B,YAAY,GAAG1B,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AACnC,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,qEAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsC,kBAAkB;AACxC,aAAA;AACA1C,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC6C,kBAAkB,GAAG7C,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAON,6BAAAA,CAA8BsB,IAAI,CAAC,IAAI,CAAA;AAChD;AACF,SAAA;AACGX,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,qBAAA,EAAuB,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YAC9E,OAAO,IAAI,CAACG,YAAY,IAAI,CAAC,CAAE,IAAI,CAAmDC,iBAAiB;AACzG,SAAA,CAAA;AACA,QAAA;YACEtC,IAAM,EAAA,iBAAA;YACNuC,WAAa,EAAA,gEAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACwC,eAAe;AACrC,aAAA;AACA5C,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC+C,eAAe,GAAG/C,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAON,6BAAAA,CAA8BsB,IAAI,CAAC,IAAI,CAAA;AAChD;AACF,SAAA;AACGX,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,kBAAA,EAAoB,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YAC3E,OAAO,IAAI,CAACG,YAAY,IAAI,CAAC,CAAE,IAAI,CAAmDC,iBAAiB;AACzG,SAAA,CAAA;AACA,QAAA;YACEtC,IAAM,EAAA,kBAAA;YACNuC,WAAa,EAAA,4EAAA;YACbpC,IAAM,EAAA,KAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;gBAC1BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyC,gBAAgB,CAACvC,CAAC;gBACtCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyC,gBAAgB,CAACtC,CAAC;gBACtCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyC,gBAAgB,CAACrC,CAAC;AACxC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACgD,gBAAgB,GAAG,IAAIpC,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC9E,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAON,6BAAAA,CAA8BsB,IAAI,CAAC,IAAI,CAAA;AAChD;AACF,SAAA;AACA,QAAA;YACEzD,IAAM,EAAA,qBAAA;YACNuC,WAAa,EAAA,yEAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,KAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC0C,mBAAmB;AACzC,aAAA;AACA9C,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACiD,mBAAmB,GAAGjD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACzC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAON,6BAAAA,CAA8BsB,IAAI,CAAC,IAAI,CAAA;AAChD;AACF,SAAA;AACA,QAAA;YACEzD,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,gEAAA;YACbpC,IAAM,EAAA,MAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACM,WAAW;AAClC,aAAA;AACA/C,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACkD,WAAW,GAAGlD,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAClC,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,mBAAA;YACNuC,WAAa,EAAA,oCAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4C,iBAAiB;AACvC,aAAA;AACAhD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACmD,iBAAiB,GAAGnD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACyB,WAAW;AAChD;AACF,SAAA;AACGf,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,oBAAA,EAAsB,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YAC7E,OAAO,IAAI,CAAC2B,WAAW;AACzB,SAAA,CAAA;AACA,QAAA;YACE7D,IAAM,EAAA,gBAAA;YACNuC,WAAa,EAAA,oDAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC6C,cAAc;AACpC,aAAA;AACAjD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACoD,cAAc,GAAGpD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACyB,WAAW;AAChD;AACF,SAAA;AACA,QAAA;YACE7D,IAAM,EAAA,yBAAA;YACNuC,WAAa,EAAA,2EAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC8C,uBAAuB;AAC7C,aAAA;AACAlD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACqD,uBAAuB,GAAGrD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACyB,WAAW;AAChD;AACF,SAAA;AACA,QAAA;YACE7D,IAAM,EAAA,yBAAA;YACNuC,WAAa,EAAA,2EAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC+C,uBAAuB;AAC7C,aAAA;AACAnD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACsD,uBAAuB,GAAGtD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACyB,WAAW;AAChD;AACF,SAAA;AACGf,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,6BAAA,EAA+B,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YACtF,OAAO,IAAI,CAAC2B,WAAW;AACzB,SAAA,CAAA;AACA,QAAA;YACE7D,IAAM,EAAA,WAAA;YACNuC,WAAa,EAAA,4DAAA;YACbpC,IAAM,EAAA,MAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACW,SAAS;AAChC,aAAA;AACApD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACuD,SAAS,GAAGvD,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAChC,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,kCAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiD,kBAAkB;AACxC,aAAA;AACArD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACwD,kBAAkB,GAAGxD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC8B,SAAS;AAC9C;AACF,SAAA;AACGpB,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,2BAAA,EAA6B,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YACpF,OAAO,IAAI,CAACgC,SAAS;AACvB,SAAA,CAAA;AACA,QAAA;YACElE,IAAM,EAAA,0BAAA;YACNuC,WAAa,EAAA,mCAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACkD,wBAAwB;AAC9C,aAAA;AACAtD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAACyD,wBAAwB,GAAGzD,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC8B,SAAS;AAC9C;AACF,SAAA;AACGpB,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,2BAAA,EAA6B,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YACpF,OAAO,IAAI,CAACgC,SAAS;AACvB,SAAA,CAAA;AACGpB,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,wBAAA,EAA0B,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YACjF,OAAO,IAAI,CAACgC,SAAS;AACvB,SAAA,CAAA;AACA,QAAA;YACElE,IAAM,EAAA,OAAA;YACNuC,WAAa,EAAA,iDAAA;YACbpC,IAAM,EAAA,MAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACc,KAAK;AAC5B,aAAA;AACAvD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC0D,KAAK,GAAG1D,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC5B,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,kBAAA;YACNuC,WAAa,EAAA,0BAAA;YACbpC,IAAM,EAAA,KAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;gBAC1BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACoD,gBAAgB,CAAClD,CAAC;gBACtCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACoD,gBAAgB,CAACjD,CAAC;gBACtCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACoD,gBAAgB,CAAChD,CAAC;AACxC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC2D,gBAAgB,GAAG,IAAI/C,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC9E,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACiC,KAAK;AAC1C;AACF,SAAA;AACGvB,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,mBAAA,EAAqB,IAAM,EAAA,IAAA,EAAM,CAAG,EAAA,WAAA;YAC3E,OAAO,IAAI,CAACmC,KAAK;AACnB,SAAA,CAAA;AACA,QAAA;YACErE,IAAM,EAAA,sBAAA;YACNuC,WAAa,EAAA,8BAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAuBC,KAAK,EAAA;AAC1BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqD,oBAAoB;AAC1C,aAAA;AACAzD,YAAAA,GAAAA,CAAAA,CAAuBH,KAAK,EAAA;AAC1B,gBAAA,IAAI,CAAC4D,oBAAoB,GAAG5D,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACiC,KAAK;AAC1C;AACF,SAAA;AACGvB,QAAAA,GAAAA,eAAAA,CAA6BZ,OAAS,EAAA,uBAAA,EAAyB,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YAChF,OAAO,IAAI,CAACmC,KAAK;AACnB,SAAA,CAAA;WACGG,mBAAoBtC,CAAAA,OAAAA;AACxB,KAAA,CAAA;AACH;AAEA,SAASsC,oBAAoBtC,OAAwB,EAAA;AACnD,IAAA,OAAOhC,WAAY,CAAA;WACduE,qBAAsBvC,CAAAA,OAAAA,CAAAA;AACzB,QAAA;YACElC,IAAM,EAAA,qBAAA;YACNuC,WAAa,EAAA,6DAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,IAAA;AACTqC,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B,aAAA;AACA1B,YAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,mBAAmB;AAC1C,aAAA;AACA5D,YAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,gBAAA,IAAI,CAAC+D,mBAAmB,GAAG/D,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC1C;AACF,SAAA;AACA,QAAA;YACEvD,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,sCAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACa,WAAW;AACjC,aAAA;AACAjB,YAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,gBAAA,IAAI,CAACoB,WAAW,GAAGpB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACuC,aAAa;AAClD;AACF,SAAA;AACA,QAAA;YACE3E,IAAM,EAAA,cAAA;YACNuC,WAAa,EAAA,8DAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,IAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqB,YAAY;AACnC,aAAA;AACA9D,YAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,gBAAA,IAAI,CAACiE,YAAY,GAAGjE,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AACnC,aAAA;AACAX,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAU,CAAA;AACzD+C,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,eAAA;YACNuC,WAAa,EAAA,gEAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsB,aAAa;AACpC,aAAA;AACA/D,YAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,gBAAA,IAAI,CAACkE,aAAa,GAAGlE,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AACpC,aAAA;AACAX,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAW,CAAA;AAC1D+C,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACwC,YAAY;AACjD;AACF,SAAA;AACG9B,QAAAA,GAAAA,eAAAA,CAA8BZ,OAAS,EAAA,eAAA,EAAiB,IAAM,EAAA,KAAA,EAAO,GAAGa,SAAW,EAAA;AAAC,YAAA;AAAS,SAAA;AACjG,KAAA,CAAA;AACH;AAEA,SAAS0B,sBAAsBvC,OAAwB,EAAA;AACrD,IAAA,OAAOhC,WAAY,CAAA;AACjB,QAAA;YACEF,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,iEAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAA0BC,KAAK,EAAA;AAC7BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACuB,WAAW;AAClC,aAAA;AACAhE,YAAAA,GAAAA,CAAAA,CAA0BH,KAAK,EAAA;AAC7B,gBAAA,IAAI,CAACmE,WAAW,GAAGnE,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAClC,aAAA;AACAX,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAa,CAAA;AAC5D+C,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,iDAAA;YACbpC,IAAM,EAAA,MAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAA0BC,KAAK,EAAA;gBAC7B,MAAMoE,KAAAA,GAAQ,IAAI,CAACC,WAAW;AAC9BrE,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAM3D,CAAC;AACtBT,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAM1D,CAAC;AACtBV,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAMzD,CAAC;AACtBX,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAME,CAAC;AACxB,aAAA;AACAnE,YAAAA,GAAAA,CAAAA,CAA0BH,KAAK,EAAA;gBAC7B,IAAI,CAACqE,WAAW,GAAG,IAAIE,QAAQvE,KAAMO,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,EAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,CAAA;AACvF,aAAA;AACA0B,YAAAA,QAAAA,EAAUlD,oCAAqC,CAAwB,CAAA;AACvEuD,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC8B,WAAW,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AACxE;AACF,SAAA;AACGlC,QAAAA,GAAAA,eAAAA,CAAgCZ,OAAS,EAAA,eAAA,EAAiB,IAAM,EAAA,IAAA,EAAM,GAAGa,SAAW,EAAA;AACrF,YAAA,WAAA;AACA,YAAA;AACD,SAAA;AACF,KAAA,CAAA;AACH;AAEA,SAASoC,sBAAsBjD,OAAwB,EAAA;AACrD,IAAA,OAAOhC,WAAY,CAAA;AACjB,QAAA;YACEF,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,uCAAA;YACbpC,IAAM,EAAA,MAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5B,MAAMoE,KAAAA,GAAQ,IAAI,CAACC,WAAW;AAC9BrE,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAM3D,CAAC;AACtBT,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAM1D,CAAC;AACtBV,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAMzD,CAAC;AACtBX,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,GAAG6D,MAAME,CAAC;AACxB,aAAA;AACAnE,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;gBAC5B,IAAI,CAACqE,WAAW,GAAG,IAAIE,QAAQvE,KAAMO,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,EAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,CAAA;AACvF,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC8B,WAAW,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AACxE;AACF,SAAA;WACGlC,eAA+BZ,CAAAA,OAAAA,EAAS,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAA,CAAA;AACxE,QAAA;YACElC,IAAM,EAAA,aAAA;YACNuC,WAAa,EAAA,4CAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACa,WAAW;AACjC,aAAA;AACAjB,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACoB,WAAW,GAAGpB,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACuC,aAAa;AAClD;AACF,SAAA;WACG7B,eAA+BZ,CAAAA,OAAAA,EAAS,eAAiB,EAAA,IAAA,EAAM,KAAO,EAAA,CAAA,CAAA;AACzE,QAAA;YACElC,IAAM,EAAA,qBAAA;YACNuC,WAAa,EAAA,mEAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,IAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,mBAAmB;AAC1C,aAAA;AACA5D,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC+D,mBAAmB,GAAG/D,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC1C;AACF,SAAA;AACA,QAAA;YACEvD,IAAM,EAAA,eAAA;YACNuC,WAAa,EAAA,4DAAA;YACbpC,IAAM,EAAA,KAAA;YACNE,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC5B,CAAC;gBACnCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC3B,CAAC;gBACnCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC8B,aAAa,CAAC1B,CAAC;AACrC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACqC,aAAa,GAAG,IAAIzB,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC3E,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACF,aAAa,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AACvE;AACF,SAAA;AACA,QAAA;YACEhD,IAAM,EAAA,kBAAA;YACNuC,WAAa,EAAA,+DAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA;AACZ,aAAA;AACAN,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiC,gBAAgB;AACtC,aAAA;AACArC,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACwC,gBAAgB,GAAGxC,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACtC,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACC,gBAAgB,GAAG,CAAA;AACjE;AACF,SAAA;WACGL,eAA+BZ,CAAAA,OAAAA,EAAS,iBAAmB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAA,CAAA;AAC1E,QAAA;YACElC,IAAM,EAAA,kBAAA;YACNuC,WAAa,EAAA,gCAAA;YACbpC,IAAM,EAAA,KAAA;YACNC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACkE,gBAAgB,CAAChE,CAAC;gBACtCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACkE,gBAAgB,CAAC/D,CAAC;gBACtCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACkE,gBAAgB,CAAC9D,CAAC;AACxC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACyE,gBAAgB,GAAG,IAAI7D,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC9E,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACkC,gBAAgB,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AAC1E;AACF,SAAA;WACGtC,eAA+BZ,CAAAA,OAAAA,EAAS,sBAAwB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAA,CAAA;AAC/E,QAAA;YACElC,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,+BAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;AACZC,gBAAAA,QAAAA,EAAU,EAAC;gBACXC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmE,kBAAkB;AACxC,aAAA;AACAvE,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC0E,kBAAkB,GAAG1E,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACmC,kBAAkB,GAAG,CAAA;AACnE;AACF,SAAA;AACA,QAAA;YACErF,IAAM,EAAA,0BAAA;YACNuC,WAAa,EAAA,kDAAA;YACbpC,IAAM,EAAA,OAAA;YACNuC,KAAO,EAAA,CAAA;YACPtC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACoE,wBAAwB;AAC9C,aAAA;AACAxE,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC2E,wBAAwB,GAAG3E,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,CAAC,CAAC,IAAI,CAACmD,mBAAmB;AACxD;AACF,SAAA;WACGzC,eAA+BZ,CAAAA,OAAAA,EAAS,qBAAuB,EAAA,IAAA,EAAM,KAAO,EAAA,CAAA,CAAA;AAC/E,QAAA;YACElC,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,oCAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsE,kBAAkB;AACxC,aAAA;AACA1E,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC6E,kBAAkB,GAAG7E,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACsC,kBAAkB,GAAG,GAAA;AACnE;AACF,SAAA;AACA,QAAA;YACExF,IAAM,EAAA,sBAAA;YACNuC,WAAa,EAAA,6CAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,GAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACuE,oBAAoB;AAC1C,aAAA;AACA3E,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC8E,oBAAoB,GAAG9E,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1C,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACuC,oBAAoB,GAAG,GAAA;AACrE;AACF,SAAA;AACA,QAAA;YACEzF,IAAM,EAAA,cAAA;YACNuC,WAAa,EAAA,2BAAA;YACbpC,IAAM,EAAA,KAAA;YACNC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACwE,YAAY,CAACtE,CAAC;gBAClCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACwE,YAAY,CAACrE,CAAC;gBAClCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACwE,YAAY,CAACpE,CAAC;AACpC,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC+E,YAAY,GAAG,IAAInE,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC1E,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACwC,YAAY,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AACtE;AACF,SAAA;WACG5C,eAA+BZ,CAAAA,OAAAA,EAAS,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAA,CAAA;AACxE,QAAA;YACElC,IAAM,EAAA,0BAAA;YACNuC,WAAa,EAAA,mCAAA;YACbpC,IAAM,EAAA,KAAA;YACNC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyE,wBAAwB,CAACvE,CAAC;gBAC9CT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyE,wBAAwB,CAACtE,CAAC;gBAC9CV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyE,wBAAwB,CAACrE,CAAC;AAChD,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACgF,wBAAwB,GAAG,IAAIpE,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACtF,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACyC,wBAAwB,GAAG;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA;AAAE,iBAAA;AAClF;AACF,SAAA;AACA,QAAA;YACE3F,IAAM,EAAA,iCAAA;YACNuC,WAAa,EAAA,2CAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA;AACZ,aAAA;AACAN,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC0E,+BAA+B;AACrD,aAAA;AACA9E,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACiF,+BAA+B,GAAGjF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrD,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC0C,+BAA+B,GAAG,CAAA;AAChF;AACF,SAAA;AACA,QAAA;YACE5F,IAAM,EAAA,yBAAA;YACNuC,WAAa,EAAA,kCAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC2E,uBAAuB;AAC7C,aAAA;AACA/E,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACkF,uBAAuB,GAAGlF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7C,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC2C,uBAAuB,GAAG,CAAA;AACxE;AACF,SAAA;AACA,QAAA;YACE7F,IAAM,EAAA,sBAAA;YACNuC,WAAa,EAAA,+BAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4E,oBAAoB;AAC1C,aAAA;AACAhF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACmF,oBAAoB,GAAGnF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1C,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC4C,oBAAoB,GAAG,CAAA;AACrE;AACF,SAAA;WACGhD,eAA+BZ,CAAAA,OAAAA,EAAS,oBAAsB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAA,CAAA;AAC7E,QAAA;YACElC,IAAM,EAAA,kBAAA;YACNuC,WAAa,EAAA,0BAAA;YACbpC,IAAM,EAAA,QAAA;YACNC,OAAS,EAAA,MAAA;YACTC,OAAS,EAAA;gBACPE,IAAM,EAAA;oBACJC,MAAQ,EAAA;AAAC,wBAAA,MAAA;AAAQ,wBAAA,mBAAA;AAAqB,wBAAA;AAAqB,qBAAA;oBAC3DC,MAAQ,EAAA;AAAC,wBAAA,MAAA;AAAQ,wBAAA,kBAAA;AAAoB,wBAAA;AAAoB;AAC3D;AACF,aAAA;AACAC,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmF,gBAAgB;AACtC,aAAA;AACAjF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACoF,gBAAgB,GAAGpF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACtC,aAAA;AACA6B,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,4BAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA;AACZ,aAAA;AACAN,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC8E,kBAAkB;AACxC,aAAA;AACAlF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACqF,kBAAkB,GAAGrF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC2D,gBAAgB,KAAK,MAAA;AACxD;AACF,SAAA;AACGjD,QAAAA,GAAAA,eAAAA,CAA+BZ,OAAS,EAAA,6BAAA,EAA+B,IAAM,EAAA,KAAA,EAAO,CAAG,EAAA,WAAA;YACxF,OAAO,IAAI,CAAC6D,gBAAgB,KAAK,MAAA;AACnC,SAAA,CAAA;AACA,QAAA;YACE/F,IAAM,EAAA,oBAAA;YACNuC,WAAa,EAAA,4BAAA;YACbpC,IAAM,EAAA,KAAA;YACNC,OAAS,EAAA;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;YAClBC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;gBAC5BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC+E,kBAAkB,CAAC7E,CAAC;gBACxCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC+E,kBAAkB,CAAC5E,CAAC;gBACxCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC+E,kBAAkB,CAAC3E,CAAC;AAC1C,aAAA;AACAR,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACsF,kBAAkB,GAAG,IAAI1E,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAChF,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC2D,gBAAgB,KAAK,MAAA;AACxD;AACF,SAAA;AACA,QAAA;YACE/F,IAAM,EAAA,0BAAA;YACNuC,WAAa,EAAA,mCAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA,IAAA;gBACZC,QAAU,EAAA,CAAA;gBACVC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACgF,wBAAwB;AAC9C,aAAA;AACApF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACuF,wBAAwB,GAAGvF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC2D,gBAAgB,KAAK,MAAA;AACxD;AACF,SAAA;AACA,QAAA;YACE/F,IAAM,EAAA,2BAAA;YACNuC,WAAa,EAAA,6EAAA;YACbpC,IAAM,EAAA,SAAA;YACNC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4C,yBAAyB;AAChD,aAAA;AACArF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACwF,yBAAyB,GAAGxF,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAChD,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC2D,gBAAgB,KAAK,MAAA;AACxD;AACF,SAAA;WACGjD,eAA+BZ,CAAAA,OAAAA,EAAS,wBAA0B,EAAA,IAAA,EAAM,KAAO,EAAA,CAAA,CAAA;AAClF,QAAA;YACElC,IAAM,EAAA,+BAAA;YACNuC,WAAa,EAAA,+CAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACkF,6BAA6B;AACnD,aAAA;AACAtF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAACyF,6BAA6B,GAAGzF,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACnD,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACkD,6BAA6B,GAAG,CAAA;AAC9E;AACF,SAAA;AACA,QAAA;YACEpG,IAAM,EAAA,+BAAA;YACNuC,WAAa,EAAA,+CAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmF,6BAA6B;AACnD,aAAA;AACAvF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC0F,6BAA6B,GAAG1F,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACnD,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACmD,6BAA6B,GAAG,CAAA;AAC9E;AACF,SAAA;AACA,QAAA;YACErG,IAAM,EAAA,gCAAA;YACNuC,WAAa,EAAA,mCAAA;YACbpC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;gBACPU,UAAY,EAAA;AACd,aAAA;AACAL,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACoF,8BAA8B;AACpD,aAAA;AACAxF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC2F,8BAA8B,GAAG3F,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpD,aAAA;AACA+B,YAAAA,eAAAA,CAAAA,GAAAA;gBACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACoD,8BAA8B,GAAG,CAAA;AAC/E;AACF,SAAA;AACA,QAAA;YACEtG,IAAM,EAAA,uBAAA;YACNuC,WAAa,EAAA,oDAAA;YACbpC,IAAM,EAAA,MAAA;YACNC,OAAS,EAAA,KAAA;AACTM,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACgD,qBAAqB;AAC5C,aAAA;AACAzF,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC4F,qBAAqB,GAAG5F,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC5C,aAAA;AACAd,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,SAAA;AACA,QAAA;YACEpC,IAAM,EAAA,yBAAA;YACNuC,WAAa,EAAA,kCAAA;YACbpC,IAAM,EAAA,KAAA;YACNC,OAAS,EAAA,CAAA;YACTC,OAAS,EAAA;AACPW,gBAAAA,QAAAA,EAAU,EAAC;gBACXC,QAAU,EAAA;AACZ,aAAA;AACAP,YAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,gBAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsF,uBAAuB;AAC7C,aAAA;AACA1F,YAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,gBAAA,IAAI,CAAC6F,uBAAuB,GAAG7F,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7C,aAAA;AACAuB,YAAAA,OAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF;AACD,KAAA,CAAA;AACH;AAEA,iBACO,SAASqE,oBAAAA,GAAAA;IACd,OAAO;AACL,QAAA;YACE3G,IAAM4G,EAAAA,YAAAA;YACN1G,IAAM,EAAA,cAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,aAAA;wBACNuC,WACE,EAAA,wFAAA;wBACFpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,CAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACyF,WAAW;AACjC,yBAAA;AACA7F,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACgG,WAAW,GAAGhG,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,yBAAA;AACAuB,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,qBAAA;AACA,oBAAA;wBACEpC,IAAM,EAAA,iBAAA;wBACNuC,WAAa,EAAA,4CAAA;wBACbpC,IAAM,EAAA,MAAA;wBACNC,OAAS,EAAA,KAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqD,eAAe;AACtC,yBAAA;AACA9F,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACiG,eAAe,GAAGjG,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AACtC,yBAAA;AACAd,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,qBAAA;AACA,oBAAA;wBACEpC,IAAM,EAAA,aAAA;wBACNuC,WAAa,EAAA,0CAAA;wBACbpC,IAAM,EAAA,MAAA;wBACNC,OAAS,EAAA,KAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsD,WAAW;AAClC,yBAAA;AACA/F,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACkG,WAAW,GAAGlG,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAClC,yBAAA;AACAd,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAACuE,WAAW,GAAG,CAAA;AACjD;AACF,qBAAA;AACA,oBAAA;wBACE3G,IAAM,EAAA,WAAA;wBACNuC,WAAa,EAAA,iCAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNE,OAAS,EAAA;4BACPE,IAAM,EAAA;gCAAEC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,OAAA;AAAS,oCAAA;AAAW,iCAAA;gCAAEC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,OAAA;AAAS,oCAAA;AAAW;AAAC;AACvF,yBAAA;wBACAL,OAAS,EAAA,MAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACkG,SAAS;AAC/B,yBAAA;AACAhG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACmG,SAAS,GAAGnG,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B,yBAAA;AACA6B,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,qBAAA;AACA,oBAAA;wBACEpC,IAAM,EAAA,yBAAA;wBACNG,IAAM,EAAA,MAAA;wBACNC,OAAS,EAAA,KAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAM4C,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACwD,uBAAuB;AAC9C,yBAAA;AACAjG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACoG,uBAAuB,GAAGpG,KAAM4C,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC9C,yBAAA;AACAd,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC0E,SAAS,KAAK,MAAA;AACjD;AACF,qBAAA;AACA,oBAAA;wBACE9G,IAAM,EAAA,mBAAA;wBACNG,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,GAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC8F,iBAAiB;AACvC,yBAAA;AACAlG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACqG,iBAAiB,GAAGrG,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC,yBAAA;AACAuB,wBAAAA,OAAAA,CAAAA,GAAAA;AACE,4BAAA,OAAO,CAAC,IAAI,CAACL,WAAW,IAAI,IAAI,CAAC0E,SAAS,KAAK,MAAA,IAAU,IAAI,CAACC,uBAAuB;AACvF;AACF,qBAAA;AACA,oBAAA;wBACE/G,IAAM,EAAA,UAAA;wBACNuC,WAAa,EAAA,6BAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNE,OAAS,EAAA;4BACPE,IAAM,EAAA;gCAAEC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,OAAA;AAAS,oCAAA;AAAO,iCAAA;gCAAEC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,OAAA;AAAS,oCAAA;AAAO;AAAC;AAC/E,yBAAA;wBACAL,OAAS,EAAA,MAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqG,QAAQ;AAC9B,yBAAA;AACAnG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACsG,QAAQ,GAAGtG,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9B,yBAAA;AACA6B,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,qBAAA;AACA,oBAAA;wBACEpC,IAAM,EAAA,SAAA;wBACNuC,WAAa,EAAA,sEAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;wBACAb,OAAS,EAAA,CAAA;AACTM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACgG,OAAO;AAC7B,yBAAA;AACApG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACuG,OAAO,GAAGvG,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7B,yBAAA;AACA0B,wBAAAA,QAAAA,EAAUlD,oCAAqC,CAAW,CAAA;AAC1DuD,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACgE,OAAO,GAAG,CAAA;AACxD;AACF,qBAAA;AACA,oBAAA;wBACElH,IAAM,EAAA,aAAA;wBACNuC,WAAa,EAAA,gCAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPW,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAb,wBAAAA,OAAAA,EAAS,EAAK,GAAA,EAAA;AACdM,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiG,WAAW;AACjC,yBAAA;AACArG,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACwG,WAAW,GAAGxG,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,yBAAA;AACAuB,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF;AACD,iBAAA,CAAA;AACH;AACF,SAAA;QACAgF,oCAAqCV,CAAAA,YAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASW,sBAAAA,CAAuBC,QAAyB,EAAA;IAC9D,OAAO;AACL,QAAA;YACExH,IAAMyH,EAAAA,cAAAA;YACNvH,IAAM,EAAA,gBAAA;YACNwH,MAAQd,EAAAA,YAAAA;AACRzG,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAO,EAAE;AACX;AACF,SAAA;QACAmH,oCAAqCG,CAAAA,cAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASE,8BAAAA,CAA+BvF,OAAwB,EAAA;IACrE,OAAO;AACL,QAAA;YACEpC,IAAM4H,EAAAA,sBAAAA;YACN1H,IAAM,EAAA,wBAAA;YACNwH,MAAQD,EAAAA,cAAAA;AACRtH,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,eAAA;wBACNuC,WAAa,EAAA,kCAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNC,OAAS,EAAA,EAAA;wBACTC,OAAS,EAAA;4BACPsH,SAAW,EAAA;AACT,gCAAA,YAAA;AACA,gCAAA,WAAA;AACA,gCAAA,WAAA;AACA,gCAAA,oBAAA;AACA,gCAAA,aAAA;AACA,gCAAA;AACD;AACH,yBAAA;AACAC,wBAAAA,UAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAA;AACT,yBAAA;AACAlH,wBAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;4BACPA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAGsB,OAAAA,CAAQ2F,UAAU,CAAC,IAAI,CAACC,aAAa,CAAK,IAAA,EAAA;AAC3D,yBAAA;AACA,wBAAA,MAAMhH,KAAkCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAC3B,IAAI,CAACkH,aAAa,GAAG,IAAA;6BAChB,MAAA;AACL,gCAAA,MAAMC,OAAUpH,GAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;gCAC5B,IAAIoH,GAAAA;gCACJ,IAAI;AACFA,oCAAAA,GAAAA,GAAM,MAAM9F,OAAAA,CAAQ+F,YAAY,CAAYF,OAAS,EAAA;wCACnDG,gBAAkB,EAAA;AACpB,qCAAA,CAAA;AACF,iCAAA,CAAE,OAAOC,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE1H,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAEuH,GAAK,CAAA,CAAA,CAAA;oCAC1DH,GAAM,GAAA,IAAA;AACR;AACA,gCAAA,IAAIA,KAAKM,WAAe,EAAA,EAAA;oCACtB,IAAI,CAACR,aAAa,GAAGE,GAAAA;iCAChB,MAAA;AACLI,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF;AACF,yBAAA;AACA5F,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF;AACD,iBAAA,CAAA;AACH;AACF,SAAA;QACAgF,oCAAqCM,CAAAA,sBAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASa,wBAAAA,CAAyBrG,OAAwB,EAAA;IAC/D,OAAO;AACL,QAAA;YACEpC,IAAM0I,EAAAA,gBAAAA;YACNxI,IAAM,EAAA,kBAAA;YACNwH,MAAQd,EAAAA,YAAAA;AACRzG,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,UAAA;wBACNuC,WAAa,EAAA,yBAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNC,OAAS,EAAA,EAAA;wBACTC,OAAS,EAAA;4BACPsH,SAAW,EAAA;AACT,gCAAA,YAAA;AACA,gCAAA,WAAA;AACA,gCAAA,WAAA;AACA,gCAAA,oBAAA;AACA,gCAAA,aAAA;AACA,gCAAA;AACD;AACH,yBAAA;AACAC,wBAAAA,UAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAA;AACT,yBAAA;AACAlH,wBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;4BAC/BA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAGsB,OAAAA,CAAQ2F,UAAU,CAAC,IAAI,CAACY,QAAQ,CAAK,IAAA,EAAA;AACtD,yBAAA;AACA,wBAAA,MAAM3H,KAA4BH,KAAK,EAAA;AACrC,4BAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAC3B,IAAI,CAAC6H,QAAQ,GAAG,IAAA;6BACX,MAAA;AACL,gCAAA,MAAMV,OAAUpH,GAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AAC5B,gCAAA,IAAIoH,GAA2B,GAAA,IAAA;gCAC/B,IAAI;AACFA,oCAAAA,GAAAA,GAAM,MAAM9F,OAAAA,CAAQ+F,YAAY,CAAYF,OAAS,EAAA;wCAAEG,gBAAkB,EAAA;AAAK,qCAAA,CAAA;AAChF,iCAAA,CAAE,OAAOC,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE1H,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAEuH,GAAK,CAAA,CAAA,CAAA;AAC5D;AACA,gCAAA,IAAIH,KAAKM,WAAe,EAAA,EAAA;oCACtB,IAAI,CAACG,QAAQ,GAAGT,GAAAA;iCACX,MAAA;AACLI,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,wBAAA,CAAA;AAChB;AACF;AACF;AACF,qBAAA;AACA,oBAAA;wBACErI,IAAM,EAAA,SAAA;wBACNuC,WAAa,EAAA,wBAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNC,OAAS,EAAA,EAAA;wBACTC,OAAS,EAAA;4BACPsH,SAAW,EAAA;AACT,gCAAA,YAAA;AACA,gCAAA,WAAA;AACA,gCAAA,WAAA;AACA,gCAAA,oBAAA;AACA,gCAAA,aAAA;AACA,gCAAA;AACD;AACH,yBAAA;AACAC,wBAAAA,UAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAA;AACT,yBAAA;AACAlH,wBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;4BAC/BA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAGsB,OAAAA,CAAQ2F,UAAU,CAAC,IAAI,CAACa,OAAO,CAAK,IAAA,EAAA;AACrD,yBAAA;AACA,wBAAA,MAAM5H,KAA4BH,KAAK,EAAA;AACrC,4BAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAC3B,IAAI,CAAC8H,OAAO,GAAG,IAAA;6BACV,MAAA;AACL,gCAAA,MAAMX,OAAUpH,GAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AAC5B,gCAAA,IAAIoH,GAA2B,GAAA,IAAA;gCAC/B,IAAI;oCACFA,GAAM,GAAA,MAAM9F,OAAQ+F,CAAAA,YAAY,CAAYF,OAAAA,CAAAA;AAC9C,iCAAA,CAAE,OAAOI,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE1H,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAEuH,GAAK,CAAA,CAAA,CAAA;AAC5D;AACA,gCAAA,IAAIH,KAAKM,WAAe,EAAA,EAAA;oCACtB,IAAI,CAACI,OAAO,GAAGV,GAAAA;iCACV,MAAA;AACLI,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,wBAAA,CAAA;AAChB;AACF;AACF;AACF;AACD,iBAAA,CAAA;AACH;AACF,SAAA;QACAjB,oCAAqCoB,CAAAA,gBAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASG,4BAAAA,GAAAA;IACd,OAAO;AACL,QAAA;YACE7I,IAAMF,EAAAA,oBAAAA;YACN4H,MAAQoB,EAAAA,4BAAAA;YACR5I,IAAM,EAAA,sBAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,YAAY,EAAE,CAAA;AACvB;AACF,SAAA;QACAkH,oCAAqCxH,CAAAA,oBAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASiJ,+BAAAA,GAAAA;IACd,OAAO;AACL,QAAA;YACE/I,IAAMgJ,EAAAA,uBAAAA;YACNtB,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,yBAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAO,EAAE;AACX;AACF,SAAA;QACAmH,oCAAqC0B,CAAAA,uBAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASC,qBAAAA,CAAsB7G,OAAwB,EAAA;IAC5D,OAAO;AACL,QAAA;YACEpC,IAAMkJ,EAAAA,aAAAA;YACNxB,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,eAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOwE,qBAAsBvC,CAAAA,OAAAA,CAAAA;AAC/B;AACF,SAAA;QACAkF,oCAAqC4B,CAAAA,aAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASC,qBAAAA,CAAsB/G,OAAwB,EAAA;IAC5D,OAAO;AACL,QAAA;YACEpC,IAAMoJ,EAAAA,aAAAA;YACN1B,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,eAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOkF,qBAAsBjD,CAAAA,OAAAA,CAAAA;AAC/B;AACF,SAAA;QACAkF,oCAAqC8B,CAAAA,aAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASC,uBAAAA,CAAwBjH,OAAwB,EAAA;IAC9D,OAAO;AACL,QAAA;YACEpC,IAAMsJ,EAAAA,eAAAA;YACN5B,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,iBAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOuE,mBAAoBtC,CAAAA,OAAAA,CAAAA;AAC7B;AACF,SAAA;QACAkF,oCAAqCgC,CAAAA,eAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASC,qBAAAA,CAAsBnH,OAAwB,EAAA;IAC5D,OAAO;AACL,QAAA;YACEpC,IAAMwJ,EAAAA,aAAAA;YACN9B,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,eAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,WAAA;wBACNuC,WAAa,EAAA,iBAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqI,SAAS;AAC/B,yBAAA;AACAzI,wBAAAA,GAAAA,CAAAA,CAAyBH,KAAK,EAAA;AAC5B,4BAAA,IAAI,CAAC4I,SAAS,GAAG5I,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACqG,SAAS,GAAG,EAAA;AAC1D;AACF,qBAAA;uBACG/E,mBAAoBtC,CAAAA,OAAAA;AACxB,iBAAA,CAAA;AACH;AACF,SAAA;QACAkF,oCAAqCkC,CAAAA,aAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASE,oBAAAA,CAAqBtH,OAAwB,EAAA;IAC3D,OAAO;AACL,QAAA;YACEpC,IAAM2J,EAAAA,YAAAA;YACNjC,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,cAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,WAAA;wBACNuC,WAAa,EAAA,6CAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,EAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACqI,SAAS;AAC/B,yBAAA;AACAzI,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAAC4I,SAAS,GAAG5I,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACqG,SAAS,GAAG,EAAA;AAC1D;AACF,qBAAA;AACA,oBAAA;wBACEvJ,IAAM,EAAA,kBAAA;wBACNuC,WAAa,EAAA,yDAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACwI,gBAAgB;AACtC,yBAAA;AACA5I,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAAC+I,gBAAgB,GAAG/I,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACtC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACwG,gBAAgB,GAAG,IAAA;AACjE;AACF,qBAAA;AACA,oBAAA;wBACE1J,IAAM,EAAA,aAAA;wBACNuC,WAAa,EAAA,0CAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACyI,WAAW;AACjC,yBAAA;AACA7I,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACgJ,WAAW,GAAGhJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACyG,WAAW,GAAG,IAAA;AAC5D;AACF,qBAAA;AACA,oBAAA;wBACE3J,IAAM,EAAA,iBAAA;wBACNuC,WAAa,EAAA,8DAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC0I,eAAe;AACrC,yBAAA;AACA9I,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACiJ,eAAe,GAAGjJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC0G,eAAe,GAAG,IAAA;AAChE;AACF,qBAAA;AACA,oBAAA;wBACE5J,IAAM,EAAA,aAAA;wBACNuC,WAAa,EAAA,4DAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC2I,WAAW;AACjC,yBAAA;AACA/I,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACkJ,WAAW,GAAGlJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC2G,WAAW,GAAG,IAAA;AAC5D;AACF,qBAAA;AACA,oBAAA;wBACE7J,IAAM,EAAA,iBAAA;wBACNuC,WAAa,EAAA,yEAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,GAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4I,eAAe;AACrC,yBAAA;AACAhJ,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;AAC3B,4BAAA,IAAI,CAACmJ,eAAe,GAAGnJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC4G,eAAe,GAAG,GAAA;AAChE;AACF,qBAAA;AACA,oBAAA;wBACE9J,IAAM,EAAA,cAAA;wBACNuC,WAAa,EAAA,wDAAA;wBACbpC,IAAM,EAAA,MAAA;wBACNC,OAAS,EAAA;AAAC,4BAAA,CAAA;AAAG,4BAAA,IAAA;AAAM,4BAAA,IAAA;AAAM,4BAAA;AAAE,yBAAA;wBAC3BC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;4BAC3BA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC6I,YAAY,CAAC3I,CAAC;4BAClCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC6I,YAAY,CAAC1I,CAAC;4BAClCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC6I,YAAY,CAACzI,CAAC;4BAClCX,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC6I,YAAY,CAAC9E,CAAC;AACpC,yBAAA;AACAnE,wBAAAA,GAAAA,CAAAA,CAAwBH,KAAK,EAAA;4BAC3B,IAAI,CAACoJ,YAAY,GAAG,IAAI7E,QAAQvE,KAAMO,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,EAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,CAAA;AACxF,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;AACE,4BAAA,MAAM8B,KAAQ,GAAA,IAAI,CAAC3C,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC6G,YAAY,GAAG,IAAI7E,OAAQ,CAAA,CAAA,EAAG,MAAM,IAAM,EAAA,CAAA,CAAA;4BAC7F,OAAO;AAACH,gCAAAA,KAAAA,CAAM3D,CAAC;AAAE2D,gCAAAA,KAAAA,CAAM1D,CAAC;AAAE0D,gCAAAA,KAAAA,CAAMzD,CAAC;AAAEyD,gCAAAA,KAAAA,CAAME;AAAE,6BAAA;AAC7C;AACF,qBAAA;uBACGnC,eAA8BZ,CAAAA,OAAAA,EAAS,mBAAqB,EAAA,IAAA,EAAM,KAAO,EAAA,CAAA,CAAA;uBACzEsC,mBAAoBtC,CAAAA,OAAAA;AACxB,iBAAA,CAAA;AACH;AACF,SAAA;QACAkF,oCAAqCqC,CAAAA,YAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASO,oCAAAA,CAAqC9H,OAAwB,EAAA;IAC3E,OAAO;AACL,QAAA;YACEpC,IAAM8I,EAAAA,4BAAAA;YACNpB,MAAQd,EAAAA,YAAAA;YACR1G,IAAM,EAAA,8BAAA;AACNC,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,UAAA;wBACNuC,WAAa,EAAA,gBAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC+I,QAAQ;AAC9B,yBAAA;AACAnJ,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAACsJ,QAAQ,GAAGtJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC9B,yBAAA;AACA0B,wBAAAA,QAAAA,EAAUlD,oCAAqC,CAAY,CAAA;AAC3DuD,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC+G,QAAQ,GAAG,CAAA;AACzD;AACF,qBAAA;AACA,oBAAA;wBACEjK,IAAM,EAAA,WAAA;wBACNuC,WAAa,EAAA,iBAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACgJ,SAAS;AAC/B,yBAAA;AACApJ,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAACuJ,SAAS,GAAGvJ,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B,yBAAA;AACA0B,wBAAAA,QAAAA,EAAUlD,oCAAqC,CAAa,CAAA;AAC5DuD,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACgH,SAAS,GAAG,CAAA;AAC1D;AACF,qBAAA;AACA,oBAAA;wBACElK,IAAM,EAAA,gBAAA;wBACNuC,WAAa,EAAA,kEAAA;wBACbpC,IAAM,EAAA,MAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA;AACd,yBAAA;AACAL,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;4BAC3CA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC/I,CAAC;4BACpCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC9I,CAAC;4BACpCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC7I,CAAC;4BACpCX,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAClF,CAAC;AACtC,yBAAA;AACAnE,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;4BAC3C,IAAI,CAACwJ,cAAc,GAAG,IAAIjF,QAAQvE,KAAMO,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,EAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,CAAA;AAC1F,yBAAA;AACA0B,wBAAAA,QAAAA,EAAUlD,oCAAqC,CAA8B,CAAA;AAC7EuD,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACiH,cAAc,GAAG;AAAC,gCAAA,CAAA;AAAG,gCAAA,CAAA;AAAG,gCAAA,CAAA;AAAG,gCAAA;AAAE,6BAAA;AAC3E;AACF,qBAAA;AACA,oBAAA;wBACEnK,IAAM,EAAA,YAAA;wBACNuC,WAAa,EAAA,iBAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNC,OAAS,EAAA,KAAA;wBACTC,OAAS,EAAA;4BACPE,IAAM,EAAA;gCACJC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,KAAA;AAAO,oCAAA,aAAA;AAAe,oCAAA;AAAQ,iCAAA;gCAC/CC,MAAQ,EAAA;AAAC,oCAAA,MAAA;AAAQ,oCAAA,KAAA;AAAO,oCAAA,aAAA;AAAe,oCAAA;AAAQ;AACjD;AACF,yBAAA;AACAC,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACwJ,cAAc;AACpC,yBAAA;AACAtJ,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAACyJ,cAAc,GAAGzJ,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC,yBAAA;AACAqC,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACkH,cAAc,GAAG,KAAA;AAC/D;AACF,qBAAA;AACA,oBAAA;wBACEpK,IAAM,EAAA,YAAA;wBACNuC,WAAa,EAAA,yEAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;AACZC,4BAAAA,QAAAA,EAAU,KAAC;4BACXC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmJ,UAAU;AAChC,yBAAA;AACAvJ,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAAC0J,UAAU,GAAG1J,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AAChC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACmH,UAAU,GAAG,IAAA;AAC3D,yBAAA;AACA5H,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAAC2H,cAAc,KAAK,aAAA;AACjC;AACF,qBAAA;AACA,oBAAA;wBACEpK,IAAM,EAAA,qBAAA;wBACNuC,WAAa,EAAA,mEAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNC,OAAS,EAAA,CAAA;wBACTC,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACoJ,mBAAmB;AACzC,yBAAA;AACAxJ,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAAC2J,mBAAmB,GAAG3J,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACzC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACoH,mBAAmB,GAAG,CAAA;AACpE,yBAAA;AACA7H,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAAC2H,cAAc,KAAK,aAAA;AACjC;AACF,qBAAA;AACGtH,oBAAAA,GAAAA,eAAAA,CACDZ,OACA,EAAA,4BAAA,EACA,IACA,EAAA,KAAA,EACA,CACA,EAAA,WAAA;wBACE,OAAO,IAAI,CAACkI,cAAc,KAAK,aAAA;AACjC,qBAAA,CAAA;AAEF,oBAAA;wBACEpK,IAAM,EAAA,8BAAA;wBACNuC,WAAa,EAAA,4EAAA;wBACbpC,IAAM,EAAA,MAAA;wBACNC,OAAS,EAAA;AAAC,4BAAA,CAAA;AAAG,4BAAA;AAAE,yBAAA;wBACfC,OAAS,EAAA;4BACPU,UAAY,EAAA;AACd,yBAAA;AACAL,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;4BAC3CA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACqJ,4BAA4B,CAACnJ,CAAC;4BAClDT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACqJ,4BAA4B,CAAClJ,CAAC;AACpD,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;AAC3C,4BAAA,IAAI,CAAC4J,4BAA4B,GAAG,IAAIC,OAAQ7J,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAE,CAAA,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC5E,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACqH,4BAA4B,GAAG;AAAC,gCAAA,CAAA;AAAG,gCAAA;AAAE,6BAAA;AACnF,yBAAA;AACA9H,wBAAAA,OAAAA,CAAAA,GAAAA;AACE,4BAAA,OACE,CAAC,IAAI,CAACL,WAAW,IACjB,IAAI,CAACgI,cAAc,KAAK,aACxB,IAAA,CAAC,CAAC,IAAI,CAACK,0BAA0B;AAErC;AACF,qBAAA;AACA,oBAAA;wBACEzK,IAAM,EAAA,mBAAA;wBACNuC,WAAa,EAAA,kEAAA;wBACbpC,IAAM,EAAA,QAAA;wBACNuC,KAAO,EAAA,CAAA;wBACPtC,OAAS,EAAA,IAAA;wBACTC,OAAS,EAAA;4BACPqK,WAAa,EAAA;AAAC3K,gCAAAA;AAAkB;AAClC,yBAAA;AACA6H,wBAAAA,UAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAA;AACT,yBAAA;AACAlH,wBAAAA,GAAAA,CAAAA,CAAwCC,KAAK,EAAA;AAC3CA,4BAAAA,KAAAA,CAAMgK,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACrI,iBAAiB;AAC1C,yBAAA;AACAxB,wBAAAA,GAAAA,CAAAA,CAAwCH,KAAK,EAAA;4BAC3C,IAAI,CAAC2B,iBAAiB,GAAI3B,MAAMgK,MAAM,CAAC,EAAE,IAA0B,IAAA;AACrE,yBAAA;AACAlI,wBAAAA,OAAAA,CAAAA,GAAAA;4BACE,OAAO,CAAC,IAAI,CAACL,WAAW;AAC1B;AACF,qBAAA;AACGU,oBAAAA,GAAAA,eAAAA,CACDZ,OACA,EAAA,mBAAA,EACA,IACA,EAAA,KAAA,EACA,CACA,EAAA,WAAA;AACE,wBAAA,OAAO,CAAC,CAAC,IAAI,CAACI,iBAAiB;AACjC,qBAAA,CAAA;AAECQ,oBAAAA,GAAAA,eAAAA,CACDZ,OACA,EAAA,0BAAA,EACA,IACA,EAAA,KAAA,EACA,GACAa,SACA,EAAA;AAAC,wBAAA,UAAA;AAAY,wBAAA;AAAY,qBAAA,CAAA;AAExBD,oBAAAA,GAAAA,eAAAA,CACDZ,OACA,EAAA,sBAAA,EACA,IACA,EAAA,IAAA,EACA,GACAa,SACA,EAAA;AAAC,wBAAA;AAAW,qBAAA,CAAA;uBAEXd,iBAAkBC,CAAAA,OAAAA;AACtB,iBAAA,CAAA;AACH;AACF,SAAA;QACAkF,oCAAqCwB,CAAAA,4BAAAA;AACtC,KAAA;AACH;AAEA,iBACO,SAASgC,qCAAAA,CAAsC1I,OAAwB,EAAA;IAC5E,OAAO;AACL,QAAA;YACEpC,IAAM+K,EAAAA,6BAAAA;YACN7K,IAAM,EAAA,+BAAA;YACNwH,MAAQd,EAAAA,YAAAA;AACRzG,YAAAA,QAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,WAAY,CAAA;AACjB,oBAAA;wBACEF,IAAM,EAAA,gBAAA;wBACNuC,WAAa,EAAA,wDAAA;wBACbpC,IAAM,EAAA,KAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA;AACd,yBAAA;AACAL,wBAAAA,GAAAA,CAAAA,CAAyCC,KAAK,EAAA;4BAC5CA,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC/I,CAAC;4BACpCT,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC9I,CAAC;4BACpCV,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACiJ,cAAc,CAAC7I,CAAC;AACtC,yBAAA;AACAR,wBAAAA,GAAAA,CAAAA,CAAyCH,KAAK,EAAA;AAC5C,4BAAA,IAAI,CAACwJ,cAAc,GAAG,IAAI5I,OAAQZ,CAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,EAAEP,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC5E,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAACiH,cAAc,GAAG;AAAC,gCAAA,CAAA;AAAG,gCAAA,CAAA;AAAG,gCAAA;AAAE,6BAAA;AACxE;AACF,qBAAA;AACA,oBAAA;wBACEnK,IAAM,EAAA,iBAAA;wBACNuC,WAAa,EAAA,sEAAA;wBACbpC,IAAM,EAAA,OAAA;wBACNE,OAAS,EAAA;4BACPU,UAAY,EAAA,IAAA;4BACZC,QAAU,EAAA,CAAA;4BACVC,QAAU,EAAA;AACZ,yBAAA;AACAP,wBAAAA,GAAAA,CAAAA,CAAyCC,KAAK,EAAA;AAC5CA,4BAAAA,KAAAA,CAAMO,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4J,gBAAgB;AACtC,yBAAA;AACAhK,wBAAAA,GAAAA,CAAAA,CAAyCH,KAAK,EAAA;AAC5C,4BAAA,IAAI,CAACmK,gBAAgB,GAAGnK,KAAMO,CAAAA,GAAG,CAAC,CAAE,CAAA;AACtC,yBAAA;AACA+B,wBAAAA,eAAAA,CAAAA,GAAAA;4BACE,OAAO,IAAI,CAACb,WAAW,GAAG,IAAI,CAACc,YAAY,CAAC4H,gBAAgB,GAAG,CAAA;AACjE;AACF,qBAAA;uBACG7I,iBAAkBC,CAAAA,OAAAA;AACtB,iBAAA,CAAA;AACH;AACF,SAAA;QACAkF,oCAAqCyD,CAAAA,6BAAAA;AACtC,KAAA;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"material.js","sources":["../../../../src/utility/serialization/scene/material.ts"],"sourcesContent":["import type { FaceMode, Texture2D } from '@zephyr3d/device';\r\nimport type { BlendMode } from '../../../material';\r\nimport {\r\n BlinnMaterial,\r\n HairMaterial,\r\n HairStrandMaterial,\r\n LambertMaterial,\r\n MeshMaterial,\r\n MToonMaterial,\r\n ParticleMaterial,\r\n PBRBluePrintMaterial,\r\n PBRBluePrintMaterialInstance,\r\n PBRMetallicRoughnessMaterial,\r\n PBRSpecularGlossinessMaterial,\r\n EyeMaterial,\r\n SkinMaterial,\r\n SubsurfaceProfile,\r\n type MToonOutlineWidthMode,\r\n type SubsurfaceProfilePreset,\r\n SpriteBlueprintMaterial,\r\n UnlitMaterial,\r\n type HairStrandDirection,\r\n type HairShadingModel\r\n} from '../../../material';\r\nimport type { PBRBlueprintOutputName } from '../../../material/pbrblueprint';\r\nimport { defineProps, type PropertyAccessor, type SerializableClass } from '../types';\r\nimport type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport { getTextureProps } from './common';\r\nimport type { ResourceManager } from '../manager';\r\nimport { getMeshMaterialInstanceUniformsClass } from './common';\r\nimport { SpriteMaterial } from '../../../material/sprite';\r\nimport { StandardSpriteMaterial } from '../../../material/sprite_std';\r\nimport type { PBRReflectionMode } from '../../../material/mixins/lightmodel/pbrmetallicroughness';\r\n\r\ntype PBRMaterial = PBRMetallicRoughnessMaterial | PBRSpecularGlossinessMaterial;\r\ntype LitPropTypes = LambertMaterial | BlinnMaterial | SkinMaterial | HairMaterial | PBRMaterial;\r\ntype UnlitPropTypes = UnlitMaterial | LitPropTypes;\r\n\r\nfunction createBlueprintOutputHiddenPredicate(_outputs: readonly PBRBlueprintOutputName[]) {\r\n return function (this: any) {\r\n return this instanceof PBRBluePrintMaterial;\r\n };\r\n}\r\n\r\nfunction canEditParentMaterialProperty(material: MeshMaterial) {\r\n return (\r\n !material.$isInstance &&\r\n !(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstanceWithInheritedParentProps(material: MeshMaterial) {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstance(material: MeshMaterial): material is MeshMaterial & {\r\n isBlueprintMaterialInstance: true;\r\n markMaterialPropertyOverridden?: (propName: string) => void;\r\n} {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction allowBlueprintInstanceOverride(material: MeshMaterial, propName: string, setter: () => void) {\r\n setter();\r\n if (isBlueprintMaterialAssetInstance(material)) {\r\n material.markMaterialPropertyOverridden?.(propName);\r\n }\r\n}\r\n\r\ntype BlueprintInstanceSubsurfaceMaterial = PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceSubsurfacePreset?: (val: SubsurfaceProfilePreset) => void;\r\n setBlueprintInstanceSubsurfaceStrength?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceScale?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceProfileValue?: <K extends keyof SubsurfaceProfile>(\r\n propName: string,\r\n key: K,\r\n value: SubsurfaceProfile[K]\r\n ) => void;\r\n};\r\n\r\nfunction canEditBlueprintInstanceSubsurfaceProfile(material: PBRMetallicRoughnessMaterial) {\r\n return (\r\n !!material.subsurfaceProfile &&\r\n !!(material as BlueprintInstanceSubsurfaceMaterial).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction getBlueprintInstanceSubsurfaceMaterial(\r\n material: PBRMetallicRoughnessMaterial\r\n): BlueprintInstanceSubsurfaceMaterial {\r\n return material as BlueprintInstanceSubsurfaceMaterial;\r\n}\r\n\r\nexport function getSubsurfaceProfileClass(): SerializableClass {\r\n return {\r\n ctor: SubsurfaceProfile,\r\n name: 'SubsurfaceProfile',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Preset',\r\n type: 'string',\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n }\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.str[0] = this.preset;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.preset = value.str[0] as SubsurfaceProfilePreset;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n type: 'rgb',\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathColor.x;\r\n value.num[1] = this.meanFreePathColor.y;\r\n value.num[2] = this.meanFreePathColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterDistance',\r\n type: 'float',\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathDistance;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWeight',\r\n type: 'float',\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.strength;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterScale',\r\n type: 'float',\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WorldUnitScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.worldUnitScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.worldUnitScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BoundaryColorBleed',\r\n type: 'float',\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.boundaryColorBleed;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.boundaryColorBleed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionTintColor',\r\n type: 'rgb',\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.transmissionTintColor.x;\r\n value.num[1] = this.transmissionTintColor.y;\r\n value.num[2] = this.transmissionTintColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.transmissionTintColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ExtinctionScale',\r\n type: 'float',\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.extinctionScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.extinctionScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.normalScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatteringDistribution',\r\n type: 'float',\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scatteringDistribution;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scatteringDistribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailSoftness',\r\n type: 'float',\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailSoftness;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailSoftness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailRadius',\r\n type: 'float',\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailRadius;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailRadius = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction getPBRCommonProps(manager: ResourceManager): PropertyAccessor<PBRMaterial>[] {\r\n const supportsSSSThicknessAuthoring = function (this: PBRMaterial) {\r\n return (\r\n (!this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial)) &&\r\n !!(this.transmission || (this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile)\r\n );\r\n };\r\n return defineProps([\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction for the material surface',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength multiplier for the occlusion texture effect',\r\n type: 'float',\r\n phase: 2,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['AO']),\r\n isValid(this: PBRMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'occlusionTexture', '2D', false, 0, undefined, ['AO']),\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description:\r\n 'Display-referred intensity multiplier for the emissive color and texture, used by legacy ' +\r\n 'lighting. Physical lighting uses EmissiveLuminance instead.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'EmissiveLuminance',\r\n description:\r\n 'Emissive multiplier used by physical lighting. With EmissiveExposureWeight at 1 it is a ' +\r\n 'luminance in cd/m²: a display is 200-1000, a neon sign 5,000-20,000, a sunlit white ' +\r\n 'surface ~25,000. With the weight at 0, as on imported glTF/FBX materials, the exposure ' +\r\n 'cancels out and it is a display-referred multiplier where the useful range is about [0, 1].',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveLuminance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveLuminance = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveLuminance : 1000;\r\n }\r\n },\r\n {\r\n name: 'EmissiveExposureWeight',\r\n description:\r\n 'How strongly the emissive term follows camera exposure, and therefore what unit ' +\r\n 'EmissiveLuminance carries. 1 reads it as a cd/m² luminance that dims as the camera stops ' +\r\n 'down; 0 cancels the exposure out, making it a display-referred multiplier that ignores ' +\r\n 'aperture, shutter and ISO. Imported glTF/FBX materials are set to 0.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveExposureWeight;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveExposureWeight = value.num[0];\r\n },\r\n // Materials are not scene-bound, so this cannot be gated on lightingMode. It is inert in\r\n // legacy anyway (pre-exposure is 1 there), so it stays visible like the other emissive props.\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveExposureWeight : 1;\r\n }\r\n },\r\n {\r\n name: 'RectSpecularScale',\r\n type: 'float',\r\n options: {\r\n label: 'RectSpecularScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.rectSpecularScale;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.rectSpecularScale = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.rectSpecularScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.rectSpecularScale : 1;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'emissiveTexture', '2D', true, 0, undefined, ['Emissive']),\r\n ...getTextureProps<PBRMaterial>(manager, 'specularTexture', '2D', false, 0, undefined, [\r\n 'SpecularWeight'\r\n ]),\r\n {\r\n name: 'Transmission',\r\n description: 'If true, enables light transmission through the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.transmission;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'Transmission', () => {\r\n this.transmission = value.bool[0];\r\n });\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'TransmissionFactor',\r\n description: 'Amount of transmitted light, from fully opaque to fully transparent',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.2,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.transmissionFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'TransmissionFactor', () => {\r\n this.transmissionFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionFactor : 0.2;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'transmissionTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'ThicknessFactor',\r\n description: 'Physical thickness used by transmission and volume attenuation',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.35,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.thicknessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'ThicknessFactor', () => {\r\n this.thicknessFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.thicknessFactor : 0.35;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'thicknessTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'AttenuationColor',\r\n description: 'Color tint applied to transmitted light as it travels through the material',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.5, 0.4],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationColor.x;\r\n value.num[1] = this.attenuationColor.y;\r\n value.num[2] = this.attenuationColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationColor', () => {\r\n this.attenuationColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationColor : [1, 0.5, 0.4];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'AttenuationDistance',\r\n description: 'Distance over which transmitted light is attenuated inside the material',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationDistance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationDistance', () => {\r\n this.attenuationDistance = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationDistance : 0.6;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'Iridescence',\r\n description: 'If true, enables thin-film iridescence on the material surface',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.iridescence;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescence = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'IridescenceFactor',\r\n description: 'Strength of the iridescence effect',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'IridescenceIOR',\r\n description: 'Index of refraction used for the iridescence layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.3,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceIor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceIor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMin',\r\n description: 'Minimum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 100,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMin;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMin = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMax',\r\n description: 'Maximum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 400,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMax;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMax = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceThicknessTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'ClearCoat',\r\n description: 'If true, enables a clear coat layer on top of the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.clearcoat;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoat = value.bool[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial)\r\n );\r\n }\r\n },\r\n {\r\n name: 'ClearCoatIntensity',\r\n description: 'Strength of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatIntensity;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatIntensityTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'ClearCoatRoughnessFactor',\r\n description: 'Roughness of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatRoughnessTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatNormalTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'Sheen',\r\n description: 'If true, enables a soft fabric-like sheen layer',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.sheen;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheen = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'SheenColorFactor',\r\n description: 'Color of the sheen layer',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenColorFactor.x;\r\n value.num[1] = this.sheenColorFactor.y;\r\n value.num[2] = this.sheenColorFactor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenColorTexture', '2D', true, 1, function () {\r\n return this.sheen;\r\n }),\r\n {\r\n name: 'SheenRoughnessFactor',\r\n description: 'Roughness of the sheen layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenRoughnessTexture', '2D', false, 1, function () {\r\n return this.sheen;\r\n }),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n}\r\n\r\nfunction getLitMaterialProps(manager: ResourceManager): PropertyAccessor<LitPropTypes>[] {\r\n return defineProps([\r\n ...getUnlitMaterialProps(manager),\r\n {\r\n name: 'NormalScale',\r\n description: 'Strength multiplier for normal map X and Y components',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 3\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalScale', () => {\r\n this.normalScale = value.num[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalScale : 1;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'NormalFlipY',\r\n description: 'If true, flips the green (Y) component sampled from the normal map',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.normalFlipY;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalFlipY', () => {\r\n this.normalFlipY = value.bool[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalFlipY ?? false;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalFlipY : false;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'doubleSidedLighting',\r\n description: 'If true, lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'doubleSidedLighting', () => {\r\n this.doubleSidedLighting = value.bool[0];\r\n });\r\n },\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.doubleSidedLighting ?? true;\r\n }\r\n // Must match what the constructor actually sets - mixinLight enables\r\n // FEATURE_DOUBLE_SIDED_LIGHTING - because this value is used both to\r\n // decide whether to omit the property when saving and to fill it in\r\n // when it is absent on load. Returning false here made every asset\r\n // written before this accessor existed (all of which omitted the key,\r\n // since true was then the assumed default) load as single-sided.\r\n return this.$isInstance ? this.coreMaterial.doubleSidedLighting : true;\r\n }\r\n },\r\n {\r\n name: 'vertexNormal',\r\n description: 'If true, uses vertex normals for lighting and normal mapping',\r\n type: 'bool',\r\n default: true,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexNormal;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexNormal = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'If true, uses vertex tangents for tangent-space normal mapping',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Tangent']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance && !!this.vertexNormal;\r\n }\r\n },\r\n ...getTextureProps<LitPropTypes>(manager, 'normalTexture', '2D', false, 0, undefined, ['Normal'])\r\n ]);\r\n}\r\n\r\nfunction getUnlitMaterialProps(manager: ResourceManager): PropertyAccessor<UnlitPropTypes>[] {\r\n return defineProps([\r\n {\r\n name: 'vertexColor',\r\n description: 'If true, multiplies the material color by per-vertex color data',\r\n type: 'bool',\r\n default: false,\r\n get(this: UnlitPropTypes, value) {\r\n value.bool[0] = this.vertexColor;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.vertexColor = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor']),\r\n isValid(this: UnlitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the material before lighting',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: UnlitPropTypes, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor', 'Opacity']),\r\n getDefaultValue(this: UnlitPropTypes) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<UnlitPropTypes>(manager, 'albedoTexture', '2D', true, 0, undefined, [\r\n 'BaseColor',\r\n 'Opacity'\r\n ])\r\n ]);\r\n}\r\n\r\nfunction getMToonMaterialProps(manager: ResourceManager): PropertyAccessor<MToonMaterial>[] {\r\n return defineProps([\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the MToon material',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'albedoTexture', '2D', true, 0),\r\n {\r\n name: 'NormalScale',\r\n description: 'Scalar applied to the MToon normal texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.normalScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.normalTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'normalTexture', '2D', false, 0),\r\n {\r\n name: 'DoubleSidedLighting',\r\n description: 'If true, MToon lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.doubleSidedLighting = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the MToon material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description: 'Intensity multiplier for the MToon emissive color and texture',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'emissiveTexture', '2D', true, 0),\r\n {\r\n name: 'ShadeColorFactor',\r\n description: 'MToon shadow-side color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadeColorFactor.x;\r\n value.num[1] = this.shadeColorFactor.y;\r\n value.num[2] = this.shadeColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadeColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadeColorFactor : [0, 0, 0];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadeMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'ShadingShiftFactor',\r\n description: 'MToon terminator shift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingShiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'ShadingShiftTextureScale',\r\n description: 'Scale applied to the MToon shading shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftTextureScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftTextureScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.shadingShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadingShiftTexture', '2D', false, 0),\r\n {\r\n name: 'ShadingToonyFactor',\r\n description: 'MToon shadow edge sharpness factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 0.99\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingToonyFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingToonyFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingToonyFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'GIEqualizationFactor',\r\n description: 'MToon indirect lighting equalization factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.giEqualizationFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.giEqualizationFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.giEqualizationFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'MatcapFactor',\r\n description: 'MToon matcap color factor',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.matcapFactor.x;\r\n value.num[1] = this.matcapFactor.y;\r\n value.num[2] = this.matcapFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.matcapFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.matcapFactor : [1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'matcapTexture', '2D', true, 0),\r\n {\r\n name: 'ParametricRimColorFactor',\r\n description: 'MToon parametric rim color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimColorFactor.x;\r\n value.num[1] = this.parametricRimColorFactor.y;\r\n value.num[2] = this.parametricRimColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimColorFactor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'ParametricRimFresnelPowerFactor',\r\n description: 'MToon parametric rim Fresnel power factor',\r\n type: 'float',\r\n default: 5,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimFresnelPowerFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimFresnelPowerFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimFresnelPowerFactor : 5;\r\n }\r\n },\r\n {\r\n name: 'ParametricRimLiftFactor',\r\n description: 'MToon parametric rim lift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimLiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimLiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimLiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'RimLightingMixFactor',\r\n description: 'MToon rim lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.rimLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.rimLightingMixFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.rimLightingMixFactor : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'rimMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'OutlineWidthMode',\r\n description: 'MToon outline width mode',\r\n type: 'string',\r\n default: 'none',\r\n options: {\r\n enum: {\r\n labels: ['None', 'World Coordinates', 'Screen Coordinates'],\r\n values: ['none', 'worldCoordinates', 'screenCoordinates']\r\n }\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.str[0] = this.outlineWidthMode;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthMode = value.str[0] as MToonOutlineWidthMode;\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OutlineWidthFactor',\r\n description: 'MToon outline width factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineWidthFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'outlineWidthMultiplyTexture', '2D', false, 1, function () {\r\n return this.outlineWidthMode !== 'none';\r\n }),\r\n {\r\n name: 'OutlineColorFactor',\r\n description: 'MToon outline color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineColorFactor.x;\r\n value.num[1] = this.outlineColorFactor.y;\r\n value.num[2] = this.outlineColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineLightingMixFactor',\r\n description: 'MToon outline lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineLightingMixFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineUsesTangentNormals',\r\n description: 'Use the tangent attribute xyz as smooth normals for MToon outline expansion',\r\n type: 'boolean',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.outlineUsesTangentNormals;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineUsesTangentNormals = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'uvAnimationMaskTexture', '2D', false, 0),\r\n {\r\n name: 'UVAnimationScrollXSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the X axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollXSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollXSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollXSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationScrollYSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the Y axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollYSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollYSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollYSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationRotationSpeedFactor',\r\n description: 'MToon UV animation rotation speed',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationRotationSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationRotationSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationRotationSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'TransparentWithZWrite',\r\n description: 'If true, transparent MToon pixels also write depth',\r\n type: 'bool',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.transparentWithZWrite;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.transparentWithZWrite = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'RenderQueueOffsetNumber',\r\n description: 'MToon render queue offset number',\r\n type: 'int',\r\n default: 0,\r\n options: {\r\n minValue: -9,\r\n maxValue: 9\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.renderQueueOffsetNumber;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.renderQueueOffsetNumber = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n}\r\n\r\n/** @internal */\r\nexport function getMeshMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MeshMaterial,\r\n name: 'MeshMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaCutoff',\r\n description:\r\n 'If greater then 0, pixels which have alpha smaller than alpha cutoff will be discarded',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.alphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaToCoverage',\r\n description: 'If true, alpha-to-coverage will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaToCoverage;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaToCoverage = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaDither',\r\n description: 'If true, alpha-dithering will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaDither;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaDither = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.alphaCutoff > 0;\r\n }\r\n },\r\n {\r\n name: 'BlendMode',\r\n description: 'Blending mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Blend', 'Additive'], values: ['none', 'blend', 'additive'] }\r\n },\r\n default: 'none',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.blendMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.blendMode = value.str[0] as BlendMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'TransparentShadowCaster',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.transparentShadowCaster;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.transparentShadowCaster = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.blendMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'ShadowAlphaCutoff',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.shadowAlphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.shadowAlphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return (\r\n canEditParentMaterialProperty(this) &&\r\n this.blendMode !== 'none' &&\r\n this.transparentShadowCaster\r\n );\r\n }\r\n },\r\n {\r\n name: 'CullMode',\r\n description: 'Cull mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Front', 'Back'], values: ['none', 'front', 'back'] }\r\n },\r\n default: 'back',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.cullMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.cullMode = value.str[0] as FaceMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'Opacity',\r\n description: 'Opacity value for this material, no effect if blendingMode is `none`',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 1,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.opacity;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.opacity = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Opacity']),\r\n getDefaultValue(this: MeshMaterial) {\r\n return this.$isInstance ? this.coreMaterial.opacity : 1;\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'TAA strength for this material',\r\n type: 'float',\r\n options: {\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 15 / 16,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.TAAStrength = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MeshMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteMaterialClass(_manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteMaterial,\r\n name: 'SpriteMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getStandardSpriteMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: StandardSpriteMaterial,\r\n name: 'StandardSpriteMaterial',\r\n parent: SpriteMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpriteTexture',\r\n description: 'Texture file path for the sprite',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(value) {\r\n value.str[0] = manager.getAssetId(this.spriteTexture) ?? '';\r\n },\r\n async set(this: StandardSpriteMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.spriteTexture = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, {\r\n linearColorSpace: false\r\n });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.spriteTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(StandardSpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getParticleMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: ParticleMaterial,\r\n name: 'ParticleMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaMap',\r\n description: 'Alpha texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.alphaMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.alphaMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.alphaMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'RampMap',\r\n description: 'Ramp texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.rampMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.rampMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.rampMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(ParticleMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterial,\r\n parent: PBRMetallicRoughnessMaterial,\r\n name: 'PBRBluePrintMaterial',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialInstanceClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterialInstance,\r\n parent: PBRBluePrintMaterial,\r\n name: 'PBRBluePrintMaterialInstance',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterialInstance)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteBlueprintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteBlueprintMaterial,\r\n parent: MeshMaterial,\r\n name: 'SpriteBlueprintMaterial',\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteBlueprintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getUnlitMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: UnlitMaterial,\r\n parent: MeshMaterial,\r\n name: 'UnlitMaterial',\r\n getProps() {\r\n return getUnlitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(UnlitMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getMToonMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MToonMaterial,\r\n parent: MeshMaterial,\r\n name: 'MToonMaterial',\r\n getProps() {\r\n return getMToonMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MToonMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getLambertMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: LambertMaterial,\r\n parent: MeshMaterial,\r\n name: 'LambertMaterial',\r\n getProps() {\r\n return getLitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(LambertMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getBlinnMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: BlinnMaterial,\r\n parent: MeshMaterial,\r\n name: 'BlinnMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Shininess value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2048\r\n },\r\n get(this: BlinnMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: BlinnMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: BlinnMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 32;\r\n }\r\n },\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(BlinnMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getHairMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairMaterial,\r\n parent: MeshMaterial,\r\n name: 'HairMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'ShadingModel',\r\n description:\r\n 'Which scattering model shades the hair. Marschner derives the lobes from the fibre; Kajiya-Kay is the art-directed double lobe',\r\n type: 'string',\r\n default: 'kajiya-kay',\r\n options: {\r\n enum: {\r\n labels: ['Kajiya-Kay (double lobe)', 'Marschner (fibre)'],\r\n values: ['kajiya-kay', 'marschner']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.shadingModel;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shadingModel = value.str[0] as HairShadingModel;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'Specular1Color',\r\n description: 'Color of the primary (sharp, near-white) specular lobe',\r\n type: 'rgb',\r\n default: [0.35, 0.35, 0.35],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Color.x;\r\n value.num[1] = this.specular1Color.y;\r\n value.num[2] = this.specular1Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular1Power',\r\n description: 'Exponent of the primary specular lobe',\r\n type: 'float',\r\n default: 160,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular1Shift',\r\n description: 'Shift of the primary specular lobe along the strand',\r\n type: 'float',\r\n default: -0.15,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Color',\r\n description: 'Color of the secondary (broad, hair-tinted) specular lobe',\r\n type: 'rgb',\r\n default: [0.5, 0.45, 0.4],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Color.x;\r\n value.num[1] = this.specular2Color.y;\r\n value.num[2] = this.specular2Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular2Power',\r\n description: 'Exponent of the secondary specular lobe',\r\n type: 'float',\r\n default: 40,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Shift',\r\n description: 'Shift of the secondary specular lobe along the strand',\r\n type: 'float',\r\n default: 0.1,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandDirection',\r\n description: 'Which TBN axis runs along the hair strands in the card atlas',\r\n type: 'string',\r\n default: 'binormal',\r\n options: {\r\n enum: {\r\n labels: ['Tangent (U)', 'Binormal (V)'],\r\n values: ['tangent', 'binormal']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.strandDirection;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.strandDirection = value.str[0] as HairStrandDirection;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n // The Marschner parameters are deliberately not gated on ShadingModel.\r\n // An invalid property is skipped on both save and load, so gating them\r\n // would drop one model's tuning every time the material was saved under\r\n // the other - and switching back and forth is exactly what comparing\r\n // two models involves.\r\n {\r\n name: 'MarschnerShift',\r\n description: 'Cuticle tilt that separates the three Marschner lobes, in sine units',\r\n type: 'float',\r\n default: 0.035,\r\n options: {\r\n animatable: true,\r\n minValue: -0.2,\r\n maxValue: 0.2\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerShift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerShift = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerRoughness',\r\n description: 'Longitudinal width of the Marschner lobes',\r\n type: 'float',\r\n default: 0.3,\r\n options: {\r\n animatable: true,\r\n minValue: 0.005,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerRoughness;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerRoughness = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerIOR',\r\n description: 'Refractive index of the fibre. 1.55 is the measured value for keratin',\r\n type: 'float',\r\n default: 1.55,\r\n options: {\r\n animatable: true,\r\n minValue: 1.01,\r\n maxValue: 2.5\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerIOR;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerIOR = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerAbsorption',\r\n description: 'How strongly the transmitted Marschner paths take on the hair colour',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerAbsorption;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerAbsorption = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerLobes',\r\n description: 'Per-path intensities of the Marschner model as (R, TT, TRT)',\r\n type: 'vec3',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerLobes.x;\r\n value.num[1] = this.marschnerLobes.y;\r\n value.num[2] = this.marschnerLobes.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerLobes = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'ShiftMapScale',\r\n description: 'Scale applied to the per-strand shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.shiftMapScale;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shiftMapScale = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.specularShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'specularShiftTexture', '2D', false, 0),\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap diffuse amount that softens the terminator across thin cards',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionColor',\r\n description: 'Tint color of the backlit transmission term',\r\n type: 'rgb',\r\n default: [0.9, 0.65, 0.45],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionColor.x;\r\n value.num[1] = this.transmissionColor.y;\r\n value.num[2] = this.transmissionColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'TransmissionIntensity',\r\n description: 'Intensity of the backlit transmission term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionPower',\r\n description: 'View-alignment exponent of the transmission term',\r\n type: 'float',\r\n default: 6,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 64\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionPower;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionPower = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Tint of multiply-scattered light',\r\n type: 'rgb',\r\n default: [1, 0.85, 0.7],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterIntensity',\r\n description: 'Intensity of the multiple scattering term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterLocal',\r\n description:\r\n 'Balance between scattering that follows the light and scattering that survives where it is blocked',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterLocal;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterLocal = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Angular width of the forward-scattered lobe',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength of the baked occlusion (root darkening) texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'occlusionTexture', '2D', false, 0),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairMaterial)\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for the GPU strand expansion material.\r\n *\r\n * @remarks\r\n * Declared as a child of {@link HairMaterial}, so every lighting property the\r\n * parent exposes is inherited and only the expansion controls appear here.\r\n * The strand geometry itself is deliberately absent: it belongs to the node that\r\n * draws it, which references a `.zhair` asset, and duplicating millions of\r\n * control points into a material would defeat the point of having that file.\r\n * @internal\r\n */\r\nexport function getHairStrandMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairStrandMaterial,\r\n parent: HairMaterial,\r\n name: 'HairStrandMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SegmentsPerStrand',\r\n description:\r\n 'Ribbon segments generated per strand. Independent of the control point count, so the same strands can be drawn coarser at a distance',\r\n type: 'int',\r\n default: 8,\r\n options: { minValue: 1, maxValue: 64 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.segmentsPerStrand;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.segmentsPerStrand = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandWidthScale',\r\n description: 'Multiplier on the width stored in the strand data',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandWidthScale;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandWidthScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandWidth',\r\n description: 'Lower bound on ribbon width, in world units',\r\n type: 'float',\r\n default: 0,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinPixelWidth',\r\n description:\r\n 'Lower bound on ribbon width in pixels. Real hair is thinner than a pixel; widening it and paying the coverage back in alpha keeps distant hair from breaking into a flickering dotted line',\r\n type: 'float',\r\n default: 1.4,\r\n options: { minValue: 0, maxValue: 8 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minPixelWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minPixelWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandRoundness',\r\n description:\r\n 'How far the shading normal bends across the ribbon. At 0 the strand shades as a flat tape, at 1 as a cylinder',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandRoundness;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandRoundness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandLOD',\r\n description: 'Drop strands with distance, redistributing their coverage to the survivors',\r\n type: 'bool',\r\n default: false,\r\n get(this: HairStrandMaterial, value) {\r\n value.bool[0] = this.strandLOD;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandLOD = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandLODRatio',\r\n description: 'Floor on the fraction of strands distance decimation keeps',\r\n type: 'float',\r\n default: 0.05,\r\n options: { minValue: 0, maxValue: 1 },\r\n isValid(this: HairStrandMaterial) {\r\n return this.strandLOD;\r\n },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandLODRatio;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandLODRatio = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairStrandMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSkinMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SkinMaterial,\r\n parent: MeshMaterial,\r\n name: 'SkinMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Blinn specular exponent for skin highlights',\r\n type: 'float',\r\n default: 72,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 2048\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 72;\r\n }\r\n },\r\n {\r\n name: 'SpecularStrength',\r\n description: 'Direct specular strength for restrained skin highlights',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.specularStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.specularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap amount for visible diffuse lighting',\r\n type: 'float',\r\n default: 0.28,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseWrap : 0.28;\r\n }\r\n },\r\n {\r\n name: 'DiffuseSoftness',\r\n description: 'Blend from hard Lambert lighting to wrapped diffuse lighting',\r\n type: 'float',\r\n default: 0.45,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseSoftness;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseSoftness : 0.45;\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Wide wrap amount written to the Skin SSS scattering source',\r\n type: 'float',\r\n default: 0.65,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterWrap : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ScatterStrength',\r\n description: 'Strength of the scatter irradiance written to the Skin SSS side buffer',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterStrength : 1.5;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Warm tint for the blurred skin scattering contribution',\r\n type: 'rgba',\r\n default: [1, 0.42, 0.28, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n value.num[3] = this.scatterColor.w;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n const color = this.$isInstance ? this.coreMaterial.scatterColor : new Vector4(1, 0.42, 0.28, 1);\r\n return [color.x, color.y, color.z, color.w];\r\n }\r\n },\r\n {\r\n name: 'ShadowTint',\r\n description: 'NPR shadow tint the dark end of the diffuse ramp lifts toward (black is neutral)',\r\n type: 'rgba',\r\n default: [0, 0, 0, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.shadowTint.x;\r\n value.num[1] = this.shadowTint.y;\r\n value.num[2] = this.shadowTint.z;\r\n value.num[3] = this.shadowTint.w;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.shadowTint = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n const color = this.$isInstance ? this.coreMaterial.shadowTint : new Vector4(0, 0, 0, 1);\r\n return [color.x, color.y, color.z, color.w];\r\n }\r\n },\r\n {\r\n name: 'Brightening',\r\n description: 'Whitening gain applied to the whole diffuse response',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.brightening;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.brightening = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.brightening : 0;\r\n }\r\n },\r\n {\r\n name: 'TransmissionStrength',\r\n description: 'Back-lit transmission strength (needs thickness in subsurface texture B)',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.transmissionStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.transmissionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionStrength : 0;\r\n }\r\n },\r\n {\r\n name: 'TransmissionPower',\r\n description: 'Exponent of the back-lit transmission falloff',\r\n type: 'float',\r\n default: 4,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 16\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.transmissionPower;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.transmissionPower = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionPower : 4;\r\n }\r\n },\r\n ...getTextureProps<SkinMaterial>(manager, 'subsurfaceTexture', '2D', false, 1),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SkinMaterial)\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for {@link EyeMaterial}.\r\n *\r\n * Every `getDefaultValue()` non-instance branch below must return exactly what\r\n * the constructor sets. The serializer uses this both to decide whether a\r\n * property can be omitted when saving and to fill it in when it is absent on\r\n * load, so a mismatch silently rewrites assets - which is what a mismatched\r\n * `doubleSidedLighting` default did before it was found.\r\n */\r\nexport function getEyeMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: EyeMaterial,\r\n parent: MeshMaterial,\r\n name: 'EyeMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'IrisCenter',\r\n description: 'UV coordinate of the pupil centre on the eyeball mesh',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisCenter.x;\r\n value.num[1] = this.irisCenter.y;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisCenter = new Vector4(value.num[0], value.num[1], 0, 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisCenter : new Vector4(0.5, 0.5, 0, 0);\r\n return [c.x, c.y];\r\n }\r\n },\r\n {\r\n name: 'IrisRadius',\r\n description: 'Iris disc radius in UV units',\r\n type: 'float',\r\n default: 0.22,\r\n options: { animatable: true, minValue: 0.001, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisRadius : 0.22;\r\n }\r\n },\r\n {\r\n name: 'IrisDepth',\r\n description: 'Depth of the iris plane below the cornea; 0 disables parallax',\r\n type: 'float',\r\n default: 0.06,\r\n options: { animatable: true, minValue: 0, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisDepth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisDepth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisDepth : 0.06;\r\n }\r\n },\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction of the cornea (1.376 is physical)',\r\n type: 'float',\r\n default: 1.376,\r\n options: { animatable: true, minValue: 1, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.ior : 1.376;\r\n }\r\n },\r\n {\r\n name: 'PupilRadius',\r\n description: 'Pupil radius as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0.01, maxValue: 0.95 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilRadius : 0.35;\r\n }\r\n },\r\n {\r\n name: 'PupilDilation',\r\n description: 'Pupil dilation from -1 (constricted) to 1 (dilated)',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: -1, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilDilation;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilDilation = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilDilation : 0;\r\n }\r\n },\r\n {\r\n name: 'IrisColor',\r\n description: 'Tint multiplied over the iris texture',\r\n type: 'rgba',\r\n default: [1, 1, 1, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisColor.x;\r\n value.num[1] = this.irisColor.y;\r\n value.num[2] = this.irisColor.z;\r\n value.num[3] = this.irisColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisColor : new Vector4(1, 1, 1, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'IrisBrightness',\r\n description: 'Internal scattering that keeps the iris from crushing to black in shadow',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisBrightness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisBrightness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisBrightness : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingWidth',\r\n description: 'Width of the dark ring at the iris edge, as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingWidth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingWidth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingWidth : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingStrength',\r\n description: 'How dark the limbal ring gets; 0 disables it',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ScleraColor',\r\n description: 'Base sclera colour; pure white reads as plastic',\r\n type: 'rgba',\r\n default: [0.9, 0.88, 0.86, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraColor.x;\r\n value.num[1] = this.scleraColor.y;\r\n value.num[2] = this.scleraColor.z;\r\n value.num[3] = this.scleraColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.scleraColor : new Vector4(0.9, 0.88, 0.86, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'ScleraWrap',\r\n description: 'Diffuse wrap for the sclera, standing in for its subsurface softness',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraWrap;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraWrap = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scleraWrap : 0.35;\r\n }\r\n },\r\n {\r\n name: 'ScleraEdgeTint',\r\n description: 'Vasculature colour bled into the sclera away from the iris; alpha is its strength',\r\n type: 'rgba',\r\n default: [0.55, 0.22, 0.18, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraEdgeTint.x;\r\n value.num[1] = this.scleraEdgeTint.y;\r\n value.num[2] = this.scleraEdgeTint.z;\r\n value.num[3] = this.scleraEdgeTint.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraEdgeTint = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance\r\n ? this.coreMaterial.scleraEdgeTint\r\n : new Vector4(0.55, 0.22, 0.18, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'CorneaSpecularStrength',\r\n description: 'Strength of the corneal highlight - the main cue that an eye is wet',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaSpecularStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaSpecularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaSpecularStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'CorneaRoughness',\r\n description: 'Corneal roughness; the cornea is close to a mirror, so keep this very low',\r\n type: 'float',\r\n default: 0.05,\r\n options: { animatable: true, minValue: 0.001, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaRoughness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaRoughness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaRoughness : 0.05;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'Whether the mesh supplies tangents; without them refraction is disabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.vertexTangent : false;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusion',\r\n description: 'Enables analytic shadowing of the eyeball by the eyelids and socket',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.socketOcclusion;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusion = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusion : false;\r\n }\r\n },\r\n {\r\n name: 'SocketRotation',\r\n description: 'Euler rotation in degrees of the socket frame; zero matches +Y up, +Z gaze assets',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n options: { minValue: -180, maxValue: 180 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketRotation.x;\r\n value.num[1] = this.socketRotation.y;\r\n value.num[2] = this.socketRotation.z;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketRotation = new Vector4(value.num[0], value.num[1], value.num[2], 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const r = this.$isInstance ? this.coreMaterial.socketRotation : new Vector4(0, 0, 0, 0);\r\n return [r.x, r.y, r.z];\r\n }\r\n },\r\n {\r\n name: 'UpperLidAngle',\r\n description: 'Aperture half-angle towards the upper lid, in degrees',\r\n type: 'float',\r\n default: 50,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.upperLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.upperLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.upperLidAngle : 50;\r\n }\r\n },\r\n {\r\n name: 'LowerLidAngle',\r\n description: 'Aperture half-angle towards the lower lid, in degrees',\r\n type: 'float',\r\n default: 65,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.lowerLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.lowerLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.lowerLidAngle : 65;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionSoftness',\r\n description: 'Width of the lit-to-shadowed transition, in degrees',\r\n type: 'float',\r\n default: 15,\r\n options: { animatable: true, minValue: 1, maxValue: 45 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionSoftness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionSoftness : 15;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionStrength',\r\n description: 'Overall socket occlusion strength',\r\n type: 'float',\r\n default: 0.65,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionStrength : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ContactAO',\r\n description:\r\n 'Enables screen-space contact occlusion of the eyeball by the eyelid, read from the depth prepass',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAO;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAO = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAO : false;\r\n }\r\n },\r\n {\r\n name: 'ContactAORadius',\r\n description: 'Radius of the contact occlusion disc, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.0001, maxValue: 0.1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAORadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAORadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAORadius : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMinDistance',\r\n description: 'Smallest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.0004,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.02 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMinDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMinDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMinDistance : 0.0004;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMaxDistance',\r\n description: 'Largest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMaxDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMaxDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMaxDistance : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOStrength',\r\n description: 'Overall contact occlusion strength',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ContactAOTemporalJitter',\r\n description:\r\n 'Advances the contact occlusion noise pattern every frame so TAA can integrate it away; enable only with temporal anti-aliasing',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAOTemporalJitter;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOTemporalJitter = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOTemporalJitter : false;\r\n }\r\n },\r\n ...getTextureProps<EyeMaterial>(manager, 'irisTexture', '2D', true, 0),\r\n ...getTextureProps<EyeMaterial>(manager, 'scleraTexture', '2D', true, 0)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(EyeMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRMetallicRoughnessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRMetallicRoughnessMaterial,\r\n parent: MeshMaterial,\r\n name: 'PBRMetallicRoughnessMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Metallic',\r\n description: 'Metallic value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.metallic;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.metallic = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Metallic']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.metallic : 1;\r\n }\r\n },\r\n {\r\n name: 'Roughness',\r\n description: 'Roughness value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.roughness;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.roughness = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Roughness']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.roughness : 1;\r\n }\r\n },\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGBA specular factor used to tint and scale specular reflections',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n value.num[3] = this.specularFactor.w;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.specularFactor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Specular', 'SpecularWeight']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'Reflection',\r\n description: 'Reflection mode',\r\n type: 'string',\r\n default: 'ggx',\r\n options: {\r\n enum: {\r\n labels: ['None', 'GGX', 'Anisotropic', 'Glint'],\r\n values: ['none', 'ggx', 'anisotropic', 'glint']\r\n }\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.reflectionMode;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const reflectionMode = value.str[0] as PBRReflectionMode;\r\n const blueprintInstance = this as PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceReflectionMode?: (val: PBRReflectionMode, inherited?: boolean) => void;\r\n };\r\n if (\r\n blueprintInstance.isBlueprintMaterialInstance &&\r\n blueprintInstance.setBlueprintInstanceReflectionMode\r\n ) {\r\n blueprintInstance.setBlueprintInstanceReflectionMode(reflectionMode);\r\n } else {\r\n this.reflectionMode = reflectionMode;\r\n }\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.reflectionMode : 'ggx';\r\n }\r\n },\r\n {\r\n name: 'Anisotropy',\r\n description: 'Strength of anisotropic reflections; values near 0 behave isotropically',\r\n type: 'float',\r\n default: 0.75,\r\n options: {\r\n animatable: true,\r\n minValue: -0.95,\r\n maxValue: 0.95\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropy;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropy = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropy : 0.75;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n {\r\n name: 'AnisotropyDirection',\r\n description: 'Rotation angle in degrees for the anisotropic highlight direction',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 360\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirection;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirection = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirection : 0;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'anisotropyDirectionTexture',\r\n '2D',\r\n false,\r\n 0,\r\n function () {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n ),\r\n {\r\n name: 'AnisotropyDirectionScaleBias',\r\n description: 'Scale and bias applied when decoding anisotropy direction from its texture',\r\n type: 'vec2',\r\n default: [1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirectionScaleBias.x;\r\n value.num[1] = this.anisotropyDirectionScaleBias.y;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirectionScaleBias = new Vector2(value.num[0], value.num[1]);\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirectionScaleBias : [1, 0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n this.reflectionMode === 'anisotropic' &&\r\n !!this.anisotropyDirectionTexture\r\n );\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceLookPreset',\r\n description: 'Per-instance preset override for the active subsurface profile',\r\n type: 'string',\r\n phase: 1,\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n },\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.subsurfaceProfile?.preset ?? 'skin_default';\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfacePreset) {\r\n profile.setBlueprintInstanceSubsurfacePreset(value.str[0] as SubsurfaceProfilePreset);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathColor',\r\n description: 'Per-instance mean free path color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.meanFreePathColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.meanFreePathColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathColor',\r\n 'meanFreePathColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathDistance',\r\n description: 'Per-instance mean free path distance override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathDistance ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathDistance',\r\n 'meanFreePathDistance',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterWeight',\r\n description: 'Per-instance scatter weight override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.strength ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceStrength) {\r\n profile.setBlueprintInstanceSubsurfaceStrength(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterScale',\r\n description: 'Per-instance scatter scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceScale) {\r\n profile.setBlueprintInstanceSubsurfaceScale(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceWorldUnitScale',\r\n description: 'Per-instance world unit scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.worldUnitScale ?? 1;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceWorldUnitScale',\r\n 'worldUnitScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceBoundaryColorBleed',\r\n description: 'Per-instance boundary color bleed override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.boundaryColorBleed ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceBoundaryColorBleed',\r\n 'boundaryColorBleed',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceTransmissionTintColor',\r\n description: 'Per-instance transmission tint color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.transmissionTintColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.transmissionTintColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.transmissionTintColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceTransmissionTintColor',\r\n 'transmissionTintColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceExtinctionScale',\r\n description: 'Per-instance extinction scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.extinctionScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceExtinctionScale',\r\n 'extinctionScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceNormalScale',\r\n description: 'Per-instance normal scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.normalScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceNormalScale',\r\n 'normalScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatteringDistribution',\r\n description: 'Per-instance scattering distribution override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scatteringDistribution ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceScatteringDistribution',\r\n 'scatteringDistribution',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailSoftness',\r\n description: 'Per-instance specular detail softness override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailSoftness ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailSoftness',\r\n 'specularDetailSoftness',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailRadius',\r\n description: 'Per-instance specular detail radius override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailRadius ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailRadius',\r\n 'specularDetailRadius',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceProfile',\r\n description: 'If true, enables subsurface scattering for translucent materials',\r\n type: 'object',\r\n phase: 0,\r\n default: null,\r\n options: {\r\n objectTypes: [SubsurfaceProfile]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.object[0] = this.subsurfaceProfile;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.subsurfaceProfile = (value.object[0] as SubsurfaceProfile) ?? null;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'subsurfaceTexture',\r\n '2D',\r\n false,\r\n 1,\r\n function () {\r\n return !!this.subsurfaceProfile;\r\n }\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'metallicRoughnessTexture',\r\n '2D',\r\n false,\r\n 0,\r\n undefined,\r\n ['Metallic', 'Roughness']\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'specularColorTexture',\r\n '2D',\r\n true,\r\n 0,\r\n undefined,\r\n ['Specular']\r\n ),\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRMetallicRoughnessMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRSpecularGlossinessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRSpecularGlossinessMaterial,\r\n name: 'PBRSpecularGlossinessMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGB specular color multiplier for reflected highlights',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.specularFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'GlossnessFactor',\r\n description: 'Glossiness of the surface; higher values produce sharper reflections',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.glossinessFactor;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.glossinessFactor = value.num[0];\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.glossinessFactor : 1;\r\n }\r\n },\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRSpecularGlossinessMaterial)\r\n ];\r\n}\r\n"],"names":["createBlueprintOutputHiddenPredicate","_outputs","PBRBluePrintMaterial","canEditParentMaterialProperty","material","$isInstance","isBlueprintMaterialInstance","isBlueprintMaterialAssetInstanceWithInheritedParentProps","isBlueprintMaterialAssetInstance","allowBlueprintInstanceOverride","propName","setter","markMaterialPropertyOverridden","canEditBlueprintInstanceSubsurfaceProfile","subsurfaceProfile","getBlueprintInstanceSubsurfaceMaterial","getSubsurfaceProfileClass","ctor","SubsurfaceProfile","name","getProps","defineProps","type","default","options","label","enum","labels","values","get","value","str","preset","set","animatable","minValue","maxValue","num","meanFreePathColor","x","y","z","Vector3","meanFreePathDistance","strength","scale","worldUnitScale","boundaryColorBleed","transmissionTintColor","extinctionScale","normalScale","scatteringDistribution","specularDetailSoftness","specularDetailRadius","getPBRCommonProps","manager","supportsSSSThicknessAuthoring","transmission","description","ior","isValid","phase","occlusionStrength","isHidden","occlusionTexture","getTextureProps","undefined","emissiveColor","getDefaultValue","coreMaterial","emissiveStrength","emissiveLuminance","emissiveExposureWeight","rectSpecularScale","PBRBluePrintMaterialInstance","parentMaterial","bool","transmissionFactor","call","thicknessFactor","attenuationColor","attenuationDistance","iridescence","iridescenceFactor","iridescenceIor","iridescenceThicknessMin","iridescenceThicknessMax","clearcoat","clearcoatIntensity","clearcoatRoughnessFactor","sheen","sheenColorFactor","sheenRoughnessFactor","getLitMaterialProps","getUnlitMaterialProps","normalFlipY","doubleSidedLighting","vertexNormal","vertexTangent","vertexColor","color","albedoColor","w","Vector4","getMToonMaterialProps","normalTexture","shadeColorFactor","shadingShiftFactor","shadingShiftTextureScale","shadingShiftTexture","shadingToonyFactor","giEqualizationFactor","matcapFactor","parametricRimColorFactor","parametricRimFresnelPowerFactor","parametricRimLiftFactor","rimLightingMixFactor","outlineWidthMode","outlineWidthFactor","outlineColorFactor","outlineLightingMixFactor","outlineUsesTangentNormals","uvAnimationScrollXSpeedFactor","uvAnimationScrollYSpeedFactor","uvAnimationRotationSpeedFactor","transparentWithZWrite","renderQueueOffsetNumber","getMeshMaterialClass","MeshMaterial","alphaCutoff","alphaToCoverage","alphaDither","blendMode","transparentShadowCaster","shadowAlphaCutoff","cullMode","opacity","TAAStrength","getMeshMaterialInstanceUniformsClass","getSpriteMaterialClass","_manager","SpriteMaterial","parent","getStandardSpriteMaterialClass","StandardSpriteMaterial","mimeTypes","isNullable","getAssetId","spriteTexture","assetId","tex","fetchTexture","linearColorSpace","err","console","error","isTexture2D","getParticleMaterialClass","ParticleMaterial","alphaMap","rampMap","getPBRBluePrintMaterialClass","PBRMetallicRoughnessMaterial","getPBRBluePrintMaterialInstanceClass","getSpriteBlueprintMaterialClass","SpriteBlueprintMaterial","getUnlitMaterialClass","UnlitMaterial","getMToonMaterialClass","MToonMaterial","getLambertMaterialClass","LambertMaterial","getBlinnMaterialClass","BlinnMaterial","shininess","getHairMaterialClass","HairMaterial","shadingModel","specular1Color","specular1Power","specular1Shift","specular2Color","specular2Power","specular2Shift","strandDirection","marschnerShift","marschnerRoughness","marschnerIOR","marschnerAbsorption","marschnerLobes","shiftMapScale","specularShiftTexture","diffuseWrap","transmissionColor","transmissionIntensity","transmissionPower","scatterColor","scatterIntensity","scatterLocal","scatterWrap","getSkinMaterialClass","SkinMaterial","specularStrength","diffuseSoftness","scatterStrength","shadowTint","brightening","transmissionStrength","getEyeMaterialClass","EyeMaterial","irisCenter","c","irisRadius","irisDepth","pupilRadius","pupilDilation","irisColor","irisBrightness","limbalRingWidth","limbalRingStrength","scleraColor","scleraWrap","scleraEdgeTint","corneaSpecularStrength","corneaRoughness","socketOcclusion","socketRotation","r","upperLidAngle","lowerLidAngle","socketOcclusionSoftness","socketOcclusionStrength","contactAO","contactAORadius","contactAOMinDistance","contactAOMaxDistance","contactAOStrength","contactAOTemporalJitter","getPBRMetallicRoughnessMaterialClass","metallic","roughness","specularFactor","reflectionMode","blueprintInstance","setBlueprintInstanceReflectionMode","anisotropy","anisotropyDirection","anisotropyDirectionScaleBias","Vector2","anisotropyDirectionTexture","group","profile","setBlueprintInstanceSubsurfacePreset","setBlueprintInstanceSubsurfaceProfileValue","setBlueprintInstanceSubsurfaceStrength","setBlueprintInstanceSubsurfaceScale","objectTypes","object","getPBRSpecularGlossinessMaterialClass","PBRSpecularGlossinessMaterial","glossinessFactor"],"mappings":"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"}
|