@carbonenginejs/runtime-trinity 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/curves/CjsGrannyCurves.js +12 -13
  2. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  3. package/dist/eve/EveBannerSet.js +20 -1
  4. package/dist/eve/EveBannerSet.js.map +1 -1
  5. package/dist/eve/EveBoosterSet2.js +19 -1
  6. package/dist/eve/EveBoosterSet2.js.map +1 -1
  7. package/dist/eve/EveComponentTypes.js +116 -0
  8. package/dist/eve/EveComponentTypes.js.map +1 -0
  9. package/dist/eve/EveHazeSet.js +18 -1
  10. package/dist/eve/EveHazeSet.js.map +1 -1
  11. package/dist/eve/EvePlaneSet.js +19 -1
  12. package/dist/eve/EvePlaneSet.js.map +1 -1
  13. package/dist/eve/EveSpotlightSet.js +18 -1
  14. package/dist/eve/EveSpotlightSet.js.map +1 -1
  15. package/dist/eve/EveSpriteLineSet.js +18 -1
  16. package/dist/eve/EveSpriteLineSet.js.map +1 -1
  17. package/dist/eve/EveSpriteSet.js +18 -1
  18. package/dist/eve/EveSpriteSet.js.map +1 -1
  19. package/dist/eve/EveUpdateContext.js +195 -31
  20. package/dist/eve/EveUpdateContext.js.map +1 -1
  21. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +23 -1
  22. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  23. package/dist/eve/attachment/turrets/EveTurretSet.js +43 -1
  24. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  25. package/dist/eve/child/EveChildContainer.js +95 -60
  26. package/dist/eve/child/EveChildContainer.js.map +1 -1
  27. package/dist/eve/child/EveChildFogVolume.js +14 -1
  28. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  29. package/dist/eve/child/EveChildInstancedMeshes.js +43 -1
  30. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  31. package/dist/eve/child/EveChildLightingOverride.js +14 -1
  32. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  33. package/dist/eve/child/EveChildMesh.js +121 -80
  34. package/dist/eve/child/EveChildMesh.js.map +1 -1
  35. package/dist/eve/child/EveChildTransform.js +27 -17
  36. package/dist/eve/child/EveChildTransform.js.map +1 -1
  37. package/dist/eve/index.js +2 -0
  38. package/dist/eve/index.js.map +1 -1
  39. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +14 -1
  40. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  41. package/dist/eve/renderable/stretch/EveStretch.js +11 -1
  42. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  43. package/dist/eve/renderable/stretch/EveStretch2.js +14 -1
  44. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  45. package/dist/eve/renderable/stretch/EveStretch3.js +24 -1
  46. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  47. package/dist/eve/scene/EveSpaceScene.js +443 -16
  48. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  49. package/dist/eve/spaceObject/EveEffectRoot2.js +28 -1
  50. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  51. package/dist/eve/spaceObject/EveMobile.js +25 -1
  52. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  53. package/dist/eve/spaceObject/EveSpaceObject2.js +59 -1
  54. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  55. package/dist/generated/eve/child/EveChildCloud2.js +88 -5
  56. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  57. package/dist/generated/eve/child/EveChildExplosion.js +17 -1
  58. package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
  59. package/dist/generated/eve/child/EveChildInstanceContainer.js +29 -1
  60. package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
  61. package/dist/generated/eve/child/EveChildParticleSystem.js +32 -24
  62. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  63. package/dist/generated/eve/child/EveChildPlug.js +23 -1
  64. package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
  65. package/dist/generated/eve/child/EveChildPostProcessVolume.js +27 -14
  66. package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
  67. package/dist/generated/eve/child/EveChildRef.js +17 -1
  68. package/dist/generated/eve/child/EveChildRef.js.map +1 -1
  69. package/dist/generated/eve/child/EveChildSocket.js +17 -1
  70. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  71. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +43 -40
  72. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  73. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js +53 -49
  74. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  75. package/dist/generated/eve/scene/EveComponentRegistry.js +11 -0
  76. package/dist/generated/eve/scene/EveComponentRegistry.js.map +1 -1
  77. package/dist/generated/eve/scene/TriShadowFrustum.js +74 -22
  78. package/dist/generated/eve/scene/TriShadowFrustum.js.map +1 -1
  79. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +128 -26
  80. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +1 -1
  81. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +37 -24
  82. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  83. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +29 -28
  84. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  85. package/dist/generated/eve/spaceObject/EveShip2.js +39 -19
  86. package/dist/generated/eve/spaceObject/EveShip2.js.map +1 -1
  87. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +28 -1
  88. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  89. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +28 -1
  90. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  91. package/dist/index.js +3 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/trinityCore/TriFrustum.js +374 -0
  94. package/dist/trinityCore/TriFrustum.js.map +1 -0
  95. package/dist/trinityCore/TriFrustumOrtho.js +158 -0
  96. package/dist/trinityCore/TriFrustumOrtho.js.map +1 -0
  97. package/dist/trinityCore/index.js +2 -0
  98. package/dist/trinityCore/index.js.map +1 -1
  99. package/package.json +2 -2
@@ -1,14 +1,13 @@
1
1
  import { num } from '@carbonenginejs/core-math/num';
2
2
 
3
- /**
4
- * Granny animation-curve decoding authored by cppctamber for ccpwgl2.
5
- *
6
- * This local copy is intentionally retained so runtime-trinity remains MIT
7
- * licensed and does not depend on the currently EUPL-1.2 format-gr2 package.
8
- * It can be replaced by a direct @carbonenginejs/format-gr2 curve dependency
9
- * once that package and its dependency path are available wholly under MIT.
10
- * This module decodes and samples already-materialized curve data; it does not
11
- * read or parse GR2 containers.
3
+ /**
4
+ * Granny animation-curve decoding authored by cppctamber for ccpwgl2.
5
+ *
6
+ * This local copy decodes and samples already-materialized curve data without
7
+ * coupling runtime-trinity to a GR2 container reader. The former format-gr2
8
+ * licensing boundary is resolved: its BitKnit2 decoder was replaced by a
9
+ * clean-room implementation, the package is MIT, and the canonical reader now
10
+ * lives at @carbonenginejs/runtime-resource/formats/gr2.
12
11
  */
13
12
  const fr = Math.fround;
14
13
  const CURVE_DECODERS = Object.freeze([Object.freeze({
@@ -76,8 +75,8 @@ const D4N_SCALE_TABLE_MULTIPLIER_8 = 0.0078740157;
76
75
  class CjsGrannyCurves {
77
76
  static #resources = new Map();
78
77
 
79
- /**
80
- * Decode a GR2 JSON curve object into explicit knots and controls.
78
+ /**
79
+ * Decode a GR2 JSON curve object into explicit knots and controls.
81
80
  */
82
81
  static decodeCurve(curveJson, dimension) {
83
82
  if (!curveJson || typeof curveJson.format !== "number") {
@@ -103,8 +102,8 @@ class CjsGrannyCurves {
103
102
  };
104
103
  }
105
104
 
106
- /**
107
- * Sample a decoded Granny curve into caller-provided output.
105
+ /**
106
+ * Sample a decoded Granny curve into caller-provided output.
108
107
  */
109
108
  static sampleDecodedCurve(out, curve, time, cycle = false, duration = 0, options = {}) {
110
109
  if (!curve || !curve.knots || !curve.controls || !curve.dimension) {
@@ -1 +1 @@
1
- {"version":3,"file":"CjsGrannyCurves.js","sources":["../../../src/curves/CjsGrannyCurves.js"],"sourcesContent":["/**\n * Granny animation-curve decoding authored by cppctamber for ccpwgl2.\n *\n * This local copy is intentionally retained so runtime-trinity remains MIT\n * licensed and does not depend on the currently EUPL-1.2 format-gr2 package.\n * It can be replaced by a direct @carbonenginejs/format-gr2 curve dependency\n * once that package and its dependency path are available wholly under MIT.\n * This module decodes and samples already-materialized curve data; it does not\n * read or parse GR2 containers.\n */\nimport { num } from \"@carbonenginejs/core-math/num\";\n\nconst fr = Math.fround;\nconst CURVE_DECODERS = Object.freeze([Object.freeze({\n format: 0,\n decode: decodeDaKeyframes32f\n}), Object.freeze({\n format: 1,\n decode: decodeDaK32fC32f\n}), Object.freeze({\n format: 2,\n decode: decodeDaIdentity\n}), Object.freeze({\n format: 3,\n decode: decodeDaConstant32f\n}), Object.freeze({\n format: 4,\n decode: decodeD3Constant32f\n}), Object.freeze({\n format: 5,\n decode: decodeD4Constant32f\n}), Object.freeze({\n format: 6,\n decode: decodeDaK16uC16u\n}), Object.freeze({\n format: 7,\n decode: decodeDaK8uC8u\n}), Object.freeze({\n format: 8,\n decode: decodeD4nK16uC15u\n}), Object.freeze({\n format: 9,\n decode: decodeD4nK8uC7u\n}), Object.freeze({\n format: 10,\n decode: decodeD3K16uC16u\n}), Object.freeze({\n format: 11,\n decode: decodeD3K8uC8u\n}), Object.freeze({\n format: 12,\n decode: decodeD9I1K16uC16u\n}), Object.freeze({\n format: 13,\n decode: decodeD9I3K16uC16u\n}), Object.freeze({\n format: 14,\n decode: decodeD9I1K8uC8u\n}), Object.freeze({\n format: 15,\n decode: decodeD9I3K8uC8u\n}), Object.freeze({\n format: 16,\n decode: decodeD3I1K32fC32f\n}), Object.freeze({\n format: 17,\n decode: decodeD3I1K16uC16u\n}), Object.freeze({\n format: 18,\n decode: decodeD3I1K8uC8u\n})]);\nconst D4N_SCALE_TABLE = new Float32Array([1.4142135, 0.70710677, 0.35355338, 0.35355338, 0.35355338, 0.17677669, 0.17677669, 0.17677669, -1.4142135, -0.70710677, -0.35355338, -0.35355338, -0.35355338, -0.17677669, -0.17677669, -0.17677669]);\nconst D4N_OFFSET_TABLE = new Float32Array([-0.70710677, -0.35355338, -0.53033006, -0.17677669, 0.17677669, -0.17677669, -0.088388346, 0.0, 0.70710677, 0.35355338, 0.53033006, 0.17677669, -0.17677669, 0.17677669, 0.088388346, -0.0]);\nconst D4N_SCALE_TABLE_MULTIPLIER_16 = 0.000030518509;\nconst D4N_SCALE_TABLE_MULTIPLIER_8 = 0.0078740157;\nexport class CjsGrannyCurves\n{\n static #resources = new Map();\n\n /**\n * Decode a GR2 JSON curve object into explicit knots and controls.\n */\n static decodeCurve(curveJson, dimension)\n {\n if (!curveJson || typeof curveJson.format !== \"number\")\n {\n throw new Error(\"gr2reader: decodeCurve requires a curve object with a numeric format\");\n }\n const decoder = CURVE_DECODERS[curveJson.format];\n if (!decoder)\n {\n throw new Error(`gr2reader: unsupported granny curve format ${curveJson.format}`);\n }\n const {\n knots,\n controls,\n dimension: dim\n } = decoder.decode(curveJson, dimension);\n if (dimension && dim && dim !== dimension)\n {\n throw new Error(`gr2reader: curve format ${curveJson.format} decoded dimension ${dim} does not match track dimension ${dimension}`);\n }\n return {\n knots,\n controls,\n degree: Number(curveJson.degree) || 0,\n dimension: dim || dimension\n };\n }\n\n /**\n * Sample a decoded Granny curve into caller-provided output.\n */\n static sampleDecodedCurve(out, curve, time, cycle = false, duration = 0, options = {})\n {\n if (!curve || !curve.knots || !curve.controls || !curve.dimension)\n {\n return out;\n }\n const knots = curve.knots,\n count = knots.length,\n dim = curve.dimension,\n controlCount = curve.controls.length / dim;\n if (!count || !controlCount)\n {\n return out;\n }\n if (options.keyframed)\n {\n return CjsGrannyCurves.#copyControl(out, curve, CjsGrannyCurves.#sampleKeyframedCurve(count, time, duration));\n }\n const knot = CjsGrannyCurves.#findKnotIndex(knots, time);\n if (curve.degree <= 0 || count === 1 || controlCount === 1)\n {\n const index = time >= knots[count - 1]\n ? count - 1\n : Math.max(0, knot - 1);\n return CjsGrannyCurves.#copyControl(out, curve, Math.min(index, controlCount - 1));\n }\n if (curve.degree === 1)\n {\n return CjsGrannyCurves.#sampleLinearCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\n }\n return CjsGrannyCurves.#sampleQuadraticCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\n }\n\n static registerResource(path, source)\n {\n if (path)\n {\n CjsGrannyCurves.#resources.set(path, source);\n }\n }\n\n static unregisterResource(path)\n {\n CjsGrannyCurves.#resources.delete(path);\n }\n\n static clearResources()\n {\n CjsGrannyCurves.#resources.clear();\n }\n\n static resolveResource(path)\n {\n return CjsGrannyCurves.#resources.get(path) ?? null;\n }\n\n static getTrackSource(value)\n {\n return CjsGrannyCurves.#findTrackSource(value, 0);\n }\n\n static getAnimations(source)\n {\n return CjsGrannyCurves.#getArray(source, \"animations\", \"Animations\");\n }\n\n static getTrackGroups(animation)\n {\n return CjsGrannyCurves.#getArray(animation, \"trackGroups\", \"TrackGroups\");\n }\n\n static getAnimationDuration(animation)\n {\n return Number(animation.duration ?? animation.Duration) || 0;\n }\n\n static getAnimationTimeStep(animation)\n {\n return Number(animation.timeStep ?? animation.TimeStep) || 0;\n }\n\n static findTransformTrack(group, name)\n {\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\n if (!trackGroup)\n {\n return null;\n }\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"transformTracks\", \"TransformTracks\");\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\n return track ? CjsGrannyCurves.#normalizeTransformTrack(track) : null;\n }\n\n static findVectorTrack(group, name)\n {\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\n if (!trackGroup)\n {\n return null;\n }\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"vectorTracks\", \"VectorTracks\");\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\n return track ? CjsGrannyCurves.#normalizeVectorTrack(track) : null;\n }\n\n static findTextTrack(group, name)\n {\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\n if (!trackGroup)\n {\n return null;\n }\n const textTracks = CjsGrannyCurves.#getArray(trackGroup, \"textTracks\", \"TextTracks\");\n return textTracks.find(track => CjsGrannyCurves.#getName(track) === name) ?? null;\n }\n\n static getTextTrackEntries(track)\n {\n const entries = CjsGrannyCurves.#getArray(track, \"entries\", \"Entries\");\n const out = [];\n for (const entry of entries)\n {\n const time = CjsGrannyCurves.#getEntryTime(entry);\n if (Number.isFinite(time))\n {\n out.push({ time, text: String(entry.text ?? entry.Text ?? \"\") });\n }\n }\n return out;\n }\n\n static decodeGrannyCurve(curve, dimension)\n {\n if (!curve || curve.error || curve.Error)\n {\n return null;\n }\n const normalized = CjsGrannyCurves.#normalizeCurve(curve);\n const decodedDirect = CjsGrannyCurves.#getDecodedCurve(normalized, dimension);\n if (decodedDirect)\n {\n return decodedDirect;\n }\n if (typeof normalized.format !== \"number\" || typeof normalized.degree !== \"number\")\n {\n return null;\n }\n try\n {\n const decoded = CjsGrannyCurves.decodeCurve(normalized, dimension);\n return {\n format: normalized.format,\n knots: decoded.knots,\n controls: decoded.controls,\n degree: decoded.degree,\n dimension: decoded.dimension,\n keyframed: normalized.format === 0\n };\n }\n catch\n {\n return null;\n }\n }\n\n /** Decodes an already-materialized Carbon animation curve into the shared sampler shape. */\n static decodeAnimationCurve(curve, dimension)\n {\n if (!curve)\n {\n return null;\n }\n\n const valueDimension = Number(curve.valueDimension ?? curve.ValueDimension);\n const knotCount = Number(curve.knotCount ?? curve.KnotCount);\n if (valueDimension !== dimension || !Number.isSafeInteger(knotCount) || knotCount <= 0)\n {\n return null;\n }\n\n try\n {\n const knots = decodeElements(\n curve.knots ?? curve.Knots,\n curve.knotType ?? curve.KnotType,\n knotCount\n );\n const controls = decodeElements(\n curve.values ?? curve.Values,\n curve.valueType ?? curve.ValueType,\n knotCount * valueDimension\n );\n const interpolation = curve.interpolation ?? curve.Interpolation;\n\n return {\n knots,\n controls,\n degree: interpolation === \"Step\" || interpolation === 0 ? 0 : 1,\n dimension: valueDimension,\n keyframed: false\n };\n }\n catch\n {\n return null;\n }\n }\n\n static sampleGrannyCurve(out, curve, time, cycle, duration)\n {\n CjsGrannyCurves.sampleDecodedCurve(out, curve, time, cycle, duration, {\n keyframed: curve.keyframed\n });\n return out;\n }\n\n static #asRecord(value)\n {\n return value !== null && typeof value === \"object\" ? value : null;\n }\n\n static #asTrackSource(value)\n {\n const record = CjsGrannyCurves.#asRecord(value);\n return CjsGrannyCurves.#hasArrayValue(record, \"animations\", \"Animations\") ? record : null;\n }\n\n static #asTrackGroup(value)\n {\n return CjsGrannyCurves.#asRecord(value);\n }\n\n static #findTrackSource(value, depth)\n {\n const direct = CjsGrannyCurves.#asTrackSource(value);\n if (direct)\n {\n return direct;\n }\n const record = CjsGrannyCurves.#asRecord(value);\n if (!record || depth > 8)\n {\n return null;\n }\n for (const key of [\"json\", \"Json\", \"data\", \"Data\", \"value\", \"Value\", \"source\", \"Source\", \"fileInfo\", \"FileInfo\"])\n {\n const nested = CjsGrannyCurves.#findTrackSource(record[key], depth + 1);\n if (nested)\n {\n return nested;\n }\n }\n return null;\n }\n\n static #getArray(value, lowerKey, upperKey)\n {\n const lower = value[lowerKey];\n if (Array.isArray(lower))\n {\n return lower;\n }\n const upper = value[upperKey];\n return Array.isArray(upper) ? upper : [];\n }\n\n static #hasArrayValue(value, lowerKey, upperKey)\n {\n return Array.isArray(value?.[lowerKey]) || Array.isArray(value?.[upperKey]);\n }\n\n static #getName(value)\n {\n return value.name ?? value.Name;\n }\n\n static #getEntryTime(entry)\n {\n const value = entry.timeStamp ?? entry.TimeStamp ?? entry.timestamp ?? entry.time;\n return typeof value === \"number\" ? value : Number.NaN;\n }\n\n static #normalizeTransformTrack(track)\n {\n return {\n ...track,\n name: CjsGrannyCurves.#getName(track),\n orientation: track.orientation ?? track.Orientation,\n position: track.position ?? track.Position,\n scaleShear: track.scaleShear ?? track.ScaleShear\n };\n }\n\n static #normalizeVectorTrack(track)\n {\n return {\n ...track,\n name: CjsGrannyCurves.#getName(track),\n valueCurve: track.valueCurve ?? track.ValueCurve\n };\n }\n\n static #normalizeCurve(curve)\n {\n const normalized = { ...curve };\n for (const [key, value] of Object.entries(curve))\n {\n const lowerKey = CjsGrannyCurves.#lowerFirst(key);\n if (!(lowerKey in normalized))\n {\n normalized[lowerKey] = value;\n }\n }\n normalized.format = curve.format ?? curve.Format;\n normalized.degree = curve.degree ?? curve.Degree;\n normalized.knots = curve.knots ?? curve.Knots;\n normalized.controls = curve.controls ?? curve.Controls;\n normalized.dimension = curve.dimension ?? curve.Dimension;\n normalized.error = curve.error ?? curve.Error;\n return normalized;\n }\n\n static #getDecodedCurve(curve, dimension)\n {\n const knots = curve.knots;\n const controls = curve.controls;\n const curveDimension = Number(curve.dimension) || dimension;\n if (!Array.isArray(knots) || !Array.isArray(controls) || curveDimension !== dimension || controls.length % curveDimension !== 0)\n {\n return null;\n }\n return {\n format: curve.format,\n knots,\n controls,\n degree: Number(curve.degree) || 0,\n dimension: curveDimension,\n keyframed: curve.format === 0\n };\n }\n\n static #lowerFirst(value)\n {\n return value ? value[0].toLowerCase() + value.slice(1) : value;\n }\n\n static #copyControl(out, curve, index)\n {\n const offset = index * curve.dimension;\n for (let i = 0; i < curve.dimension; i++)\n {\n out[i] = curve.controls[offset + i];\n }\n return out;\n }\n\n static #findKnotIndex(knots, time)\n {\n let low = 0;\n let high = knots.length - 1;\n while (low < high)\n {\n const mid = low + high >> 1;\n if (knots[mid] > time)\n {\n high = mid;\n }\n else\n {\n low = mid + 1;\n }\n }\n return low;\n }\n\n static #sampleKeyframedCurve(count, time, duration)\n {\n const frame = duration > 0 ? Math.trunc(count * time / duration) : 0;\n return Math.max(0, Math.min(count - 1, frame));\n }\n\n static #sampleLinearCurve(out, curve, time, cycle, duration, knot)\n {\n const knots = curve.knots;\n const count = knots.length;\n const dim = curve.dimension;\n const knot0 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\n const start = knots[knot0];\n let end = knots[knot];\n let localTime = time;\n if (cycle && end < start)\n {\n end += duration;\n }\n if (cycle && localTime < start)\n {\n localTime += duration;\n }\n const t = end !== start ? (localTime - start) / (end - start) : 0;\n const p0 = knot0 * dim;\n const p1 = knot * dim;\n for (let i = 0; i < dim; i++)\n {\n out[i] = curve.controls[p0 + i] * (1 - t) + curve.controls[p1 + i] * t;\n }\n return out;\n }\n\n static #sampleQuadraticCurve(out, curve, time, cycle, duration, knot)\n {\n const knots = curve.knots;\n const count = knots.length;\n const dim = curve.dimension;\n const k2 = cycle ? (knot + count - 2) % count : knot === 0 ? 0 : Math.max(0, knot - 2);\n const k1 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\n const ti2 = knots[k2];\n const ti1 = knots[k1];\n let ti = knots[knot];\n let tiNext = knots[(knot + 1) % count];\n let localTime = time;\n if (ti2 > ti)\n {\n ti += duration;\n tiNext += duration;\n localTime += duration;\n }\n if (ti1 > ti)\n {\n ti += duration;\n tiNext += duration;\n localTime += duration;\n }\n if (tiNext < ti)\n {\n tiNext += duration;\n }\n const d0 = ti - ti1;\n const d1a = ti - ti2;\n const d1b = tiNext - ti1;\n const l0 = d0 !== 0 ? (localTime - ti1) / d0 : 0;\n const l1a = d1a !== 0 ? (localTime - ti2) / d1a : 0;\n const l1b = d1b !== 0 ? (localTime - ti1) / d1b : 0;\n let c2 = l1a + l0 - l0 * l1a;\n const ci = l0 * l1b;\n const c1 = c2 - ci;\n c2 = 1 - c2;\n const p0 = k2 * dim;\n const p1 = k1 * dim;\n const p2 = knot * dim;\n for (let i = 0; i < dim; i++)\n {\n out[i] = c2 * curve.controls[p0 + i] + c1 * curve.controls[p1 + i] + ci * curve.controls[p2 + i];\n }\n return out;\n }\n}\n\nconst ANIMATION_ELEMENT_TYPES = Object.freeze([\n \"Float32\",\n \"Float16\",\n \"UInt16Norm\",\n \"UInt16\",\n \"Int16Norm\",\n \"Int16\",\n \"UInt8Norm\",\n \"UInt8\",\n \"Int8Norm\",\n \"Int8\"\n]);\n\nfunction decodeElements(value, typeValue, count)\n{\n const type = typeof typeValue === \"number\" ? ANIMATION_ELEMENT_TYPES[typeValue] : typeValue;\n const size = elementTypeSize(type);\n\n if (ArrayBuffer.isView(value) && !(value instanceof Uint8Array) && value.length === count)\n {\n return Array.from(value, Number);\n }\n if (Array.isArray(value) && size > 1 && value.length === count)\n {\n return value.map(Number);\n }\n\n const bytes = asByteView(value);\n if (!bytes || bytes.byteLength < count * size)\n {\n throw new TypeError(\"Animation curve data is incomplete\");\n }\n\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n return Array.from({ length: count }, (_, index) => readElement(view, index * size, type));\n}\n\nfunction asByteView(value)\n{\n if (value instanceof Uint8Array)\n {\n return value;\n }\n if (ArrayBuffer.isView(value))\n {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n if (value instanceof ArrayBuffer)\n {\n return new Uint8Array(value);\n }\n return Array.isArray(value) ? Uint8Array.from(value) : null;\n}\n\nfunction elementTypeSize(type)\n{\n switch (type)\n {\n case \"Float32\":\n return 4;\n case \"Float16\":\n case \"UInt16Norm\":\n case \"UInt16\":\n case \"Int16Norm\":\n case \"Int16\":\n return 2;\n case \"UInt8Norm\":\n case \"UInt8\":\n case \"Int8Norm\":\n case \"Int8\":\n return 1;\n default:\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\n }\n}\n\nfunction readElement(view, offset, type)\n{\n switch (type)\n {\n case \"Float32\":\n return view.getFloat32(offset, true);\n case \"Float16\":\n return num.fromHalfFloat(view.getUint16(offset, true));\n case \"UInt16Norm\":\n return view.getUint16(offset, true) / 65535;\n case \"UInt16\":\n return view.getUint16(offset, true);\n case \"Int16Norm\":\n return Math.max(view.getInt16(offset, true) / 32767, -1);\n case \"Int16\":\n return view.getInt16(offset, true);\n case \"UInt8Norm\":\n return view.getUint8(offset) / 255;\n case \"UInt8\":\n return view.getUint8(offset);\n case \"Int8Norm\":\n return Math.max(view.getInt8(offset) / 127, -1);\n case \"Int8\":\n return view.getInt8(offset);\n default:\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\n }\n}\n\nfunction exactDiv(numerator, divisor, what)\n{\n const value = numerator / divisor;\n if (!Number.isInteger(value))\n {\n throw new Error(`gr2reader: curve ${what}: ${numerator} is not divisible by ${divisor}`);\n }\n return value;\n}\nfunction knotScaleFromTrunc(oneOverKnotScaleTrunc)\n{\n const buffer = new Uint32Array([oneOverKnotScaleTrunc << 16]);\n return new Float32Array(buffer.buffer)[0];\n}\nfunction knotsFromControls(knotsControls, count, scale)\n{\n const out = new Array(count);\n for (let i = 0; i < count; i++)\n {\n out[i] = fr(knotsControls[i] / scale);\n }\n return out;\n}\nfunction knotsFromControlsTrunc(knotsControls, count, oneOverKnotScaleTrunc)\n{\n return knotsFromControls(knotsControls, count, knotScaleFromTrunc(oneOverKnotScaleTrunc));\n}\nfunction identityControls(dimension)\n{\n switch (dimension)\n {\n case 3:\n return [0, 0, 0];\n case 4:\n return [0, 0, 0, 1];\n case 9:\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\n default:\n throw new Error(`gr2reader: invalid curve dimension ${dimension}`);\n }\n}\nfunction decodeDaKeyframes32f(c, dimension)\n{\n const dim = c.dimension || dimension,\n controls = c.controls || [],\n count = exactDiv(controls.length, dim, \"DaKeyframes32f controls/dimension\"),\n knots = new Array(count);\n for (let i = 0; i < count; i++)\n {\n knots[i] = i;\n }\n return {\n knots,\n controls: controls.map(fr),\n dimension: dim\n };\n}\nfunction decodeDaK32fC32f(c, dimension)\n{\n const knots = (c.knots || []).map(fr),\n controls = (c.controls || []).map(fr),\n dim = knots.length ? exactDiv(controls.length, knots.length, \"DaK32fC32f controls/knots\") : dimension;\n return {\n knots,\n controls,\n dimension: dim\n };\n}\nfunction decodeDaIdentity(c, dimension)\n{\n const dim = c.dimension || dimension;\n return {\n knots: [0],\n controls: identityControls(dim),\n dimension: dim\n };\n}\nfunction decodeDaConstant32f(c, dimension)\n{\n const controls = (c.controls || []).map(fr);\n return {\n knots: [0],\n controls,\n dimension: controls.length || dimension\n };\n}\nfunction decodeD3Constant32f(c)\n{\n const controls = (c.controls || [0, 0, 0]).slice(0, 3).map(fr);\n return {\n knots: [0],\n controls,\n dimension: 3\n };\n}\nfunction decodeD4Constant32f(c)\n{\n const controls = (c.controls || [0, 0, 0, 1]).slice(0, 4).map(fr);\n return {\n knots: [0],\n controls,\n dimension: 4\n };\n}\nfunction decodeDaK(c)\n{\n const controlScaleOffsets = c.controlScaleOffsets || [],\n knotsControls = c.knotsControls || [],\n dim = exactDiv(controlScaleOffsets.length, 2, \"DaK controlScaleOffsets/2\"),\n count = exactDiv(knotsControls.length, dim + 1, \"DaK knotsControls/(dim+1)\"),\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\n controls = new Array(count * dim);\n for (let i = 0; i < count; i++)\n {\n for (let x = 0; x < dim; x++)\n {\n controls[i * dim + x] = fr(knotsControls[count + i * dim + x] * controlScaleOffsets[x] + controlScaleOffsets[dim + x]);\n }\n }\n return {\n knots,\n controls,\n dimension: dim\n };\n}\nfunction quatFromControl16(out, a, b, c, scales, offsets)\n{\n const swizzle1 = (b & 0x8000) >> 14 | c >> 15,\n swizzle2 = swizzle1 + 1 & 3,\n swizzle3 = swizzle2 + 1 & 3,\n swizzle4 = swizzle3 + 1 & 3;\n const dataA = (a & 0x7fff) * scales[swizzle2] + offsets[swizzle2],\n dataB = (b & 0x7fff) * scales[swizzle3] + offsets[swizzle3],\n dataC = (c & 0x7fff) * scales[swizzle4] + offsets[swizzle4];\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\n if ((a & 0x8000) !== 0)\n {\n dataD = -dataD;\n }\n out[swizzle2] = fr(dataA);\n out[swizzle3] = fr(dataB);\n out[swizzle4] = fr(dataC);\n out[swizzle1] = fr(dataD);\n return out;\n}\nfunction decodeD4n(c, decoder, scaleTableMultiplier)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 4, \"D4n knotsControls/4\"),\n knots = knotsFromControls(knotsControls, count, Number(c.oneOverKnotScale) || 0);\n const selector = (c.scaleOffsetTableEntries ?? 0) >>> 0,\n scales = new Float32Array([D4N_SCALE_TABLE[selector >> 0 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 4 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 8 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 12 & 0x0f] * scaleTableMultiplier]),\n offsets = new Float32Array([D4N_OFFSET_TABLE[selector >> 0 & 0x0f], D4N_OFFSET_TABLE[selector >> 4 & 0x0f], D4N_OFFSET_TABLE[selector >> 8 & 0x0f], D4N_OFFSET_TABLE[selector >> 12 & 0x0f]]);\n const controls = new Array(count * 4),\n quat = [0, 0, 0, 1];\n for (let i = 0; i < count; i++)\n {\n decoder(quat, knotsControls[count + i * 3], knotsControls[count + i * 3 + 1], knotsControls[count + i * 3 + 2], scales, offsets);\n controls[i * 4] = quat[0];\n controls[i * 4 + 1] = quat[1];\n controls[i * 4 + 2] = quat[2];\n controls[i * 4 + 3] = quat[3];\n }\n return {\n knots,\n controls,\n dimension: 4\n };\n}\nfunction decodeD4nK16uC15u(c)\n{\n return decodeD4n(c, quatFromControl16, D4N_SCALE_TABLE_MULTIPLIER_16);\n}\nfunction quatFromControl8(out, a, b, c, scales, offsets)\n{\n const swizzle1 = (b & 0x80) >> 6 | (c & 0x80) >> 7,\n swizzle2 = swizzle1 + 1 & 3,\n swizzle3 = swizzle2 + 1 & 3,\n swizzle4 = swizzle3 + 1 & 3;\n const dataA = (a & 0x7f) * scales[swizzle2] + offsets[swizzle2],\n dataB = (b & 0x7f) * scales[swizzle3] + offsets[swizzle3],\n dataC = (c & 0x7f) * scales[swizzle4] + offsets[swizzle4];\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\n if ((a & 0x80) !== 0)\n {\n dataD = -dataD;\n }\n out[swizzle2] = fr(dataA);\n out[swizzle3] = fr(dataB);\n out[swizzle4] = fr(dataC);\n out[swizzle1] = fr(dataD);\n return out;\n}\nfunction decodeD4nK8uC7u(c)\n{\n return decodeD4n(c, quatFromControl8, D4N_SCALE_TABLE_MULTIPLIER_8);\n}\nfunction decodeD3K(c)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 4, \"D3K knotsControls/4\"),\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\n controlScales = c.controlScales || [],\n controlOffsets = c.controlOffsets || [],\n controls = new Array(count * 3);\n for (let i = 0; i < count; i++)\n {\n for (let x = 0; x < 3; x++)\n {\n controls[i * 3 + x] = fr(knotsControls[count + i * 3 + x] * controlScales[x] + controlOffsets[x]);\n }\n }\n return {\n knots,\n controls,\n dimension: 3\n };\n}\nfunction decodeD9I1(c)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 2, \"D9I1 knotsControls/2\"),\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\n const scale = Array.isArray(c.controlScales) ? c.controlScales[0] ?? 0 : c.controlScale || 0,\n offset = Array.isArray(c.controlOffsets) ? c.controlOffsets[0] ?? 0 : c.controlOffset || 0,\n controls = new Array(count * 9).fill(0);\n for (let i = 0; i < count; i++)\n {\n const s = fr(knotsControls[count + i] * scale + offset);\n controls[i * 9] = s;\n controls[i * 9 + 4] = s;\n controls[i * 9 + 8] = s;\n }\n return {\n knots,\n controls,\n dimension: 9\n };\n}\nfunction decodeD9I3(c)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 4, \"D9I3 knotsControls/4\"),\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\n controlScales = c.controlScales || [],\n controlOffsets = c.controlOffsets || [],\n controls = new Array(count * 9).fill(0);\n for (let i = 0; i < count; i++)\n {\n controls[i * 9] = fr(knotsControls[count + i * 3] * controlScales[0] + controlOffsets[0]);\n controls[i * 9 + 4] = fr(knotsControls[count + i * 3 + 1] * controlScales[1] + controlOffsets[1]);\n controls[i * 9 + 8] = fr(knotsControls[count + i * 3 + 2] * controlScales[2] + controlOffsets[2]);\n }\n return {\n knots,\n controls,\n dimension: 9\n };\n}\nfunction d3I1Controls(knotsControls, count, scales, offsets)\n{\n const controls = new Array(count * 3);\n for (let i = 0; i < count; i++)\n {\n const value = knotsControls[count + i];\n controls[i * 3] = fr(value * scales[0] + offsets[0]);\n controls[i * 3 + 1] = fr(value * scales[1] + offsets[1]);\n controls[i * 3 + 2] = fr(value * scales[2] + offsets[2]);\n }\n return controls;\n}\nfunction decodeD3I1K32fC32f(c)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 2, \"D3I1K32f knotsControls/2\"),\n knots = new Array(count);\n for (let i = 0; i < count; i++)\n {\n knots[i] = fr(knotsControls[i]);\n }\n return {\n knots,\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\n dimension: 3\n };\n}\nfunction decodeD3I1u(c)\n{\n const knotsControls = c.knotsControls || [],\n count = exactDiv(knotsControls.length, 2, \"D3I1 knotsControls/2\"),\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\n return {\n knots,\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\n dimension: 3\n };\n}\nfunction decodeDaK16uC16u(c)\n{\n return decodeDaK(c);\n}\nfunction decodeDaK8uC8u(c)\n{\n return decodeDaK(c);\n}\nfunction decodeD3K16uC16u(c)\n{\n return decodeD3K(c);\n}\nfunction decodeD3K8uC8u(c)\n{\n return decodeD3K(c);\n}\nfunction decodeD9I1K16uC16u(c)\n{\n return decodeD9I1(c);\n}\nfunction decodeD9I1K8uC8u(c)\n{\n return decodeD9I1(c);\n}\nfunction decodeD9I3K16uC16u(c)\n{\n return decodeD9I3(c);\n}\nfunction decodeD9I3K8uC8u(c)\n{\n return decodeD9I3(c);\n}\nfunction decodeD3I1K16uC16u(c)\n{\n return decodeD3I1u(c);\n}\nfunction decodeD3I1K8uC8u(c)\n{\n return decodeD3I1u(c);\n}\n"],"names":["fr","Math","fround","CURVE_DECODERS","Object","freeze","format","decode","decodeDaKeyframes32f","decodeDaK32fC32f","decodeDaIdentity","decodeDaConstant32f","decodeD3Constant32f","decodeD4Constant32f","decodeDaK16uC16u","decodeDaK8uC8u","decodeD4nK16uC15u","decodeD4nK8uC7u","decodeD3K16uC16u","decodeD3K8uC8u","decodeD9I1K16uC16u","decodeD9I3K16uC16u","decodeD9I1K8uC8u","decodeD9I3K8uC8u","decodeD3I1K32fC32f","decodeD3I1K16uC16u","decodeD3I1K8uC8u","D4N_SCALE_TABLE","Float32Array","D4N_OFFSET_TABLE","D4N_SCALE_TABLE_MULTIPLIER_16","D4N_SCALE_TABLE_MULTIPLIER_8","CjsGrannyCurves","Map","decodeCurve","curveJson","dimension","Error","decoder","knots","controls","dim","degree","Number","sampleDecodedCurve","out","curve","time","cycle","duration","options","count","length","controlCount","keyframed","knot","index","max","min","registerResource","path","source","set","unregisterResource","delete","clearResources","clear","resolveResource","get","getTrackSource","value","getAnimations","getTrackGroups","animation","getAnimationDuration","Duration","getAnimationTimeStep","timeStep","TimeStep","findTransformTrack","group","name","trackGroup","tracks","track","find","item","findVectorTrack","findTextTrack","textTracks","getTextTrackEntries","entries","entry","isFinite","push","text","String","Text","decodeGrannyCurve","error","normalized","decodedDirect","decoded","decodeAnimationCurve","valueDimension","ValueDimension","knotCount","KnotCount","isSafeInteger","decodeElements","Knots","knotType","KnotType","values","Values","valueType","ValueType","interpolation","Interpolation","sampleGrannyCurve","#asRecord","#asTrackSource","record","#asTrackGroup","#findTrackSource","depth","direct","key","nested","#getArray","lowerKey","upperKey","lower","Array","isArray","upper","#hasArrayValue","#getName","Name","#getEntryTime","timeStamp","TimeStamp","timestamp","NaN","#normalizeTransformTrack","orientation","Orientation","position","Position","scaleShear","ScaleShear","#normalizeVectorTrack","valueCurve","ValueCurve","#normalizeCurve","Format","Degree","Controls","Dimension","#getDecodedCurve","curveDimension","#lowerFirst","toLowerCase","slice","#copyControl","offset","i","#findKnotIndex","low","high","mid","#sampleKeyframedCurve","frame","trunc","#sampleLinearCurve","knot0","start","end","localTime","t","p0","p1","#sampleQuadraticCurve","k2","k1","ti2","ti1","ti","tiNext","d0","d1a","d1b","l0","l1a","l1b","c2","ci","c1","p2","ANIMATION_ELEMENT_TYPES","typeValue","type","size","elementTypeSize","ArrayBuffer","isView","Uint8Array","from","map","bytes","asByteView","byteLength","TypeError","view","DataView","buffer","byteOffset","_","readElement","getFloat32","num","fromHalfFloat","getUint16","getInt16","getUint8","getInt8","exactDiv","numerator","divisor","what","isInteger","knotScaleFromTrunc","oneOverKnotScaleTrunc","Uint32Array","knotsFromControls","knotsControls","scale","knotsFromControlsTrunc","identityControls","c","decodeDaK","controlScaleOffsets","x","quatFromControl16","a","b","scales","offsets","swizzle1","swizzle2","swizzle3","swizzle4","dataA","dataB","dataC","dataD","sqrt","decodeD4n","scaleTableMultiplier","oneOverKnotScale","selector","scaleOffsetTableEntries","quat","quatFromControl8","decodeD3K","controlScales","controlOffsets","decodeD9I1","controlScale","controlOffset","fill","s","decodeD9I3","d3I1Controls","decodeD3I1u"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAMA,EAAE,GAAGC,IAAI,CAACC,MAAM;AACtB,MAAMC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC,CAACD,MAAM,CAACC,MAAM,CAAC;AAClDC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEC;AACV,CAAC,CAAC,EAAEJ,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEE;AACV,CAAC,CAAC,EAAEL,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEG;AACV,CAAC,CAAC,EAAEN,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEI;AACV,CAAC,CAAC,EAAEP,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEK;AACV,CAAC,CAAC,EAAER,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEM;AACV,CAAC,CAAC,EAAET,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEO;AACV,CAAC,CAAC,EAAEV,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEQ;AACV,CAAC,CAAC,EAAEX,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAES;AACV,CAAC,CAAC,EAAEZ,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,MAAM,EAAEU;AACV,CAAC,CAAC,EAAEb,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEW;AACV,CAAC,CAAC,EAAEd,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEY;AACV,CAAC,CAAC,EAAEf,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEa;AACV,CAAC,CAAC,EAAEhB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEc;AACV,CAAC,CAAC,EAAEjB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEe;AACV,CAAC,CAAC,EAAElB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEgB;AACV,CAAC,CAAC,EAAEnB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEiB;AACV,CAAC,CAAC,EAAEpB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEkB;AACV,CAAC,CAAC,EAAErB,MAAM,CAACC,MAAM,CAAC;AAChBC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,MAAM,EAAEmB;AACV,CAAC,CAAC,CAAC,CAAC;AACJ,MAAMC,eAAe,GAAG,IAAIC,YAAY,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAChP,MAAMC,gBAAgB,GAAG,IAAID,YAAY,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,EAAI,CAAC,CAAC;AACvO,MAAME,6BAA6B,GAAG,cAAc;AACpD,MAAMC,4BAA4B,GAAG,YAAY;AAC1C,MAAMC,eAAe,CAC5B;AACE,EAAA,OAAO,UAAU,GAAG,IAAIC,GAAG,EAAE;;AAE7B;AACF;AACA;AACE,EAAA,OAAOC,WAAWA,CAACC,SAAS,EAAEC,SAAS,EACvC;IACE,IAAI,CAACD,SAAS,IAAI,OAAOA,SAAS,CAAC7B,MAAM,KAAK,QAAQ,EACtD;AACE,MAAA,MAAM,IAAI+B,KAAK,CAAC,sEAAsE,CAAC;AACzF,IAAA;AACA,IAAA,MAAMC,OAAO,GAAGnC,cAAc,CAACgC,SAAS,CAAC7B,MAAM,CAAC;IAChD,IAAI,CAACgC,OAAO,EACZ;MACE,MAAM,IAAID,KAAK,CAAC,CAAA,2CAAA,EAA8CF,SAAS,CAAC7B,MAAM,EAAE,CAAC;AACnF,IAAA;IACA,MAAM;MACJiC,KAAK;MACLC,QAAQ;AACRJ,MAAAA,SAAS,EAAEK;KACZ,GAAGH,OAAO,CAAC/B,MAAM,CAAC4B,SAAS,EAAEC,SAAS,CAAC;AACxC,IAAA,IAAIA,SAAS,IAAIK,GAAG,IAAIA,GAAG,KAAKL,SAAS,EACzC;AACE,MAAA,MAAM,IAAIC,KAAK,CAAC,CAAA,wBAAA,EAA2BF,SAAS,CAAC7B,MAAM,CAAA,mBAAA,EAAsBmC,GAAG,CAAA,gCAAA,EAAmCL,SAAS,CAAA,CAAE,CAAC;AACrI,IAAA;IACA,OAAO;MACLG,KAAK;MACLC,QAAQ;MACRE,MAAM,EAAEC,MAAM,CAACR,SAAS,CAACO,MAAM,CAAC,IAAI,CAAC;MACrCN,SAAS,EAAEK,GAAG,IAAIL;KACnB;AACH,EAAA;;AAEA;AACF;AACA;EACE,OAAOQ,kBAAkBA,CAACC,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,GAAG,KAAK,EAAEC,QAAQ,GAAG,CAAC,EAAEC,OAAO,GAAG,EAAE,EACrF;AACE,IAAA,IAAI,CAACJ,KAAK,IAAI,CAACA,KAAK,CAACP,KAAK,IAAI,CAACO,KAAK,CAACN,QAAQ,IAAI,CAACM,KAAK,CAACV,SAAS,EACjE;AACE,MAAA,OAAOS,GAAG;AACZ,IAAA;AACA,IAAA,MAAMN,KAAK,GAAGO,KAAK,CAACP,KAAK;MACvBY,KAAK,GAAGZ,KAAK,CAACa,MAAM;MACpBX,GAAG,GAAGK,KAAK,CAACV,SAAS;AACrBiB,MAAAA,YAAY,GAAGP,KAAK,CAACN,QAAQ,CAACY,MAAM,GAAGX,GAAG;AAC5C,IAAA,IAAI,CAACU,KAAK,IAAI,CAACE,YAAY,EAC3B;AACE,MAAA,OAAOR,GAAG;AACZ,IAAA;IACA,IAAIK,OAAO,CAACI,SAAS,EACrB;MACE,OAAOtB,eAAe,CAAC,YAAY,CAACa,GAAG,EAAEC,KAAK,EAAEd,eAAe,CAAC,qBAAqB,CAACmB,KAAK,EAAEJ,IAAI,EAAEE,QAAQ,CAAC,CAAC;AAC/G,IAAA;IACA,MAAMM,IAAI,GAAGvB,eAAe,CAAC,cAAc,CAACO,KAAK,EAAEQ,IAAI,CAAC;AACxD,IAAA,IAAID,KAAK,CAACJ,MAAM,IAAI,CAAC,IAAIS,KAAK,KAAK,CAAC,IAAIE,YAAY,KAAK,CAAC,EAC1D;MACE,MAAMG,KAAK,GAAGT,IAAI,IAAIR,KAAK,CAACY,KAAK,GAAG,CAAC,CAAC,GAClCA,KAAK,GAAG,CAAC,GACTlD,IAAI,CAACwD,GAAG,CAAC,CAAC,EAAEF,IAAI,GAAG,CAAC,CAAC;AACzB,MAAA,OAAOvB,eAAe,CAAC,YAAY,CAACa,GAAG,EAAEC,KAAK,EAAE7C,IAAI,CAACyD,GAAG,CAACF,KAAK,EAAEH,YAAY,GAAG,CAAC,CAAC,CAAC;AACpF,IAAA;AACA,IAAA,IAAIP,KAAK,CAACJ,MAAM,KAAK,CAAC,EACtB;MACE,OAAOV,eAAe,CAAC,kBAAkB,CAACa,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,IAAIV,KAAK,CAACY,KAAK,GAAG,CAAC,CAAC,EAAEI,IAAI,CAAC;AACxG,IAAA;IACA,OAAOvB,eAAe,CAAC,qBAAqB,CAACa,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,IAAIV,KAAK,CAACY,KAAK,GAAG,CAAC,CAAC,EAAEI,IAAI,CAAC;AAC3G,EAAA;AAEA,EAAA,OAAOI,gBAAgBA,CAACC,IAAI,EAAEC,MAAM,EACpC;AACE,IAAA,IAAID,IAAI,EACR;MACE5B,eAAe,CAAC,UAAU,CAAC8B,GAAG,CAACF,IAAI,EAAEC,MAAM,CAAC;AAC9C,IAAA;AACF,EAAA;EAEA,OAAOE,kBAAkBA,CAACH,IAAI,EAC9B;AACE5B,IAAAA,eAAe,CAAC,UAAU,CAACgC,MAAM,CAACJ,IAAI,CAAC;AACzC,EAAA;EAEA,OAAOK,cAAcA,GACrB;AACEjC,IAAAA,eAAe,CAAC,UAAU,CAACkC,KAAK,EAAE;AACpC,EAAA;EAEA,OAAOC,eAAeA,CAACP,IAAI,EAC3B;IACE,OAAO5B,eAAe,CAAC,UAAU,CAACoC,GAAG,CAACR,IAAI,CAAC,IAAI,IAAI;AACrD,EAAA;EAEA,OAAOS,cAAcA,CAACC,KAAK,EAC3B;IACE,OAAOtC,eAAe,CAAC,gBAAgB,CAACsC,KAAK,EAAE,CAAC,CAAC;AACnD,EAAA;EAEA,OAAOC,aAAaA,CAACV,MAAM,EAC3B;IACE,OAAO7B,eAAe,CAAC,SAAS,CAAC6B,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC;AACtE,EAAA;EAEA,OAAOW,cAAcA,CAACC,SAAS,EAC/B;IACE,OAAOzC,eAAe,CAAC,SAAS,CAACyC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC;AAC3E,EAAA;EAEA,OAAOC,oBAAoBA,CAACD,SAAS,EACrC;IACE,OAAO9B,MAAM,CAAC8B,SAAS,CAACxB,QAAQ,IAAIwB,SAAS,CAACE,QAAQ,CAAC,IAAI,CAAC;AAC9D,EAAA;EAEA,OAAOC,oBAAoBA,CAACH,SAAS,EACrC;IACE,OAAO9B,MAAM,CAAC8B,SAAS,CAACI,QAAQ,IAAIJ,SAAS,CAACK,QAAQ,CAAC,IAAI,CAAC;AAC9D,EAAA;AAEA,EAAA,OAAOC,kBAAkBA,CAACC,KAAK,EAAEC,IAAI,EACrC;IACE,MAAMC,UAAU,GAAGlD,eAAe,CAAC,aAAa,CAACgD,KAAK,CAAC;IACvD,IAAI,CAACE,UAAU,EACf;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,MAAMC,MAAM,GAAGnD,eAAe,CAAC,SAAS,CAACkD,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;AAC1F,IAAA,MAAME,KAAK,GAAGD,MAAM,CAACE,IAAI,CAACC,IAAI,IAAItD,eAAe,CAAC,QAAQ,CAACsD,IAAI,CAAC,KAAKL,IAAI,CAAC;IAC1E,OAAOG,KAAK,GAAGpD,eAAe,CAAC,wBAAwB,CAACoD,KAAK,CAAC,GAAG,IAAI;AACvE,EAAA;AAEA,EAAA,OAAOG,eAAeA,CAACP,KAAK,EAAEC,IAAI,EAClC;IACE,MAAMC,UAAU,GAAGlD,eAAe,CAAC,aAAa,CAACgD,KAAK,CAAC;IACvD,IAAI,CAACE,UAAU,EACf;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,MAAMC,MAAM,GAAGnD,eAAe,CAAC,SAAS,CAACkD,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC;AACpF,IAAA,MAAME,KAAK,GAAGD,MAAM,CAACE,IAAI,CAACC,IAAI,IAAItD,eAAe,CAAC,QAAQ,CAACsD,IAAI,CAAC,KAAKL,IAAI,CAAC;IAC1E,OAAOG,KAAK,GAAGpD,eAAe,CAAC,qBAAqB,CAACoD,KAAK,CAAC,GAAG,IAAI;AACpE,EAAA;AAEA,EAAA,OAAOI,aAAaA,CAACR,KAAK,EAAEC,IAAI,EAChC;IACE,MAAMC,UAAU,GAAGlD,eAAe,CAAC,aAAa,CAACgD,KAAK,CAAC;IACvD,IAAI,CAACE,UAAU,EACf;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,MAAMO,UAAU,GAAGzD,eAAe,CAAC,SAAS,CAACkD,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;AACpF,IAAA,OAAOO,UAAU,CAACJ,IAAI,CAACD,KAAK,IAAIpD,eAAe,CAAC,QAAQ,CAACoD,KAAK,CAAC,KAAKH,IAAI,CAAC,IAAI,IAAI;AACnF,EAAA;EAEA,OAAOS,mBAAmBA,CAACN,KAAK,EAChC;AACE,IAAA,MAAMO,OAAO,GAAG3D,eAAe,CAAC,SAAS,CAACoD,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;IACtE,MAAMvC,GAAG,GAAG,EAAE;AACd,IAAA,KAAK,MAAM+C,KAAK,IAAID,OAAO,EAC3B;MACE,MAAM5C,IAAI,GAAGf,eAAe,CAAC,aAAa,CAAC4D,KAAK,CAAC;AACjD,MAAA,IAAIjD,MAAM,CAACkD,QAAQ,CAAC9C,IAAI,CAAC,EACzB;QACEF,GAAG,CAACiD,IAAI,CAAC;UAAE/C,IAAI;UAAEgD,IAAI,EAAEC,MAAM,CAACJ,KAAK,CAACG,IAAI,IAAIH,KAAK,CAACK,IAAI,IAAI,EAAE;AAAE,SAAC,CAAC;AAClE,MAAA;AACF,IAAA;AACA,IAAA,OAAOpD,GAAG;AACZ,EAAA;AAEA,EAAA,OAAOqD,iBAAiBA,CAACpD,KAAK,EAAEV,SAAS,EACzC;IACE,IAAI,CAACU,KAAK,IAAIA,KAAK,CAACqD,KAAK,IAAIrD,KAAK,CAACT,KAAK,EACxC;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IACA,MAAM+D,UAAU,GAAGpE,eAAe,CAAC,eAAe,CAACc,KAAK,CAAC;IACzD,MAAMuD,aAAa,GAAGrE,eAAe,CAAC,gBAAgB,CAACoE,UAAU,EAAEhE,SAAS,CAAC;AAC7E,IAAA,IAAIiE,aAAa,EACjB;AACE,MAAA,OAAOA,aAAa;AACtB,IAAA;AACA,IAAA,IAAI,OAAOD,UAAU,CAAC9F,MAAM,KAAK,QAAQ,IAAI,OAAO8F,UAAU,CAAC1D,MAAM,KAAK,QAAQ,EAClF;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IACA,IACA;MACE,MAAM4D,OAAO,GAAGtE,eAAe,CAACE,WAAW,CAACkE,UAAU,EAAEhE,SAAS,CAAC;MAClE,OAAO;QACL9B,MAAM,EAAE8F,UAAU,CAAC9F,MAAM;QACzBiC,KAAK,EAAE+D,OAAO,CAAC/D,KAAK;QACpBC,QAAQ,EAAE8D,OAAO,CAAC9D,QAAQ;QAC1BE,MAAM,EAAE4D,OAAO,CAAC5D,MAAM;QACtBN,SAAS,EAAEkE,OAAO,CAAClE,SAAS;AAC5BkB,QAAAA,SAAS,EAAE8C,UAAU,CAAC9F,MAAM,KAAK;OAClC;AACH,IAAA,CAAC,CACD,MACA;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,OAAOiG,oBAAoBA,CAACzD,KAAK,EAAEV,SAAS,EAC5C;IACE,IAAI,CAACU,KAAK,EACV;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IAEA,MAAM0D,cAAc,GAAG7D,MAAM,CAACG,KAAK,CAAC0D,cAAc,IAAI1D,KAAK,CAAC2D,cAAc,CAAC;IAC3E,MAAMC,SAAS,GAAG/D,MAAM,CAACG,KAAK,CAAC4D,SAAS,IAAI5D,KAAK,CAAC6D,SAAS,CAAC;AAC5D,IAAA,IAAIH,cAAc,KAAKpE,SAAS,IAAI,CAACO,MAAM,CAACiE,aAAa,CAACF,SAAS,CAAC,IAAIA,SAAS,IAAI,CAAC,EACtF;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IAEA,IACA;MACE,MAAMnE,KAAK,GAAGsE,cAAc,CAC1B/D,KAAK,CAACP,KAAK,IAAIO,KAAK,CAACgE,KAAK,EAC1BhE,KAAK,CAACiE,QAAQ,IAAIjE,KAAK,CAACkE,QAAQ,EAChCN,SACF,CAAC;MACD,MAAMlE,QAAQ,GAAGqE,cAAc,CAC7B/D,KAAK,CAACmE,MAAM,IAAInE,KAAK,CAACoE,MAAM,EAC5BpE,KAAK,CAACqE,SAAS,IAAIrE,KAAK,CAACsE,SAAS,EAClCV,SAAS,GAAGF,cACd,CAAC;MACD,MAAMa,aAAa,GAAGvE,KAAK,CAACuE,aAAa,IAAIvE,KAAK,CAACwE,aAAa;MAEhE,OAAO;QACL/E,KAAK;QACLC,QAAQ;QACRE,MAAM,EAAE2E,aAAa,KAAK,MAAM,IAAIA,aAAa,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/DjF,QAAAA,SAAS,EAAEoE,cAAc;AACzBlD,QAAAA,SAAS,EAAE;OACZ;AACH,IAAA,CAAC,CACD,MACA;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACF,EAAA;EAEA,OAAOiE,iBAAiBA,CAAC1E,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,EAC1D;AACEjB,IAAAA,eAAe,CAACY,kBAAkB,CAACC,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,EAAE;MACpEK,SAAS,EAAER,KAAK,CAACQ;AACnB,KAAC,CAAC;AACF,IAAA,OAAOT,GAAG;AACZ,EAAA;AAEA,EAAA,OAAO,SAAS2E,CAAClD,KAAK,EACtB;IACE,OAAOA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,IAAI;AACnE,EAAA;AAEA,EAAA,OAAO,cAAcmD,CAACnD,KAAK,EAC3B;IACE,MAAMoD,MAAM,GAAG1F,eAAe,CAAC,SAAS,CAACsC,KAAK,CAAC;AAC/C,IAAA,OAAOtC,eAAe,CAAC,cAAc,CAAC0F,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,GAAGA,MAAM,GAAG,IAAI;AAC3F,EAAA;AAEA,EAAA,OAAO,aAAaC,CAACrD,KAAK,EAC1B;AACE,IAAA,OAAOtC,eAAe,CAAC,SAAS,CAACsC,KAAK,CAAC;AACzC,EAAA;AAEA,EAAA,OAAO,gBAAgBsD,CAACtD,KAAK,EAAEuD,KAAK,EACpC;IACE,MAAMC,MAAM,GAAG9F,eAAe,CAAC,cAAc,CAACsC,KAAK,CAAC;AACpD,IAAA,IAAIwD,MAAM,EACV;AACE,MAAA,OAAOA,MAAM;AACf,IAAA;IACA,MAAMJ,MAAM,GAAG1F,eAAe,CAAC,SAAS,CAACsC,KAAK,CAAC;AAC/C,IAAA,IAAI,CAACoD,MAAM,IAAIG,KAAK,GAAG,CAAC,EACxB;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IACA,KAAK,MAAME,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAChH;AACE,MAAA,MAAMC,MAAM,GAAGhG,eAAe,CAAC,gBAAgB,CAAC0F,MAAM,CAACK,GAAG,CAAC,EAAEF,KAAK,GAAG,CAAC,CAAC;AACvE,MAAA,IAAIG,MAAM,EACV;AACE,QAAA,OAAOA,MAAM;AACf,MAAA;AACF,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,OAAO,SAASC,CAAC3D,KAAK,EAAE4D,QAAQ,EAAEC,QAAQ,EAC1C;AACE,IAAA,MAAMC,KAAK,GAAG9D,KAAK,CAAC4D,QAAQ,CAAC;AAC7B,IAAA,IAAIG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EACxB;AACE,MAAA,OAAOA,KAAK;AACd,IAAA;AACA,IAAA,MAAMG,KAAK,GAAGjE,KAAK,CAAC6D,QAAQ,CAAC;IAC7B,OAAOE,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE;AAC1C,EAAA;EAEA,OAAO,cAAcC,CAAClE,KAAK,EAAE4D,QAAQ,EAAEC,QAAQ,EAC/C;AACE,IAAA,OAAOE,KAAK,CAACC,OAAO,CAAChE,KAAK,GAAG4D,QAAQ,CAAC,CAAC,IAAIG,KAAK,CAACC,OAAO,CAAChE,KAAK,GAAG6D,QAAQ,CAAC,CAAC;AAC7E,EAAA;AAEA,EAAA,OAAO,QAAQM,CAACnE,KAAK,EACrB;AACE,IAAA,OAAOA,KAAK,CAACW,IAAI,IAAIX,KAAK,CAACoE,IAAI;AACjC,EAAA;AAEA,EAAA,OAAO,aAAaC,CAAC/C,KAAK,EAC1B;AACE,IAAA,MAAMtB,KAAK,GAAGsB,KAAK,CAACgD,SAAS,IAAIhD,KAAK,CAACiD,SAAS,IAAIjD,KAAK,CAACkD,SAAS,IAAIlD,KAAK,CAAC7C,IAAI;IACjF,OAAO,OAAOuB,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG3B,MAAM,CAACoG,GAAG;AACvD,EAAA;AAEA,EAAA,OAAO,wBAAwBC,CAAC5D,KAAK,EACrC;IACE,OAAO;AACL,MAAA,GAAGA,KAAK;AACRH,MAAAA,IAAI,EAAEjD,eAAe,CAAC,QAAQ,CAACoD,KAAK,CAAC;AACrC6D,MAAAA,WAAW,EAAE7D,KAAK,CAAC6D,WAAW,IAAI7D,KAAK,CAAC8D,WAAW;AACnDC,MAAAA,QAAQ,EAAE/D,KAAK,CAAC+D,QAAQ,IAAI/D,KAAK,CAACgE,QAAQ;AAC1CC,MAAAA,UAAU,EAAEjE,KAAK,CAACiE,UAAU,IAAIjE,KAAK,CAACkE;KACvC;AACH,EAAA;AAEA,EAAA,OAAO,qBAAqBC,CAACnE,KAAK,EAClC;IACE,OAAO;AACL,MAAA,GAAGA,KAAK;AACRH,MAAAA,IAAI,EAAEjD,eAAe,CAAC,QAAQ,CAACoD,KAAK,CAAC;AACrCoE,MAAAA,UAAU,EAAEpE,KAAK,CAACoE,UAAU,IAAIpE,KAAK,CAACqE;KACvC;AACH,EAAA;AAEA,EAAA,OAAO,eAAeC,CAAC5G,KAAK,EAC5B;AACE,IAAA,MAAMsD,UAAU,GAAG;MAAE,GAAGtD;KAAO;AAC/B,IAAA,KAAK,MAAM,CAACiF,GAAG,EAAEzD,KAAK,CAAC,IAAIlE,MAAM,CAACuF,OAAO,CAAC7C,KAAK,CAAC,EAChD;MACE,MAAMoF,QAAQ,GAAGlG,eAAe,CAAC,WAAW,CAAC+F,GAAG,CAAC;AACjD,MAAA,IAAI,EAAEG,QAAQ,IAAI9B,UAAU,CAAC,EAC7B;AACEA,QAAAA,UAAU,CAAC8B,QAAQ,CAAC,GAAG5D,KAAK;AAC9B,MAAA;AACF,IAAA;IACA8B,UAAU,CAAC9F,MAAM,GAAGwC,KAAK,CAACxC,MAAM,IAAIwC,KAAK,CAAC6G,MAAM;IAChDvD,UAAU,CAAC1D,MAAM,GAAGI,KAAK,CAACJ,MAAM,IAAII,KAAK,CAAC8G,MAAM;IAChDxD,UAAU,CAAC7D,KAAK,GAAGO,KAAK,CAACP,KAAK,IAAIO,KAAK,CAACgE,KAAK;IAC7CV,UAAU,CAAC5D,QAAQ,GAAGM,KAAK,CAACN,QAAQ,IAAIM,KAAK,CAAC+G,QAAQ;IACtDzD,UAAU,CAAChE,SAAS,GAAGU,KAAK,CAACV,SAAS,IAAIU,KAAK,CAACgH,SAAS;IACzD1D,UAAU,CAACD,KAAK,GAAGrD,KAAK,CAACqD,KAAK,IAAIrD,KAAK,CAACT,KAAK;AAC7C,IAAA,OAAO+D,UAAU;AACnB,EAAA;AAEA,EAAA,OAAO,gBAAgB2D,CAACjH,KAAK,EAAEV,SAAS,EACxC;AACE,IAAA,MAAMG,KAAK,GAAGO,KAAK,CAACP,KAAK;AACzB,IAAA,MAAMC,QAAQ,GAAGM,KAAK,CAACN,QAAQ;IAC/B,MAAMwH,cAAc,GAAGrH,MAAM,CAACG,KAAK,CAACV,SAAS,CAAC,IAAIA,SAAS;IAC3D,IAAI,CAACiG,KAAK,CAACC,OAAO,CAAC/F,KAAK,CAAC,IAAI,CAAC8F,KAAK,CAACC,OAAO,CAAC9F,QAAQ,CAAC,IAAIwH,cAAc,KAAK5H,SAAS,IAAII,QAAQ,CAACY,MAAM,GAAG4G,cAAc,KAAK,CAAC,EAC/H;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IACA,OAAO;MACL1J,MAAM,EAAEwC,KAAK,CAACxC,MAAM;MACpBiC,KAAK;MACLC,QAAQ;MACRE,MAAM,EAAEC,MAAM,CAACG,KAAK,CAACJ,MAAM,CAAC,IAAI,CAAC;AACjCN,MAAAA,SAAS,EAAE4H,cAAc;AACzB1G,MAAAA,SAAS,EAAER,KAAK,CAACxC,MAAM,KAAK;KAC7B;AACH,EAAA;AAEA,EAAA,OAAO,WAAW2J,CAAC3F,KAAK,EACxB;AACE,IAAA,OAAOA,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAC4F,WAAW,EAAE,GAAG5F,KAAK,CAAC6F,KAAK,CAAC,CAAC,CAAC,GAAG7F,KAAK;AAChE,EAAA;EAEA,OAAO,YAAY8F,CAACvH,GAAG,EAAEC,KAAK,EAAEU,KAAK,EACrC;AACE,IAAA,MAAM6G,MAAM,GAAG7G,KAAK,GAAGV,KAAK,CAACV,SAAS;AACtC,IAAA,KAAK,IAAIkI,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGxH,KAAK,CAACV,SAAS,EAAEkI,CAAC,EAAE,EACxC;MACEzH,GAAG,CAACyH,CAAC,CAAC,GAAGxH,KAAK,CAACN,QAAQ,CAAC6H,MAAM,GAAGC,CAAC,CAAC;AACrC,IAAA;AACA,IAAA,OAAOzH,GAAG;AACZ,EAAA;AAEA,EAAA,OAAO,cAAc0H,CAAChI,KAAK,EAAEQ,IAAI,EACjC;IACE,IAAIyH,GAAG,GAAG,CAAC;AACX,IAAA,IAAIC,IAAI,GAAGlI,KAAK,CAACa,MAAM,GAAG,CAAC;IAC3B,OAAOoH,GAAG,GAAGC,IAAI,EACjB;AACE,MAAA,MAAMC,GAAG,GAAGF,GAAG,GAAGC,IAAI,IAAI,CAAC;AAC3B,MAAA,IAAIlI,KAAK,CAACmI,GAAG,CAAC,GAAG3H,IAAI,EACrB;AACE0H,QAAAA,IAAI,GAAGC,GAAG;AACZ,MAAA,CAAC,MAED;QACEF,GAAG,GAAGE,GAAG,GAAG,CAAC;AACf,MAAA;AACF,IAAA;AACA,IAAA,OAAOF,GAAG;AACZ,EAAA;EAEA,OAAO,qBAAqBG,CAACxH,KAAK,EAAEJ,IAAI,EAAEE,QAAQ,EAClD;AACE,IAAA,MAAM2H,KAAK,GAAG3H,QAAQ,GAAG,CAAC,GAAGhD,IAAI,CAAC4K,KAAK,CAAC1H,KAAK,GAAGJ,IAAI,GAAGE,QAAQ,CAAC,GAAG,CAAC;AACpE,IAAA,OAAOhD,IAAI,CAACwD,GAAG,CAAC,CAAC,EAAExD,IAAI,CAACyD,GAAG,CAACP,KAAK,GAAG,CAAC,EAAEyH,KAAK,CAAC,CAAC;AAChD,EAAA;AAEA,EAAA,OAAO,kBAAkBE,CAACjI,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,EAAEM,IAAI,EACjE;AACE,IAAA,MAAMhB,KAAK,GAAGO,KAAK,CAACP,KAAK;AACzB,IAAA,MAAMY,KAAK,GAAGZ,KAAK,CAACa,MAAM;AAC1B,IAAA,MAAMX,GAAG,GAAGK,KAAK,CAACV,SAAS;IAC3B,MAAM2I,KAAK,GAAG/H,KAAK,GAAG,CAACO,IAAI,GAAGJ,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAGI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAGA,IAAI,GAAG,CAAC;AAC5E,IAAA,MAAMyH,KAAK,GAAGzI,KAAK,CAACwI,KAAK,CAAC;AAC1B,IAAA,IAAIE,GAAG,GAAG1I,KAAK,CAACgB,IAAI,CAAC;IACrB,IAAI2H,SAAS,GAAGnI,IAAI;AACpB,IAAA,IAAIC,KAAK,IAAIiI,GAAG,GAAGD,KAAK,EACxB;AACEC,MAAAA,GAAG,IAAIhI,QAAQ;AACjB,IAAA;AACA,IAAA,IAAID,KAAK,IAAIkI,SAAS,GAAGF,KAAK,EAC9B;AACEE,MAAAA,SAAS,IAAIjI,QAAQ;AACvB,IAAA;AACA,IAAA,MAAMkI,CAAC,GAAGF,GAAG,KAAKD,KAAK,GAAG,CAACE,SAAS,GAAGF,KAAK,KAAKC,GAAG,GAAGD,KAAK,CAAC,GAAG,CAAC;AACjE,IAAA,MAAMI,EAAE,GAAGL,KAAK,GAAGtI,GAAG;AACtB,IAAA,MAAM4I,EAAE,GAAG9H,IAAI,GAAGd,GAAG;IACrB,KAAK,IAAI6H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG7H,GAAG,EAAE6H,CAAC,EAAE,EAC5B;MACEzH,GAAG,CAACyH,CAAC,CAAC,GAAGxH,KAAK,CAACN,QAAQ,CAAC4I,EAAE,GAAGd,CAAC,CAAC,IAAI,CAAC,GAAGa,CAAC,CAAC,GAAGrI,KAAK,CAACN,QAAQ,CAAC6I,EAAE,GAAGf,CAAC,CAAC,GAAGa,CAAC;AACxE,IAAA;AACA,IAAA,OAAOtI,GAAG;AACZ,EAAA;AAEA,EAAA,OAAO,qBAAqByI,CAACzI,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,QAAQ,EAAEM,IAAI,EACpE;AACE,IAAA,MAAMhB,KAAK,GAAGO,KAAK,CAACP,KAAK;AACzB,IAAA,MAAMY,KAAK,GAAGZ,KAAK,CAACa,MAAM;AAC1B,IAAA,MAAMX,GAAG,GAAGK,KAAK,CAACV,SAAS;AAC3B,IAAA,MAAMmJ,EAAE,GAAGvI,KAAK,GAAG,CAACO,IAAI,GAAGJ,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAGI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAGtD,IAAI,CAACwD,GAAG,CAAC,CAAC,EAAEF,IAAI,GAAG,CAAC,CAAC;IACtF,MAAMiI,EAAE,GAAGxI,KAAK,GAAG,CAACO,IAAI,GAAGJ,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAGI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAGA,IAAI,GAAG,CAAC;AACzE,IAAA,MAAMkI,GAAG,GAAGlJ,KAAK,CAACgJ,EAAE,CAAC;AACrB,IAAA,MAAMG,GAAG,GAAGnJ,KAAK,CAACiJ,EAAE,CAAC;AACrB,IAAA,IAAIG,EAAE,GAAGpJ,KAAK,CAACgB,IAAI,CAAC;IACpB,IAAIqI,MAAM,GAAGrJ,KAAK,CAAC,CAACgB,IAAI,GAAG,CAAC,IAAIJ,KAAK,CAAC;IACtC,IAAI+H,SAAS,GAAGnI,IAAI;IACpB,IAAI0I,GAAG,GAAGE,EAAE,EACZ;AACEA,MAAAA,EAAE,IAAI1I,QAAQ;AACd2I,MAAAA,MAAM,IAAI3I,QAAQ;AAClBiI,MAAAA,SAAS,IAAIjI,QAAQ;AACvB,IAAA;IACA,IAAIyI,GAAG,GAAGC,EAAE,EACZ;AACEA,MAAAA,EAAE,IAAI1I,QAAQ;AACd2I,MAAAA,MAAM,IAAI3I,QAAQ;AAClBiI,MAAAA,SAAS,IAAIjI,QAAQ;AACvB,IAAA;IACA,IAAI2I,MAAM,GAAGD,EAAE,EACf;AACEC,MAAAA,MAAM,IAAI3I,QAAQ;AACpB,IAAA;AACA,IAAA,MAAM4I,EAAE,GAAGF,EAAE,GAAGD,GAAG;AACnB,IAAA,MAAMI,GAAG,GAAGH,EAAE,GAAGF,GAAG;AACpB,IAAA,MAAMM,GAAG,GAAGH,MAAM,GAAGF,GAAG;AACxB,IAAA,MAAMM,EAAE,GAAGH,EAAE,KAAK,CAAC,GAAG,CAACX,SAAS,GAAGQ,GAAG,IAAIG,EAAE,GAAG,CAAC;AAChD,IAAA,MAAMI,GAAG,GAAGH,GAAG,KAAK,CAAC,GAAG,CAACZ,SAAS,GAAGO,GAAG,IAAIK,GAAG,GAAG,CAAC;AACnD,IAAA,MAAMI,GAAG,GAAGH,GAAG,KAAK,CAAC,GAAG,CAACb,SAAS,GAAGQ,GAAG,IAAIK,GAAG,GAAG,CAAC;IACnD,IAAII,EAAE,GAAGF,GAAG,GAAGD,EAAE,GAAGA,EAAE,GAAGC,GAAG;AAC5B,IAAA,MAAMG,EAAE,GAAGJ,EAAE,GAAGE,GAAG;AACnB,IAAA,MAAMG,EAAE,GAAGF,EAAE,GAAGC,EAAE;IAClBD,EAAE,GAAG,CAAC,GAAGA,EAAE;AACX,IAAA,MAAMf,EAAE,GAAGG,EAAE,GAAG9I,GAAG;AACnB,IAAA,MAAM4I,EAAE,GAAGG,EAAE,GAAG/I,GAAG;AACnB,IAAA,MAAM6J,EAAE,GAAG/I,IAAI,GAAGd,GAAG;IACrB,KAAK,IAAI6H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG7H,GAAG,EAAE6H,CAAC,EAAE,EAC5B;AACEzH,MAAAA,GAAG,CAACyH,CAAC,CAAC,GAAG6B,EAAE,GAAGrJ,KAAK,CAACN,QAAQ,CAAC4I,EAAE,GAAGd,CAAC,CAAC,GAAG+B,EAAE,GAAGvJ,KAAK,CAACN,QAAQ,CAAC6I,EAAE,GAAGf,CAAC,CAAC,GAAG8B,EAAE,GAAGtJ,KAAK,CAACN,QAAQ,CAAC8J,EAAE,GAAGhC,CAAC,CAAC;AAClG,IAAA;AACA,IAAA,OAAOzH,GAAG;AACZ,EAAA;AACF;AAEA,MAAM0J,uBAAuB,GAAGnM,MAAM,CAACC,MAAM,CAAC,CAC5C,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,MAAM,CACP,CAAC;AAEF,SAASwG,cAAcA,CAACvC,KAAK,EAAEkI,SAAS,EAAErJ,KAAK,EAC/C;AACE,EAAA,MAAMsJ,IAAI,GAAG,OAAOD,SAAS,KAAK,QAAQ,GAAGD,uBAAuB,CAACC,SAAS,CAAC,GAAGA,SAAS;AAC3F,EAAA,MAAME,IAAI,GAAGC,eAAe,CAACF,IAAI,CAAC;AAElC,EAAA,IAAIG,WAAW,CAACC,MAAM,CAACvI,KAAK,CAAC,IAAI,EAAEA,KAAK,YAAYwI,UAAU,CAAC,IAAIxI,KAAK,CAAClB,MAAM,KAAKD,KAAK,EACzF;AACE,IAAA,OAAOkF,KAAK,CAAC0E,IAAI,CAACzI,KAAK,EAAE3B,MAAM,CAAC;AAClC,EAAA;AACA,EAAA,IAAI0F,KAAK,CAACC,OAAO,CAAChE,KAAK,CAAC,IAAIoI,IAAI,GAAG,CAAC,IAAIpI,KAAK,CAAClB,MAAM,KAAKD,KAAK,EAC9D;AACE,IAAA,OAAOmB,KAAK,CAAC0I,GAAG,CAACrK,MAAM,CAAC;AAC1B,EAAA;AAEA,EAAA,MAAMsK,KAAK,GAAGC,UAAU,CAAC5I,KAAK,CAAC;EAC/B,IAAI,CAAC2I,KAAK,IAAIA,KAAK,CAACE,UAAU,GAAGhK,KAAK,GAAGuJ,IAAI,EAC7C;AACE,IAAA,MAAM,IAAIU,SAAS,CAAC,oCAAoC,CAAC;AAC3D,EAAA;AAEA,EAAA,MAAMC,IAAI,GAAG,IAAIC,QAAQ,CAACL,KAAK,CAACM,MAAM,EAAEN,KAAK,CAACO,UAAU,EAAEP,KAAK,CAACE,UAAU,CAAC;EAC3E,OAAO9E,KAAK,CAAC0E,IAAI,CAAC;AAAE3J,IAAAA,MAAM,EAAED;AAAM,GAAC,EAAE,CAACsK,CAAC,EAAEjK,KAAK,KAAKkK,WAAW,CAACL,IAAI,EAAE7J,KAAK,GAAGkJ,IAAI,EAAED,IAAI,CAAC,CAAC;AAC3F;AAEA,SAASS,UAAUA,CAAC5I,KAAK,EACzB;EACE,IAAIA,KAAK,YAAYwI,UAAU,EAC/B;AACE,IAAA,OAAOxI,KAAK;AACd,EAAA;AACA,EAAA,IAAIsI,WAAW,CAACC,MAAM,CAACvI,KAAK,CAAC,EAC7B;AACE,IAAA,OAAO,IAAIwI,UAAU,CAACxI,KAAK,CAACiJ,MAAM,EAAEjJ,KAAK,CAACkJ,UAAU,EAAElJ,KAAK,CAAC6I,UAAU,CAAC;AACzE,EAAA;EACA,IAAI7I,KAAK,YAAYsI,WAAW,EAChC;AACE,IAAA,OAAO,IAAIE,UAAU,CAACxI,KAAK,CAAC;AAC9B,EAAA;AACA,EAAA,OAAO+D,KAAK,CAACC,OAAO,CAAChE,KAAK,CAAC,GAAGwI,UAAU,CAACC,IAAI,CAACzI,KAAK,CAAC,GAAG,IAAI;AAC7D;AAEA,SAASqI,eAAeA,CAACF,IAAI,EAC7B;AACE,EAAA,QAAQA,IAAI;AAEV,IAAA,KAAK,SAAS;AACZ,MAAA,OAAO,CAAC;AACV,IAAA,KAAK,SAAS;AACd,IAAA,KAAK,YAAY;AACjB,IAAA,KAAK,QAAQ;AACb,IAAA,KAAK,WAAW;AAChB,IAAA,KAAK,OAAO;AACV,MAAA,OAAO,CAAC;AACV,IAAA,KAAK,WAAW;AAChB,IAAA,KAAK,OAAO;AACZ,IAAA,KAAK,UAAU;AACf,IAAA,KAAK,MAAM;AACT,MAAA,OAAO,CAAC;AACV,IAAA;AACE,MAAA,MAAM,IAAIW,SAAS,CAAC,CAAA,0CAAA,EAA6CX,IAAI,GAAG,CAAC;AAC7E;AACF;AAEA,SAASiB,WAAWA,CAACL,IAAI,EAAEhD,MAAM,EAAEoC,IAAI,EACvC;AACE,EAAA,QAAQA,IAAI;AAEV,IAAA,KAAK,SAAS;AACZ,MAAA,OAAOY,IAAI,CAACM,UAAU,CAACtD,MAAM,EAAE,IAAI,CAAC;AACtC,IAAA,KAAK,SAAS;AACZ,MAAA,OAAOuD,GAAG,CAACC,aAAa,CAACR,IAAI,CAACS,SAAS,CAACzD,MAAM,EAAE,IAAI,CAAC,CAAC;AACxD,IAAA,KAAK,YAAY;MACf,OAAOgD,IAAI,CAACS,SAAS,CAACzD,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK;AAC7C,IAAA,KAAK,QAAQ;AACX,MAAA,OAAOgD,IAAI,CAACS,SAAS,CAACzD,MAAM,EAAE,IAAI,CAAC;AACrC,IAAA,KAAK,WAAW;AACd,MAAA,OAAOpK,IAAI,CAACwD,GAAG,CAAC4J,IAAI,CAACU,QAAQ,CAAC1D,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;AAC1D,IAAA,KAAK,OAAO;AACV,MAAA,OAAOgD,IAAI,CAACU,QAAQ,CAAC1D,MAAM,EAAE,IAAI,CAAC;AACpC,IAAA,KAAK,WAAW;AACd,MAAA,OAAOgD,IAAI,CAACW,QAAQ,CAAC3D,MAAM,CAAC,GAAG,GAAG;AACpC,IAAA,KAAK,OAAO;AACV,MAAA,OAAOgD,IAAI,CAACW,QAAQ,CAAC3D,MAAM,CAAC;AAC9B,IAAA,KAAK,UAAU;AACb,MAAA,OAAOpK,IAAI,CAACwD,GAAG,CAAC4J,IAAI,CAACY,OAAO,CAAC5D,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AACjD,IAAA,KAAK,MAAM;AACT,MAAA,OAAOgD,IAAI,CAACY,OAAO,CAAC5D,MAAM,CAAC;AAC7B,IAAA;AACE,MAAA,MAAM,IAAI+C,SAAS,CAAC,CAAA,0CAAA,EAA6CX,IAAI,GAAG,CAAC;AAC7E;AACF;AAEA,SAASyB,QAAQA,CAACC,SAAS,EAAEC,OAAO,EAAEC,IAAI,EAC1C;AACE,EAAA,MAAM/J,KAAK,GAAG6J,SAAS,GAAGC,OAAO;AACjC,EAAA,IAAI,CAACzL,MAAM,CAAC2L,SAAS,CAAChK,KAAK,CAAC,EAC5B;IACE,MAAM,IAAIjC,KAAK,CAAC,CAAA,iBAAA,EAAoBgM,IAAI,KAAKF,SAAS,CAAA,qBAAA,EAAwBC,OAAO,CAAA,CAAE,CAAC;AAC1F,EAAA;AACA,EAAA,OAAO9J,KAAK;AACd;AACA,SAASiK,kBAAkBA,CAACC,qBAAqB,EACjD;EACE,MAAMjB,MAAM,GAAG,IAAIkB,WAAW,CAAC,CAACD,qBAAqB,IAAI,EAAE,CAAC,CAAC;EAC7D,OAAO,IAAI5M,YAAY,CAAC2L,MAAM,CAACA,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C;AACA,SAASmB,iBAAiBA,CAACC,aAAa,EAAExL,KAAK,EAAEyL,KAAK,EACtD;AACE,EAAA,MAAM/L,GAAG,GAAG,IAAIwF,KAAK,CAAClF,KAAK,CAAC;EAC5B,KAAK,IAAImH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;AACEzH,IAAAA,GAAG,CAACyH,CAAC,CAAC,GAAGtK,EAAE,CAAC2O,aAAa,CAACrE,CAAC,CAAC,GAAGsE,KAAK,CAAC;AACvC,EAAA;AACA,EAAA,OAAO/L,GAAG;AACZ;AACA,SAASgM,sBAAsBA,CAACF,aAAa,EAAExL,KAAK,EAAEqL,qBAAqB,EAC3E;EACE,OAAOE,iBAAiB,CAACC,aAAa,EAAExL,KAAK,EAAEoL,kBAAkB,CAACC,qBAAqB,CAAC,CAAC;AAC3F;AACA,SAASM,gBAAgBA,CAAC1M,SAAS,EACnC;AACE,EAAA,QAAQA,SAAS;AAEf,IAAA,KAAK,CAAC;AACJ,MAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClB,IAAA,KAAK,CAAC;MACJ,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrB,IAAA,KAAK,CAAC;AACJ,MAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC,IAAA;AACE,MAAA,MAAM,IAAIC,KAAK,CAAC,CAAA,mCAAA,EAAsCD,SAAS,EAAE,CAAC;AACtE;AACF;AACA,SAAS5B,oBAAoBA,CAACuO,CAAC,EAAE3M,SAAS,EAC1C;AACE,EAAA,MAAMK,GAAG,GAAGsM,CAAC,CAAC3M,SAAS,IAAIA,SAAS;AAClCI,IAAAA,QAAQ,GAAGuM,CAAC,CAACvM,QAAQ,IAAI,EAAE;IAC3BW,KAAK,GAAG+K,QAAQ,CAAC1L,QAAQ,CAACY,MAAM,EAAEX,GAAG,EAAE,mCAAmC,CAAC;AAC3EF,IAAAA,KAAK,GAAG,IAAI8F,KAAK,CAAClF,KAAK,CAAC;EAC1B,KAAK,IAAImH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;AACE/H,IAAAA,KAAK,CAAC+H,CAAC,CAAC,GAAGA,CAAC;AACd,EAAA;EACA,OAAO;IACL/H,KAAK;AACLC,IAAAA,QAAQ,EAAEA,QAAQ,CAACwK,GAAG,CAAChN,EAAE,CAAC;AAC1BoC,IAAAA,SAAS,EAAEK;GACZ;AACH;AACA,SAAShC,gBAAgBA,CAACsO,CAAC,EAAE3M,SAAS,EACtC;AACE,EAAA,MAAMG,KAAK,GAAG,CAACwM,CAAC,CAACxM,KAAK,IAAI,EAAE,EAAEyK,GAAG,CAAChN,EAAE,CAAC;IACnCwC,QAAQ,GAAG,CAACuM,CAAC,CAACvM,QAAQ,IAAI,EAAE,EAAEwK,GAAG,CAAChN,EAAE,CAAC;AACrCyC,IAAAA,GAAG,GAAGF,KAAK,CAACa,MAAM,GAAG8K,QAAQ,CAAC1L,QAAQ,CAACY,MAAM,EAAEb,KAAK,CAACa,MAAM,EAAE,2BAA2B,CAAC,GAAGhB,SAAS;EACvG,OAAO;IACLG,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAEK;GACZ;AACH;AACA,SAAS/B,gBAAgBA,CAACqO,CAAC,EAAE3M,SAAS,EACtC;AACE,EAAA,MAAMK,GAAG,GAAGsM,CAAC,CAAC3M,SAAS,IAAIA,SAAS;EACpC,OAAO;IACLG,KAAK,EAAE,CAAC,CAAC,CAAC;AACVC,IAAAA,QAAQ,EAAEsM,gBAAgB,CAACrM,GAAG,CAAC;AAC/BL,IAAAA,SAAS,EAAEK;GACZ;AACH;AACA,SAAS9B,mBAAmBA,CAACoO,CAAC,EAAE3M,SAAS,EACzC;AACE,EAAA,MAAMI,QAAQ,GAAG,CAACuM,CAAC,CAACvM,QAAQ,IAAI,EAAE,EAAEwK,GAAG,CAAChN,EAAE,CAAC;EAC3C,OAAO;IACLuC,KAAK,EAAE,CAAC,CAAC,CAAC;IACVC,QAAQ;AACRJ,IAAAA,SAAS,EAAEI,QAAQ,CAACY,MAAM,IAAIhB;GAC/B;AACH;AACA,SAASxB,mBAAmBA,CAACmO,CAAC,EAC9B;EACE,MAAMvM,QAAQ,GAAG,CAACuM,CAAC,CAACvM,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE2H,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC6C,GAAG,CAAChN,EAAE,CAAC;EAC9D,OAAO;IACLuC,KAAK,EAAE,CAAC,CAAC,CAAC;IACVC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAASvB,mBAAmBA,CAACkO,CAAC,EAC9B;EACE,MAAMvM,QAAQ,GAAG,CAACuM,CAAC,CAACvM,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE2H,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC6C,GAAG,CAAChN,EAAE,CAAC;EACjE,OAAO;IACLuC,KAAK,EAAE,CAAC,CAAC,CAAC;IACVC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAAS4M,SAASA,CAACD,CAAC,EACpB;AACE,EAAA,MAAME,mBAAmB,GAAGF,CAAC,CAACE,mBAAmB,IAAI,EAAE;AACrDN,IAAAA,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACrClM,GAAG,GAAGyL,QAAQ,CAACe,mBAAmB,CAAC7L,MAAM,EAAE,CAAC,EAAE,2BAA2B,CAAC;AAC1ED,IAAAA,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAEX,GAAG,GAAG,CAAC,EAAE,2BAA2B,CAAC;AAC5EF,IAAAA,KAAK,GAAGsM,sBAAsB,CAACF,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACP,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC1FhM,IAAAA,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAGV,GAAG,CAAC;EACnC,KAAK,IAAI6H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;IACE,KAAK,IAAI4E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzM,GAAG,EAAEyM,CAAC,EAAE,EAC5B;AACE1M,MAAAA,QAAQ,CAAC8H,CAAC,GAAG7H,GAAG,GAAGyM,CAAC,CAAC,GAAGlP,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG7H,GAAG,GAAGyM,CAAC,CAAC,GAAGD,mBAAmB,CAACC,CAAC,CAAC,GAAGD,mBAAmB,CAACxM,GAAG,GAAGyM,CAAC,CAAC,CAAC;AACxH,IAAA;AACF,EAAA;EACA,OAAO;IACL3M,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAEK;GACZ;AACH;AACA,SAAS0M,iBAAiBA,CAACtM,GAAG,EAAEuM,CAAC,EAAEC,CAAC,EAAEN,CAAC,EAAEO,MAAM,EAAEC,OAAO,EACxD;EACE,MAAMC,QAAQ,GAAG,CAACH,CAAC,GAAG,MAAM,KAAK,EAAE,GAAGN,CAAC,IAAI,EAAE;AAC3CU,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC3BE,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC3BE,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC7B,EAAA,MAAME,KAAK,GAAG,CAACR,CAAC,GAAG,MAAM,IAAIE,MAAM,CAACG,QAAQ,CAAC,GAAGF,OAAO,CAACE,QAAQ,CAAC;AAC/DI,IAAAA,KAAK,GAAG,CAACR,CAAC,GAAG,MAAM,IAAIC,MAAM,CAACI,QAAQ,CAAC,GAAGH,OAAO,CAACG,QAAQ,CAAC;AAC3DI,IAAAA,KAAK,GAAG,CAACf,CAAC,GAAG,MAAM,IAAIO,MAAM,CAACK,QAAQ,CAAC,GAAGJ,OAAO,CAACI,QAAQ,CAAC;EAC7D,IAAII,KAAK,GAAG9P,IAAI,CAAC+P,IAAI,CAAC/P,IAAI,CAACwD,GAAG,CAAC,CAAC,EAAE,CAAC,IAAImM,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC;AACvF,EAAA,IAAI,CAACV,CAAC,GAAG,MAAM,MAAM,CAAC,EACtB;IACEW,KAAK,GAAG,CAACA,KAAK;AAChB,EAAA;AACAlN,EAAAA,GAAG,CAAC4M,QAAQ,CAAC,GAAGzP,EAAE,CAAC4P,KAAK,CAAC;AACzB/M,EAAAA,GAAG,CAAC6M,QAAQ,CAAC,GAAG1P,EAAE,CAAC6P,KAAK,CAAC;AACzBhN,EAAAA,GAAG,CAAC8M,QAAQ,CAAC,GAAG3P,EAAE,CAAC8P,KAAK,CAAC;AACzBjN,EAAAA,GAAG,CAAC2M,QAAQ,CAAC,GAAGxP,EAAE,CAAC+P,KAAK,CAAC;AACzB,EAAA,OAAOlN,GAAG;AACZ;AACA,SAASoN,SAASA,CAAClB,CAAC,EAAEzM,OAAO,EAAE4N,oBAAoB,EACnD;AACE,EAAA,MAAMvB,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC;AAChEb,IAAAA,KAAK,GAAGmM,iBAAiB,CAACC,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACoB,gBAAgB,CAAC,IAAI,CAAC,CAAC;EAClF,MAAMC,QAAQ,GAAG,CAACrB,CAAC,CAACsB,uBAAuB,IAAI,CAAC,MAAM,CAAC;IACrDf,MAAM,GAAG,IAAI1N,YAAY,CAAC,CAACD,eAAe,CAACyO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAGF,oBAAoB,EAAEvO,eAAe,CAACyO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAGF,oBAAoB,EAAEvO,eAAe,CAACyO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAGF,oBAAoB,EAAEvO,eAAe,CAACyO,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,GAAGF,oBAAoB,CAAC,CAAC;AACpRX,IAAAA,OAAO,GAAG,IAAI3N,YAAY,CAAC,CAACC,gBAAgB,CAACuO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAEvO,gBAAgB,CAACuO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAEvO,gBAAgB,CAACuO,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAEvO,gBAAgB,CAACuO,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;EAC/L,MAAM5N,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAG,CAAC,CAAC;IACnCmN,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACrB,KAAK,IAAIhG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;AACEhI,IAAAA,OAAO,CAACgO,IAAI,EAAE3B,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,CAAC,EAAEqE,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEqE,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEgF,MAAM,EAAEC,OAAO,CAAC;IAChI/M,QAAQ,CAAC8H,CAAC,GAAG,CAAC,CAAC,GAAGgG,IAAI,CAAC,CAAC,CAAC;IACzB9N,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGgG,IAAI,CAAC,CAAC,CAAC;IAC7B9N,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGgG,IAAI,CAAC,CAAC,CAAC;IAC7B9N,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGgG,IAAI,CAAC,CAAC,CAAC;AAC/B,EAAA;EACA,OAAO;IACL/N,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAASpB,iBAAiBA,CAAC+N,CAAC,EAC5B;AACE,EAAA,OAAOkB,SAAS,CAAClB,CAAC,EAAEI,iBAAiB,EAAErN,6BAA6B,CAAC;AACvE;AACA,SAASyO,gBAAgBA,CAAC1N,GAAG,EAAEuM,CAAC,EAAEC,CAAC,EAAEN,CAAC,EAAEO,MAAM,EAAEC,OAAO,EACvD;AACE,EAAA,MAAMC,QAAQ,GAAG,CAACH,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAACN,CAAC,GAAG,IAAI,KAAK,CAAC;AAChDU,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC3BE,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC3BE,IAAAA,QAAQ,GAAGD,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC7B,EAAA,MAAME,KAAK,GAAG,CAACR,CAAC,GAAG,IAAI,IAAIE,MAAM,CAACG,QAAQ,CAAC,GAAGF,OAAO,CAACE,QAAQ,CAAC;AAC7DI,IAAAA,KAAK,GAAG,CAACR,CAAC,GAAG,IAAI,IAAIC,MAAM,CAACI,QAAQ,CAAC,GAAGH,OAAO,CAACG,QAAQ,CAAC;AACzDI,IAAAA,KAAK,GAAG,CAACf,CAAC,GAAG,IAAI,IAAIO,MAAM,CAACK,QAAQ,CAAC,GAAGJ,OAAO,CAACI,QAAQ,CAAC;EAC3D,IAAII,KAAK,GAAG9P,IAAI,CAAC+P,IAAI,CAAC/P,IAAI,CAACwD,GAAG,CAAC,CAAC,EAAE,CAAC,IAAImM,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC;AACvF,EAAA,IAAI,CAACV,CAAC,GAAG,IAAI,MAAM,CAAC,EACpB;IACEW,KAAK,GAAG,CAACA,KAAK;AAChB,EAAA;AACAlN,EAAAA,GAAG,CAAC4M,QAAQ,CAAC,GAAGzP,EAAE,CAAC4P,KAAK,CAAC;AACzB/M,EAAAA,GAAG,CAAC6M,QAAQ,CAAC,GAAG1P,EAAE,CAAC6P,KAAK,CAAC;AACzBhN,EAAAA,GAAG,CAAC8M,QAAQ,CAAC,GAAG3P,EAAE,CAAC8P,KAAK,CAAC;AACzBjN,EAAAA,GAAG,CAAC2M,QAAQ,CAAC,GAAGxP,EAAE,CAAC+P,KAAK,CAAC;AACzB,EAAA,OAAOlN,GAAG;AACZ;AACA,SAAS5B,eAAeA,CAAC8N,CAAC,EAC1B;AACE,EAAA,OAAOkB,SAAS,CAAClB,CAAC,EAAEwB,gBAAgB,EAAExO,4BAA4B,CAAC;AACrE;AACA,SAASyO,SAASA,CAACzB,CAAC,EACpB;AACE,EAAA,MAAMJ,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC;AAChEb,IAAAA,KAAK,GAAGsM,sBAAsB,CAACF,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACP,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC1FiC,IAAAA,aAAa,GAAG1B,CAAC,CAAC0B,aAAa,IAAI,EAAE;AACrCC,IAAAA,cAAc,GAAG3B,CAAC,CAAC2B,cAAc,IAAI,EAAE;AACvClO,IAAAA,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAG,CAAC,CAAC;EACjC,KAAK,IAAImH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;IACE,KAAK,IAAI4E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAC1B;AACE1M,MAAAA,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG4E,CAAC,CAAC,GAAGlP,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,GAAG4E,CAAC,CAAC,GAAGuB,aAAa,CAACvB,CAAC,CAAC,GAAGwB,cAAc,CAACxB,CAAC,CAAC,CAAC;AACnG,IAAA;AACF,EAAA;EACA,OAAO;IACL3M,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAASuO,UAAUA,CAAC5B,CAAC,EACrB;AACE,EAAA,MAAMJ,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,sBAAsB,CAAC;AACjEb,IAAAA,KAAK,GAAGsM,sBAAsB,CAACF,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACP,qBAAqB,CAAC,IAAI,CAAC,CAAC;EAC5F,MAAMI,KAAK,GAAGvG,KAAK,CAACC,OAAO,CAACyG,CAAC,CAAC0B,aAAa,CAAC,GAAG1B,CAAC,CAAC0B,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG1B,CAAC,CAAC6B,YAAY,IAAI,CAAC;IAC1FvG,MAAM,GAAGhC,KAAK,CAACC,OAAO,CAACyG,CAAC,CAAC2B,cAAc,CAAC,GAAG3B,CAAC,CAAC2B,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG3B,CAAC,CAAC8B,aAAa,IAAI,CAAC;AAC1FrO,IAAAA,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAG,CAAC,CAAC,CAAC2N,IAAI,CAAC,CAAC,CAAC;EACzC,KAAK,IAAIxG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;AACE,IAAA,MAAMyG,CAAC,GAAG/Q,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,CAAC,GAAGsE,KAAK,GAAGvE,MAAM,CAAC;AACvD7H,IAAAA,QAAQ,CAAC8H,CAAC,GAAG,CAAC,CAAC,GAAGyG,CAAC;IACnBvO,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGyG,CAAC;IACvBvO,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGyG,CAAC;AACzB,EAAA;EACA,OAAO;IACLxO,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAAS4O,UAAUA,CAACjC,CAAC,EACrB;AACE,EAAA,MAAMJ,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,sBAAsB,CAAC;AACjEb,IAAAA,KAAK,GAAGsM,sBAAsB,CAACF,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACP,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC1FiC,IAAAA,aAAa,GAAG1B,CAAC,CAAC0B,aAAa,IAAI,EAAE;AACrCC,IAAAA,cAAc,GAAG3B,CAAC,CAAC2B,cAAc,IAAI,EAAE;AACvClO,IAAAA,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAG,CAAC,CAAC,CAAC2N,IAAI,CAAC,CAAC,CAAC;EACzC,KAAK,IAAIxG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;IACE9H,QAAQ,CAAC8H,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,CAAC,GAAGmG,aAAa,CAAC,CAAC,CAAC,GAAGC,cAAc,CAAC,CAAC,CAAC,CAAC;AACzFlO,IAAAA,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmG,aAAa,CAAC,CAAC,CAAC,GAAGC,cAAc,CAAC,CAAC,CAAC,CAAC;AACjGlO,IAAAA,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAAC2O,aAAa,CAACxL,KAAK,GAAGmH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmG,aAAa,CAAC,CAAC,CAAC,GAAGC,cAAc,CAAC,CAAC,CAAC,CAAC;AACnG,EAAA;EACA,OAAO;IACLnO,KAAK;IACLC,QAAQ;AACRJ,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAAS6O,YAAYA,CAACtC,aAAa,EAAExL,KAAK,EAAEmM,MAAM,EAAEC,OAAO,EAC3D;EACE,MAAM/M,QAAQ,GAAG,IAAI6F,KAAK,CAAClF,KAAK,GAAG,CAAC,CAAC;EACrC,KAAK,IAAImH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;AACE,IAAA,MAAMhG,KAAK,GAAGqK,aAAa,CAACxL,KAAK,GAAGmH,CAAC,CAAC;AACtC9H,IAAAA,QAAQ,CAAC8H,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAACsE,KAAK,GAAGgL,MAAM,CAAC,CAAC,CAAC,GAAGC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD/M,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAACsE,KAAK,GAAGgL,MAAM,CAAC,CAAC,CAAC,GAAGC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD/M,QAAQ,CAAC8H,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGtK,EAAE,CAACsE,KAAK,GAAGgL,MAAM,CAAC,CAAC,CAAC,GAAGC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,EAAA;AACA,EAAA,OAAO/M,QAAQ;AACjB;AACA,SAAShB,kBAAkBA,CAACuN,CAAC,EAC7B;AACE,EAAA,MAAMJ,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC;AACrEb,IAAAA,KAAK,GAAG,IAAI8F,KAAK,CAAClF,KAAK,CAAC;EAC1B,KAAK,IAAImH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAC9B;IACE/H,KAAK,CAAC+H,CAAC,CAAC,GAAGtK,EAAE,CAAC2O,aAAa,CAACrE,CAAC,CAAC,CAAC;AACjC,EAAA;EACA,OAAO;IACL/H,KAAK;AACLC,IAAAA,QAAQ,EAAEyO,YAAY,CAACtC,aAAa,EAAExL,KAAK,EAAE4L,CAAC,CAAC0B,aAAa,IAAI,EAAE,EAAE1B,CAAC,CAAC2B,cAAc,IAAI,EAAE,CAAC;AAC3FtO,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAAS8O,WAAWA,CAACnC,CAAC,EACtB;AACE,EAAA,MAAMJ,aAAa,GAAGI,CAAC,CAACJ,aAAa,IAAI,EAAE;IACzCxL,KAAK,GAAG+K,QAAQ,CAACS,aAAa,CAACvL,MAAM,EAAE,CAAC,EAAE,sBAAsB,CAAC;AACjEb,IAAAA,KAAK,GAAGsM,sBAAsB,CAACF,aAAa,EAAExL,KAAK,EAAER,MAAM,CAACoM,CAAC,CAACP,qBAAqB,CAAC,IAAI,CAAC,CAAC;EAC5F,OAAO;IACLjM,KAAK;AACLC,IAAAA,QAAQ,EAAEyO,YAAY,CAACtC,aAAa,EAAExL,KAAK,EAAE4L,CAAC,CAAC0B,aAAa,IAAI,EAAE,EAAE1B,CAAC,CAAC2B,cAAc,IAAI,EAAE,CAAC;AAC3FtO,IAAAA,SAAS,EAAE;GACZ;AACH;AACA,SAAStB,gBAAgBA,CAACiO,CAAC,EAC3B;EACE,OAAOC,SAAS,CAACD,CAAC,CAAC;AACrB;AACA,SAAShO,cAAcA,CAACgO,CAAC,EACzB;EACE,OAAOC,SAAS,CAACD,CAAC,CAAC;AACrB;AACA,SAAS7N,gBAAgBA,CAAC6N,CAAC,EAC3B;EACE,OAAOyB,SAAS,CAACzB,CAAC,CAAC;AACrB;AACA,SAAS5N,cAAcA,CAAC4N,CAAC,EACzB;EACE,OAAOyB,SAAS,CAACzB,CAAC,CAAC;AACrB;AACA,SAAS3N,kBAAkBA,CAAC2N,CAAC,EAC7B;EACE,OAAO4B,UAAU,CAAC5B,CAAC,CAAC;AACtB;AACA,SAASzN,gBAAgBA,CAACyN,CAAC,EAC3B;EACE,OAAO4B,UAAU,CAAC5B,CAAC,CAAC;AACtB;AACA,SAAS1N,kBAAkBA,CAAC0N,CAAC,EAC7B;EACE,OAAOiC,UAAU,CAACjC,CAAC,CAAC;AACtB;AACA,SAASxN,gBAAgBA,CAACwN,CAAC,EAC3B;EACE,OAAOiC,UAAU,CAACjC,CAAC,CAAC;AACtB;AACA,SAAStN,kBAAkBA,CAACsN,CAAC,EAC7B;EACE,OAAOmC,WAAW,CAACnC,CAAC,CAAC;AACvB;AACA,SAASrN,gBAAgBA,CAACqN,CAAC,EAC3B;EACE,OAAOmC,WAAW,CAACnC,CAAC,CAAC;AACvB;;;;"}
1
+ {"version":3,"file":"CjsGrannyCurves.js","sources":["../../../src/curves/CjsGrannyCurves.js"],"sourcesContent":["/**\r\n * Granny animation-curve decoding authored by cppctamber for ccpwgl2.\r\n *\r\n * This local copy decodes and samples already-materialized curve data without\r\n * coupling runtime-trinity to a GR2 container reader. The former format-gr2\r\n * licensing boundary is resolved: its BitKnit2 decoder was replaced by a\r\n * clean-room implementation, the package is MIT, and the canonical reader now\r\n * lives at @carbonenginejs/runtime-resource/formats/gr2.\r\n */\r\nimport { num } from \"@carbonenginejs/core-math/num\";\r\n\r\nconst fr = Math.fround;\r\nconst CURVE_DECODERS = Object.freeze([Object.freeze({\r\n format: 0,\r\n decode: decodeDaKeyframes32f\r\n}), Object.freeze({\r\n format: 1,\r\n decode: decodeDaK32fC32f\r\n}), Object.freeze({\r\n format: 2,\r\n decode: decodeDaIdentity\r\n}), Object.freeze({\r\n format: 3,\r\n decode: decodeDaConstant32f\r\n}), Object.freeze({\r\n format: 4,\r\n decode: decodeD3Constant32f\r\n}), Object.freeze({\r\n format: 5,\r\n decode: decodeD4Constant32f\r\n}), Object.freeze({\r\n format: 6,\r\n decode: decodeDaK16uC16u\r\n}), Object.freeze({\r\n format: 7,\r\n decode: decodeDaK8uC8u\r\n}), Object.freeze({\r\n format: 8,\r\n decode: decodeD4nK16uC15u\r\n}), Object.freeze({\r\n format: 9,\r\n decode: decodeD4nK8uC7u\r\n}), Object.freeze({\r\n format: 10,\r\n decode: decodeD3K16uC16u\r\n}), Object.freeze({\r\n format: 11,\r\n decode: decodeD3K8uC8u\r\n}), Object.freeze({\r\n format: 12,\r\n decode: decodeD9I1K16uC16u\r\n}), Object.freeze({\r\n format: 13,\r\n decode: decodeD9I3K16uC16u\r\n}), Object.freeze({\r\n format: 14,\r\n decode: decodeD9I1K8uC8u\r\n}), Object.freeze({\r\n format: 15,\r\n decode: decodeD9I3K8uC8u\r\n}), Object.freeze({\r\n format: 16,\r\n decode: decodeD3I1K32fC32f\r\n}), Object.freeze({\r\n format: 17,\r\n decode: decodeD3I1K16uC16u\r\n}), Object.freeze({\r\n format: 18,\r\n decode: decodeD3I1K8uC8u\r\n})]);\r\nconst D4N_SCALE_TABLE = new Float32Array([1.4142135, 0.70710677, 0.35355338, 0.35355338, 0.35355338, 0.17677669, 0.17677669, 0.17677669, -1.4142135, -0.70710677, -0.35355338, -0.35355338, -0.35355338, -0.17677669, -0.17677669, -0.17677669]);\r\nconst D4N_OFFSET_TABLE = new Float32Array([-0.70710677, -0.35355338, -0.53033006, -0.17677669, 0.17677669, -0.17677669, -0.088388346, 0.0, 0.70710677, 0.35355338, 0.53033006, 0.17677669, -0.17677669, 0.17677669, 0.088388346, -0.0]);\r\nconst D4N_SCALE_TABLE_MULTIPLIER_16 = 0.000030518509;\r\nconst D4N_SCALE_TABLE_MULTIPLIER_8 = 0.0078740157;\r\nexport class CjsGrannyCurves\r\n{\r\n static #resources = new Map();\r\n\r\n /**\r\n * Decode a GR2 JSON curve object into explicit knots and controls.\r\n */\r\n static decodeCurve(curveJson, dimension)\r\n {\r\n if (!curveJson || typeof curveJson.format !== \"number\")\r\n {\r\n throw new Error(\"gr2reader: decodeCurve requires a curve object with a numeric format\");\r\n }\r\n const decoder = CURVE_DECODERS[curveJson.format];\r\n if (!decoder)\r\n {\r\n throw new Error(`gr2reader: unsupported granny curve format ${curveJson.format}`);\r\n }\r\n const {\r\n knots,\r\n controls,\r\n dimension: dim\r\n } = decoder.decode(curveJson, dimension);\r\n if (dimension && dim && dim !== dimension)\r\n {\r\n throw new Error(`gr2reader: curve format ${curveJson.format} decoded dimension ${dim} does not match track dimension ${dimension}`);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n degree: Number(curveJson.degree) || 0,\r\n dimension: dim || dimension\r\n };\r\n }\r\n\r\n /**\r\n * Sample a decoded Granny curve into caller-provided output.\r\n */\r\n static sampleDecodedCurve(out, curve, time, cycle = false, duration = 0, options = {})\r\n {\r\n if (!curve || !curve.knots || !curve.controls || !curve.dimension)\r\n {\r\n return out;\r\n }\r\n const knots = curve.knots,\r\n count = knots.length,\r\n dim = curve.dimension,\r\n controlCount = curve.controls.length / dim;\r\n if (!count || !controlCount)\r\n {\r\n return out;\r\n }\r\n if (options.keyframed)\r\n {\r\n return CjsGrannyCurves.#copyControl(out, curve, CjsGrannyCurves.#sampleKeyframedCurve(count, time, duration));\r\n }\r\n const knot = CjsGrannyCurves.#findKnotIndex(knots, time);\r\n if (curve.degree <= 0 || count === 1 || controlCount === 1)\r\n {\r\n const index = time >= knots[count - 1]\r\n ? count - 1\r\n : Math.max(0, knot - 1);\r\n return CjsGrannyCurves.#copyControl(out, curve, Math.min(index, controlCount - 1));\r\n }\r\n if (curve.degree === 1)\r\n {\r\n return CjsGrannyCurves.#sampleLinearCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n return CjsGrannyCurves.#sampleQuadraticCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n\r\n static registerResource(path, source)\r\n {\r\n if (path)\r\n {\r\n CjsGrannyCurves.#resources.set(path, source);\r\n }\r\n }\r\n\r\n static unregisterResource(path)\r\n {\r\n CjsGrannyCurves.#resources.delete(path);\r\n }\r\n\r\n static clearResources()\r\n {\r\n CjsGrannyCurves.#resources.clear();\r\n }\r\n\r\n static resolveResource(path)\r\n {\r\n return CjsGrannyCurves.#resources.get(path) ?? null;\r\n }\r\n\r\n static getTrackSource(value)\r\n {\r\n return CjsGrannyCurves.#findTrackSource(value, 0);\r\n }\r\n\r\n static getAnimations(source)\r\n {\r\n return CjsGrannyCurves.#getArray(source, \"animations\", \"Animations\");\r\n }\r\n\r\n static getTrackGroups(animation)\r\n {\r\n return CjsGrannyCurves.#getArray(animation, \"trackGroups\", \"TrackGroups\");\r\n }\r\n\r\n static getAnimationDuration(animation)\r\n {\r\n return Number(animation.duration ?? animation.Duration) || 0;\r\n }\r\n\r\n static getAnimationTimeStep(animation)\r\n {\r\n return Number(animation.timeStep ?? animation.TimeStep) || 0;\r\n }\r\n\r\n static findTransformTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"transformTracks\", \"TransformTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeTransformTrack(track) : null;\r\n }\r\n\r\n static findVectorTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"vectorTracks\", \"VectorTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeVectorTrack(track) : null;\r\n }\r\n\r\n static findTextTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const textTracks = CjsGrannyCurves.#getArray(trackGroup, \"textTracks\", \"TextTracks\");\r\n return textTracks.find(track => CjsGrannyCurves.#getName(track) === name) ?? null;\r\n }\r\n\r\n static getTextTrackEntries(track)\r\n {\r\n const entries = CjsGrannyCurves.#getArray(track, \"entries\", \"Entries\");\r\n const out = [];\r\n for (const entry of entries)\r\n {\r\n const time = CjsGrannyCurves.#getEntryTime(entry);\r\n if (Number.isFinite(time))\r\n {\r\n out.push({ time, text: String(entry.text ?? entry.Text ?? \"\") });\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n static decodeGrannyCurve(curve, dimension)\r\n {\r\n if (!curve || curve.error || curve.Error)\r\n {\r\n return null;\r\n }\r\n const normalized = CjsGrannyCurves.#normalizeCurve(curve);\r\n const decodedDirect = CjsGrannyCurves.#getDecodedCurve(normalized, dimension);\r\n if (decodedDirect)\r\n {\r\n return decodedDirect;\r\n }\r\n if (typeof normalized.format !== \"number\" || typeof normalized.degree !== \"number\")\r\n {\r\n return null;\r\n }\r\n try\r\n {\r\n const decoded = CjsGrannyCurves.decodeCurve(normalized, dimension);\r\n return {\r\n format: normalized.format,\r\n knots: decoded.knots,\r\n controls: decoded.controls,\r\n degree: decoded.degree,\r\n dimension: decoded.dimension,\r\n keyframed: normalized.format === 0\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n /** Decodes an already-materialized Carbon animation curve into the shared sampler shape. */\r\n static decodeAnimationCurve(curve, dimension)\r\n {\r\n if (!curve)\r\n {\r\n return null;\r\n }\r\n\r\n const valueDimension = Number(curve.valueDimension ?? curve.ValueDimension);\r\n const knotCount = Number(curve.knotCount ?? curve.KnotCount);\r\n if (valueDimension !== dimension || !Number.isSafeInteger(knotCount) || knotCount <= 0)\r\n {\r\n return null;\r\n }\r\n\r\n try\r\n {\r\n const knots = decodeElements(\r\n curve.knots ?? curve.Knots,\r\n curve.knotType ?? curve.KnotType,\r\n knotCount\r\n );\r\n const controls = decodeElements(\r\n curve.values ?? curve.Values,\r\n curve.valueType ?? curve.ValueType,\r\n knotCount * valueDimension\r\n );\r\n const interpolation = curve.interpolation ?? curve.Interpolation;\r\n\r\n return {\r\n knots,\r\n controls,\r\n degree: interpolation === \"Step\" || interpolation === 0 ? 0 : 1,\r\n dimension: valueDimension,\r\n keyframed: false\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n static sampleGrannyCurve(out, curve, time, cycle, duration)\r\n {\r\n CjsGrannyCurves.sampleDecodedCurve(out, curve, time, cycle, duration, {\r\n keyframed: curve.keyframed\r\n });\r\n return out;\r\n }\r\n\r\n static #asRecord(value)\r\n {\r\n return value !== null && typeof value === \"object\" ? value : null;\r\n }\r\n\r\n static #asTrackSource(value)\r\n {\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n return CjsGrannyCurves.#hasArrayValue(record, \"animations\", \"Animations\") ? record : null;\r\n }\r\n\r\n static #asTrackGroup(value)\r\n {\r\n return CjsGrannyCurves.#asRecord(value);\r\n }\r\n\r\n static #findTrackSource(value, depth)\r\n {\r\n const direct = CjsGrannyCurves.#asTrackSource(value);\r\n if (direct)\r\n {\r\n return direct;\r\n }\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n if (!record || depth > 8)\r\n {\r\n return null;\r\n }\r\n for (const key of [\"json\", \"Json\", \"data\", \"Data\", \"value\", \"Value\", \"source\", \"Source\", \"fileInfo\", \"FileInfo\"])\r\n {\r\n const nested = CjsGrannyCurves.#findTrackSource(record[key], depth + 1);\r\n if (nested)\r\n {\r\n return nested;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static #getArray(value, lowerKey, upperKey)\r\n {\r\n const lower = value[lowerKey];\r\n if (Array.isArray(lower))\r\n {\r\n return lower;\r\n }\r\n const upper = value[upperKey];\r\n return Array.isArray(upper) ? upper : [];\r\n }\r\n\r\n static #hasArrayValue(value, lowerKey, upperKey)\r\n {\r\n return Array.isArray(value?.[lowerKey]) || Array.isArray(value?.[upperKey]);\r\n }\r\n\r\n static #getName(value)\r\n {\r\n return value.name ?? value.Name;\r\n }\r\n\r\n static #getEntryTime(entry)\r\n {\r\n const value = entry.timeStamp ?? entry.TimeStamp ?? entry.timestamp ?? entry.time;\r\n return typeof value === \"number\" ? value : Number.NaN;\r\n }\r\n\r\n static #normalizeTransformTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n orientation: track.orientation ?? track.Orientation,\r\n position: track.position ?? track.Position,\r\n scaleShear: track.scaleShear ?? track.ScaleShear\r\n };\r\n }\r\n\r\n static #normalizeVectorTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n valueCurve: track.valueCurve ?? track.ValueCurve\r\n };\r\n }\r\n\r\n static #normalizeCurve(curve)\r\n {\r\n const normalized = { ...curve };\r\n for (const [key, value] of Object.entries(curve))\r\n {\r\n const lowerKey = CjsGrannyCurves.#lowerFirst(key);\r\n if (!(lowerKey in normalized))\r\n {\r\n normalized[lowerKey] = value;\r\n }\r\n }\r\n normalized.format = curve.format ?? curve.Format;\r\n normalized.degree = curve.degree ?? curve.Degree;\r\n normalized.knots = curve.knots ?? curve.Knots;\r\n normalized.controls = curve.controls ?? curve.Controls;\r\n normalized.dimension = curve.dimension ?? curve.Dimension;\r\n normalized.error = curve.error ?? curve.Error;\r\n return normalized;\r\n }\r\n\r\n static #getDecodedCurve(curve, dimension)\r\n {\r\n const knots = curve.knots;\r\n const controls = curve.controls;\r\n const curveDimension = Number(curve.dimension) || dimension;\r\n if (!Array.isArray(knots) || !Array.isArray(controls) || curveDimension !== dimension || controls.length % curveDimension !== 0)\r\n {\r\n return null;\r\n }\r\n return {\r\n format: curve.format,\r\n knots,\r\n controls,\r\n degree: Number(curve.degree) || 0,\r\n dimension: curveDimension,\r\n keyframed: curve.format === 0\r\n };\r\n }\r\n\r\n static #lowerFirst(value)\r\n {\r\n return value ? value[0].toLowerCase() + value.slice(1) : value;\r\n }\r\n\r\n static #copyControl(out, curve, index)\r\n {\r\n const offset = index * curve.dimension;\r\n for (let i = 0; i < curve.dimension; i++)\r\n {\r\n out[i] = curve.controls[offset + i];\r\n }\r\n return out;\r\n }\r\n\r\n static #findKnotIndex(knots, time)\r\n {\r\n let low = 0;\r\n let high = knots.length - 1;\r\n while (low < high)\r\n {\r\n const mid = low + high >> 1;\r\n if (knots[mid] > time)\r\n {\r\n high = mid;\r\n }\r\n else\r\n {\r\n low = mid + 1;\r\n }\r\n }\r\n return low;\r\n }\r\n\r\n static #sampleKeyframedCurve(count, time, duration)\r\n {\r\n const frame = duration > 0 ? Math.trunc(count * time / duration) : 0;\r\n return Math.max(0, Math.min(count - 1, frame));\r\n }\r\n\r\n static #sampleLinearCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const knot0 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const start = knots[knot0];\r\n let end = knots[knot];\r\n let localTime = time;\r\n if (cycle && end < start)\r\n {\r\n end += duration;\r\n }\r\n if (cycle && localTime < start)\r\n {\r\n localTime += duration;\r\n }\r\n const t = end !== start ? (localTime - start) / (end - start) : 0;\r\n const p0 = knot0 * dim;\r\n const p1 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = curve.controls[p0 + i] * (1 - t) + curve.controls[p1 + i] * t;\r\n }\r\n return out;\r\n }\r\n\r\n static #sampleQuadraticCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const k2 = cycle ? (knot + count - 2) % count : knot === 0 ? 0 : Math.max(0, knot - 2);\r\n const k1 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const ti2 = knots[k2];\r\n const ti1 = knots[k1];\r\n let ti = knots[knot];\r\n let tiNext = knots[(knot + 1) % count];\r\n let localTime = time;\r\n if (ti2 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (ti1 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (tiNext < ti)\r\n {\r\n tiNext += duration;\r\n }\r\n const d0 = ti - ti1;\r\n const d1a = ti - ti2;\r\n const d1b = tiNext - ti1;\r\n const l0 = d0 !== 0 ? (localTime - ti1) / d0 : 0;\r\n const l1a = d1a !== 0 ? (localTime - ti2) / d1a : 0;\r\n const l1b = d1b !== 0 ? (localTime - ti1) / d1b : 0;\r\n let c2 = l1a + l0 - l0 * l1a;\r\n const ci = l0 * l1b;\r\n const c1 = c2 - ci;\r\n c2 = 1 - c2;\r\n const p0 = k2 * dim;\r\n const p1 = k1 * dim;\r\n const p2 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = c2 * curve.controls[p0 + i] + c1 * curve.controls[p1 + i] + ci * curve.controls[p2 + i];\r\n }\r\n return out;\r\n }\r\n}\r\n\r\nconst ANIMATION_ELEMENT_TYPES = Object.freeze([\r\n \"Float32\",\r\n \"Float16\",\r\n \"UInt16Norm\",\r\n \"UInt16\",\r\n \"Int16Norm\",\r\n \"Int16\",\r\n \"UInt8Norm\",\r\n \"UInt8\",\r\n \"Int8Norm\",\r\n \"Int8\"\r\n]);\r\n\r\nfunction decodeElements(value, typeValue, count)\r\n{\r\n const type = typeof typeValue === \"number\" ? ANIMATION_ELEMENT_TYPES[typeValue] : typeValue;\r\n const size = elementTypeSize(type);\r\n\r\n if (ArrayBuffer.isView(value) && !(value instanceof Uint8Array) && value.length === count)\r\n {\r\n return Array.from(value, Number);\r\n }\r\n if (Array.isArray(value) && size > 1 && value.length === count)\r\n {\r\n return value.map(Number);\r\n }\r\n\r\n const bytes = asByteView(value);\r\n if (!bytes || bytes.byteLength < count * size)\r\n {\r\n throw new TypeError(\"Animation curve data is incomplete\");\r\n }\r\n\r\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\r\n return Array.from({ length: count }, (_, index) => readElement(view, index * size, type));\r\n}\r\n\r\nfunction asByteView(value)\r\n{\r\n if (value instanceof Uint8Array)\r\n {\r\n return value;\r\n }\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n }\r\n if (value instanceof ArrayBuffer)\r\n {\r\n return new Uint8Array(value);\r\n }\r\n return Array.isArray(value) ? Uint8Array.from(value) : null;\r\n}\r\n\r\nfunction elementTypeSize(type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return 4;\r\n case \"Float16\":\r\n case \"UInt16Norm\":\r\n case \"UInt16\":\r\n case \"Int16Norm\":\r\n case \"Int16\":\r\n return 2;\r\n case \"UInt8Norm\":\r\n case \"UInt8\":\r\n case \"Int8Norm\":\r\n case \"Int8\":\r\n return 1;\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction readElement(view, offset, type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return view.getFloat32(offset, true);\r\n case \"Float16\":\r\n return num.fromHalfFloat(view.getUint16(offset, true));\r\n case \"UInt16Norm\":\r\n return view.getUint16(offset, true) / 65535;\r\n case \"UInt16\":\r\n return view.getUint16(offset, true);\r\n case \"Int16Norm\":\r\n return Math.max(view.getInt16(offset, true) / 32767, -1);\r\n case \"Int16\":\r\n return view.getInt16(offset, true);\r\n case \"UInt8Norm\":\r\n return view.getUint8(offset) / 255;\r\n case \"UInt8\":\r\n return view.getUint8(offset);\r\n case \"Int8Norm\":\r\n return Math.max(view.getInt8(offset) / 127, -1);\r\n case \"Int8\":\r\n return view.getInt8(offset);\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction exactDiv(numerator, divisor, what)\r\n{\r\n const value = numerator / divisor;\r\n if (!Number.isInteger(value))\r\n {\r\n throw new Error(`gr2reader: curve ${what}: ${numerator} is not divisible by ${divisor}`);\r\n }\r\n return value;\r\n}\r\nfunction knotScaleFromTrunc(oneOverKnotScaleTrunc)\r\n{\r\n const buffer = new Uint32Array([oneOverKnotScaleTrunc << 16]);\r\n return new Float32Array(buffer.buffer)[0];\r\n}\r\nfunction knotsFromControls(knotsControls, count, scale)\r\n{\r\n const out = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n out[i] = fr(knotsControls[i] / scale);\r\n }\r\n return out;\r\n}\r\nfunction knotsFromControlsTrunc(knotsControls, count, oneOverKnotScaleTrunc)\r\n{\r\n return knotsFromControls(knotsControls, count, knotScaleFromTrunc(oneOverKnotScaleTrunc));\r\n}\r\nfunction identityControls(dimension)\r\n{\r\n switch (dimension)\r\n {\r\n case 3:\r\n return [0, 0, 0];\r\n case 4:\r\n return [0, 0, 0, 1];\r\n case 9:\r\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n default:\r\n throw new Error(`gr2reader: invalid curve dimension ${dimension}`);\r\n }\r\n}\r\nfunction decodeDaKeyframes32f(c, dimension)\r\n{\r\n const dim = c.dimension || dimension,\r\n controls = c.controls || [],\r\n count = exactDiv(controls.length, dim, \"DaKeyframes32f controls/dimension\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = i;\r\n }\r\n return {\r\n knots,\r\n controls: controls.map(fr),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaK32fC32f(c, dimension)\r\n{\r\n const knots = (c.knots || []).map(fr),\r\n controls = (c.controls || []).map(fr),\r\n dim = knots.length ? exactDiv(controls.length, knots.length, \"DaK32fC32f controls/knots\") : dimension;\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaIdentity(c, dimension)\r\n{\r\n const dim = c.dimension || dimension;\r\n return {\r\n knots: [0],\r\n controls: identityControls(dim),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaConstant32f(c, dimension)\r\n{\r\n const controls = (c.controls || []).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: controls.length || dimension\r\n };\r\n}\r\nfunction decodeD3Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0]).slice(0, 3).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD4Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0, 1]).slice(0, 4).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeDaK(c)\r\n{\r\n const controlScaleOffsets = c.controlScaleOffsets || [],\r\n knotsControls = c.knotsControls || [],\r\n dim = exactDiv(controlScaleOffsets.length, 2, \"DaK controlScaleOffsets/2\"),\r\n count = exactDiv(knotsControls.length, dim + 1, \"DaK knotsControls/(dim+1)\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controls = new Array(count * dim);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < dim; x++)\r\n {\r\n controls[i * dim + x] = fr(knotsControls[count + i * dim + x] * controlScaleOffsets[x] + controlScaleOffsets[dim + x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction quatFromControl16(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x8000) >> 14 | c >> 15,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7fff) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7fff) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7fff) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x8000) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4n(c, decoder, scaleTableMultiplier)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D4n knotsControls/4\"),\r\n knots = knotsFromControls(knotsControls, count, Number(c.oneOverKnotScale) || 0);\r\n const selector = (c.scaleOffsetTableEntries ?? 0) >>> 0,\r\n scales = new Float32Array([D4N_SCALE_TABLE[selector >> 0 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 4 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 8 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 12 & 0x0f] * scaleTableMultiplier]),\r\n offsets = new Float32Array([D4N_OFFSET_TABLE[selector >> 0 & 0x0f], D4N_OFFSET_TABLE[selector >> 4 & 0x0f], D4N_OFFSET_TABLE[selector >> 8 & 0x0f], D4N_OFFSET_TABLE[selector >> 12 & 0x0f]]);\r\n const controls = new Array(count * 4),\r\n quat = [0, 0, 0, 1];\r\n for (let i = 0; i < count; i++)\r\n {\r\n decoder(quat, knotsControls[count + i * 3], knotsControls[count + i * 3 + 1], knotsControls[count + i * 3 + 2], scales, offsets);\r\n controls[i * 4] = quat[0];\r\n controls[i * 4 + 1] = quat[1];\r\n controls[i * 4 + 2] = quat[2];\r\n controls[i * 4 + 3] = quat[3];\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeD4nK16uC15u(c)\r\n{\r\n return decodeD4n(c, quatFromControl16, D4N_SCALE_TABLE_MULTIPLIER_16);\r\n}\r\nfunction quatFromControl8(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x80) >> 6 | (c & 0x80) >> 7,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7f) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7f) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7f) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x80) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4nK8uC7u(c)\r\n{\r\n return decodeD4n(c, quatFromControl8, D4N_SCALE_TABLE_MULTIPLIER_8);\r\n}\r\nfunction decodeD3K(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D3K knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < 3; x++)\r\n {\r\n controls[i * 3 + x] = fr(knotsControls[count + i * 3 + x] * controlScales[x] + controlOffsets[x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD9I1(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D9I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n const scale = Array.isArray(c.controlScales) ? c.controlScales[0] ?? 0 : c.controlScale || 0,\r\n offset = Array.isArray(c.controlOffsets) ? c.controlOffsets[0] ?? 0 : c.controlOffset || 0,\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const s = fr(knotsControls[count + i] * scale + offset);\r\n controls[i * 9] = s;\r\n controls[i * 9 + 4] = s;\r\n controls[i * 9 + 8] = s;\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction decodeD9I3(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D9I3 knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n controls[i * 9] = fr(knotsControls[count + i * 3] * controlScales[0] + controlOffsets[0]);\r\n controls[i * 9 + 4] = fr(knotsControls[count + i * 3 + 1] * controlScales[1] + controlOffsets[1]);\r\n controls[i * 9 + 8] = fr(knotsControls[count + i * 3 + 2] * controlScales[2] + controlOffsets[2]);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction d3I1Controls(knotsControls, count, scales, offsets)\r\n{\r\n const controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const value = knotsControls[count + i];\r\n controls[i * 3] = fr(value * scales[0] + offsets[0]);\r\n controls[i * 3 + 1] = fr(value * scales[1] + offsets[1]);\r\n controls[i * 3 + 2] = fr(value * scales[2] + offsets[2]);\r\n }\r\n return controls;\r\n}\r\nfunction decodeD3I1K32fC32f(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1K32f knotsControls/2\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = fr(knotsControls[i]);\r\n }\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD3I1u(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeDaK16uC16u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeDaK8uC8u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeD3K16uC16u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD3K8uC8u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD9I1K16uC16u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I1K8uC8u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I3K16uC16u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD9I3K8uC8u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD3I1K16uC16u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\nfunction decodeD3I1K8uC8u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\n"],"names":["fr","Math","fround","CURVE_DECODERS","Object","freeze","format","decode","decodeDaKeyframes32f","decodeDaK32fC32f","decodeDaIdentity","decodeDaConstant32f","decodeD3Constant32f","decodeD4Constant32f","decodeDaK16uC16u","decodeDaK8uC8u","decodeD4nK16uC15u","decodeD4nK8uC7u","decodeD3K16uC16u","decodeD3K8uC8u","decodeD9I1K16uC16u","decodeD9I3K16uC16u","decodeD9I1K8uC8u","decodeD9I3K8uC8u","decodeD3I1K32fC32f","decodeD3I1K16uC16u","decodeD3I1K8uC8u","D4N_SCALE_TABLE","Float32Array","D4N_OFFSET_TABLE","D4N_SCALE_TABLE_MULTIPLIER_16","D4N_SCALE_TABLE_MULTIPLIER_8","CjsGrannyCurves","Map","decodeCurve","curveJson","dimension","Error","decoder","knots","controls","dim","degree","Number","sampleDecodedCurve","out","curve","time","cycle","duration","options","count","length","controlCount","keyframed","knot","index","max","min","registerResource","path","source","set","unregisterResource","delete","clearResources","clear","resolveResource","get","getTrackSource","value","getAnimations","getTrackGroups","animation","getAnimationDuration","Duration","getAnimationTimeStep","timeStep","TimeStep","findTransformTrack","group","name","trackGroup","tracks","track","find","item","findVectorTrack","findTextTrack","textTracks","getTextTrackEntries","entries","entry","isFinite","push","text","String","Text","decodeGrannyCurve","error","normalized","decodedDirect","decoded","decodeAnimationCurve","valueDimension","ValueDimension","knotCount","KnotCount","isSafeInteger","decodeElements","Knots","knotType","KnotType","values","Values","valueType","ValueType","interpolation","Interpolation","sampleGrannyCurve","#asRecord","#asTrackSource","record","#asTrackGroup","#findTrackSource","depth","direct","key","nested","#getArray","lowerKey","upperKey","lower","Array","isArray","upper","#hasArrayValue","#getName","Name","#getEntryTime","timeStamp","TimeStamp","timestamp","NaN","#normalizeTransformTrack","orientation","Orientation","position","Position","scaleShear","ScaleShear","#normalizeVectorTrack","valueCurve","ValueCurve","#normalizeCurve","Format","Degree","Controls","Dimension","#getDecodedCurve","curveDimension","#lowerFirst","toLowerCase","slice","#copyControl","offset","i","#findKnotIndex","low","high","mid","#sampleKeyframedCurve","frame","trunc","#sampleLinearCurve","knot0","start","end","localTime","t","p0","p1","#sampleQuadraticCurve","k2","k1","ti2","ti1","ti","tiNext","d0","d1a","d1b","l0","l1a","l1b","c2","ci","c1","p2","ANIMATION_ELEMENT_TYPES","typeValue","type","size","elementTypeSize","ArrayBuffer","isView","Uint8Array","from","map","bytes","asByteView","byteLength","TypeError","view","DataView","buffer","byteOffset","_","readElement","getFloat32","num","fromHalfFloat","getUint16","getInt16","getUint8","getInt8","exactDiv","numerator","divisor","what","isInteger","knotScaleFromTrunc","oneOverKnotScaleTrunc","Uint32Array","knotsFromControls","knotsControls","scale","knotsFromControlsTrunc","identityControls","c","decodeDaK","controlScaleOffsets","x","quatFromControl16","a","b","scales","offsets","swizzle1","swizzle2","swizzle3","swizzle4","dataA","dataB","dataC","dataD","sqrt","decodeD4n","scaleTableMultiplier","oneOverKnotScale","selector","scaleOffsetTableEntries","quat","quatFromControl8","decodeD3K","controlScales","controlOffsets","decodeD9I1","controlScale","controlOffset","fill","s","decodeD9I3","d3I1Controls","decodeD3I1u"],"mappings":"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"}
@@ -5,6 +5,7 @@ import { io, type, carbon, impl } from '@carbonenginejs/core-types/schema';
5
5
  import { EveEntity as _EveEntity } from '../generated/eve/EveEntity.js';
6
6
  import { EveBannerItem as _EveBannerItem } from './EveBannerItem.js';
7
7
  import { EveBannerLight as _EveBannerLight } from './EveBannerLight.js';
8
+ import { EveComponentType } from './EveComponentTypes.js';
8
9
 
9
10
  let _initProto, _initClass, _init_banners, _init_extra_banners, _init_name, _init_extra_name, _init_effect, _init_extra_effect, _init_isPickable, _init_extra_isPickable, _init_display, _init_extra_display, _init_key, _init_extra_key, _init_lights, _init_extra_lights, _init_primaryTextureParameter, _init_extra_primaryTextureParameter;
10
11
  let _EveBannerSet;
@@ -17,7 +18,7 @@ new class extends _identity {
17
18
  } = _applyDecs2311(this, [type.define({
18
19
  className: "EveBannerSet",
19
20
  family: "eve/attachment/banners"
20
- })], [[[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.list("EveBannerItem")], 16, "banners"], [[io, io.persist, type, type.string], 16, "name"], [[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effect"], [[io, io.persist, type, type.boolean], 16, "isPickable"], [[io, io.readwrite, type, type.boolean], 16, "display"], [[io, io.persist, type, type.int32], 16, "key"], [[io, io.persist, void 0, type.list("EveBannerLight")], 16, "lights"], [[io, io.persist, void 0, type.objectRef("TriTextureParameter")], 16, "primaryTextureParameter"], [[carbon, carbon.method, impl, impl.adapted], 18, "Rebuild"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetReference"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddBanner"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetKey"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingID"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetShaderOption"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetPrimaryTextureParameter"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddLightFromSOF"]], 0, void 0, _EveEntity));
21
+ })], [[[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.list("EveBannerItem")], 16, "banners"], [[io, io.persist, type, type.string], 16, "name"], [[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effect"], [[io, io.persist, type, type.boolean], 16, "isPickable"], [[io, io.readwrite, type, type.boolean], 16, "display"], [[io, io.persist, type, type.int32], 16, "key"], [[io, io.persist, void 0, type.list("EveBannerLight")], 16, "lights"], [[io, io.persist, void 0, type.objectRef("TriTextureParameter")], 16, "primaryTextureParameter"], [[carbon, carbon.method, impl, impl.adapted], 18, "Rebuild"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetReference"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddBanner"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetKey"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingID"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetShaderOption"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetPrimaryTextureParameter"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddLightFromSOF"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetLights"]], 0, void 0, _EveEntity));
21
22
  }
22
23
  banners = (_initProto(this), _init_banners(this, []));
23
24
  name = (_init_extra_banners(this), _init_name(this, ""));
@@ -68,6 +69,24 @@ new class extends _identity {
68
69
  AddLightFromSOF(light) {
69
70
  this.lights.push(_EveBannerLight.FromSOF(light));
70
71
  }
72
+
73
+ /** Carbon EveBannerSet::RegisterComponents (cpp:457-464): LightOwner
74
+ * UNCONDITIONAL (no lights-empty check, unlike the other packed sets -
75
+ * GetLights self-gates on display/lights instead, cpp:468). */
76
+ RegisterComponents() {
77
+ const registry = this.GetComponentRegistry();
78
+ if (registry) {
79
+ registry.RegisterComponent(EveComponentType.LightOwner, this);
80
+ }
81
+ }
82
+
83
+ /** Carbon EveBannerSet::GetLights (cpp:466-497): average-color light
84
+ * submission. Awaits the LightOwner consumption pass (Tr2LightManager
85
+ * submission is unported); presence satisfies the "LightOwner" duck
86
+ * contract. */
87
+ GetLights(..._args) {
88
+ throw new Error("EveBannerSet.GetLights is not implemented in CarbonEngineJS.");
89
+ }
71
90
  }];
72
91
  #copyBanner(source) {
73
92
  const banner = new _EveBannerItem();
@@ -1 +1 @@
1
- {"version":3,"file":"EveBannerSet.js","sources":["../../../src/eve/EveBannerSet.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Attachments\\Sets\\EveBannerSet.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Attachments\\Sets\\EveBannerSet.cpp\nimport { quat } from \"@carbonenginejs/core-math/quat\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../generated/eve/EveEntity.js\";\nimport { EveBannerItem } from \"./EveBannerItem.js\";\nimport { EveBannerLight } from \"./EveBannerLight.js\";\n\n\n@type.define({ className: \"EveBannerSet\", family: \"eve/attachment/banners\" })\nexport class EveBannerSet extends EveEntity\n{\n @io.rebuild(\"packedGeometry\")\n @io.persist\n @type.list(\"EveBannerItem\")\n banners = [];\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.rebuild(\"packedGeometry\")\n @io.persist\n @type.objectRef(\"Tr2Effect\")\n effect = null;\n\n @io.persist\n @type.boolean\n isPickable = false;\n\n @io.readwrite\n @type.boolean\n display = true;\n\n @io.persist\n @type.int32\n key = 0;\n\n @io.persist\n @type.list(\"EveBannerLight\")\n lights = [];\n\n // SOF-authored primary banner texture parameter; persisted so the values\n // interchange reproduces Carbon's hidden banner binding.\n @io.persist\n @type.objectRef(\"TriTextureParameter\")\n primaryTextureParameter = null;\n\n #rebuildRevision = 0;\n\n @carbon.method\n @impl.adapted\n Rebuild()\n {\n // Physical geometry, buffers, bounds and batches are backend work.\n this.#rebuildRevision++;\n this.__state.rebuild.add(\"packedGeometry\");\n }\n\n @carbon.method\n @impl.implemented\n GetReference(index)\n {\n return this.banners[index].reference;\n }\n\n @carbon.method\n @impl.adapted\n Initialize()\n {\n this.Rebuild();\n return true;\n }\n\n @carbon.method\n @impl.implemented\n AddBanner(banner)\n {\n const copy = EveBannerSet.#copyBanner(banner);\n this.banners.push(copy);\n return copy;\n }\n\n @carbon.method\n @impl.implemented\n SetEffect(effect)\n {\n this.effect = effect ?? null;\n }\n\n @carbon.method\n @impl.implemented\n SetKey(key)\n {\n this.key = Number(key) | 0;\n }\n\n @carbon.method\n @impl.implemented\n GetPickingID()\n {\n return (101 + this.key) >>> 0;\n }\n\n @carbon.method\n @impl.adapted\n SetShaderOption(name, value)\n {\n if (this.effect && typeof this.effect.SetOption === \"function\")\n {\n this.effect.SetOption(name, value);\n }\n }\n\n @carbon.method\n @impl.adapted\n SetPrimaryTextureParameter(parameter)\n {\n this.primaryTextureParameter = parameter ?? null;\n }\n\n @carbon.method\n @impl.adapted\n AddLightFromSOF(light)\n {\n this.lights.push(EveBannerLight.FromSOF(light));\n }\n\n static #copyBanner(source)\n {\n const banner = new EveBannerItem();\n if (!source) return banner;\n banner.bone = Number(source.bone ?? -1) | 0;\n vec3.copy(banner.position, source.position ?? banner.position);\n quat.copy(banner.rotation, source.rotation ?? banner.rotation);\n vec3.copy(banner.scaling, source.scaling ?? banner.scaling);\n banner.angleX = Number(source.angleX ?? 0);\n banner.angleY = Number(source.angleY ?? 0);\n banner.reference = Number(source.reference ?? 0) | 0;\n return banner;\n }\n\n}\n"],"names":["_EveBannerSet","_identity","EveBannerSet","EveEntity","e","_init_banners","_init_extra_banners","_init_name","_init_extra_name","_init_effect","_init_extra_effect","_init_isPickable","_init_extra_isPickable","_init_display","_init_extra_display","_init_key","_init_extra_key","_init_lights","_init_extra_lights","_init_primaryTextureParameter","_init_extra_primaryTextureParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","objectRef","boolean","readwrite","int32","carbon","method","impl","adapted","implemented","banners","name","effect","isPickable","display","key","lights","primaryTextureParameter","Rebuild","__state","add","GetReference","index","reference","Initialize","AddBanner","banner","copy","push","SetEffect","SetKey","Number","GetPickingID","SetShaderOption","value","SetOption","SetPrimaryTextureParameter","parameter","AddLightFromSOF","light","EveBannerLight","FromSOF","#copyBanner","source","EveBannerItem","bone","vec3","position","quat","rotation","scaling","angleX","angleY","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveBannerSet.js","sources":["../../../src/eve/EveBannerSet.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Attachments\\Sets\\EveBannerSet.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Attachments\\Sets\\EveBannerSet.cpp\r\nimport { quat } from \"@carbonenginejs/core-math/quat\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../generated/eve/EveEntity.js\";\r\nimport { EveBannerItem } from \"./EveBannerItem.js\";\r\nimport { EveBannerLight } from \"./EveBannerLight.js\";\r\nimport { EveComponentType } from \"./EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveBannerSet\", family: \"eve/attachment/banners\" })\r\nexport class EveBannerSet extends EveEntity\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveBannerItem\")\r\n banners = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n isPickable = false;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.int32\r\n key = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveBannerLight\")\r\n lights = [];\r\n\r\n // SOF-authored primary banner texture parameter; persisted so the values\r\n // interchange reproduces Carbon's hidden banner binding.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n primaryTextureParameter = null;\r\n\r\n #rebuildRevision = 0;\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Physical geometry, buffers, bounds and batches are backend work.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetReference(index)\r\n {\r\n return this.banners[index].reference;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddBanner(banner)\r\n {\r\n const copy = EveBannerSet.#copyBanner(banner);\r\n this.banners.push(copy);\r\n return copy;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetEffect(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetKey(key)\r\n {\r\n this.key = Number(key) | 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetPickingID()\r\n {\r\n return (101 + this.key) >>> 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetPrimaryTextureParameter(parameter)\r\n {\r\n this.primaryTextureParameter = parameter ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveBannerLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveBannerSet::RegisterComponents (cpp:457-464): LightOwner\r\n * UNCONDITIONAL (no lights-empty check, unlike the other packed sets -\r\n * GetLights self-gates on display/lights instead, cpp:468). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveBannerSet::GetLights (cpp:466-497): average-color light\r\n * submission. Awaits the LightOwner consumption pass (Tr2LightManager\r\n * submission is unported); presence satisfies the \"LightOwner\" duck\r\n * contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetLights(..._args)\r\n {\r\n throw new Error(\"EveBannerSet.GetLights is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n static #copyBanner(source)\r\n {\r\n const banner = new EveBannerItem();\r\n if (!source) return banner;\r\n banner.bone = Number(source.bone ?? -1) | 0;\r\n vec3.copy(banner.position, source.position ?? banner.position);\r\n quat.copy(banner.rotation, source.rotation ?? banner.rotation);\r\n vec3.copy(banner.scaling, source.scaling ?? banner.scaling);\r\n banner.angleX = Number(source.angleX ?? 0);\r\n banner.angleY = Number(source.angleY ?? 0);\r\n banner.reference = Number(source.reference ?? 0) | 0;\r\n return banner;\r\n }\r\n\r\n}\r\n"],"names":["_EveBannerSet","_identity","EveBannerSet","EveEntity","e","_init_banners","_init_extra_banners","_init_name","_init_extra_name","_init_effect","_init_extra_effect","_init_isPickable","_init_extra_isPickable","_init_display","_init_extra_display","_init_key","_init_extra_key","_init_lights","_init_extra_lights","_init_primaryTextureParameter","_init_extra_primaryTextureParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","objectRef","boolean","readwrite","int32","carbon","method","impl","adapted","implemented","notImplemented","banners","name","effect","isPickable","display","key","lights","primaryTextureParameter","Rebuild","__state","add","GetReference","index","reference","Initialize","AddBanner","banner","copy","push","SetEffect","SetKey","Number","GetPickingID","SetShaderOption","value","SetOption","SetPrimaryTextureParameter","parameter","AddLightFromSOF","light","EveBannerLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","GetLights","_args","Error","#copyBanner","source","EveBannerItem","bone","vec3","position","quat","rotation","scaling","angleX","angleY","constructor"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { CjsModel } from '@carbonenginejs/core-types/model';
6
6
  import { io, type, carbon, impl } from '@carbonenginejs/core-types/schema';
7
7
  import { EveEntity as _EveEntity } from '../generated/eve/EveEntity.js';
8
8
  import { EveBoosterSet2Renderable as _EveBoosterSet2Render } from './EveBoosterSet2Renderable.js';
9
+ import { EveComponentType } from './EveComponentTypes.js';
9
10
 
10
11
  let _initClass, _init_transform, _init_extra_transform, _init_functionality, _init_extra_functionality, _init_hasTrail, _init_extra_hasTrail, _init_atlasIndex, _init_extra_atlasIndex, _init_atlasIndex2, _init_extra_atlasIndex2, _init_lightScale, _init_extra_lightScale, _initProto, _initClass2, _init_flareLodEnabled, _init_extra_flareLodEnabled, _init_staticTrailLength, _init_extra_staticTrailLength, _init_trailsStaticOffsets, _init_extra_trailsStaticOffsets, _init_trailsStaticOffsets2, _init_extra_trailsStaticOffsets2, _init_trailsStaticOffsets3, _init_extra_trailsStaticOffsets3, _init_trailsStaticOffsets4, _init_extra_trailsStaticOffsets4, _init_trailsStaticOffsets5, _init_extra_trailsStaticOffsets5, _init_lightOffset, _init_extra_lightOffset, _init_lightFlickerAmplitude, _init_extra_lightFlickerAmplitude, _init_lightFlickerFrequency, _init_extra_lightFlickerFrequency, _init_lightRadius, _init_extra_lightRadius, _init_lightColor, _init_extra_lightColor, _init_lightWarpRadius, _init_extra_lightWarpRadius, _init_lightWarpColor, _init_extra_lightWarpColor, _init_display, _init_extra_display, _init_alwaysOnIntensity, _init_extra_alwaysOnIntensity, _init_warpGlowColor, _init_extra_warpGlowColor, _init_glowColor, _init_extra_glowColor, _init_haloColor, _init_extra_haloColor, _init_warpHaloColor, _init_extra_warpHaloColor, _init_effectFar, _init_extra_effectFar, _init_effect, _init_extra_effect, _init_instances, _init_extra_instances, _init_maxVel, _init_extra_maxVel, _init_glowScale, _init_extra_glowScale, _init_symHaloScale, _init_extra_symHaloScale, _init_haloScaleX, _init_extra_haloScaleX, _init_haloScaleY, _init_extra_haloScaleY, _init_trailsSmoothing, _init_extra_trailsSmoothing, _init_glows, _init_extra_glows, _init_maxSize, _init_extra_maxSize, _init_boosterBoundingSphereCenter, _init_extra_boosterBoundingSphereCenter, _init_boosterBoundingSphereRadius, _init_extra_boosterBoundingSphereRadius, _init_warpIntensity, _init_extra_warpIntensity, _init_physicsUpdate, _init_extra_physicsUpdate, _init_destinyUpdate, _init_extra_destinyUpdate, _init_alwaysOn, _init_extra_alwaysOn, _init_trails, _init_extra_trails, _init_items, _init_extra_items, _ClearRuntimeItems, _AddRuntimeItem;
11
12
  let _EveBoosterSet2Item;
@@ -43,7 +44,7 @@ new class extends _identity {
43
44
  } = _applyDecs2311(this, [type.define({
44
45
  className: "EveBoosterSet2",
45
46
  family: "eve/attachment/boosters"
46
- })], [[[io, io.notify, io, io.readwrite, type, type.boolean], 16, "flareLodEnabled"], [[void 0, io.flag("staticTrailOffsets"), io, io.notify, io, io.persist, type, type.float32], 16, "staticTrailLength"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets0"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets1"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets2"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets3"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets4"], [[io, io.persist, type, type.float32], 16, "lightOffset"], [[io, io.persist, type, type.float32], 16, "lightFlickerAmplitude"], [[io, io.persist, type, type.float32], 16, "lightFlickerFrequency"], [[io, io.persist, type, type.float32], 16, "lightRadius"], [[io, io.persist, type, type.color], 16, "lightColor"], [[io, io.persist, type, type.float32], 16, "lightWarpRadius"], [[io, io.persist, type, type.color], 16, "lightWarpColor"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.float32], 16, "alwaysOnIntensity"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "warpGlowColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "glowColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "haloColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "warpHaloColor"], [[io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effectFar"], [[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effect"], [[io, io.read, void 0, type.list("EveBoosterSet2Renderable")], 16, "instances"], [[io, io.readwrite, type, type.float32], 16, "maxVel"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "glowScale"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "symHaloScale"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "haloScaleX"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "haloScaleY"], [[io, io.persist, type, type.float32], 16, "trailsSmoothing"], [[io, io.persist, void 0, type.objectRef("EveSpriteSet")], 16, "glows"], [[io, io.read, type, type.float32], 16, "maxSize"], [[io, io.read, type, type.vec3], 16, "boosterBoundingSphereCenter"], [[io, io.read, type, type.float32], 16, "boosterBoundingSphereRadius"], [[io, io.readwrite, type, type.float32], 16, "warpIntensity"], [[io, io.persist, type, type.boolean], 16, "physicsUpdate"], [[io, io.persist, type, type.boolean], 16, "destinyUpdate"], [[io, io.persist, type, type.boolean], 16, "alwaysOn"], [[io, io.persist, void 0, type.objectRef("EveTrailsSet")], 16, "trails"], [[void 0, io.flag("items"), void 0, io.rebuild("packedGeometry"), io, io.notify, io, io.persist, void 0, type.list("EveBoosterSet2Item")], 16, "items"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateTrails"], [[carbon, carbon.method, impl, impl.adapted], 18, "Clear"], [[carbon, carbon.method, impl, impl.adapted], 18, "Add"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetData"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetGlow"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTrail"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoosterIntensity"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoosterData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRevision"]], 0, void 0, _EveEntity));
47
+ })], [[[io, io.notify, io, io.readwrite, type, type.boolean], 16, "flareLodEnabled"], [[void 0, io.flag("staticTrailOffsets"), io, io.notify, io, io.persist, type, type.float32], 16, "staticTrailLength"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets0"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets1"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets2"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets3"], [[io, io.persist, type, type.vec3], 16, "trailsStaticOffsets4"], [[io, io.persist, type, type.float32], 16, "lightOffset"], [[io, io.persist, type, type.float32], 16, "lightFlickerAmplitude"], [[io, io.persist, type, type.float32], 16, "lightFlickerFrequency"], [[io, io.persist, type, type.float32], 16, "lightRadius"], [[io, io.persist, type, type.color], 16, "lightColor"], [[io, io.persist, type, type.float32], 16, "lightWarpRadius"], [[io, io.persist, type, type.color], 16, "lightWarpColor"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.float32], 16, "alwaysOnIntensity"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "warpGlowColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "glowColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "haloColor"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.color], 16, "warpHaloColor"], [[io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effectFar"], [[void 0, io.rebuild("packedGeometry"), io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effect"], [[io, io.read, void 0, type.list("EveBoosterSet2Renderable")], 16, "instances"], [[io, io.readwrite, type, type.float32], 16, "maxVel"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "glowScale"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "symHaloScale"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "haloScaleX"], [[void 0, io.flag("flares"), io, io.notify, io, io.persist, type, type.float32], 16, "haloScaleY"], [[io, io.persist, type, type.float32], 16, "trailsSmoothing"], [[io, io.persist, void 0, type.objectRef("EveSpriteSet")], 16, "glows"], [[io, io.read, type, type.float32], 16, "maxSize"], [[io, io.read, type, type.vec3], 16, "boosterBoundingSphereCenter"], [[io, io.read, type, type.float32], 16, "boosterBoundingSphereRadius"], [[io, io.readwrite, type, type.float32], 16, "warpIntensity"], [[io, io.persist, type, type.boolean], 16, "physicsUpdate"], [[io, io.persist, type, type.boolean], 16, "destinyUpdate"], [[io, io.persist, type, type.boolean], 16, "alwaysOn"], [[io, io.persist, void 0, type.objectRef("EveTrailsSet")], 16, "trails"], [[void 0, io.flag("items"), void 0, io.rebuild("packedGeometry"), io, io.notify, io, io.persist, void 0, type.list("EveBoosterSet2Item")], 16, "items"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateTrails"], [[carbon, carbon.method, impl, impl.adapted], 18, "Clear"], [[carbon, carbon.method, impl, impl.adapted], 18, "Add"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetData"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetGlow"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTrail"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoosterIntensity"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoosterData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRevision"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetLights"]], 0, void 0, _EveEntity));
47
48
  _ClearRuntimeItems = function (owner) {
48
49
  owner.#singleBoosters.length = 0;
49
50
  owner.glows?.Clear?.();
@@ -348,6 +349,23 @@ new class extends _identity {
348
349
  GetRevision() {
349
350
  return this.#revision;
350
351
  }
352
+
353
+ /** Carbon EveBoosterSet2::RegisterComponents (cpp:1272-1279): unconditional
354
+ * LightOwner leaf self-registration. */
355
+ RegisterComponents() {
356
+ const registry = this.GetComponentRegistry();
357
+ if (registry) {
358
+ registry.RegisterComponent(EveComponentType.LightOwner, this);
359
+ }
360
+ }
361
+
362
+ /** Carbon EveBoosterSet2::GetLights (cpp:1287-1330): booster/warp light
363
+ * submission. Awaits the LightOwner consumption pass (Tr2LightManager
364
+ * submission is unported); presence satisfies the "LightOwner" duck
365
+ * contract. */
366
+ GetLights(..._args) {
367
+ throw new Error("EveBoosterSet2.GetLights is not implemented in CarbonEngineJS.");
368
+ }
351
369
  }];
352
370
  #ClearRuntimeItems(_0) {
353
371
  return _ClearRuntimeItems.apply(this, arguments);