posecode-render
Advanced tools
| /** Reach-effector resolution and ROM-constrained IK shared by the viewer/tests. */ | ||
| import * as THREE from "three"; | ||
| import type { Mannequin } from "./mannequin.js"; | ||
| import { type JointLimits } from "./ik.js"; | ||
| /** Friendly/canonical contact effectors mapped to their driven rig bone. */ | ||
| export declare const EFFECTOR_BONE: Readonly<Record<string, string>>; | ||
| export type ReachResidualReason = "missing-effector" | "missing-target" | "unsupported-effector"; | ||
| /** | ||
| * Runtime outcome for one active reach. `distance` is the actual post-blend | ||
| * world-space effector error in metres. A null distance means the target or | ||
| * effector could not be resolved; these cases are deliberately retained | ||
| * instead of being silently discarded by the renderer. | ||
| */ | ||
| export interface ReachResidual { | ||
| effector: string; | ||
| target: string; | ||
| weight: number; | ||
| distance: number | null; | ||
| reached: boolean; | ||
| reason?: ReachResidualReason; | ||
| } | ||
| /** Viewer/testing tolerance for considering a terminal contact reached. */ | ||
| export declare const REACH_TOLERANCE = 0.03; | ||
| /** Resolve a canonical effector name to the bone that occupies its endpoint. */ | ||
| export declare function effectorBoneId(effector: string): string; | ||
| /** | ||
| * The proximal-to-distal chain allowed to move a terminal effector. | ||
| * Knee contact rotates the hip only: the knee itself is the endpoint, not a | ||
| * joint that may rotate itself toward its own target. Fists share the arm | ||
| * chain with palms while retaining distinct contact geometry in contacts.ts. | ||
| */ | ||
| export declare function reachChain(m: Mannequin, effector: string): { | ||
| joints: THREE.Object3D[]; | ||
| limits: (JointLimits | null)[]; | ||
| }; | ||
| /** A bone's ROM in radians, widened only enough to preserve authored FK. */ | ||
| export declare function widenedJointLimits(boneId: string, node: THREE.Object3D): JointLimits | null; | ||
| /** | ||
| * Solve one named effector to an already-resolved world point and report the | ||
| * residual after reach-weight blending. This low-level entry point lets tests | ||
| * and non-WebGL consumers exercise the exact viewer solve. | ||
| */ | ||
| export declare function solveReachToPoint(m: Mannequin, effectorName: string, targetName: string, target: THREE.Vector3, weight?: number): ReachResidual; | ||
| /** Construct an explicit diagnostic for a target name that did not resolve. */ | ||
| export declare function missingReachTarget(effector: string, target: string, weight?: number): ReachResidual; |
+126
| /** Reach-effector resolution and ROM-constrained IK shared by the viewer/tests. */ | ||
| import * as THREE from "three"; | ||
| import { eulerRomFor } from "posecode-parser"; | ||
| import { solveCCD } from "./ik.js"; | ||
| const DEG = Math.PI / 180; | ||
| const REACH_EULER = new THREE.Euler(); | ||
| /** Friendly/canonical contact effectors mapped to their driven rig bone. */ | ||
| export const EFFECTOR_BONE = { | ||
| hand_left: "wrist_left", | ||
| hand_right: "wrist_right", | ||
| fist_left: "wrist_left", | ||
| fist_right: "wrist_right", | ||
| foot_left: "ankle_left", | ||
| foot_right: "ankle_right", | ||
| knee_left: "knee_left", | ||
| knee_right: "knee_right", | ||
| }; | ||
| /** Viewer/testing tolerance for considering a terminal contact reached. */ | ||
| export const REACH_TOLERANCE = 0.03; | ||
| /** Resolve a canonical effector name to the bone that occupies its endpoint. */ | ||
| export function effectorBoneId(effector) { | ||
| return EFFECTOR_BONE[effector] ?? effector; | ||
| } | ||
| /** | ||
| * The proximal-to-distal chain allowed to move a terminal effector. | ||
| * Knee contact rotates the hip only: the knee itself is the endpoint, not a | ||
| * joint that may rotate itself toward its own target. Fists share the arm | ||
| * chain with palms while retaining distinct contact geometry in contacts.ts. | ||
| */ | ||
| export function reachChain(m, effector) { | ||
| const boneId = effectorBoneId(effector); | ||
| const side = boneId.endsWith("_left") ? "left" : "right"; | ||
| const ids = boneId.startsWith("wrist") | ||
| ? [`shoulder_${side}`, `elbow_${side}`] | ||
| : boneId.startsWith("elbow") | ||
| ? [`shoulder_${side}`] | ||
| : boneId.startsWith("ankle") | ||
| ? [`hip_${side}`, `knee_${side}`] | ||
| : boneId.startsWith("knee") | ||
| ? [`hip_${side}`] | ||
| : []; | ||
| const joints = []; | ||
| const limits = []; | ||
| for (const id of ids) { | ||
| const node = m.bones.get(id); | ||
| if (!node) | ||
| continue; | ||
| joints.push(node); | ||
| limits.push(widenedJointLimits(id, node)); | ||
| } | ||
| return { joints, limits }; | ||
| } | ||
| /** A bone's ROM in radians, widened only enough to preserve authored FK. */ | ||
| export function widenedJointLimits(boneId, node) { | ||
| const rom = eulerRomFor(boneId); | ||
| if (!rom) | ||
| return null; | ||
| REACH_EULER.setFromQuaternion(node.quaternion, "XYZ"); | ||
| return { | ||
| x: widen(rom.x.min * DEG, rom.x.max * DEG, REACH_EULER.x), | ||
| y: widen(rom.y.min * DEG, rom.y.max * DEG, REACH_EULER.y), | ||
| z: widen(rom.z.min * DEG, rom.z.max * DEG, REACH_EULER.z), | ||
| }; | ||
| } | ||
| function widen(min, max, current) { | ||
| return [Math.min(min, current), Math.max(max, current)]; | ||
| } | ||
| /** | ||
| * Solve one named effector to an already-resolved world point and report the | ||
| * residual after reach-weight blending. This low-level entry point lets tests | ||
| * and non-WebGL consumers exercise the exact viewer solve. | ||
| */ | ||
| export function solveReachToPoint(m, effectorName, targetName, target, weight = 1) { | ||
| const safeWeight = THREE.MathUtils.clamp(weight, 0, 1); | ||
| const effector = m.bones.get(effectorBoneId(effectorName)); | ||
| if (!effector) { | ||
| return { | ||
| effector: effectorName, | ||
| target: targetName, | ||
| weight: safeWeight, | ||
| distance: null, | ||
| reached: false, | ||
| reason: "missing-effector", | ||
| }; | ||
| } | ||
| const { joints, limits } = reachChain(m, effectorName); | ||
| if (joints.length === 0) { | ||
| return { | ||
| effector: effectorName, | ||
| target: targetName, | ||
| weight: safeWeight, | ||
| distance: null, | ||
| reached: false, | ||
| reason: "unsupported-effector", | ||
| }; | ||
| } | ||
| const before = joints.map((joint) => joint.quaternion.clone()); | ||
| solveCCD({ joints, limits, effector, target }, 12); | ||
| for (let i = 0; i < joints.length; i++) { | ||
| const solved = joints[i].quaternion.clone(); | ||
| joints[i].quaternion.slerpQuaternions(before[i], solved, safeWeight); | ||
| } | ||
| m.root.updateMatrixWorld(true); | ||
| const distance = effector | ||
| .getWorldPosition(new THREE.Vector3()) | ||
| .distanceTo(target); | ||
| return { | ||
| effector: effectorName, | ||
| target: targetName, | ||
| weight: safeWeight, | ||
| distance, | ||
| reached: distance <= REACH_TOLERANCE, | ||
| }; | ||
| } | ||
| /** Construct an explicit diagnostic for a target name that did not resolve. */ | ||
| export function missingReachTarget(effector, target, weight = 1) { | ||
| return { | ||
| effector, | ||
| target, | ||
| weight: THREE.MathUtils.clamp(weight, 0, 1), | ||
| distance: null, | ||
| reached: false, | ||
| reason: "missing-target", | ||
| }; | ||
| } | ||
| //# sourceMappingURL=reach.js.map |
| {"version":3,"file":"reach.js","sourceRoot":"","sources":["../src/reach.ts"],"names":[],"mappings":"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"} |
+5
| Posecode Render | ||
| Copyright 2026 Posecode contributors | ||
| This product includes software developed by Posecode contributors. | ||
| Third-party dependency notices remain available in their respective distributions. |
@@ -33,2 +33,6 @@ /** | ||
| getBounds(): THREE.Box3; | ||
| /** World position of one mapped character joint, addressed by driver id. */ | ||
| getJointWorldPosition(driverId: string): THREE.Vector3 | null; | ||
| /** Character orientation expressed back in the driver's semantic frame. */ | ||
| getJointDriverQuaternion(driverId: string): THREE.Quaternion | null; | ||
| /** Fast sampled visible-surface correction; returns the applied Y delta. */ | ||
@@ -35,0 +39,0 @@ reconcileFloor(floorY?: number): number; |
+20
-0
@@ -377,2 +377,20 @@ /** | ||
| } | ||
| function getJointWorldPosition(driverId) { | ||
| const mappedBone = mappedById.get(driverId); | ||
| if (!mappedBone) | ||
| return null; | ||
| return mappedBone.node.getWorldPosition(new THREE.Vector3()); | ||
| } | ||
| function getJointDriverQuaternion(driverId) { | ||
| const mappedBone = mappedById.get(driverId); | ||
| if (!mappedBone) | ||
| return null; | ||
| // sync writes characterWorld = driverWorld * calibratedRestWorld. | ||
| // Removing the rest frame yields an orientation whose local axes match the | ||
| // driver metrics (sole/palm/knuckle normals) while still sampling the | ||
| // actual retargeted character skeleton. | ||
| return mappedBone.node | ||
| .getWorldQuaternion(new THREE.Quaternion()) | ||
| .multiply(mappedBone.restWorld.clone().invert()); | ||
| } | ||
| // A dense uniform sample plus every rest-pose axis extremum. Xbot's 28k | ||
@@ -434,2 +452,4 @@ // vertices reduce to ~3.6k skin transforms per frame while retaining sole, | ||
| getBounds, | ||
| getJointWorldPosition, | ||
| getJointDriverQuaternion, | ||
| reconcileFloor, | ||
@@ -436,0 +456,0 @@ skinnedMesh, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"} |
+78
-15
@@ -5,12 +5,42 @@ /** Semantic contact-orientation helpers shared by viewer and eval. */ | ||
| import type { Mannequin } from "./mannequin.js"; | ||
| export type HandSide = "left" | "right"; | ||
| export type HandContactKind = "palm" | "fist"; | ||
| /** | ||
| * Rotate contacting wrists so the palm face normal points into the floor. | ||
| * Applies to hands pressed to the floor via `reach`/`pin: hands floor` AND via | ||
| * `ground-lock: hands` (a high plank / push-up / mountain-climber): those bear | ||
| * weight flat on the ground and must be palm-down, not left in their raw FK | ||
| * (pronated) orientation. | ||
| * Actual outward normal of the flattened procedural palm geometry. The palm | ||
| * ellipsoid is shallow on local Z for both hands (see mannequin.addPalm). | ||
| */ | ||
| export declare const PALM_LOCAL_NORMAL: readonly [0, 0, 1]; | ||
| /** Knuckle-bearing direction from wrist to the curled finger bases. */ | ||
| export declare const FIST_LOCAL_NORMAL: readonly [0, -1, 0]; | ||
| /** | ||
| * Final safety assertion for renderer-authored terminal corrections. It is | ||
| * intentionally limited to wrists/ankles: timeline hip counter-rotation for a | ||
| * pelvis hinge may legitimately sit outside a raw isolated hip box, whereas | ||
| * contact wrist and ankle locals have no such coupled exception. All three | ||
| * ankle axes are clamped, including the normally locked Y/Z axes. | ||
| */ | ||
| export declare function enforceContactRom(m: Mannequin): void; | ||
| /** | ||
| * Orient floor contacts by their real geometry: a palm presents its flattened | ||
| * +Z face, while a fist presents the wrist→knuckle (-Y) direction. The two are | ||
| * intentionally distinct. Palm contacts may also redistribute orientation | ||
| * into a legal forearm-axis twist; fists remain wrist-only so knuckle and grip | ||
| * semantics are unaffected. Every wrist correction is strict-ROM-clamped. | ||
| */ | ||
| export declare function alignFloorContacts(m: Mannequin, reaches: readonly (ReachTarget & { | ||
| weight?: number; | ||
| })[], pins: readonly PinTarget[], groundLock?: readonly string[]): void; | ||
| /** Backwards-compatible name retained for eval/embedders; now handles fists too. */ | ||
| export declare function alignFloorPalms(m: Mannequin, reaches: readonly (ReachTarget & { | ||
| weight?: number; | ||
| })[], pins: readonly PinTarget[], groundLock?: readonly string[]): void; | ||
| /** | ||
| * Bone-origin target whose corresponding visible contact surface rests on y=0. | ||
| * Joint effectors (knee/elbow) use their local contact radius instead of the | ||
| * whole descendant subtree—otherwise a knee target incorrectly measures the | ||
| * shin/foot and folds the knee upward while still claiming floor contact. | ||
| */ | ||
| export declare function floorTargetForEffector(m: Mannequin, effectorName: string): THREE.Vector3 | null; | ||
| /** Signed height of an effector's actual contact surface above the floor. */ | ||
| export declare function floorContactHeight(m: Mannequin, effectorName: string): number | null; | ||
| /** Foot mesh-bottom height at/below which the sole is fully leveled (m). */ | ||
@@ -30,6 +60,37 @@ export declare const PLANT_FADE = 0.06; | ||
| /** Finger curl (radians about the knuckle X axis) that wraps a gripping hand. */ | ||
| export declare const FINGER_CURL = 1.35; | ||
| export declare const FINGER_CURL = -1.35; | ||
| /** Thumb opposition curl (radians) toward the fingers. */ | ||
| export declare const THUMB_CURL = 0.9; | ||
| export declare const THUMB_CURL = -0.9; | ||
| /** Sideways thumb opposition kept inside the thumb's adduction ROM. */ | ||
| export declare const THUMB_OPPOSE = 0.5; | ||
| /** Closed-fist finger curl, still inside the 100deg finger-flexion limit. */ | ||
| export declare const FIST_CURL = -1.5; | ||
| export declare const FIST_THUMB_CURL = -1.15; | ||
| export declare const FIST_THUMB_OPPOSE = 0.45; | ||
| /** True for the parallel-rail anchors belonging to the dip-bars prop. */ | ||
| export declare function isDipBarGrip(anchor: string): boolean; | ||
| /** | ||
| * Establish a deterministic dip-bar forearm frame before body translation/IK. | ||
| * Removing inherited elbow axial twist makes the palm face available for the | ||
| * downward support contact instead of leaving each hand turned toward a thigh. | ||
| */ | ||
| export declare function prepareGripFrames(m: Mannequin, grips: readonly { | ||
| effector: string; | ||
| anchor: string; | ||
| }[]): void; | ||
| /** | ||
| * Finish the stable dip-bar frame after IK: the flattened palm presses down on | ||
| * the rail while wrist flexion/extension remains strictly ROM-safe. | ||
| */ | ||
| export declare function alignGripFrames(m: Mannequin, grips: readonly { | ||
| effector: string; | ||
| anchor: string; | ||
| }[]): void; | ||
| /** | ||
| * Close semantic fist effectors without overwriting explicitly authored digit | ||
| * bones. Wrist/contact corrections never touch these locals, so the curl is | ||
| * preserved while the knuckles are oriented onto a target. | ||
| */ | ||
| export declare function formFists(m: Mannequin, sides: ReadonlySet<HandSide>, authoredFingers?: ReadonlySet<string>): void; | ||
| /** | ||
| * Curl the fingers of each gripping hand around the bar. Grips are per-side | ||
@@ -43,9 +104,11 @@ * after resolution (`hand_left` / `hand_right`), so the side comes straight off | ||
| * Relaxed resting finger curl (radians) for an idle hand in the air. A truly | ||
| * relaxed hand is not flat: the fingers settle into a soft inward hook (~30°), | ||
| * relaxed hand is not flat: the fingers settle into a soft inward hook (~18°), | ||
| * which reads as a natural cupped hand instead of a stiff splayed palm. | ||
| */ | ||
| export declare const REST_CURL = 0.55; | ||
| /** Slight finger adduction (radians) drawing splayed digits toward the middle | ||
| * finger, so a relaxed hand closes softly rather than fanning like jazz-hands. */ | ||
| export declare const REST_ADDUCT = 0.12; | ||
| export declare const REST_CURL = -0.32; | ||
| /** Gentle thumb opposition for a relaxed hand, within adduction ROM. */ | ||
| export declare const REST_THUMB_OPPOSE = 0.26; | ||
| /** Finger bones are intentionally single-DOF; their authored rest offsets | ||
| * provide natural spacing without inventing an out-of-ROM lateral rotation. */ | ||
| export declare const REST_ADDUCT = 0; | ||
| /** | ||
@@ -56,3 +119,3 @@ * Near-flat curl (radians) for a hand pressed onto the floor (plank, push-up, | ||
| */ | ||
| export declare const FLOOR_CURL = 0.06; | ||
| export declare const FLOOR_CURL = -0.06; | ||
| /** | ||
@@ -81,5 +144,5 @@ * Give idle hands a natural relaxed shape instead of a flat splayed palm. | ||
| * animates the hips (walk, march, box-step) gets natural arm swing for free. | ||
| * Skips shoulders the document authors and any gripping side. | ||
| * Skips shoulders the document authors and any contact-constrained hand side. | ||
| */ | ||
| export declare function swingArms(m: Mannequin, authoredShoulders: ReadonlySet<string>, gripSides: ReadonlySet<"left" | "right">): void; | ||
| export declare function swingArms(m: Mannequin, authoredShoulders: ReadonlySet<string>, protectedSides: ReadonlySet<"left" | "right">): void; | ||
| /** Max head turn toward a look target (radians) so the neck never over-rotates. */ | ||
@@ -86,0 +149,0 @@ export declare const MAX_LOOK: number; |
+437
-59
| /** Semantic contact-orientation helpers shared by viewer and eval. */ | ||
| import * as THREE from "three"; | ||
| import { eulerRomFor } from "posecode-parser"; | ||
| import { effectorBoneId } from "./reach.js"; | ||
| const DOWN = new THREE.Vector3(0, -1, 0); | ||
| const FOREARM_AXIS = new THREE.Vector3(0, 1, 0); | ||
| const DEG = Math.PI / 180; | ||
| /** Strong palm-down cone with 10° margin inside eval's 55° contact limit. */ | ||
| const PALM_DOWN_TARGET_DOT = Math.cos(45 * DEG); | ||
| /** Natural outward travel as an arm straightens toward an unconstrained floor. */ | ||
| const HAND_FLOOR_OUTSET = 0.04; | ||
| const CONTACT_EULER = new THREE.Euler(); | ||
| /** | ||
| * Rotate contacting wrists so the palm face normal points into the floor. | ||
| * Applies to hands pressed to the floor via `reach`/`pin: hands floor` AND via | ||
| * `ground-lock: hands` (a high plank / push-up / mountain-climber): those bear | ||
| * weight flat on the ground and must be palm-down, not left in their raw FK | ||
| * (pronated) orientation. | ||
| * Actual outward normal of the flattened procedural palm geometry. The palm | ||
| * ellipsoid is shallow on local Z for both hands (see mannequin.addPalm). | ||
| */ | ||
| export function alignFloorPalms(m, reaches, pins, groundLock = []) { | ||
| const sides = new Map(); | ||
| const collect = (effector, target, weight = 1) => { | ||
| if (target !== "floor") | ||
| export const PALM_LOCAL_NORMAL = [0, 0, 1]; | ||
| /** Knuckle-bearing direction from wrist to the curled finger bases. */ | ||
| export const FIST_LOCAL_NORMAL = [0, -1, 0]; | ||
| function strictClampToRom(node, boneId) { | ||
| const rom = eulerRomFor(boneId); | ||
| if (!rom) | ||
| return false; | ||
| CONTACT_EULER.setFromQuaternion(node.quaternion, "XYZ"); | ||
| const x = THREE.MathUtils.clamp(CONTACT_EULER.x, rom.x.min * DEG, rom.x.max * DEG); | ||
| const y = THREE.MathUtils.clamp(CONTACT_EULER.y, rom.y.min * DEG, rom.y.max * DEG); | ||
| const z = THREE.MathUtils.clamp(CONTACT_EULER.z, rom.z.min * DEG, rom.z.max * DEG); | ||
| if (Math.abs(x - CONTACT_EULER.x) < 1e-10 && | ||
| Math.abs(y - CONTACT_EULER.y) < 1e-10 && | ||
| Math.abs(z - CONTACT_EULER.z) < 1e-10) | ||
| return false; | ||
| CONTACT_EULER.set(x, y, z, "XYZ"); | ||
| node.quaternion.setFromEuler(CONTACT_EULER); | ||
| return true; | ||
| } | ||
| /** | ||
| * Final safety assertion for renderer-authored terminal corrections. It is | ||
| * intentionally limited to wrists/ankles: timeline hip counter-rotation for a | ||
| * pelvis hinge may legitimately sit outside a raw isolated hip box, whereas | ||
| * contact wrist and ankle locals have no such coupled exception. All three | ||
| * ankle axes are clamped, including the normally locked Y/Z axes. | ||
| */ | ||
| export function enforceContactRom(m) { | ||
| let changed = false; | ||
| for (const side of ["left", "right"]) { | ||
| for (const joint of [`wrist_${side}`, `ankle_${side}`]) { | ||
| const node = m.bones.get(joint); | ||
| if (node) | ||
| changed = strictClampToRom(node, joint) || changed; | ||
| } | ||
| } | ||
| if (changed) | ||
| m.root.updateMatrixWorld(true); | ||
| } | ||
| function alignWristNormal(m, side, normal, weight) { | ||
| const wristId = `wrist_${side}`; | ||
| const wrist = m.bones.get(wristId); | ||
| if (!wrist?.parent) | ||
| return false; | ||
| const world = wrist.getWorldQuaternion(new THREE.Quaternion()); | ||
| const current = new THREE.Vector3(...normal).applyQuaternion(world).normalize(); | ||
| const correction = new THREE.Quaternion().setFromUnitVectors(current, DOWN); | ||
| const safeWeight = THREE.MathUtils.clamp(weight, 0, 1); | ||
| if (safeWeight < 1) { | ||
| correction.slerp(new THREE.Quaternion(), 1 - safeWeight); | ||
| } | ||
| const desiredWorld = correction.multiply(world); | ||
| const parentWorld = wrist.parent.getWorldQuaternion(new THREE.Quaternion()); | ||
| wrist.quaternion.copy(parentWorld.invert().multiply(desiredWorld)); | ||
| // Contact correction is never allowed to buy contact with a broken wrist. | ||
| strictClampToRom(wrist, wristId); | ||
| return true; | ||
| } | ||
| function quaternionIsInRom(q, boneId) { | ||
| const rom = eulerRomFor(boneId); | ||
| if (!rom) | ||
| return false; | ||
| const euler = new THREE.Euler().setFromQuaternion(q, "XYZ"); | ||
| // CCD and world/local quaternion round-trips can leave locked axes a few | ||
| // ten-thousandths of a degree off zero. Treat that as numerical noise, not | ||
| // an authored ROM violation that disables the whole contact solver. | ||
| const epsilon = 1e-4; | ||
| return (euler.x >= rom.x.min * DEG - epsilon && euler.x <= rom.x.max * DEG + epsilon && | ||
| euler.y >= rom.y.min * DEG - epsilon && euler.y <= rom.y.max * DEG + epsilon && | ||
| euler.z >= rom.z.min * DEG - epsilon && euler.z <= rom.z.max * DEG + epsilon); | ||
| } | ||
| /** | ||
| * Find the legal forearm-axis twist that gives the wrist the best attainable | ||
| * palm-down frame. A post-multiplied local-Y twist leaves the elbow→wrist | ||
| * offset ([0,-length,0]) unchanged, so this can re-orient a planted palm | ||
| * without pulling its solved contact point away from the floor target. | ||
| */ | ||
| function bestPalmForearmTwist(m, side) { | ||
| const elbowId = `elbow_${side}`; | ||
| const wristId = `wrist_${side}`; | ||
| const elbow = m.bones.get(elbowId); | ||
| const wrist = m.bones.get(wristId); | ||
| const wristRom = eulerRomFor(wristId); | ||
| if (!elbow?.parent || wrist?.parent !== elbow || !wristRom) | ||
| return null; | ||
| m.root.updateMatrixWorld(true); | ||
| const elbowParentWorld = elbow.parent.getWorldQuaternion(new THREE.Quaternion()); | ||
| const authoredElbow = elbow.quaternion.clone(); | ||
| const authoredWrist = wrist.quaternion.clone(); | ||
| const twist = new THREE.Quaternion(); | ||
| const candidateElbow = new THREE.Quaternion(); | ||
| const elbowWorld = new THREE.Quaternion(); | ||
| const wristWorld = new THREE.Quaternion(); | ||
| const correction = new THREE.Quaternion(); | ||
| const desiredWorld = new THREE.Quaternion(); | ||
| const desiredLocal = new THREE.Quaternion(); | ||
| const clampedWrist = new THREE.Quaternion(); | ||
| const finalWorld = new THREE.Quaternion(); | ||
| const wristEuler = new THREE.Euler(); | ||
| const candidateEuler = new THREE.Euler(); | ||
| const currentNormal = new THREE.Vector3(); | ||
| const finalNormal = new THREE.Vector3(); | ||
| const authoredEuler = new THREE.Euler().setFromQuaternion(authoredElbow, "XYZ"); | ||
| const desiredSupinationY = (side === "left" ? 1 : -1) * Math.abs(authoredEuler.y); | ||
| const score = (radians) => { | ||
| twist.setFromAxisAngle(FOREARM_AXIS, radians); | ||
| candidateElbow.copy(authoredElbow).multiply(twist); | ||
| if (!quaternionIsInRom(candidateElbow, elbowId)) | ||
| return null; | ||
| elbowWorld.copy(elbowParentWorld).multiply(candidateElbow); | ||
| wristWorld.copy(elbowWorld).multiply(authoredWrist); | ||
| currentNormal.set(...PALM_LOCAL_NORMAL).applyQuaternion(wristWorld).normalize(); | ||
| correction.setFromUnitVectors(currentNormal, DOWN); | ||
| desiredWorld.copy(correction).multiply(wristWorld); | ||
| desiredLocal.copy(elbowWorld).invert().multiply(desiredWorld); | ||
| // Simulate the exact wrist correction and hard ROM clamp used below. The | ||
| // search therefore prefers a forearm twist the real wrist can finish. | ||
| wristEuler.setFromQuaternion(desiredLocal, "XYZ"); | ||
| wristEuler.set(THREE.MathUtils.clamp(wristEuler.x, wristRom.x.min * DEG, wristRom.x.max * DEG), THREE.MathUtils.clamp(wristEuler.y, wristRom.y.min * DEG, wristRom.y.max * DEG), THREE.MathUtils.clamp(wristEuler.z, wristRom.z.min * DEG, wristRom.z.max * DEG), "XYZ"); | ||
| clampedWrist.setFromEuler(wristEuler); | ||
| finalWorld.copy(elbowWorld).multiply(clampedWrist); | ||
| finalNormal.set(...PALM_LOCAL_NORMAL).applyQuaternion(finalWorld).normalize(); | ||
| return finalNormal.dot(DOWN); | ||
| }; | ||
| let bestRadians = 0; | ||
| let bestScore = score(0) ?? -Infinity; | ||
| // Most palms need only the cheap wrist correction. In particular this keeps | ||
| // plank/mountain-climber geometry unchanged and avoids a search per frame. | ||
| if (bestScore >= PALM_DOWN_TARGET_DOT) | ||
| return 0; | ||
| let targetRadians = null; | ||
| let targetYDistance = Infinity; | ||
| const consider = (radians) => { | ||
| const candidateScore = score(radians); | ||
| if (candidateScore === null) | ||
| return; | ||
| if (effector === "hands" || effector === "hand_left") { | ||
| sides.set("left", Math.max(sides.get("left") ?? 0, weight)); | ||
| const scoreGain = candidateScore - bestScore; | ||
| if (scoreGain > 1e-9 || (Math.abs(scoreGain) <= 1e-9 && Math.abs(radians) < Math.abs(bestRadians))) { | ||
| bestScore = candidateScore; | ||
| bestRadians = radians; | ||
| } | ||
| if (effector === "hands" || effector === "hand_right") { | ||
| sides.set("right", Math.max(sides.get("right") ?? 0, weight)); | ||
| // A declared palm-floor contact overrides incompatible pronation with the | ||
| // corresponding anatomical supination frame. Prefer that semantic mirror | ||
| // over a mathematical maximum at the extreme edge of the ROM box. | ||
| candidateEuler.setFromQuaternion(candidateElbow, "XYZ"); | ||
| const isSupinationHalf = side === "left" ? candidateEuler.y >= -1e-6 : candidateEuler.y <= 1e-6; | ||
| const yDistance = Math.abs(candidateEuler.y - desiredSupinationY); | ||
| if (candidateScore >= PALM_DOWN_TARGET_DOT && isSupinationHalf && yDistance < targetYDistance) { | ||
| targetYDistance = yDistance; | ||
| targetRadians = radians; | ||
| } | ||
| }; | ||
| // Coarse global search handles authored full pronation (±80°), whose | ||
| // palm-down solution can lie roughly 160° away at the opposite ROM edge. | ||
| const coarseStep = 5 * DEG; | ||
| for (let radians = -Math.PI; radians <= Math.PI + 1e-8; radians += coarseStep) { | ||
| consider(Math.min(Math.PI, radians)); | ||
| } | ||
| // Refine locally so the semantic supination mirror is not quantized to the | ||
| // coarse search step. | ||
| const coarseBest = targetRadians ?? bestRadians; | ||
| const fineStep = 0.25 * DEG; | ||
| for (let radians = coarseBest - coarseStep; radians <= coarseBest + coarseStep + 1e-8; radians += fineStep) { | ||
| consider(THREE.MathUtils.clamp(radians, -Math.PI, Math.PI)); | ||
| } | ||
| return Number.isFinite(bestScore) ? targetRadians ?? bestRadians : null; | ||
| } | ||
| function alignPalmNormal(m, side, weight) { | ||
| const elbowId = `elbow_${side}`; | ||
| const elbow = m.bones.get(elbowId); | ||
| const bestTwist = bestPalmForearmTwist(m, side); | ||
| if (!elbow || bestTwist === null) { | ||
| return alignWristNormal(m, side, PALM_LOCAL_NORMAL, weight); | ||
| } | ||
| const safeWeight = THREE.MathUtils.clamp(weight, 0, 1); | ||
| const weightedTwist = new THREE.Quaternion().setFromAxisAngle(FOREARM_AXIS, bestTwist * safeWeight); | ||
| const candidate = elbow.quaternion.clone().multiply(weightedTwist); | ||
| // Both endpoints of the interpolation are legal in normal operation. Keep a | ||
| // defensive fallback for unusual imported rigs/Euler singularities without | ||
| // ever clamping the elbow in a way that could move the wrist endpoint. | ||
| if (quaternionIsInRom(candidate, elbowId)) | ||
| elbow.quaternion.copy(candidate); | ||
| m.root.updateMatrixWorld(true); | ||
| return alignWristNormal(m, side, PALM_LOCAL_NORMAL, weight); | ||
| } | ||
| function collectFloorHandContacts(reaches, pins, groundLock) { | ||
| const contacts = new Map(); | ||
| const collect = (effector, target, weight = 1) => { | ||
| if (target !== "floor") | ||
| return; | ||
| const fistMatch = /^fist_(left|right)$/.exec(effector); | ||
| const palmMatch = /^(?:hand|wrist)_(left|right)$/.exec(effector); | ||
| const isFist = effector === "fists" || Boolean(fistMatch); | ||
| const isPalm = effector === "hands" || Boolean(palmMatch); | ||
| if (!isFist && !isPalm) | ||
| return; | ||
| const kind = isFist ? "fist" : "palm"; | ||
| const add = (side) => { | ||
| const previous = contacts.get(side); | ||
| // An explicit fist wins over a simultaneous generic hand contact. | ||
| if (!previous || kind === "fist" || previous.kind !== "fist") { | ||
| contacts.set(side, { | ||
| kind, | ||
| weight: Math.max(previous?.weight ?? 0, weight), | ||
| }); | ||
| } | ||
| }; | ||
| if (effector === "hands" || effector === "fists" || fistMatch?.[1] === "left" || palmMatch?.[1] === "left") | ||
| add("left"); | ||
| if (effector === "hands" || effector === "fists" || fistMatch?.[1] === "right" || palmMatch?.[1] === "right") | ||
| add("right"); | ||
| }; | ||
| reaches.forEach((r) => collect(r.effector, r.target, r.weight)); | ||
| pins.forEach((p) => collect(p.effector, p.anchor)); | ||
| if (groundLock.includes("hands") || groundLock.includes("hand_left")) { | ||
| sides.set("left", 1); | ||
| groundLock.forEach((effector) => collect(effector, "floor")); | ||
| return contacts; | ||
| } | ||
| /** | ||
| * Orient floor contacts by their real geometry: a palm presents its flattened | ||
| * +Z face, while a fist presents the wrist→knuckle (-Y) direction. The two are | ||
| * intentionally distinct. Palm contacts may also redistribute orientation | ||
| * into a legal forearm-axis twist; fists remain wrist-only so knuckle and grip | ||
| * semantics are unaffected. Every wrist correction is strict-ROM-clamped. | ||
| */ | ||
| export function alignFloorContacts(m, reaches, pins, groundLock = []) { | ||
| const contacts = collectFloorHandContacts(reaches, pins, groundLock); | ||
| let changed = false; | ||
| for (const [side, contact] of contacts) { | ||
| changed = contact.kind === "palm" | ||
| ? alignPalmNormal(m, side, contact.weight) || changed | ||
| : alignWristNormal(m, side, FIST_LOCAL_NORMAL, contact.weight) || changed; | ||
| } | ||
| if (groundLock.includes("hands") || groundLock.includes("hand_right")) { | ||
| sides.set("right", 1); | ||
| if (changed) | ||
| m.root.updateMatrixWorld(true); | ||
| } | ||
| /** Backwards-compatible name retained for eval/embedders; now handles fists too. */ | ||
| export function alignFloorPalms(m, reaches, pins, groundLock = []) { | ||
| alignFloorContacts(m, reaches, pins, groundLock); | ||
| } | ||
| /** | ||
| * Bone-origin target whose corresponding visible contact surface rests on y=0. | ||
| * Joint effectors (knee/elbow) use their local contact radius instead of the | ||
| * whole descendant subtree—otherwise a knee target incorrectly measures the | ||
| * shin/foot and folds the knee upward while still claiming floor contact. | ||
| */ | ||
| export function floorTargetForEffector(m, effectorName) { | ||
| const effector = m.bones.get(effectorBoneId(effectorName)); | ||
| if (!effector) | ||
| return null; | ||
| const p = effector.getWorldPosition(new THREE.Vector3()); | ||
| if (effectorName === "pelvis") { | ||
| p.y = pelvisFloorDrop(m); | ||
| return p; | ||
| } | ||
| for (const [side, weight] of sides) { | ||
| const wrist = m.bones.get(`wrist_${side}`); | ||
| if (!wrist?.parent) | ||
| continue; | ||
| const world = wrist.getWorldQuaternion(new THREE.Quaternion()); | ||
| const localNormal = side === "left" | ||
| ? new THREE.Vector3(1, 0, 0) | ||
| : new THREE.Vector3(-1, 0, 0); | ||
| const current = localNormal.applyQuaternion(world).normalize(); | ||
| const correction = new THREE.Quaternion().setFromUnitVectors(current, DOWN); | ||
| if (weight < 1) | ||
| correction.slerp(new THREE.Quaternion(), 1 - weight); | ||
| const desiredWorld = correction.multiply(world); | ||
| const parentWorld = wrist.parent.getWorldQuaternion(new THREE.Quaternion()); | ||
| wrist.quaternion.copy(parentWorld.invert().multiply(desiredWorld)); | ||
| if (effectorName.startsWith("knee_")) { | ||
| // Measure only the two rounded caps meeting at the knee. A subtree would | ||
| // wrongly include the whole shin/foot, while a fixed proxy radius misses | ||
| // the vertical extent as the bent limb changes orientation. | ||
| const side = effectorName.endsWith("_left") ? "left" : "right"; | ||
| p.y = jointSurfaceDrop(m, `knee_${side}`, m.contactSurfaces[`knee_${side}`], Math.max(m.collision.shin, m.collision.thigh)); | ||
| return p; | ||
| } | ||
| if (sides.size > 0) | ||
| m.root.updateMatrixWorld(true); | ||
| if (effectorName.startsWith("elbow_")) { | ||
| p.y = m.collision.arm; | ||
| return p; | ||
| } | ||
| // Fists are fixed knuckle contacts (e.g. superhero landing), not sliding | ||
| // open palms, so they deliberately retain their authored X/Z target. | ||
| const handMatch = /^(?:hand|wrist)_(left|right)$/.exec(effectorName); | ||
| if (handMatch) { | ||
| // A floor is an infinite contact plane, not a fixed X/Z landmark. Lowering | ||
| // a nearly straight arm naturally carries the hand a few centimetres away | ||
| // from the shoulder; targeting the wrist's old vertical projection makes | ||
| // safe elbow ROM miss Cobra's otherwise reachable landing point. | ||
| const shoulder = m.bones.get(`shoulder_${handMatch[1]}`); | ||
| if (shoulder) { | ||
| const shoulderPosition = shoulder.getWorldPosition(new THREE.Vector3()); | ||
| const outward = new THREE.Vector3(p.x - shoulderPosition.x, 0, p.z - shoulderPosition.z); | ||
| if (outward.lengthSq() > 1e-8) | ||
| p.add(outward.normalize().multiplyScalar(HAND_FLOOR_OUTSET)); | ||
| } | ||
| } | ||
| const box = new THREE.Box3().setFromObject(effector); | ||
| p.y = Number.isFinite(box.min.y) ? Math.max(0, p.y - box.min.y) : 0; | ||
| return p; | ||
| } | ||
| /** Signed height of an effector's actual contact surface above the floor. */ | ||
| export function floorContactHeight(m, effectorName) { | ||
| const effector = m.bones.get(effectorBoneId(effectorName)); | ||
| if (!effector) | ||
| return null; | ||
| const originY = effector.getWorldPosition(new THREE.Vector3()).y; | ||
| if (effectorName.startsWith("elbow_")) | ||
| return originY - m.collision.arm; | ||
| if (effectorName.startsWith("knee_")) { | ||
| const side = effectorName.endsWith("_left") ? "left" : "right"; | ||
| return originY - jointSurfaceDrop(m, `knee_${side}`, m.contactSurfaces[`knee_${side}`], Math.max(m.collision.shin, m.collision.thigh)); | ||
| } | ||
| if (effectorName === "pelvis") | ||
| return originY - pelvisFloorDrop(m); | ||
| const minY = new THREE.Box3().setFromObject(effector).min.y; | ||
| return Number.isFinite(minY) ? minY : null; | ||
| } | ||
| function jointSurfaceDrop(m, boneId, surfaces, fallback) { | ||
| const bone = m.bones.get(boneId); | ||
| if (!bone) | ||
| return fallback; | ||
| const originY = bone.getWorldPosition(new THREE.Vector3()).y; | ||
| let minY = Infinity; | ||
| for (const surface of surfaces) { | ||
| const y = new THREE.Box3().setFromObject(surface).min.y; | ||
| if (Number.isFinite(y)) | ||
| minY = Math.min(minY, y); | ||
| } | ||
| return Number.isFinite(minY) ? Math.max(0.001, originY - minY) : fallback; | ||
| } | ||
| /** Current trunk-surface drop below the pelvis origin (translation invariant). */ | ||
| function pelvisFloorDrop(m) { | ||
| const pelvis = m.bones.get("pelvis"); | ||
| if (!pelvis) | ||
| return Math.max(0.08, m.collision.torso * 0.85); | ||
| const originY = pelvis.getWorldPosition(new THREE.Vector3()).y; | ||
| let minY = Infinity; | ||
| for (const surface of m.contactSurfaces.pelvis) { | ||
| const y = new THREE.Box3().setFromObject(surface).min.y; | ||
| if (Number.isFinite(y)) | ||
| minY = Math.min(minY, y); | ||
| } | ||
| return Number.isFinite(minY) | ||
| ? Math.max(0.08, originY - minY) | ||
| : Math.max(0.08, m.collision.torso * 0.85); | ||
| } | ||
| const SOLE_LOCAL = new THREE.Vector3(0, -1, 0); | ||
@@ -80,5 +376,8 @@ /** Foot mesh-bottom height at/below which the sole is fully leveled (m). */ | ||
| const authoredX = TMP_EULER.x; | ||
| const authoredZ = TMP_EULER.z; | ||
| if (authoredX > PLANTARFLEX_SKIP) | ||
| if (authoredX > PLANTARFLEX_SKIP) { | ||
| // Preserve deliberate tiptoe pitch, but still assert the ankle's locked | ||
| // axial/frontal axes and configured plantarflexion ceiling. | ||
| changed = strictClampToRom(ankle, `ankle_${side}`) || changed; | ||
| continue; | ||
| } | ||
| // Planted-ness weight from the foot mesh bottom height: fully level when the | ||
@@ -100,13 +399,6 @@ // sole is on the floor, fading out as a swing foot lifts past PLANT_FADE. | ||
| const local = parentWorld.invert().multiply(desiredWorld); | ||
| // Clamp the corrected ankle to its ROM, widened to admit the authored angle | ||
| // so leveling can never push the joint past a healthy range. | ||
| const rom = eulerRomFor(`ankle_${side}`); | ||
| if (rom) { | ||
| TMP_EULER.setFromQuaternion(local, "XYZ"); | ||
| const cx = THREE.MathUtils.clamp(TMP_EULER.x, Math.min(rom.x.min * DEG, authoredX), Math.max(rom.x.max * DEG, authoredX)); | ||
| const cz = THREE.MathUtils.clamp(TMP_EULER.z, Math.min(rom.z.min * DEG, authoredZ), Math.max(rom.z.max * DEG, authoredZ)); | ||
| TMP_EULER.set(cx, TMP_EULER.y, cz, "XYZ"); | ||
| local.setFromEuler(TMP_EULER); | ||
| } | ||
| ankle.quaternion.copy(local); | ||
| // Clamp X/Y/Z strictly. In particular, ankle Y/Z are locked axes; leaving | ||
| // either component from the world-space correction created twisted soles. | ||
| strictClampToRom(ankle, `ankle_${side}`); | ||
| changed = true; | ||
@@ -118,7 +410,91 @@ } | ||
| /** Finger curl (radians about the knuckle X axis) that wraps a gripping hand. */ | ||
| export const FINGER_CURL = 1.35; | ||
| export const FINGER_CURL = -1.35; | ||
| /** Thumb opposition curl (radians) toward the fingers. */ | ||
| export const THUMB_CURL = 0.9; | ||
| export const THUMB_CURL = -0.9; | ||
| /** Sideways thumb opposition kept inside the thumb's adduction ROM. */ | ||
| export const THUMB_OPPOSE = 0.5; | ||
| /** Closed-fist finger curl, still inside the 100deg finger-flexion limit. */ | ||
| export const FIST_CURL = -1.5; | ||
| export const FIST_THUMB_CURL = -1.15; | ||
| export const FIST_THUMB_OPPOSE = 0.45; | ||
| const FINGERS = ["index", "middle", "ring", "pinky"]; | ||
| /** True for the parallel-rail anchors belonging to the dip-bars prop. */ | ||
| export function isDipBarGrip(anchor) { | ||
| return anchor === "bars" || anchor.startsWith("bars_"); | ||
| } | ||
| /** | ||
| * Establish a deterministic dip-bar forearm frame before body translation/IK. | ||
| * Removing inherited elbow axial twist makes the palm face available for the | ||
| * downward support contact instead of leaving each hand turned toward a thigh. | ||
| */ | ||
| export function prepareGripFrames(m, grips) { | ||
| let changed = false; | ||
| for (const grip of grips) { | ||
| if (!isDipBarGrip(grip.anchor)) | ||
| continue; | ||
| const match = /_(left|right)$/.exec(grip.effector); | ||
| if (!match) | ||
| continue; | ||
| const side = match[1]; | ||
| const elbowId = `elbow_${side}`; | ||
| const elbow = m.bones.get(elbowId); | ||
| if (!elbow) | ||
| continue; | ||
| CONTACT_EULER.setFromQuaternion(elbow.quaternion, "XYZ"); | ||
| CONTACT_EULER.y = 0; | ||
| elbow.quaternion.setFromEuler(CONTACT_EULER); | ||
| strictClampToRom(elbow, elbowId); | ||
| changed = true; | ||
| } | ||
| if (changed) | ||
| m.root.updateMatrixWorld(true); | ||
| } | ||
| /** | ||
| * Finish the stable dip-bar frame after IK: the flattened palm presses down on | ||
| * the rail while wrist flexion/extension remains strictly ROM-safe. | ||
| */ | ||
| export function alignGripFrames(m, grips) { | ||
| let changed = false; | ||
| for (const grip of grips) { | ||
| if (!isDipBarGrip(grip.anchor)) | ||
| continue; | ||
| const match = /_(left|right)$/.exec(grip.effector); | ||
| if (!match) | ||
| continue; | ||
| changed = alignWristNormal(m, match[1], PALM_LOCAL_NORMAL, 1) || changed; | ||
| } | ||
| if (changed) | ||
| m.root.updateMatrixWorld(true); | ||
| } | ||
| /** | ||
| * Close semantic fist effectors without overwriting explicitly authored digit | ||
| * bones. Wrist/contact corrections never touch these locals, so the curl is | ||
| * preserved while the knuckles are oriented onto a target. | ||
| */ | ||
| export function formFists(m, sides, authoredFingers = new Set()) { | ||
| let changed = false; | ||
| for (const side of sides) { | ||
| for (const finger of FINGERS) { | ||
| const id = `${finger}_${side}`; | ||
| if (authoredFingers.has(id)) | ||
| continue; | ||
| const bone = m.bones.get(id); | ||
| if (!bone) | ||
| continue; | ||
| bone.rotation.set(FIST_CURL, 0, 0); | ||
| changed = true; | ||
| } | ||
| const thumbId = `thumb_${side}`; | ||
| if (!authoredFingers.has(thumbId)) { | ||
| const thumb = m.bones.get(thumbId); | ||
| if (thumb) { | ||
| thumb.rotation.set(FIST_THUMB_CURL, 0, side === "left" ? -FIST_THUMB_OPPOSE : FIST_THUMB_OPPOSE); | ||
| changed = true; | ||
| } | ||
| } | ||
| } | ||
| if (changed) | ||
| m.root.updateMatrixWorld(true); | ||
| } | ||
| /** | ||
| * Curl the fingers of each gripping hand around the bar. Grips are per-side | ||
@@ -145,3 +521,3 @@ * after resolution (`hand_left` / `hand_right`), so the side comes straight off | ||
| // Thumb wraps from the opposite side: curl plus a sideways opposition. | ||
| thumb.rotation.set(THUMB_CURL, 0, side === "left" ? -THUMB_CURL : THUMB_CURL); | ||
| thumb.rotation.set(THUMB_CURL, 0, side === "left" ? -THUMB_OPPOSE : THUMB_OPPOSE); | ||
| changed = true; | ||
@@ -155,9 +531,11 @@ } | ||
| * Relaxed resting finger curl (radians) for an idle hand in the air. A truly | ||
| * relaxed hand is not flat: the fingers settle into a soft inward hook (~30°), | ||
| * relaxed hand is not flat: the fingers settle into a soft inward hook (~18°), | ||
| * which reads as a natural cupped hand instead of a stiff splayed palm. | ||
| */ | ||
| export const REST_CURL = 0.55; | ||
| /** Slight finger adduction (radians) drawing splayed digits toward the middle | ||
| * finger, so a relaxed hand closes softly rather than fanning like jazz-hands. */ | ||
| export const REST_ADDUCT = 0.12; | ||
| export const REST_CURL = -0.32; | ||
| /** Gentle thumb opposition for a relaxed hand, within adduction ROM. */ | ||
| export const REST_THUMB_OPPOSE = 0.26; | ||
| /** Finger bones are intentionally single-DOF; their authored rest offsets | ||
| * provide natural spacing without inventing an out-of-ROM lateral rotation. */ | ||
| export const REST_ADDUCT = 0; | ||
| /** | ||
@@ -168,3 +546,3 @@ * Near-flat curl (radians) for a hand pressed onto the floor (plank, push-up, | ||
| */ | ||
| export const FLOOR_CURL = 0.06; | ||
| export const FLOOR_CURL = -0.06; | ||
| /** | ||
@@ -211,3 +589,3 @@ * Give idle hands a natural relaxed shape instead of a flat splayed palm. | ||
| const thumbCurl = planted ? FLOOR_CURL : REST_CURL * 0.6; | ||
| const thumbOppose = planted ? 0 : REST_CURL; | ||
| const thumbOppose = planted ? 0 : REST_THUMB_OPPOSE; | ||
| thumb.rotation.set(thumbCurl, 0, side === "left" ? -thumbOppose : thumbOppose); | ||
@@ -230,8 +608,8 @@ changed = true; | ||
| * animates the hips (walk, march, box-step) gets natural arm swing for free. | ||
| * Skips shoulders the document authors and any gripping side. | ||
| * Skips shoulders the document authors and any contact-constrained hand side. | ||
| */ | ||
| export function swingArms(m, authoredShoulders, gripSides) { | ||
| export function swingArms(m, authoredShoulders, protectedSides) { | ||
| let changed = false; | ||
| for (const side of ["left", "right"]) { | ||
| if (gripSides.has(side)) | ||
| if (protectedSides.has(side)) | ||
| continue; | ||
@@ -238,0 +616,0 @@ const shoulderId = `shoulder_${side}`; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Self-collision resolution: stop limbs from passing through the body. | ||
| * Bounded self-penetration correction for selected limb/body samples. | ||
| * | ||
@@ -9,3 +9,4 @@ * Authored poses are pure per-joint rotations, so nothing prevents a biceps | ||
| * forearm/hand and each lower leg, and when a sample sits inside an obstacle | ||
| * it rotates the limb's proximal joint (shoulder / hip) just enough to clear. | ||
| * it rotates the limb's proximal joint (shoulder / hip) toward clearance. It | ||
| * is not a comprehensive collision detector or physics solver. | ||
| * | ||
@@ -18,4 +19,4 @@ * Principles: | ||
| * animations stay smooth (no frame-to-frame jitter). | ||
| * - **Safe**: each adjusted joint is clamped back into its healthy ROM | ||
| * (widened to admit the authored angle), the same guarantee reach-IK gives. | ||
| * - **Bounded**: each adjusted joint is clamped back into its configured ROM | ||
| * (widened to admit the authored angle), matching reach-IK's constraint. | ||
| * | ||
@@ -22,0 +23,0 @@ * Runs on the driver skeleton right after FK sampling, before ground-lock, in |
| /** | ||
| * Self-collision resolution: stop limbs from passing through the body. | ||
| * Bounded self-penetration correction for selected limb/body samples. | ||
| * | ||
@@ -9,3 +9,4 @@ * Authored poses are pure per-joint rotations, so nothing prevents a biceps | ||
| * forearm/hand and each lower leg, and when a sample sits inside an obstacle | ||
| * it rotates the limb's proximal joint (shoulder / hip) just enough to clear. | ||
| * it rotates the limb's proximal joint (shoulder / hip) toward clearance. It | ||
| * is not a comprehensive collision detector or physics solver. | ||
| * | ||
@@ -18,4 +19,4 @@ * Principles: | ||
| * animations stay smooth (no frame-to-frame jitter). | ||
| * - **Safe**: each adjusted joint is clamped back into its healthy ROM | ||
| * (widened to admit the authored angle), the same guarantee reach-IK gives. | ||
| * - **Bounded**: each adjusted joint is clamped back into its configured ROM | ||
| * (widened to admit the authored angle), matching reach-IK's constraint. | ||
| * | ||
@@ -22,0 +23,0 @@ * Runs on the driver skeleton right after FK sampling, before ground-lock, in |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"depenetrate.js","sourceRoot":"","sources":["../src/depenetrate.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"depenetrate.js","sourceRoot":"","sources":["../src/depenetrate.ts"],"names":[],"mappings":"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"} |
+17
-2
@@ -34,2 +34,3 @@ /** | ||
| import * as THREE from "three"; | ||
| import { floorTargetForEffector } from "./contacts.js"; | ||
| const ROOT_X = new THREE.Vector3(1, 0, 0); | ||
@@ -113,8 +114,22 @@ /** | ||
| // plank). The final bbox correction accounts for the support mesh radius. | ||
| const upperSurfaceError = () => { | ||
| let sum = 0; | ||
| let count = 0; | ||
| for (const id of upperSupports) { | ||
| const node = m.bones.get(id); | ||
| if (!node) | ||
| continue; | ||
| const semantic = id.replace("wrist_", "hand_"); | ||
| const targetY = floorTargetForEffector(m, semantic)?.y ?? 0; | ||
| sum += node.getWorldPosition(new THREE.Vector3()).y - targetY; | ||
| count++; | ||
| } | ||
| return count > 0 ? sum / count : 0; | ||
| }; | ||
| for (let i = 0; i < 8; i++) { | ||
| const y0 = avgWorld(m, upperSupports).y; | ||
| const y0 = upperSurfaceError(); | ||
| if (Math.abs(y0) < 0.004) | ||
| break; | ||
| rotateRootAboutPivot(m, pivot, 0.01); | ||
| const y1 = avgWorld(m, upperSupports).y; | ||
| const y1 = upperSurfaceError(); | ||
| rotateRootAboutPivot(m, pivot, -0.01); | ||
@@ -121,0 +136,0 @@ const deriv = (y1 - y0) / 0.01; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"groundlock.js","sourceRoot":"","sources":["../src/groundlock.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"groundlock.js","sourceRoot":"","sources":["../src/groundlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,iBAAiB,CAAC,CAAY,EAAE,MAAgB;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,yDAAyD;AACzD,SAAS,QAAQ,CAAC,CAAY,EAAE,GAAa;IAC3C,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,CAAY,EAAE,KAAoB,EAAE,KAAa;IAC7E,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,wEAAwE;AACxE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAY,EACZ,MAAgB,EAChB,OAA4C;IAE5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,OAAO,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,wDAAwD;QACxD,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,iBAAiB,GAAG,GAAW,EAAE;YACrC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5D,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;gBAC9D,KAAK,EAAE,CAAC;YACV,CAAC;YACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK;gBAAE,MAAM;YAChC,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;YAC/B,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;gBAAE,MAAM;YAClC,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,mEAAmE;QACnE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,wEAAwE;QACxE,kEAAkE;QAClE,uEAAuE;QACvE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO;YAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,CAAY,EAAE,OAAiB;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACnC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAY,EAAE,IAAc;IACnD,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,CAAY,EACZ,IAAc,EACd,OAA2C;IAE3C,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;YAAE,SAAS;QAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;YAAE,SAAS,CAAC,aAAa;QACrF,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACzB,EAAE,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,EAAE,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,EAAE,CAAC;IACN,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"} |
+3
-2
@@ -10,4 +10,5 @@ /** | ||
| * box, see posecode-parser's `eulerRomFor`); each iteration clamps the joint back | ||
| * inside its box, so a solved pose can never exceed the healthy ROM any more | ||
| * than an authored angle can. | ||
| * inside its box, so a solved joint cannot exceed the configured ROM any more | ||
| * than an authored joint can. This is a mechanical constraint, not a safety | ||
| * or clinical assessment of the complete movement. | ||
| */ | ||
@@ -14,0 +15,0 @@ import * as THREE from "three"; |
+3
-2
@@ -10,4 +10,5 @@ /** | ||
| * box, see posecode-parser's `eulerRomFor`); each iteration clamps the joint back | ||
| * inside its box, so a solved pose can never exceed the healthy ROM any more | ||
| * than an authored angle can. | ||
| * inside its box, so a solved joint cannot exceed the configured ROM any more | ||
| * than an authored joint can. This is a mechanical constraint, not a safety | ||
| * or clinical assessment of the complete movement. | ||
| */ | ||
@@ -14,0 +15,0 @@ import * as THREE from "three"; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ik.js","sourceRoot":"","sources":["../src/ik.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0B/B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACtC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACvC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACrC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;AACxC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;AAC/C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,IAAI;IACxE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;IAElD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAClC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEnC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1C,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI;gBAAE,SAAS;YAE9E,UAAU,CAAC,SAAS,EAAE,CAAC;YACvB,aAAa,CAAC,SAAS,EAAE,CAAC;YAE1B,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI;gBAAE,SAAS;YAE3B,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACjD,IAAI,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI;gBAAE,SAAS;YACzC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAErB,4CAA4C;YAC5C,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3C,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,CAChD,eAAe,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CACjC,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5E,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACxC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS;YAAE,MAAM;IAC3D,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,KAAqB,EAAE,MAAsC;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;QAAE,OAAO;IACxE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9B,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,OAAO,GAAG,CAAC,MAAM;QAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC"} | ||
| {"version":3,"file":"ik.js","sourceRoot":"","sources":["../src/ik.ts"],"names":[],"mappings":"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"} |
+7
-1
@@ -14,3 +14,6 @@ /** | ||
| import { type PhaseSegment } from "./timeline.js"; | ||
| import { type ReachResidual } from "./reach.js"; | ||
| export interface ViewerPhaseInfo { | ||
| /** Zero-based real phase index, or -1 while blending through loop reset. */ | ||
| phaseIndex: number; | ||
| phaseName: string; | ||
@@ -40,2 +43,4 @@ cue?: string; | ||
| getTimeline(): TimelineInfo | null; | ||
| /** Diagnostics for every active reach, including missing/unreachable targets. */ | ||
| getReachResiduals(): readonly ReachResidual[]; | ||
| /** Precise visible world bounds; intended for audits and deterministic export. */ | ||
@@ -94,2 +99,3 @@ getVisibleBounds(): THREE.Box3; | ||
| export { solveCCD, type IkChain, type JointLimits } from "./ik.js"; | ||
| export { EFFECTOR_BONE, REACH_TOLERANCE, effectorBoneId, reachChain, solveReachToPoint, missingReachTarget, type ReachResidual, type ReachResidualReason, } from "./reach.js"; | ||
| export { buildProps, type PropScene, type FaceCollider, type BlockedPart } from "./props.js"; | ||
@@ -100,3 +106,3 @@ export { resolvePropContacts, propContactExemptions, type PropContactExemptions } from "./propcontact.js"; | ||
| export { depenetrate } from "./depenetrate.js"; | ||
| export { alignFloorPalms, levelPlantedFeet } from "./contacts.js"; | ||
| export { PALM_LOCAL_NORMAL, FIST_LOCAL_NORMAL, alignFloorContacts, alignFloorPalms, prepareGripFrames, alignGripFrames, isDipBarGrip, floorTargetForEffector, floorContactHeight, enforceContactRom, formFists, levelPlantedFeet, wrapGrip, } from "./contacts.js"; | ||
| export type { PhaseSegment } from "./timeline.js"; |
+259
-124
@@ -14,7 +14,5 @@ /** | ||
| import { RoomEnvironment } from "three/examples/jsm/environments/RoomEnvironment.js"; | ||
| import { eulerRomFor } from "posecode-parser"; | ||
| import { buildMannequin } from "./mannequin.js"; | ||
| import { applyGroundLock as applyGroundLockTo, groundFigure as groundFigureOf } from "./groundlock.js"; | ||
| import { buildTimeline, } from "./timeline.js"; | ||
| import { solveCCD } from "./ik.js"; | ||
| import { buildProps } from "./props.js"; | ||
@@ -25,3 +23,5 @@ import { loadCharacter } from "./character.js"; | ||
| import { resolvePropContacts, propContactExemptions } from "./propcontact.js"; | ||
| import { alignFloorPalms, levelPlantedFeet, wrapGrip, relaxHands, swingArms, aimHead } from "./contacts.js"; | ||
| import { alignFloorContacts, alignGripFrames, enforceContactRom, floorContactHeight, floorTargetForEffector, formFists, isDipBarGrip, levelPlantedFeet, prepareGripFrames, wrapGrip, relaxHands, swingArms, aimHead, } from "./contacts.js"; | ||
| import { REACH_TOLERANCE, effectorBoneId, missingReachTarget, reachChain, solveReachToPoint, } from "./reach.js"; | ||
| import { solveCCD } from "./ik.js"; | ||
| const DEG = Math.PI / 180; | ||
@@ -200,2 +200,6 @@ export function createViewer(canvas, opts = {}) { | ||
| let lastIR = null; | ||
| // Rebuilt on every solved frame. Missing target names and unreachable | ||
| // effectors remain visible here instead of disappearing behind `continue`. | ||
| let reachResiduals = []; | ||
| let reachResidualTargets = []; | ||
| let groundTargets = new Map(); | ||
@@ -219,4 +223,9 @@ const segmentStartEffectors = []; | ||
| let loopCb = () => { }; | ||
| let lastPhaseName = ""; | ||
| let lastPhaseIndex = -2; | ||
| let activeSegIndex = 0; | ||
| // `load()` briefly solves each real phase endpoint to seed any floor pin | ||
| // introduced by the following phase from the *fully solved* prior pose. | ||
| // Keep those internal solves out of callbacks, character/mocap state, and | ||
| // the canvas; they are deterministic anchor preparation, not visible frames. | ||
| let precomputingAnchors = false; | ||
| // Camera easing targets. | ||
@@ -282,66 +291,6 @@ const desiredTarget = new THREE.Vector3(0, 0.9, 0); | ||
| } | ||
| // Friendly DSL effector aliases → the distal bone whose world position is | ||
| // driven to the reach target. | ||
| const EFFECTOR_BONE = { | ||
| hand_left: "wrist_left", | ||
| hand_right: "wrist_right", | ||
| foot_left: "ankle_left", | ||
| foot_right: "ankle_right", | ||
| }; | ||
| /** | ||
| * The rotatable joint chain (proximal → distal) that moves an effector, with | ||
| * each joint's ROM expressed as local Euler limits for the constrained solve. | ||
| * A limit box is widened to include the joint's CURRENT (authored FK) angle: | ||
| * the timeline pose is already ROM-clamped in author terms, but rig mechanics | ||
| * such as the hip-hinge counter-rotation can place a bone outside its raw box | ||
| * on purpose: IK must never fight the authored pose, only be prevented from | ||
| * pushing beyond it. | ||
| */ | ||
| function reachChain(effectorBone) { | ||
| const side = effectorBone.endsWith("_left") ? "left" : "right"; | ||
| const ids = effectorBone.startsWith("wrist") | ||
| ? [`shoulder_${side}`, `elbow_${side}`] | ||
| : effectorBone.startsWith("elbow") | ||
| ? [`shoulder_${side}`] | ||
| : effectorBone.startsWith("ankle") | ||
| ? [`hip_${side}`, `knee_${side}`] | ||
| : []; | ||
| const joints = []; | ||
| const limits = []; | ||
| for (const id of ids) { | ||
| const node = mannequin.bones.get(id); | ||
| if (!node) | ||
| continue; | ||
| joints.push(node); | ||
| limits.push(jointLimitsFor(id, node)); | ||
| } | ||
| return { joints, limits }; | ||
| } | ||
| const REACH_EULER = new THREE.Euler(); | ||
| /** A bone's ROM as radian Euler limits, widened to admit its current pose. */ | ||
| function jointLimitsFor(boneId, node) { | ||
| const rom = eulerRomFor(boneId); | ||
| if (!rom) | ||
| return null; | ||
| REACH_EULER.setFromQuaternion(node.quaternion, "XYZ"); | ||
| return { | ||
| x: widen(rom.x.min * DEG, rom.x.max * DEG, REACH_EULER.x), | ||
| y: widen(rom.y.min * DEG, rom.y.max * DEG, REACH_EULER.y), | ||
| z: widen(rom.z.min * DEG, rom.z.max * DEG, REACH_EULER.z), | ||
| }; | ||
| } | ||
| function widen(min, max, current) { | ||
| return [Math.min(min, current), Math.max(max, current)]; | ||
| } | ||
| /** Resolve a reach target name to a world point: floor / prop anchor / landmark. */ | ||
| function resolveReachTarget(target, effector) { | ||
| if (target === "floor") { | ||
| // Rest the effector's MESH on the floor, not its bone origin: the hand | ||
| // mesh extends below the wrist bone, so a bone target of y=0 would sink | ||
| // the palm and force the floor safety clamp to lift the whole body. | ||
| const p = effector.getWorldPosition(new THREE.Vector3()); | ||
| const box = new THREE.Box3().setFromObject(effector); | ||
| p.y = Number.isFinite(box.min.y) ? Math.max(0, p.y - box.min.y) : 0; | ||
| return p; | ||
| } | ||
| function resolveReachTarget(target, effectorName) { | ||
| if (target === "floor") | ||
| return floorTargetForEffector(mannequin, effectorName); | ||
| const anchor = propAnchors.get(target); | ||
@@ -364,22 +313,57 @@ if (anchor) | ||
| function applyReaches(reaches) { | ||
| reachResiduals = []; | ||
| reachResidualTargets = []; | ||
| for (const r of reaches) { | ||
| const effectorBone = EFFECTOR_BONE[r.effector] ?? r.effector; | ||
| const effectorBone = effectorBoneId(r.effector); | ||
| const effector = mannequin.bones.get(effectorBone); | ||
| if (!effector) | ||
| if (!effector) { | ||
| reachResiduals.push(solveReachToPoint(mannequin, r.effector, r.target, new THREE.Vector3(), r.weight)); | ||
| reachResidualTargets.push(null); | ||
| continue; | ||
| const target = resolveReachTarget(r.target, effector); | ||
| if (!target) | ||
| } | ||
| const target = resolveReachTarget(r.target, r.effector); | ||
| if (!target) { | ||
| reachResiduals.push(missingReachTarget(r.effector, r.target, r.weight)); | ||
| reachResidualTargets.push(null); | ||
| continue; | ||
| const { joints, limits } = reachChain(effectorBone); | ||
| if (joints.length === 0) | ||
| continue; | ||
| const before = joints.map((joint) => joint.quaternion.clone()); | ||
| solveCCD({ joints, limits, effector, target }, 12); | ||
| for (let i = 0; i < joints.length; i++) { | ||
| const solved = joints[i].quaternion.clone(); | ||
| joints[i].quaternion.slerpQuaternions(before[i], solved, r.weight); | ||
| } | ||
| mannequin.root.updateMatrixWorld(true); | ||
| reachResiduals.push(solveReachToPoint(mannequin, r.effector, r.target, target, r.weight)); | ||
| reachResidualTargets.push(r.target === "floor" | ||
| ? { kind: "floor", point: target.clone() } | ||
| : mannequin.bones.has(r.target) | ||
| ? { kind: "landmark", boneId: r.target } | ||
| : { kind: "fixed", point: target.clone() }); | ||
| } | ||
| } | ||
| /** Re-measure after later contacts/root grounding so diagnostics are final. */ | ||
| function refreshReachResiduals() { | ||
| reachResiduals = reachResiduals.map((residual, index) => { | ||
| const targetRef = reachResidualTargets[index]; | ||
| if (!targetRef || residual.distance === null) | ||
| return residual; | ||
| const effector = mannequin.bones.get(effectorBoneId(residual.effector)); | ||
| if (!effector) | ||
| return residual; | ||
| // Body landmarks and contact surfaces can move during later root/contact | ||
| // reconciliation. Re-read their final geometry while preserving a floor | ||
| // contact's solved world-space X/Z anchor. | ||
| const point = effector.getWorldPosition(new THREE.Vector3()); | ||
| let target; | ||
| if (targetRef.kind === "fixed") { | ||
| target = targetRef.point; | ||
| } | ||
| else if (targetRef.kind === "landmark") { | ||
| target = mannequin.bones.get(targetRef.boneId)?.getWorldPosition(new THREE.Vector3()); | ||
| } | ||
| else { | ||
| const height = floorContactHeight(mannequin, residual.effector); | ||
| if (height !== null) | ||
| target = targetRef.point.clone().setY(point.y - height); | ||
| } | ||
| if (!target) | ||
| return residual; | ||
| const distance = point.distanceTo(target); | ||
| return { ...residual, distance, reached: distance <= REACH_TOLERANCE }; | ||
| }); | ||
| } | ||
| /** | ||
@@ -396,6 +380,8 @@ * Contact pins: translate the WHOLE figure so each pinned effector sits on its | ||
| return; | ||
| const dipBarPins = pins.filter((pin) => isDipBarGrip(pin.anchor)); | ||
| prepareGripFrames(mannequin, dipBarPins); | ||
| const delta = new THREE.Vector3(); | ||
| let n = 0; | ||
| for (const p of pins) { | ||
| const effectorBone = EFFECTOR_BONE[p.effector] ?? p.effector; | ||
| const effectorBone = effectorBoneId(p.effector); | ||
| const effector = mannequin.bones.get(effectorBone); | ||
@@ -409,12 +395,10 @@ if (!effector) | ||
| anchor = startPos.clone(); | ||
| const isFoot = effectorBone.startsWith("ankle") || effectorBone.startsWith("foot"); | ||
| const drop = isFoot ? (character?.proportions.soleDrop ?? 0.042) : 0; | ||
| anchor.y = drop; | ||
| anchor.y = floorTargetForEffector(mannequin, p.effector)?.y ?? 0; | ||
| } | ||
| else { | ||
| anchor = resolveReachTarget(p.anchor, effector); | ||
| anchor = resolveReachTarget(p.anchor, p.effector); | ||
| } | ||
| } | ||
| else { | ||
| anchor = resolveReachTarget(p.anchor, effector); | ||
| anchor = resolveReachTarget(p.anchor, p.effector); | ||
| } | ||
@@ -430,2 +414,3 @@ if (!anchor) | ||
| } | ||
| alignGripFrames(mannequin, dipBarPins); | ||
| } | ||
@@ -443,4 +428,7 @@ /** | ||
| return; | ||
| const resolveGrip = (anchor, effector) => resolveReachTarget(anchor, effector) ?? | ||
| resolveReachTarget(anchor.replace(/_(left|right)$/, ""), effector); | ||
| // Dip support begins from a deterministic untwisted forearm frame; doing | ||
| // this before translation/IK means the later wrist target remains exact. | ||
| prepareGripFrames(mannequin, grips); | ||
| const resolveGrip = (anchor, effectorName) => resolveReachTarget(anchor, effectorName) ?? | ||
| resolveReachTarget(anchor.replace(/_(left|right)$/, ""), effectorName); | ||
| // 1. Body translate (the vertical pull). | ||
@@ -450,7 +438,7 @@ const delta = new THREE.Vector3(); | ||
| for (const g of grips) { | ||
| const effectorBone = EFFECTOR_BONE[g.effector] ?? g.effector; | ||
| const effectorBone = effectorBoneId(g.effector); | ||
| const effector = mannequin.bones.get(effectorBone); | ||
| if (!effector) | ||
| continue; | ||
| const target = resolveGrip(g.anchor, effector); | ||
| const target = resolveGrip(g.anchor, g.effector); | ||
| if (!target) | ||
@@ -467,16 +455,27 @@ continue; | ||
| for (const g of grips) { | ||
| const effectorBone = EFFECTOR_BONE[g.effector] ?? g.effector; | ||
| const effectorBone = effectorBoneId(g.effector); | ||
| const effector = mannequin.bones.get(effectorBone); | ||
| if (!effector) | ||
| continue; | ||
| const target = resolveGrip(g.anchor, effector); | ||
| const target = resolveGrip(g.anchor, g.effector); | ||
| if (!target) | ||
| continue; | ||
| const { joints, limits } = reachChain(effectorBone); | ||
| const { joints, limits } = reachChain(mannequin, g.effector); | ||
| if (joints.length === 0) | ||
| continue; | ||
| if (isDipBarGrip(g.anchor)) { | ||
| // Keep forearm twist stable while CCD positions the hand. Otherwise | ||
| // equally-valid axial solutions flip palms between/away from the rails. | ||
| for (let i = 0; i < joints.length; i++) { | ||
| if (!joints[i].name.startsWith("elbow_")) | ||
| continue; | ||
| const limit = limits[i]; | ||
| if (limit) | ||
| limits[i] = { ...limit, y: [0, 0] }; | ||
| } | ||
| } | ||
| solveCCD({ joints, limits, effector, target }, 12); | ||
| } | ||
| // 3. Finger wrap. Wrist orientation remains inherited until the semantic | ||
| // contact-frame solver can account for this character's calibrated axes. | ||
| // 3. Stable contact frame followed by an anatomically signed finger wrap. | ||
| alignGripFrames(mannequin, grips); | ||
| wrapGrip(mannequin, grips); | ||
@@ -494,8 +493,8 @@ } | ||
| const collect = (effectorName, anchorName) => { | ||
| const bone = EFFECTOR_BONE[effectorName] ?? effectorName; | ||
| const bone = effectorBoneId(effectorName); | ||
| const eff = mannequin.bones.get(bone); | ||
| if (!eff) | ||
| return; | ||
| const t = resolveReachTarget(anchorName, eff) ?? | ||
| resolveReachTarget(anchorName.replace(/_(left|right)$/, ""), eff); | ||
| const t = resolveReachTarget(anchorName, effectorName) ?? | ||
| resolveReachTarget(anchorName.replace(/_(left|right)$/, ""), effectorName); | ||
| if (t) | ||
@@ -551,14 +550,7 @@ pts.push(t); | ||
| solvedInfo = info; | ||
| activeSegIndex = 0; | ||
| const tt = timeline.duration > 0 ? ((time % timeline.duration) + timeline.duration) % timeline.duration : 0; | ||
| for (let k = 0; k < timeline.segments.length; k++) { | ||
| const seg = timeline.segments[k]; | ||
| if (tt >= seg.start && tt <= seg.end) { | ||
| activeSegIndex = k; | ||
| break; | ||
| } | ||
| } | ||
| activeSegIndex = info.phaseIndex >= 0 ? info.phaseIndex : 0; | ||
| // Life layer rides on wall-clock time (not timeline time) so the figure | ||
| // keeps breathing and blinking while paused or scrubbing. | ||
| applyLife(performance.now() / 1000); | ||
| if (!precomputingAnchors) | ||
| applyLife(performance.now() / 1000); | ||
| // Recompute root contact from the grounded base each frame (no drift). | ||
@@ -579,2 +571,18 @@ mannequin.root.position.copy(baseRootPos); | ||
| mannequin.root.updateMatrixWorld(true); | ||
| // A semantic fist is geometry as well as an endpoint name. Close any | ||
| // unauthored digits before floor target/bounds resolution; authored curl | ||
| // remains untouched and survives the later wrist contact correction. | ||
| const fistSides = fistSidesOf(info.reaches, info.pins, info.groundLock); | ||
| const activeGripSides = gripSidesOf(info.grips); | ||
| const constrainedHandSides = contactHandSidesOf(info.reaches, info.pins, info.grips, info.groundLock); | ||
| const palmFloorSides = floorHandSidesOf(info.reaches, info.pins, info.groundLock); | ||
| formFists(mannequin, fistSides, authoredFingers); | ||
| // Finger surface shape is part of a floor target too. Flatten palms (and | ||
| // relax free hands) before measuring their subtree bounds; fist/grip | ||
| // sides are protected from this pass. | ||
| relaxHands(mannequin, unionHandSides(activeGripSides, fistSides), authoredFingers, palmFloorSides); | ||
| // Establish the intended palm/knuckle surface BEFORE any floor target is | ||
| // measured. The post-IK pass below restores the same frame after parent | ||
| // joints move, keeping contact-surface height consistent at both ends. | ||
| alignFloorContacts(mannequin, info.reaches, info.pins, info.groundLock); | ||
| // Self-collision: nudge limbs out of the body BEFORE contact solving so | ||
@@ -603,3 +611,3 @@ // ground-lock and pins see the corrected pose (same order as load()). | ||
| applyReaches(info.reaches); | ||
| alignFloorPalms(mannequin, info.reaches, info.pins, info.groundLock); | ||
| alignFloorContacts(mannequin, info.reaches, info.pins, info.groundLock); | ||
| // Plantigrade correction: keep planted soles flat to the floor so grounded | ||
@@ -610,7 +618,21 @@ // lower-body poses (squat, lunge, deadlift) don't balance on the toes. | ||
| // L4.2 aliveness: contralateral arm swing during locomotion (free arms only). | ||
| swingArms(mannequin, authoredShoulders, gripSidesOf(info.grips)); | ||
| // L4.1 aliveness: relax idle hands into a natural curl (grips still wrap). | ||
| relaxHands(mannequin, gripSidesOf(info.grips), authoredFingers, floorHandSidesOf(info.reaches, info.pins, info.groundLock)); | ||
| swingArms(mannequin, authoredShoulders, constrainedHandSides); | ||
| // L4.3 aliveness: turn the head toward the active contact (bar / floor reach). | ||
| applyLookAt(info); | ||
| // Final renderer-authored contact mutations stay inside strict terminal | ||
| // ROM (notably wrist and every ankle axis, including locked ankle Y/Z). | ||
| enforceContactRom(mannequin); | ||
| // A floor reach can change a limb after floating-root ground-lock has | ||
| // placed the existing supports. Reconcile once more in constraint order: | ||
| // replant the root support, then re-solve the independent limbs. Without | ||
| // this bounded refinement, the global floor safety clamp could rescue a | ||
| // reached knee/hand by lifting the declared planted foot several cm. | ||
| if (info.groundLock.length > 0 && info.reaches.length > 0) { | ||
| for (let refinement = 0; refinement < 3; refinement++) { | ||
| applyGroundLockTo(mannequin, info.groundLock, frameAnchors(info.rootYaw, info.rootOffset)); | ||
| applyReaches(info.reaches); | ||
| alignFloorContacts(mannequin, info.reaches, info.pins, info.groundLock); | ||
| enforceContactRom(mannequin); | ||
| } | ||
| } | ||
| // Safety net: reconcile the fully-solved pose with the floor. | ||
@@ -641,7 +663,14 @@ // | ||
| } | ||
| if (info.phaseName !== lastPhaseName) { | ||
| lastPhaseName = info.phaseName; | ||
| phaseCb({ phaseName: info.phaseName, ...(info.cue ? { cue: info.cue } : {}) }); | ||
| refreshReachResiduals(); | ||
| if (!precomputingAnchors && info.phaseIndex !== lastPhaseIndex) { | ||
| lastPhaseIndex = info.phaseIndex; | ||
| phaseCb({ | ||
| phaseIndex: info.phaseIndex, | ||
| phaseName: info.phaseName, | ||
| ...(info.cue ? { cue: info.cue } : {}), | ||
| }); | ||
| } | ||
| } | ||
| if (precomputingAnchors) | ||
| return; | ||
| // Mirror the fully-solved driver pose onto the skinned character. | ||
@@ -714,3 +743,13 @@ character?.sync(mannequin); | ||
| time = 0; | ||
| lastPhaseName = ""; | ||
| lastPhaseIndex = -2; | ||
| reachResiduals = []; | ||
| reachResidualTargets = []; | ||
| authoredFingers = new Set(timeline.bonesUsed.filter(isFingerId)); | ||
| authoredShoulders = new Set(timeline.bonesUsed.filter((id) => id.startsWith("shoulder_"))); | ||
| authoredHead = timeline.bonesUsed.some((id) => id === "head" || id === "neck"); | ||
| const initialPhase = ir.phases[0]; | ||
| const initialFistSides = fistSidesOf(initialPhase?.reaches ?? [], initialPhase?.pins ?? [], initialPhase?.groundLock ?? []); | ||
| const initialGripSides = gripSidesOf(initialPhase?.grips ?? []); | ||
| const initialConstrainedHandSides = contactHandSidesOf(initialPhase?.reaches ?? [], initialPhase?.pins ?? [], initialPhase?.grips ?? [], initialPhase?.groundLock ?? []); | ||
| const initialPalmFloorSides = floorHandSidesOf(initialPhase?.reaches ?? [], initialPhase?.pins ?? [], initialPhase?.groundLock ?? []); | ||
| // Scene props: tear down any previous set, build the declared ones, and | ||
@@ -736,2 +775,5 @@ // expose their anchors to reach-IK. | ||
| mannequin.root.updateMatrixWorld(true); | ||
| formFists(mannequin, initialFistSides, authoredFingers); | ||
| relaxHands(mannequin, unionHandSides(initialGripSides, initialFistSides), authoredFingers, initialPalmFloorSides); | ||
| alignFloorContacts(mannequin, initialPhase?.reaches ?? [], initialPhase?.pins ?? [], initialPhase?.groundLock ?? []); | ||
| depenetrate(mannequin); | ||
@@ -743,8 +785,5 @@ groundFigureOf(mannequin); | ||
| levelPlantedFeet(mannequin, ir.phases[0]?.groundLock ?? []); | ||
| authoredFingers = new Set(timeline.bonesUsed.filter(isFingerId)); | ||
| authoredShoulders = new Set(timeline.bonesUsed.filter((id) => id.startsWith("shoulder_"))); | ||
| authoredHead = timeline.bonesUsed.some((id) => id === "head" || id === "neck"); | ||
| swingArms(mannequin, authoredShoulders, gripSidesOf(ir.phases[0]?.grips ?? [])); | ||
| relaxHands(mannequin, gripSidesOf(ir.phases[0]?.grips ?? []), authoredFingers, floorHandSidesOf(ir.phases[0]?.reaches ?? [], ir.phases[0]?.pins ?? [], ir.phases[0]?.groundLock ?? [])); | ||
| swingArms(mannequin, authoredShoulders, initialConstrainedHandSides); | ||
| applyLookAt({ grips: ir.phases[0]?.grips ?? [], reaches: ir.phases[0]?.reaches ?? [] }); | ||
| enforceContactRom(mannequin); | ||
| captureGroundTargets(); | ||
@@ -763,4 +802,4 @@ baseRootPos.copy(mannequin.root.position); | ||
| const info = timeline.sample(seg.start, mannequin.bones); | ||
| const wasPinned = (id) => prevPins.some(p => (EFFECTOR_BONE[p.effector] ?? p.effector) === id && p.anchor === "floor"); | ||
| const isPinned = (id) => info.pins.some(p => (EFFECTOR_BONE[p.effector] ?? p.effector) === id && p.anchor === "floor"); | ||
| const wasPinned = (id) => prevPins.some(p => effectorBoneId(p.effector) === id && p.anchor === "floor"); | ||
| const isPinned = (id) => info.pins.some(p => effectorBoneId(p.effector) === id && p.anchor === "floor"); | ||
| mannequin.root.position.copy(baseRootPos); | ||
@@ -794,2 +833,49 @@ mannequin.root.quaternion.copy(baseRootQuat); | ||
| } | ||
| // The raw FK pass above provides deterministic first-phase anchors, | ||
| // but a pin introduced later must inherit the contact position from | ||
| // the preceding phase *after* ground-lock, reach IK, ROM enforcement, | ||
| // and floor reconciliation. Otherwise a ground-lock→pin handoff snaps | ||
| // the whole body to the next phase's unsolved FK location (the original | ||
| // superhero knee planted abruptly; bridge lowers jumped by ~60 cm). | ||
| let previousSolvedEffectors = null; | ||
| const activeFloorPinTargets = new Map(); | ||
| precomputingAnchors = true; | ||
| try { | ||
| for (let i = 0; i < timeline.segments.length; i++) { | ||
| const seg = timeline.segments[i]; | ||
| const currentPins = new Set((ir.phases[i]?.pins ?? []) | ||
| .filter((pin) => pin.anchor === "floor") | ||
| .map((pin) => effectorBoneId(pin.effector))); | ||
| for (const id of [...activeFloorPinTargets.keys()]) { | ||
| if (!currentPins.has(id)) | ||
| activeFloorPinTargets.delete(id); | ||
| } | ||
| for (const id of currentPins) { | ||
| let anchor = activeFloorPinTargets.get(id); | ||
| if (!anchor) { | ||
| anchor = previousSolvedEffectors?.get(id)?.clone() | ||
| ?? segmentStartEffectors[i]?.get(id)?.clone(); | ||
| if (anchor) | ||
| activeFloorPinTargets.set(id, anchor); | ||
| } | ||
| if (anchor) | ||
| segmentStartEffectors[i]?.set(id, anchor.clone()); | ||
| } | ||
| // Stay inside the segment because sample(duration) wraps to zero. | ||
| time = Math.max(seg.start, seg.end - 1e-5); | ||
| frame(); | ||
| previousSolvedEffectors = new Map(); | ||
| for (const ids of Object.values(mannequin.effectors)) { | ||
| for (const id of ids) { | ||
| const node = mannequin.bones.get(id); | ||
| if (node) | ||
| previousSolvedEffectors.set(id, node.getWorldPosition(new THREE.Vector3())); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| finally { | ||
| precomputingAnchors = false; | ||
| time = 0; | ||
| } | ||
| // Restore initial pose | ||
@@ -800,2 +886,5 @@ for (const bone of mannequin.bones.values()) | ||
| timeline.sample(0, mannequin.bones); | ||
| formFists(mannequin, initialFistSides, authoredFingers); | ||
| relaxHands(mannequin, unionHandSides(initialGripSides, initialFistSides), authoredFingers, initialPalmFloorSides); | ||
| alignFloorContacts(mannequin, initialPhase?.reaches ?? [], initialPhase?.pins ?? [], initialPhase?.groundLock ?? []); | ||
| mannequin.root.position.copy(baseRootPos); | ||
@@ -807,2 +896,3 @@ mannequin.root.quaternion.copy(baseRootQuat); | ||
| levelPlantedFeet(mannequin, ir.phases[0]?.groundLock ?? []); | ||
| enforceContactRom(mannequin); | ||
| } | ||
@@ -859,2 +949,5 @@ requestClip(ir); | ||
| }, | ||
| getReachResiduals() { | ||
| return reachResiduals.map((residual) => ({ ...residual })); | ||
| }, | ||
| getVisibleBounds() { | ||
@@ -943,2 +1036,10 @@ return character?.getBounds() ?? new THREE.Box3().setFromObject(mannequin.root); | ||
| ids.add("wrist_right"); | ||
| if (effector === "fists" || effector === "fist_left") | ||
| ids.add("wrist_left"); | ||
| if (effector === "fists" || effector === "fist_right") | ||
| ids.add("wrist_right"); | ||
| if (effector === "knees" || effector === "knee_left") | ||
| ids.add("knee_left"); | ||
| if (effector === "knees" || effector === "knee_right") | ||
| ids.add("knee_right"); | ||
| if (effector === "forearms") { | ||
@@ -990,2 +1091,35 @@ ids.add("elbow_left"); | ||
| } | ||
| /** Every hand side whose arm participates in an active contact constraint. */ | ||
| function contactHandSidesOf(reaches, pins, grips, groundLock = []) { | ||
| const sides = gripSidesOf(grips); | ||
| const add = (effector) => { | ||
| if (/^(?:hand|fist|elbow)_left$/.test(effector) | ||
| || effector === "hands" || effector === "fists" || effector === "forearms") | ||
| sides.add("left"); | ||
| if (/^(?:hand|fist|elbow)_right$/.test(effector) | ||
| || effector === "hands" || effector === "fists" || effector === "forearms") | ||
| sides.add("right"); | ||
| }; | ||
| reaches.forEach((contact) => add(contact.effector)); | ||
| pins.forEach((contact) => add(contact.effector)); | ||
| groundLock.forEach(add); | ||
| return sides; | ||
| } | ||
| /** Hand sides whose semantic endpoint is a closed fist (at any target). */ | ||
| function fistSidesOf(reaches, pins, groundLock = []) { | ||
| const sides = new Set(); | ||
| const add = (effector) => { | ||
| if (effector === "fists" || effector === "fist_left") | ||
| sides.add("left"); | ||
| if (effector === "fists" || effector === "fist_right") | ||
| sides.add("right"); | ||
| }; | ||
| reaches.forEach((reach) => add(reach.effector)); | ||
| pins.forEach((pin) => add(pin.effector)); | ||
| groundLock.forEach(add); | ||
| return sides; | ||
| } | ||
| function unionHandSides(a, b) { | ||
| return new Set([...a, ...b]); | ||
| } | ||
| /** | ||
@@ -1043,2 +1177,3 @@ * Hand sides pressed onto the floor this phase — via `reach`/`pin: hands floor` | ||
| export { solveCCD } from "./ik.js"; | ||
| export { EFFECTOR_BONE, REACH_TOLERANCE, effectorBoneId, reachChain, solveReachToPoint, missingReachTarget, } from "./reach.js"; | ||
| export { buildProps } from "./props.js"; | ||
@@ -1049,3 +1184,3 @@ export { resolvePropContacts, propContactExemptions } from "./propcontact.js"; | ||
| export { depenetrate } from "./depenetrate.js"; | ||
| export { alignFloorPalms, levelPlantedFeet } from "./contacts.js"; | ||
| export { PALM_LOCAL_NORMAL, FIST_LOCAL_NORMAL, alignFloorContacts, alignFloorPalms, prepareGripFrames, alignGripFrames, isDipBarGrip, floorTargetForEffector, floorContactHeight, enforceContactRom, formFists, levelPlantedFeet, wrapGrip, } from "./contacts.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EACL,aAAa,GAId,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAoB,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5G,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AA8E1B,MAAM,UAAU,YAAY,CAC1B,MAAyB,EACzB,OAAsB,EAAE;IAExB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACjD,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,qBAAqB,CAAC;IACnD,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3C,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;IACzE,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAClC,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC;IAC3B,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC;IAE/B,0BAA0B;IAC1B,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;IAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC;IAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEf,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAC3B,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,EAC/B,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CACnF,CAAC;IACF,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,QAA2B,CAAC,WAAW,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,QAA2B,CAAC,OAAO,GAAG,GAAG,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,IAAI,SAAS,GAAc,cAAc,EAAE,CAAC;IAC5C,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE1B,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,qBAAqB,GACzB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,0BAA0B,KAAK,KAAK,CAAC;IAC1E,IAAI,qBAAqB;QAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpE,yEAAyE;IACzE,0EAA0E;IAC1E,8EAA8E;IAC9E,+EAA+E;IAC/E,eAAe;IACf,IAAI,SAAS,GAAqB,IAAI,CAAC;IAEvC,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,0BAA0B;IACzD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE3D,uEAAuE;IACvE,SAAS,WAAW,CAAC,EAAqB;QACxC,SAAS,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;YAC7C,gBAAgB,GAAG,CAAC,CAAC;YACrB,UAAU,GAAG,CAAC,CAAC;YACf,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC;YACxC,gBAAgB,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,gBAAgB,GAAG,CAAC,CAAC,CAAC,mDAAmD;QACzE,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM;aACH,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,SAAS,EAAE,WAAW,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACrE,aAAa,GAAG,IAAI,CAAC;YACrB,UAAU,GAAG,CAAC,CAAC;YACf,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,oEAAoE;YACpE,2DAA2D;YAC3D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,oEAAoE;IACpE,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,aAAa,GAAG,GAAG,CAAC,CAAC,2BAA2B;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;IAE7C,SAAS,SAAS,CAAC,MAAc;QAC/B,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YAChC,+DAA+D;YAC/D,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,GAAG,CACf,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,EACzC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EACxC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CACzC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;YACzC,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;QAC1E,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,gFAAgF;IAChF,6DAA6D;IAC7D,IAAI,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,2EAA2E;IAC3E,IAAI,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IACrD,MAAM,qBAAqB,GAAiC,EAAE,CAAC;IAC/D,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,8EAA8E;IAC9E,8EAA8E;IAC9E,iFAAiF;IACjF,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,OAAO,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;IACxD,IAAI,MAAM,GAA6C,GAAG,EAAE,GAAE,CAAC,CAAC;IAChE,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAClC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,yBAAyB;IACzB,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,SAAS,MAAM;QACb,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,SAAS,aAAa;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,oBAAoB;QAC3B,4EAA4E;QAC5E,wEAAwE;QACxE,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,gDAAgD;QACxE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,IAAI;oBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAErC,uEAAuE;IACvE,sEAAsE;IACtE,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IACxD,SAAS,YAAY,CAAC,OAAe,EAAE,UAAoC;QACzE,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxB,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,sEAAsE;gBACtE,uEAAuE;gBACvE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvE,CAAC;YACD,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;IAC9B,MAAM,aAAa,GAA2B;QAC5C,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;KAC1B,CAAC;IAEF;;;;;;;;OAQG;IACH,SAAS,UAAU,CAAC,YAAoB;QAItC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;YACvC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;gBAChC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;gBACtB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;oBAClC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;oBACjC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAEtC,8EAA8E;IAC9E,SAAS,cAAc,CAAC,MAAc,EAAE,IAAoB;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACzD,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACzD,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,SAAS,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,OAAe;QACtD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,oFAAoF;IACpF,SAAS,kBAAkB,CACzB,MAAc,EACd,QAAwB;QAExB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,YAAY,CAAC,OAA8B;QAClD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACvE,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,SAAS,CAAC,IAAiB;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,MAAM,GAAyB,IAAI,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1E,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACnF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,UAAU,CAAC,KAAmB;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,QAAwB,EAAwB,EAAE,CACrF,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;YACpC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,wEAAwE;QACxE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,IAAqD;QACxE,IAAI,YAAY;YAAE,OAAO;QACzB,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,YAAoB,EAAE,UAAkB,EAAQ,EAAE;YACjE,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;YACzD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,CAAC,GACL,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC;gBACnC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kFAAkF;IAClF,SAAS,mBAAmB,CAAC,IAI5B;QACC,OAAO,qBAAqB,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,WAAW;QAClB,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,OAAO,EAAE;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,qEAAqE;QACrE,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,MAAM,GAAG,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;QACpE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;QAEtE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,GAAG,CACZ,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EACtC,MAAM,CAAC,CAAC,GAAG,IAAI,CAChB,CAAC;QACF,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,UAAU,GAA8D,IAAI,CAAC;QACjF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACpD,UAAU,GAAG,IAAI,CAAC;YAClB,cAAc,GAAG,CAAC,CAAC;YACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;gBAClC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;oBACrC,cAAc,GAAG,CAAC,CAAC;oBACnB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,0DAA0D;YAC1D,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACpC,uEAAuE;YACvE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,yEAAyE;YACzE,oDAAoD;YACpD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,wEAAwE;YACxE,sEAAsE;YACtE,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3F,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,kDAAkD;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,oEAAoE;YACpE,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,0CAA0C;YAC1C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrE,2EAA2E;YAC3E,uEAAuE;YACvE,wEAAwE;YACxE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,8EAA8E;YAC9E,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,2EAA2E;YAC3E,UAAU,CACR,SAAS,EACT,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EACvB,eAAe,EACf,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAC3D,CAAC;YACF,+EAA+E;YAC/E,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,8DAA8D;YAC9D,EAAE;YACF,yEAAyE;YACzE,0EAA0E;YAC1E,8DAA8D;YAC9D,0EAA0E;YAC1E,0EAA0E;YAC1E,kEAAkE;YAClE,yCAAyC;YACzC,EAAE;YACF,yEAAyE;YACzE,oEAAoE;YACpE,yEAAyE;YACzE,qEAAqE;YACrE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3D,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;gBACrC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC/B,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,yEAAyE;QACzE,uEAAuE;QACvE,kDAAkD;QAClD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,CAAC;YACzC,MAAM,GAAG,GAAG,gBAAgB,GAAG,UAAU,CAAC;YAC1C,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7D,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxC,uEAAuE;gBACvE,uEAAuE;gBACvE,sEAAsE;gBACtE,IAAI,UAAU;oBAAE,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC;YAAE,SAAS,CAAC,cAAc,EAAE,CAAC;QACpF,OAAO,GAAG,CAAC,CAAC;QACZ,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,IAAI;gBAAE,UAAU,GAAG,KAAK,CAAC;QAC/E,CAAC;QACD,MAAM,EAAE,CAAC;QACT,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,SAAS,MAAM,CAAC,GAAW;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAChD,KAAK,GAAG,GAAG,CAAC;QACZ,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;oBAC1B,MAAM,EAAE,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBACzB,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,CAAC;QACR,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAW;QAClB,IAAI,CAAC,EAAc;YACjB,MAAM,GAAG,EAAE,CAAC;YACZ,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC;YACT,aAAa,GAAG,EAAE,CAAC;YACnB,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC9B,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,WAAW,GAAG,SAAS,EAAE,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;YAC9C,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,sCAAsC;YACtC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxE,aAAa,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,SAAS,EAAE,CAAC;gBACd,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/F,CAAC;YACD,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;YAC5D,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACjE,iBAAiB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3F,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC;YAC/E,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,UAAU,CACR,SAAS,EACT,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,EACtC,eAAe,EACf,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CACxG,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YACxF,oBAAoB,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7C,uEAAuE;YACvE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,gBAAgB,GAAsC,IAAI,CAAC;gBAC/D,IAAI,QAAQ,GAAgB,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;wBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEzD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;oBAC/H,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;oBAE/H,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;wBACvB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC5E,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC9C,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACvC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAEvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;oBACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;4BACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACrC,IAAI,IAAI,EAAE,CAAC;gCACT,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oCAC3F,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;gCAClD,CAAC;qCAAM,CAAC;oCACN,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gCACnE,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACzC,gBAAgB,GAAG,YAAY,CAAC;oBAChC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,CAAC;gBAED,uBAAuB;gBACvB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxE,aAAa,EAAE,CAAC;gBAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACvB,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC1B,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC;QAChB,CAAC;QACD,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK;YACH,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,MAAM;YACJ,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAe;YAClB,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,UAAkB;YACzB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAU;YAChB,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,eAAe;YACjB,OAAO,SAAS,KAAK,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,SAAS,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,WAAW;YACT,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC3B,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;QACJ,CAAC;QACD,gBAAgB;YACd,OAAO,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,YAAY;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,YAAY;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,YAAY;YACV,KAAK,EAAE,CAAC;YACR,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,EAAE;YACR,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,CAAC,EAAE;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,OAAO;YACL,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;IAEF,0EAA0E;IAC1E,4EAA4E;IAC5E,uEAAuE;IACvE,0EAA0E;IAC1E,4CAA4C;IAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,KAAK,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;aAClC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,iEAAiE;YACjE,IAAI,GAAG,EAAE,CAAC;YACV,OAAO,GAAG,SAAS,CAAC;YACpB,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,gEAAgE;YAChE,qEAAqE;YACrE,qEAAqE;YACrE,mEAAmE;YACnE,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;YACjF,IAAI,qBAAqB;gBAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oFAAoF;AACpF,SAAS,YAAY,CAAC,IAGrB;IACC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc,CAAC,IAKvB;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAQ,EAAE;QAC7C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU;QAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACxD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAoB,EAAE,OAAgB;IAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,IAAK,GAAkB,CAAC,MAAM;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,mCAAmC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,kFAAkF;AAClF,SAAS,WAAW,CAAC,KAAsC;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,OAAwD,EACxD,IAAqD,EACrD,aAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACrC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChE,KAAK,MAAM,QAAQ,IAAI,UAAU;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,IAAK,GAAkB,CAAC,MAAM,EAAE,CAAC;YAC/B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,IAAoB;IACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,GAAiB,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;;gBACnD,GAAG,EAAE,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAkC,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,UAAU,EAAuD,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAA8B,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EACL,aAAa,GAId,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAkF1B,MAAM,UAAU,YAAY,CAC1B,MAAyB,EACzB,OAAsB,EAAE;IAExB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACjD,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,qBAAqB,CAAC;IACnD,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3C,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;IACzE,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAClC,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC;IAC3B,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC;IAE/B,0BAA0B;IAC1B,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;IAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC;IAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEf,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAC3B,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,EAC/B,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CACnF,CAAC;IACF,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,QAA2B,CAAC,WAAW,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,QAA2B,CAAC,OAAO,GAAG,GAAG,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,IAAI,SAAS,GAAc,cAAc,EAAE,CAAC;IAC5C,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE1B,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,qBAAqB,GACzB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,0BAA0B,KAAK,KAAK,CAAC;IAC1E,IAAI,qBAAqB;QAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpE,yEAAyE;IACzE,0EAA0E;IAC1E,8EAA8E;IAC9E,+EAA+E;IAC/E,eAAe;IACf,IAAI,SAAS,GAAqB,IAAI,CAAC;IAEvC,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,0BAA0B;IACzD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE3D,uEAAuE;IACvE,SAAS,WAAW,CAAC,EAAqB;QACxC,SAAS,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;YAC7C,gBAAgB,GAAG,CAAC,CAAC;YACrB,UAAU,GAAG,CAAC,CAAC;YACf,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC;YACxC,gBAAgB,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,gBAAgB,GAAG,CAAC,CAAC,CAAC,mDAAmD;QACzE,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM;aACH,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,SAAS,EAAE,WAAW,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACrE,aAAa,GAAG,IAAI,CAAC;YACrB,UAAU,GAAG,CAAC,CAAC;YACf,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,oEAAoE;YACpE,2DAA2D;YAC3D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,oEAAoE;IACpE,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,aAAa,GAAG,GAAG,CAAC,CAAC,2BAA2B;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;IAE7C,SAAS,SAAS,CAAC,MAAc;QAC/B,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YAChC,+DAA+D;YAC/D,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,GAAG,CACf,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,EACzC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EACxC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CACzC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;YACzC,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;QAC1E,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,gFAAgF;IAChF,6DAA6D;IAC7D,IAAI,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,2EAA2E;IAC3E,IAAI,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,sEAAsE;IACtE,2EAA2E;IAC3E,IAAI,cAAc,GAAoB,EAAE,CAAC;IAKzC,IAAI,oBAAoB,GAAsC,EAAE,CAAC;IACjE,IAAI,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IACrD,MAAM,qBAAqB,GAAiC,EAAE,CAAC;IAC/D,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,8EAA8E;IAC9E,8EAA8E;IAC9E,iFAAiF;IACjF,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,OAAO,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;IACxD,IAAI,MAAM,GAA6C,GAAG,EAAE,GAAE,CAAC,CAAC;IAChE,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAClC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,6EAA6E;IAC7E,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAEhC,yBAAyB;IACzB,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,SAAS,MAAM;QACb,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,SAAS,aAAa;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,oBAAoB;QAC3B,4EAA4E;QAC5E,wEAAwE;QACxE,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,gDAAgD;QACxE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,IAAI;oBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAErC,uEAAuE;IACvE,sEAAsE;IACtE,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IACxD,SAAS,YAAY,CAAC,OAAe,EAAE,UAAoC;QACzE,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxB,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,sEAAsE;gBACtE,uEAAuE;gBACvE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvE,CAAC;YACD,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oFAAoF;IACpF,SAAS,kBAAkB,CACzB,MAAc,EACd,YAAoB;QAEpB,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,YAAY,CAAC,OAA8B;QAClD,cAAc,GAAG,EAAE,CAAC;QACpB,oBAAoB,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,cAAc,CAAC,IAAI,CACjB,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAClF,CAAC;gBACF,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,cAAc,CAAC,IAAI,CACjB,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CACrE,CAAC;YACF,oBAAoB,CAAC,IAAI,CACvB,CAAC,CAAC,MAAM,KAAK,OAAO;gBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE;gBAC1C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;oBACxC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,SAAS,qBAAqB;QAC5B,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtD,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,QAAQ,CAAC;YAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC/B,yEAAyE;YACzE,wEAAwE;YACxE,2CAA2C;YAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,MAAiC,CAAC;YACtC,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;YAC3B,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,MAAM,KAAK,IAAI;oBAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,SAAS,CAAC,IAAiB;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,MAAM,GAAyB,IAAI,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1E,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAG,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,UAAU,CAAC,KAAmB;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,yEAAyE;QACzE,yEAAyE;QACzE,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,YAAoB,EAAwB,EAAE,CACjF,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC;YACxC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACzE,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,wEAAwE;QACxE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,oEAAoE;gBACpE,wEAAwE;gBACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACpD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,KAAK;wBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,0EAA0E;QAC1E,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAClC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,IAAqD;QACxE,IAAI,YAAY;YAAE,OAAO;QACzB,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,YAAoB,EAAE,UAAkB,EAAQ,EAAE;YACjE,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,CAAC,GACL,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC;gBAC5C,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kFAAkF;IAClF,SAAS,mBAAmB,CAAC,IAI5B;QACC,OAAO,qBAAqB,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,WAAW;QAClB,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,OAAO,EAAE;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,qEAAqE;QACrE,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,MAAM,GAAG,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;QACpE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;QAEtE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,GAAG,CACZ,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EACtC,MAAM,CAAC,CAAC,GAAG,IAAI,CAChB,CAAC;QACF,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,UAAU,GAA8D,IAAI,CAAC;QACjF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACpD,UAAU,GAAG,IAAI,CAAC;YAClB,cAAc,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,wEAAwE;YACxE,0DAA0D;YAC1D,IAAI,CAAC,mBAAmB;gBAAE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9D,uEAAuE;YACvE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,yEAAyE;YACzE,oDAAoD;YACpD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,oBAAoB,GAAG,kBAAkB,CAC7C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAClF,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YACjD,yEAAyE;YACzE,qEAAqE;YACrE,sCAAsC;YACtC,UAAU,CACR,SAAS,EACT,cAAc,CAAC,eAAe,EAAE,SAAS,CAAC,EAC1C,eAAe,EACf,cAAc,CACf,CAAC;YACF,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3F,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,kDAAkD;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,oEAAoE;YACpE,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,0CAA0C;YAC1C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxE,2EAA2E;YAC3E,uEAAuE;YACvE,wEAAwE;YACxE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,8EAA8E;YAC9E,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;YAC9D,+EAA+E;YAC/E,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,wEAAwE;YACxE,wEAAwE;YACxE,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,sEAAsE;YACtE,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,qEAAqE;YACrE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1D,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;oBACtD,iBAAiB,CACf,SAAS,EACT,IAAI,CAAC,UAAU,EACf,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAC5C,CAAC;oBACF,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxE,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,8DAA8D;YAC9D,EAAE;YACF,yEAAyE;YACzE,0EAA0E;YAC1E,8DAA8D;YAC9D,0EAA0E;YAC1E,0EAA0E;YAC1E,kEAAkE;YAClE,yCAAyC;YACzC,EAAE;YACF,yEAAyE;YACzE,oEAAoE;YACpE,yEAAyE;YACzE,qEAAqE;YACrE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3D,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,qBAAqB,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBAC/D,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjC,OAAO,CAAC;oBACN,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,mBAAmB;YAAE,OAAO;QAChC,kEAAkE;QAClE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,yEAAyE;QACzE,uEAAuE;QACvE,kDAAkD;QAClD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,CAAC;YACzC,MAAM,GAAG,GAAG,gBAAgB,GAAG,UAAU,CAAC;YAC1C,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7D,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxC,uEAAuE;gBACvE,uEAAuE;gBACvE,sEAAsE;gBACtE,IAAI,UAAU;oBAAE,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC;YAAE,SAAS,CAAC,cAAc,EAAE,CAAC;QACpF,OAAO,GAAG,CAAC,CAAC;QACZ,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,IAAI;gBAAE,UAAU,GAAG,KAAK,CAAC;QAC/E,CAAC;QACD,MAAM,EAAE,CAAC;QACT,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,SAAS,MAAM,CAAC,GAAW;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAChD,KAAK,GAAG,GAAG,CAAC;QACZ,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;oBAC1B,MAAM,EAAE,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBACzB,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,CAAC;QACR,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAW;QAClB,IAAI,CAAC,EAAc;YACjB,MAAM,GAAG,EAAE,CAAC;YACZ,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC;YACT,cAAc,GAAG,CAAC,CAAC,CAAC;YACpB,cAAc,GAAG,EAAE,CAAC;YACpB,oBAAoB,GAAG,EAAE,CAAC;YAC1B,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACjE,iBAAiB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3F,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC;YAC/E,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,gBAAgB,GAAG,WAAW,CAClC,YAAY,EAAE,OAAO,IAAI,EAAE,EAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,YAAY,EAAE,UAAU,IAAI,EAAE,CAC/B,CAAC;YACF,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,2BAA2B,GAAG,kBAAkB,CACpD,YAAY,EAAE,OAAO,IAAI,EAAE,EAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,YAAY,EAAE,KAAK,IAAI,EAAE,EACzB,YAAY,EAAE,UAAU,IAAI,EAAE,CAC/B,CAAC;YACF,MAAM,qBAAqB,GAAG,gBAAgB,CAC5C,YAAY,EAAE,OAAO,IAAI,EAAE,EAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,YAAY,EAAE,UAAU,IAAI,EAAE,CAC/B,CAAC;YACF,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC9B,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,WAAW,GAAG,SAAS,EAAE,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;YAC9C,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,sCAAsC;YACtC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxE,aAAa,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;YACxD,UAAU,CACR,SAAS,EACT,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAClD,eAAe,EACf,qBAAqB,CACtB,CAAC;YACF,kBAAkB,CAChB,SAAS,EACT,YAAY,EAAE,OAAO,IAAI,EAAE,EAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,YAAY,EAAE,UAAU,IAAI,EAAE,CAC/B,CAAC;YACF,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,SAAS,EAAE,CAAC;gBACd,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/F,CAAC;YACD,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;YAC5D,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;YACrE,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YACxF,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,oBAAoB,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7C,uEAAuE;YACvE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,gBAAgB,GAAsC,IAAI,CAAC;gBAC/D,IAAI,QAAQ,GAAgB,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;wBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEzD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;oBAChH,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;oBAEhH,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;wBACvB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC5E,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC9C,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACvC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAEvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;oBACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;4BACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACrC,IAAI,IAAI,EAAE,CAAC;gCACT,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oCAC3F,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;gCAClD,CAAC;qCAAM,CAAC;oCACN,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gCACnE,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACzC,gBAAgB,GAAG,YAAY,CAAC;oBAChC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,CAAC;gBAED,oEAAoE;gBACpE,oEAAoE;gBACpE,sEAAsE;gBACtE,sEAAsE;gBACtE,wEAAwE;gBACxE,oEAAoE;gBACpE,IAAI,uBAAuB,GAAsC,IAAI,CAAC;gBACtE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAyB,CAAC;gBAC/D,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC;oBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;wBAClC,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;6BACvB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC;6BACvC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAC9C,CAAC;wBACF,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;4BACnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gCAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC7D,CAAC;wBACD,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;4BAC7B,IAAI,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;gCACZ,MAAM,GAAG,uBAAuB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;uCAC7C,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;gCAChD,IAAI,MAAM;oCAAE,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;4BACpD,CAAC;4BACD,IAAI,MAAM;gCAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBAChE,CAAC;wBAED,kEAAkE;wBAClE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;wBAC3C,KAAK,EAAE,CAAC;wBACR,uBAAuB,GAAG,IAAI,GAAG,EAAE,CAAC;wBACpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;4BACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gCACrB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACrC,IAAI,IAAI;oCAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BACxF,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,mBAAmB,GAAG,KAAK,CAAC;oBAC5B,IAAI,GAAG,CAAC,CAAC;gBACX,CAAC;gBAED,uBAAuB;gBACvB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxE,aAAa,EAAE,CAAC;gBAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACpC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;gBACxD,UAAU,CACR,SAAS,EACT,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAClD,eAAe,EACf,qBAAqB,CACtB,CAAC;gBACF,kBAAkB,CAChB,SAAS,EACT,YAAY,EAAE,OAAO,IAAI,EAAE,EAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,YAAY,EAAE,UAAU,IAAI,EAAE,CAC/B,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACvB,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC1B,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;gBAC5D,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAED,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC;QAChB,CAAC;QACD,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK;YACH,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,MAAM;YACJ,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAe;YAClB,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,UAAkB;YACzB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAU;YAChB,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,eAAe;YACjB,OAAO,SAAS,KAAK,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,SAAS,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,WAAW;YACT,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC3B,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;QACJ,CAAC;QACD,iBAAiB;YACf,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,gBAAgB;YACd,OAAO,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,YAAY;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,YAAY;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,YAAY;YACV,KAAK,EAAE,CAAC;YACR,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,EAAE;YACR,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,CAAC,EAAE;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,OAAO;YACL,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,EAAE,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;IAEF,0EAA0E;IAC1E,4EAA4E;IAC5E,uEAAuE;IACvE,0EAA0E;IAC1E,4CAA4C;IAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,KAAK,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;aAClC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,iEAAiE;YACjE,IAAI,GAAG,EAAE,CAAC;YACV,OAAO,GAAG,SAAS,CAAC;YACpB,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,gEAAgE;YAChE,qEAAqE;YACrE,qEAAqE;YACrE,mEAAmE;YACnE,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;YACjF,IAAI,qBAAqB;gBAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oFAAoF;AACpF,SAAS,YAAY,CAAC,IAGrB;IACC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc,CAAC,IAKvB;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAQ,EAAE;QAC7C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU;QAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACxD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAoB,EAAE,OAAgB;IAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,IAAK,GAAkB,CAAC,MAAM;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,mCAAmC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,kFAAkF;AAClF,SAAS,WAAW,CAAC,KAAsC;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAS,kBAAkB,CACzB,OAAwC,EACxC,IAAqC,EACrC,KAAsC,EACtC,aAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACrC,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC;eAC1C,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChG,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;eAC3C,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAS,WAAW,CAClB,OAAwC,EACxC,IAAqC,EACrC,aAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACrC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,CAAgC,EAChC,CAAgC;IAEhC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,OAAwD,EACxD,IAAqD,EACrD,aAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACrC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChE,KAAK,MAAM,QAAQ,IAAI,UAAU;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,IAAK,GAAkB,CAAC,MAAM,EAAE,CAAC;YAC/B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,IAAoB;IACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,GAAiB,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;;gBACnD,GAAG,EAAE,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAkC,MAAM,SAAS,CAAC;AACnE,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAuD,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAA8B,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,MAAM,eAAe,CAAC"} |
@@ -25,2 +25,10 @@ /** | ||
| collision: CollisionRadii; | ||
| /** Visible meshes that form semantic local support surfaces. */ | ||
| contactSurfaces: { | ||
| /** Trunk/mat surface used by `pin: pelvis floor`. */ | ||
| pelvis: THREE.Object3D[]; | ||
| /** Rounded thigh/shin caps that meet at each supporting knee. */ | ||
| knee_left: THREE.Object3D[]; | ||
| knee_right: THREE.Object3D[]; | ||
| }; | ||
| } | ||
@@ -27,0 +35,0 @@ /** Capsule/sphere radii approximating the visible body for self-collision. */ |
+50
-5
@@ -114,2 +114,3 @@ /** | ||
| const bones = new Map(); | ||
| const jointCaps = new Map(); | ||
| for (const spec of SKELETON) { | ||
@@ -129,5 +130,17 @@ const bone = new THREE.Object3D(); | ||
| const mat = segmentMaterial(spec.id, mats); | ||
| const seg = isFinger(spec.id) | ||
| ? makeSegment(offset.length(), spec.radius, mats.skin) | ||
| : makeTaperedSegment(offset.length(), spec.radius, spec.radiusEnd ?? spec.radius, mat); | ||
| let seg; | ||
| if (isFinger(spec.id)) { | ||
| seg = makeSegment(offset.length(), spec.radius, mats.skin); | ||
| } | ||
| else { | ||
| const tapered = makeTaperedSegment(offset.length(), spec.radius, spec.radiusEnd ?? spec.radius, mat); | ||
| seg = tapered.group; | ||
| const addCap = (joint, cap) => { | ||
| const caps = jointCaps.get(joint) ?? []; | ||
| caps.push(cap); | ||
| jointCaps.set(joint, caps); | ||
| }; | ||
| addCap(spec.parent, tapered.proximalCap); | ||
| addCap(spec.id, tapered.distalCap); | ||
| } | ||
| orientSegment(seg, offset); | ||
@@ -154,2 +167,19 @@ bones.get(spec.parent).add(seg); | ||
| addShoe(bones.get("ankle_right"), mats, proportions?.soleDrop); | ||
| // A pelvis floor pin represents the trunk's mat contact, whose thickness | ||
| // changes with orientation (supine/prone) and spinal pose. A fixed proxy | ||
| // radius cannot serve both a flat prone lower and a supine bridge. Record | ||
| // the actual trunk meshes so contact code can measure that surface without | ||
| // accidentally including descendant arms or legs in the pelvis subtree. | ||
| const boneIdByNode = new Map([...bones].map(([id, node]) => [node, id])); | ||
| const trunkIds = new Set(["pelvis", "spine", "chest", "neck", "head"]); | ||
| const pelvisSurface = []; | ||
| root.traverse((obj) => { | ||
| if (!obj.isMesh) | ||
| return; | ||
| let owner = obj.parent; | ||
| while (owner && !boneIdByNode.has(owner)) | ||
| owner = owner.parent; | ||
| if (owner && trunkIds.has(boneIdByNode.get(owner))) | ||
| pelvisSurface.push(obj); | ||
| }); | ||
| return { | ||
@@ -162,5 +192,11 @@ root, | ||
| hand_right: ["wrist_right"], | ||
| fists: ["wrist_left", "wrist_right"], | ||
| fist_left: ["wrist_left"], | ||
| fist_right: ["wrist_right"], | ||
| forearms: ["elbow_left", "elbow_right"], | ||
| elbow_left: ["elbow_left"], | ||
| elbow_right: ["elbow_right"], | ||
| knees: ["knee_left", "knee_right"], | ||
| knee_left: ["knee_left"], | ||
| knee_right: ["knee_right"], | ||
| feet: ["ankle_left", "ankle_right"], | ||
@@ -173,2 +209,7 @@ foot_left: ["ankle_left"], | ||
| collision: proportions?.collision ?? DEFAULT_COLLISION, | ||
| contactSurfaces: { | ||
| pelvis: pelvisSurface, | ||
| knee_left: jointCaps.get("knee_left") ?? [], | ||
| knee_right: jointCaps.get("knee_right") ?? [], | ||
| }, | ||
| }; | ||
@@ -199,3 +240,3 @@ } | ||
| group.add(capProx); | ||
| return group; | ||
| return { group, proximalCap: capProx, distalCap: capDist }; | ||
| } | ||
@@ -276,3 +317,7 @@ /** Position/orient a +Y segment so it spans from the parent joint to `offset`. */ | ||
| function addPalm(wrist, mat) { | ||
| addEllipsoid(wrist, 0.045, [0.85, 1.05, 0.5], [0, -0.02, 0.004], mat); | ||
| // The ellipsoid's thinnest axis is local Z, so +Z is the procedural palm's | ||
| // outward face normal on BOTH sides. Contact orientation must use this mesh | ||
| // convention (not an anatomical left/right guess such as +/-X). | ||
| const palm = addEllipsoid(wrist, 0.045, [0.85, 1.05, 0.5], [0, -0.02, 0.004], mat); | ||
| palm.name = `palm_${wrist.name.replace("wrist_", "")}`; | ||
| } | ||
@@ -279,0 +324,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"mannequin.js","sourceRoot":"","sources":["../src/mannequin.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"mannequin.js","sourceRoot":"","sources":["../src/mannequin.ts"],"names":[],"mappings":"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"} |
+18
-2
@@ -12,2 +12,7 @@ /** | ||
| }; | ||
| /** Half-pronated forearms: palms face the thighs instead of away from them. */ | ||
| const RELAXED_FOREARMS = { | ||
| elbow_left: [0, -80, 0], | ||
| elbow_right: [0, 80, 0], | ||
| }; | ||
| // Face-down support position: torso horizontal, arms reaching to the floor. | ||
@@ -36,5 +41,14 @@ // Ground-lock IK plants hands and feet; this just gets the gross posture right. | ||
| root: { position: [0, 0, 0], rotationDeg: [0, 0, 0] }, | ||
| joints: { ...RELAXED_FOREARMS }, | ||
| }; | ||
| // Ballet first position: legs externally rotated from the hips while the | ||
| // straight-leg chain stays vertical. Seeding turnout in the base pose means a | ||
| // demi-plié can keep it constant instead of visibly twisting planted feet on | ||
| // every descent and rise. | ||
| const FIRST_POSITION = { | ||
| root: { position: [0, 0, 0], rotationDeg: [0, 0, 0] }, | ||
| joints: { | ||
| elbow_left: [0, 80, 0], | ||
| elbow_right: [0, -80, 0], | ||
| ...RELAXED_FOREARMS, | ||
| hip_left: [0, 30, 0], | ||
| hip_right: [0, -30, 0], | ||
| }, | ||
@@ -60,2 +74,3 @@ }; | ||
| joints: { | ||
| ...RELAXED_FOREARMS, | ||
| hip_left: [-90, 0, 0], | ||
@@ -68,2 +83,3 @@ hip_right: [-90, 0, 0], | ||
| standing: STANDING, | ||
| "first-position": FIRST_POSITION, | ||
| plank: PLANK, | ||
@@ -70,0 +86,0 @@ supine: SUPINE, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"poses.js","sourceRoot":"","sources":["../src/poses.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"poses.js","sourceRoot":"","sources":["../src/poses.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Prop contact solving: props are solid, not just visual. | ||
| * Bounded prop-contact correction for selected blocking surfaces. | ||
| * | ||
@@ -9,4 +9,4 @@ * Authored poses are pure joint rotations relative to the root, and the root | ||
| * samples the body as capsules (torso, head, thighs, shins, forearms) against | ||
| * each prop's declared solid faces (`FaceCollider`, see props.ts) and removes | ||
| * any overlap: | ||
| * selected declared faces (`FaceCollider`, see props.ts) and reduces sampled | ||
| * overlap. This is deliberately not comprehensive collision detection: | ||
| * | ||
@@ -25,3 +25,3 @@ * - **Body-resolved faces** (wall, backrest, seat edge) translate the WHOLE | ||
| * pose with no overlap is untouched, contact settles ON the surface), | ||
| * deterministic (pure function of the pose), and ROM-safe. | ||
| * deterministic (pure function of the pose), and ROM-bounded. | ||
| * | ||
@@ -28,0 +28,0 @@ * Runs after ground-lock / pins / grips (it must see the final root |
+14
-6
| /** | ||
| * Prop contact solving: props are solid, not just visual. | ||
| * Bounded prop-contact correction for selected blocking surfaces. | ||
| * | ||
@@ -9,4 +9,4 @@ * Authored poses are pure joint rotations relative to the root, and the root | ||
| * samples the body as capsules (torso, head, thighs, shins, forearms) against | ||
| * each prop's declared solid faces (`FaceCollider`, see props.ts) and removes | ||
| * any overlap: | ||
| * selected declared faces (`FaceCollider`, see props.ts) and reduces sampled | ||
| * overlap. This is deliberately not comprehensive collision detection: | ||
| * | ||
@@ -25,3 +25,3 @@ * - **Body-resolved faces** (wall, backrest, seat edge) translate the WHOLE | ||
| * pose with no overlap is untouched, contact settles ON the surface), | ||
| * deterministic (pure function of the pose), and ROM-safe. | ||
| * deterministic (pure function of the pose), and ROM-bounded. | ||
| * | ||
@@ -106,5 +106,13 @@ * Runs after ground-lock / pins / grips (it must see the final root | ||
| for (const side of ["left", "right"]) { | ||
| if (c.effector === "feet" || c.effector === `foot_${side}` || c.effector === `ankle_${side}`) | ||
| if (c.effector === "feet" || | ||
| c.effector === "knees" || | ||
| c.effector === `foot_${side}` || | ||
| c.effector === `ankle_${side}` || | ||
| c.effector === `knee_${side}`) | ||
| legs.add(side); | ||
| if (c.effector === "hands" || c.effector === `hand_${side}` || c.effector === `wrist_${side}`) | ||
| if (c.effector === "hands" || | ||
| c.effector === "fists" || | ||
| c.effector === `hand_${side}` || | ||
| c.effector === `fist_${side}` || | ||
| c.effector === `wrist_${side}`) | ||
| arms.add(side); | ||
@@ -111,0 +119,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"propcontact.js","sourceRoot":"","sources":["../src/propcontact.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"propcontact.js","sourceRoot":"","sources":["../src/propcontact.ts"],"names":[],"mappings":"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"} |
+5
-1
@@ -89,3 +89,5 @@ /** | ||
| // position meets the anchor, which leaves each authored hand over its | ||
| // own rail. | ||
| // own rail. Side-specific anchors are required because grouped grips are | ||
| // resolved to `bars_left` / `bars_right`; falling back to the centre | ||
| // collapses both hands onto one point and twists the shoulders together. | ||
| const railH = 1.1; | ||
@@ -105,2 +107,4 @@ const halfSpan = 0.22; | ||
| anchors.set("bars", new THREE.Vector3(0, railH, 0)); | ||
| anchors.set("bars_left", new THREE.Vector3(halfSpan, railH, 0)); | ||
| anchors.set("bars_right", new THREE.Vector3(-halfSpan, railH, 0)); | ||
| } | ||
@@ -107,0 +111,0 @@ else if (type === "box") { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"props.js","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"props.js","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"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"} |
@@ -32,2 +32,4 @@ /** | ||
| sample(t: number, bones: Map<string, THREE.Object3D>): { | ||
| /** Zero-based real phase index, or -1 while blending through loop reset. */ | ||
| phaseIndex: number; | ||
| phaseName: string; | ||
@@ -34,0 +36,0 @@ cue?: string; |
+12
-2
@@ -12,2 +12,4 @@ /** | ||
| const DEG = Math.PI / 180; | ||
| const AXIS_INDEX = { x: 0, y: 1, z: 2 }; | ||
| const ALL_AXES = ["x", "y", "z"]; | ||
| function eulerToQuat([x, y, z]) { | ||
@@ -137,3 +139,7 @@ return new THREE.Quaternion().setFromEuler(new THREE.Euler(x * DEG, y * DEG, z * DEG, "XYZ")); | ||
| for (const target of phase.targets) { | ||
| curr.set(target.boneId, [target.euler.x, target.euler.y, target.euler.z]); | ||
| const next = [...(curr.get(target.boneId) ?? [0, 0, 0])]; | ||
| for (const axis of target.axes ?? ALL_AXES) { | ||
| next[AXIS_INDEX[axis]] = target.euler[axis]; | ||
| } | ||
| curr.set(target.boneId, next); | ||
| } | ||
@@ -287,2 +293,3 @@ if (phase.turnDeg !== undefined) | ||
| return { | ||
| phaseIndex: i < segments.length ? i : -1, | ||
| phaseName: b.name, | ||
@@ -314,3 +321,6 @@ ...(b.cue ? { cue: b.cue } : {}), | ||
| const [hx, hy, hz] = curr.get(hip) ?? [0, 0, 0]; | ||
| out.set(hip, [hx - pelvisX, hy, hz]); | ||
| // Parser-produced IR already enforces this coupled limit. Clamp here too | ||
| // because PosecodeIR is public and hosts may construct legacy/manual IR | ||
| // without running the parser first. | ||
| out.set(hip, [THREE.MathUtils.clamp(hx - pelvisX, -135, 20), hy, hz]); | ||
| } | ||
@@ -317,0 +327,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"} |
+629
-169
@@ -1,201 +0,661 @@ | ||
| Apache License | ||
| Version 2.0, January 2004 | ||
| http://www.apache.org/licenses/ | ||
| GNU AFFERO GENERAL PUBLIC LICENSE | ||
| Version 3, 19 November 2007 | ||
| TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||
| Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> | ||
| Everyone is permitted to copy and distribute verbatim copies | ||
| of this license document, but changing it is not allowed. | ||
| 1. Definitions. | ||
| Preamble | ||
| "License" shall mean the terms and conditions for use, reproduction, | ||
| and distribution as defined by Sections 1 through 9 of this document. | ||
| The GNU Affero General Public License is a free, copyleft license for | ||
| software and other kinds of works, specifically designed to ensure | ||
| cooperation with the community in the case of network server software. | ||
| "Licensor" shall mean the copyright owner or entity authorized by | ||
| the copyright owner that is granting the License. | ||
| The licenses for most software and other practical works are designed | ||
| to take away your freedom to share and change the works. By contrast, | ||
| our General Public Licenses are intended to guarantee your freedom to | ||
| share and change all versions of a program--to make sure it remains free | ||
| software for all its users. | ||
| "Legal Entity" shall mean the union of the acting entity and all | ||
| other entities that control, are controlled by, or are under common | ||
| control with that entity. For the purposes of this definition, | ||
| "control" means (i) the power, direct or indirect, to cause the | ||
| direction or management of such entity, whether by contract or | ||
| otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||
| outstanding shares, or (iii) beneficial ownership of such entity. | ||
| When we speak of free software, we are referring to freedom, not | ||
| price. Our General Public Licenses are designed to make sure that you | ||
| have the freedom to distribute copies of free software (and charge for | ||
| them if you wish), that you receive source code or can get it if you | ||
| want it, that you can change the software or use pieces of it in new | ||
| free programs, and that you know you can do these things. | ||
| "You" (or "Your") shall mean an individual or Legal Entity | ||
| exercising permissions granted by this License. | ||
| Developers that use our General Public Licenses protect your rights | ||
| with two steps: (1) assert copyright on the software, and (2) offer | ||
| you this License which gives you legal permission to copy, distribute | ||
| and/or modify the software. | ||
| "Source" form shall mean the preferred form for making modifications, | ||
| including but not limited to software source code, documentation | ||
| source, and configuration files. | ||
| A secondary benefit of defending all users' freedom is that | ||
| improvements made in alternate versions of the program, if they | ||
| receive widespread use, become available for other developers to | ||
| incorporate. Many developers of free software are heartened and | ||
| encouraged by the resulting cooperation. However, in the case of | ||
| software used on network servers, this result may fail to come about. | ||
| The GNU General Public License permits making a modified version and | ||
| letting the public access it on a server without ever releasing its | ||
| source code to the public. | ||
| "Object" form shall mean any form resulting from mechanical | ||
| transformation or translation of a Source form, including but | ||
| not limited to compiled object code, generated documentation, | ||
| and conversions to other media types. | ||
| The GNU Affero General Public License is designed specifically to | ||
| ensure that, in such cases, the modified source code becomes available | ||
| to the community. It requires the operator of a network server to | ||
| provide the source code of the modified version running there to the | ||
| users of that server. Therefore, public use of a modified version, on | ||
| a publicly accessible server, gives the public access to the source | ||
| code of the modified version. | ||
| "Work" shall mean the work of authorship, whether in Source or | ||
| Object form, made available under the License, as indicated by a | ||
| copyright notice that is included in or attached to the work | ||
| (an example is provided in the Appendix below). | ||
| An older license, called the Affero General Public License and | ||
| published by Affero, was designed to accomplish similar goals. This is | ||
| a different license, not a version of the Affero GPL, but Affero has | ||
| released a new version of the Affero GPL which permits relicensing under | ||
| this license. | ||
| "Derivative Works" shall mean any work, whether in Source or Object | ||
| form, that is based on (or derived from) the Work and for which the | ||
| editorial revisions, annotations, elaborations, or other modifications | ||
| represent, as a whole, an original work of authorship. For the purposes | ||
| of this License, Derivative Works shall not include works that remain | ||
| separable from, or merely link (or bind by name) to the interfaces of, | ||
| the Work and Derivative Works thereof. | ||
| The precise terms and conditions for copying, distribution and | ||
| modification follow. | ||
| "Contribution" shall mean any work of authorship, including | ||
| the original version of the Work and any modifications or additions | ||
| to that Work or Derivative Works thereof, that is intentionally | ||
| submitted to Licensor for inclusion in the Work by the copyright owner | ||
| or by an individual or Legal Entity authorized to submit on behalf of | ||
| the copyright owner. For the purposes of this definition, "submitted" | ||
| means any form of electronic, verbal, or written communication sent | ||
| to the Licensor or its representatives, including but not limited to | ||
| communication on electronic mailing lists, source code control systems, | ||
| and issue tracking systems that are managed by, or on behalf of, the | ||
| Licensor for the purpose of discussing and improving the Work, but | ||
| excluding communication that is conspicuously marked or otherwise | ||
| designated in writing by the copyright owner as "Not a Contribution." | ||
| TERMS AND CONDITIONS | ||
| "Contributor" shall mean Licensor and any individual or Legal Entity | ||
| on behalf of whom a Contribution has been received by Licensor and | ||
| subsequently incorporated within the Work. | ||
| 0. Definitions. | ||
| 2. Grant of Copyright License. Subject to the terms and conditions of | ||
| this License, each Contributor hereby grants to You a perpetual, | ||
| worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
| copyright license to reproduce, prepare Derivative Works of, | ||
| publicly display, publicly perform, sublicense, and distribute the | ||
| Work and such Derivative Works in Source or Object form. | ||
| "This License" refers to version 3 of the GNU Affero General Public License. | ||
| 3. Grant of Patent License. Subject to the terms and conditions of | ||
| this License, each Contributor hereby grants to You a perpetual, | ||
| worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
| (except as stated in this section) patent license to make, have made, | ||
| use, offer to sell, sell, import, and otherwise transfer the Work, | ||
| where such license applies only to those patent claims licensable | ||
| by such Contributor that are necessarily infringed by their | ||
| Contribution(s) alone or by combination of their Contribution(s) | ||
| with the Work to which such Contribution(s) was submitted. If You | ||
| institute patent litigation against any entity (including a | ||
| cross-claim or counterclaim in a lawsuit) alleging that the Work | ||
| or a Contribution incorporated within the Work constitutes direct | ||
| or contributory patent infringement, then any patent licenses | ||
| granted to You under this License for that Work shall terminate | ||
| as of the date such litigation is filed. | ||
| "Copyright" also means copyright-like laws that apply to other kinds of | ||
| works, such as semiconductor masks. | ||
| 4. Redistribution. You may reproduce and distribute copies of the | ||
| Work or Derivative Works thereof in any medium, with or without | ||
| modifications, and in Source or Object form, provided that You | ||
| meet the following conditions: | ||
| "The Program" refers to any copyrightable work licensed under this | ||
| License. Each licensee is addressed as "you". "Licensees" and | ||
| "recipients" may be individuals or organizations. | ||
| (a) You must give any other recipients of the Work or | ||
| Derivative Works a copy of this License; and | ||
| To "modify" a work means to copy from or adapt all or part of the work | ||
| in a fashion requiring copyright permission, other than the making of an | ||
| exact copy. The resulting work is called a "modified version" of the | ||
| earlier work or a work "based on" the earlier work. | ||
| (b) You must cause any modified files to carry prominent notices | ||
| stating that You changed the files; and | ||
| A "covered work" means either the unmodified Program or a work based | ||
| on the Program. | ||
| (c) You must retain, in the Source form of any Derivative Works | ||
| that You distribute, all copyright, patent, trademark, and | ||
| attribution notices from the Source form of the Work, | ||
| excluding those notices that do not pertain to any part of | ||
| the Derivative Works; and | ||
| To "propagate" a work means to do anything with it that, without | ||
| permission, would make you directly or secondarily liable for | ||
| infringement under applicable copyright law, except executing it on a | ||
| computer or modifying a private copy. Propagation includes copying, | ||
| distribution (with or without modification), making available to the | ||
| public, and in some countries other activities as well. | ||
| (d) If the Work includes a "NOTICE" text file as part of its | ||
| distribution, then any Derivative Works that You distribute must | ||
| include a readable copy of the attribution notices contained | ||
| within such NOTICE file, excluding those notices that do not | ||
| pertain to any part of the Derivative Works, in at least one | ||
| of the following places: within a NOTICE text file distributed | ||
| as part of the Derivative Works; within the Source form or | ||
| documentation, if provided along with the Derivative Works; or, | ||
| within a display generated by the Derivative Works, if and | ||
| wherever such third-party notices normally appear. The contents | ||
| of the NOTICE file are for informational purposes only and | ||
| do not modify the License. You may add Your own attribution | ||
| notices within Derivative Works that You distribute, alongside | ||
| or as an addendum to the NOTICE text from the Work, provided | ||
| that such additional attribution notices cannot be construed | ||
| as modifying the License. | ||
| To "convey" a work means any kind of propagation that enables other | ||
| parties to make or receive copies. Mere interaction with a user through | ||
| a computer network, with no transfer of a copy, is not conveying. | ||
| You may add Your own copyright statement to Your modifications and | ||
| may provide additional or different license terms and conditions | ||
| for use, reproduction, or distribution of Your modifications, or | ||
| for any such Derivative Works as a whole, provided Your use, | ||
| reproduction, and distribution of the Work otherwise complies with | ||
| the conditions stated in this License. | ||
| An interactive user interface displays "Appropriate Legal Notices" | ||
| to the extent that it includes a convenient and prominently visible | ||
| feature that (1) displays an appropriate copyright notice, and (2) | ||
| tells the user that there is no warranty for the work (except to the | ||
| extent that warranties are provided), that licensees may convey the | ||
| work under this License, and how to view a copy of this License. If | ||
| the interface presents a list of user commands or options, such as a | ||
| menu, a prominent item in the list meets this criterion. | ||
| 5. Submission of Contributions. Unless You explicitly state otherwise, | ||
| any Contribution intentionally submitted for inclusion in the Work | ||
| by You to the Licensor shall be under the terms and conditions of | ||
| this License, without any additional terms or conditions. | ||
| Notwithstanding the above, nothing herein shall supersede or modify | ||
| the terms of any separate license agreement you may have executed | ||
| with Licensor regarding such Contributions. | ||
| 1. Source Code. | ||
| 6. Trademarks. This License does not grant permission to use the trade | ||
| names, trademarks, service marks, or product names of the Licensor, | ||
| except as required for reasonable and customary use in describing the | ||
| origin of the Work and reproducing the content of the NOTICE file. | ||
| The "source code" for a work means the preferred form of the work | ||
| for making modifications to it. "Object code" means any non-source | ||
| form of a work. | ||
| 7. Disclaimer of Warranty. Unless required by applicable law or | ||
| agreed to in writing, Licensor provides the Work (and each | ||
| Contributor provides its Contributions) on an "AS IS" BASIS, | ||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||
| implied, including, without limitation, any warranties or conditions | ||
| of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||
| PARTICULAR PURPOSE. You are solely responsible for determining the | ||
| appropriateness of using or redistributing the Work and assume any | ||
| risks associated with Your exercise of permissions under this License. | ||
| A "Standard Interface" means an interface that either is an official | ||
| standard defined by a recognized standards body, or, in the case of | ||
| interfaces specified for a particular programming language, one that | ||
| is widely used among developers working in that language. | ||
| 8. Limitation of Liability. In no event and under no legal theory, | ||
| whether in tort (including negligence), contract, or otherwise, | ||
| unless required by applicable law (such as deliberate and grossly | ||
| negligent acts) or agreed to in writing, shall any Contributor be | ||
| liable to You for damages, including any direct, indirect, special, | ||
| incidental, or consequential damages of any character arising as a | ||
| result of this License or out of the use or inability to use the | ||
| Work (including but not limited to damages for loss of goodwill, | ||
| work stoppage, computer failure or malfunction, or any and all | ||
| other commercial damages or losses), even if such Contributor | ||
| has been advised of the possibility of such damages. | ||
| The "System Libraries" of an executable work include anything, other | ||
| than the work as a whole, that (a) is included in the normal form of | ||
| packaging a Major Component, but which is not part of that Major | ||
| Component, and (b) serves only to enable use of the work with that | ||
| Major Component, or to implement a Standard Interface for which an | ||
| implementation is available to the public in source code form. A | ||
| "Major Component", in this context, means a major essential component | ||
| (kernel, window system, and so on) of the specific operating system | ||
| (if any) on which the executable work runs, or a compiler used to | ||
| produce the work, or an object code interpreter used to run it. | ||
| 9. Accepting Warranty or Additional Liability. While redistributing | ||
| the Work or Derivative Works thereof, You may choose to offer, | ||
| and charge a fee for, acceptance of support, warranty, indemnity, | ||
| or other liability obligations and/or rights consistent with this | ||
| License. However, in accepting such obligations, You may act only | ||
| on Your own behalf and on Your sole responsibility, not on behalf | ||
| of any other Contributor, and only if You agree to indemnify, | ||
| defend, and hold each Contributor harmless for any liability | ||
| incurred by, or claims asserted against, such Contributor by reason | ||
| of your accepting any such warranty or additional liability. | ||
| The "Corresponding Source" for a work in object code form means all | ||
| the source code needed to generate, install, and (for an executable | ||
| work) run the object code and to modify the work, including scripts to | ||
| control those activities. However, it does not include the work's | ||
| System Libraries, or general-purpose tools or generally available free | ||
| programs which are used unmodified in performing those activities but | ||
| which are not part of the work. For example, Corresponding Source | ||
| includes interface definition files associated with source files for | ||
| the work, and the source code for shared libraries and dynamically | ||
| linked subprograms that the work is specifically designed to require, | ||
| such as by intimate data communication or control flow between those | ||
| subprograms and other parts of the work. | ||
| END OF TERMS AND CONDITIONS | ||
| The Corresponding Source need not include anything that users | ||
| can regenerate automatically from other parts of the Corresponding | ||
| Source. | ||
| APPENDIX: How to apply the Apache License to your work. | ||
| The Corresponding Source for a work in source code form is that | ||
| same work. | ||
| To apply the Apache License to your work, attach the following | ||
| boilerplate notice, with the fields enclosed by brackets "[]" | ||
| replaced with your own identifying information. (Don't include | ||
| the brackets!) The text should be enclosed in the appropriate | ||
| comment syntax for the file format. We also recommend that a | ||
| file or class name and description of purpose be included on the | ||
| same "printed page" as the copyright notice for easier | ||
| identification within third-party archives. | ||
| 2. Basic Permissions. | ||
| Copyright 2026 Posecode | ||
| All rights granted under this License are granted for the term of | ||
| copyright on the Program, and are irrevocable provided the stated | ||
| conditions are met. This License explicitly affirms your unlimited | ||
| permission to run the unmodified Program. The output from running a | ||
| covered work is covered by this License only if the output, given its | ||
| content, constitutes a covered work. This License acknowledges your | ||
| rights of fair use or other equivalent, as provided by copyright law. | ||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||
| you may not use this file except in compliance with the License. | ||
| You may obtain a copy of the License at | ||
| You may make, run and propagate covered works that you do not | ||
| convey, without conditions so long as your license otherwise remains | ||
| in force. You may convey covered works to others for the sole purpose | ||
| of having them make modifications exclusively for you, or provide you | ||
| with facilities for running those works, provided that you comply with | ||
| the terms of this License in conveying all material for which you do | ||
| not control copyright. Those thus making or running the covered works | ||
| for you must do so exclusively on your behalf, under your direction | ||
| and control, on terms that prohibit them from making any copies of | ||
| your copyrighted material outside their relationship with you. | ||
| http://www.apache.org/licenses/LICENSE-2.0 | ||
| Conveying under any other circumstances is permitted solely under | ||
| the conditions stated below. Sublicensing is not allowed; section 10 | ||
| makes it unnecessary. | ||
| Unless required by applicable law or agreed to in writing, software | ||
| distributed under the License is distributed on an "AS IS" BASIS, | ||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| See the License for the specific language governing permissions and | ||
| limitations under the License. | ||
| 3. Protecting Users' Legal Rights From Anti-Circumvention Law. | ||
| No covered work shall be deemed part of an effective technological | ||
| measure under any applicable law fulfilling obligations under article | ||
| 11 of the WIPO copyright treaty adopted on 20 December 1996, or | ||
| similar laws prohibiting or restricting circumvention of such | ||
| measures. | ||
| When you convey a covered work, you waive any legal power to forbid | ||
| circumvention of technological measures to the extent such circumvention | ||
| is effected by exercising rights under this License with respect to | ||
| the covered work, and you disclaim any intention to limit operation or | ||
| modification of the work as a means of enforcing, against the work's | ||
| users, your or third parties' legal rights to forbid circumvention of | ||
| technological measures. | ||
| 4. Conveying Verbatim Copies. | ||
| You may convey verbatim copies of the Program's source code as you | ||
| receive it, in any medium, provided that you conspicuously and | ||
| appropriately publish on each copy an appropriate copyright notice; | ||
| keep intact all notices stating that this License and any | ||
| non-permissive terms added in accord with section 7 apply to the code; | ||
| keep intact all notices of the absence of any warranty; and give all | ||
| recipients a copy of this License along with the Program. | ||
| You may charge any price or no price for each copy that you convey, | ||
| and you may offer support or warranty protection for a fee. | ||
| 5. Conveying Modified Source Versions. | ||
| You may convey a work based on the Program, or the modifications to | ||
| produce it from the Program, in the form of source code under the | ||
| terms of section 4, provided that you also meet all of these conditions: | ||
| a) The work must carry prominent notices stating that you modified | ||
| it, and giving a relevant date. | ||
| b) The work must carry prominent notices stating that it is | ||
| released under this License and any conditions added under section | ||
| 7. This requirement modifies the requirement in section 4 to | ||
| "keep intact all notices". | ||
| c) You must license the entire work, as a whole, under this | ||
| License to anyone who comes into possession of a copy. This | ||
| License will therefore apply, along with any applicable section 7 | ||
| additional terms, to the whole of the work, and all its parts, | ||
| regardless of how they are packaged. This License gives no | ||
| permission to license the work in any other way, but it does not | ||
| invalidate such permission if you have separately received it. | ||
| d) If the work has interactive user interfaces, each must display | ||
| Appropriate Legal Notices; however, if the Program has interactive | ||
| interfaces that do not display Appropriate Legal Notices, your | ||
| work need not make them do so. | ||
| A compilation of a covered work with other separate and independent | ||
| works, which are not by their nature extensions of the covered work, | ||
| and which are not combined with it such as to form a larger program, | ||
| in or on a volume of a storage or distribution medium, is called an | ||
| "aggregate" if the compilation and its resulting copyright are not | ||
| used to limit the access or legal rights of the compilation's users | ||
| beyond what the individual works permit. Inclusion of a covered work | ||
| in an aggregate does not cause this License to apply to the other | ||
| parts of the aggregate. | ||
| 6. Conveying Non-Source Forms. | ||
| You may convey a covered work in object code form under the terms | ||
| of sections 4 and 5, provided that you also convey the | ||
| machine-readable Corresponding Source under the terms of this License, | ||
| in one of these ways: | ||
| a) Convey the object code in, or embodied in, a physical product | ||
| (including a physical distribution medium), accompanied by the | ||
| Corresponding Source fixed on a durable physical medium | ||
| customarily used for software interchange. | ||
| b) Convey the object code in, or embodied in, a physical product | ||
| (including a physical distribution medium), accompanied by a | ||
| written offer, valid for at least three years and valid for as | ||
| long as you offer spare parts or customer support for that product | ||
| model, to give anyone who possesses the object code either (1) a | ||
| copy of the Corresponding Source for all the software in the | ||
| product that is covered by this License, on a durable physical | ||
| medium customarily used for software interchange, for a price no | ||
| more than your reasonable cost of physically performing this | ||
| conveying of source, or (2) access to copy the | ||
| Corresponding Source from a network server at no charge. | ||
| c) Convey individual copies of the object code with a copy of the | ||
| written offer to provide the Corresponding Source. This | ||
| alternative is allowed only occasionally and noncommercially, and | ||
| only if you received the object code with such an offer, in accord | ||
| with subsection 6b. | ||
| d) Convey the object code by offering access from a designated | ||
| place (gratis or for a charge), and offer equivalent access to the | ||
| Corresponding Source in the same way through the same place at no | ||
| further charge. You need not require recipients to copy the | ||
| Corresponding Source along with the object code. If the place to | ||
| copy the object code is a network server, the Corresponding Source | ||
| may be on a different server (operated by you or a third party) | ||
| that supports equivalent copying facilities, provided you maintain | ||
| clear directions next to the object code saying where to find the | ||
| Corresponding Source. Regardless of what server hosts the | ||
| Corresponding Source, you remain obligated to ensure that it is | ||
| available for as long as needed to satisfy these requirements. | ||
| e) Convey the object code using peer-to-peer transmission, provided | ||
| you inform other peers where the object code and Corresponding | ||
| Source of the work are being offered to the general public at no | ||
| charge under subsection 6d. | ||
| A separable portion of the object code, whose source code is excluded | ||
| from the Corresponding Source as a System Library, need not be | ||
| included in conveying the object code work. | ||
| A "User Product" is either (1) a "consumer product", which means any | ||
| tangible personal property which is normally used for personal, family, | ||
| or household purposes, or (2) anything designed or sold for incorporation | ||
| into a dwelling. In determining whether a product is a consumer product, | ||
| doubtful cases shall be resolved in favor of coverage. For a particular | ||
| product received by a particular user, "normally used" refers to a | ||
| typical or common use of that class of product, regardless of the status | ||
| of the particular user or of the way in which the particular user | ||
| actually uses, or expects or is expected to use, the product. A product | ||
| is a consumer product regardless of whether the product has substantial | ||
| commercial, industrial or non-consumer uses, unless such uses represent | ||
| the only significant mode of use of the product. | ||
| "Installation Information" for a User Product means any methods, | ||
| procedures, authorization keys, or other information required to install | ||
| and execute modified versions of a covered work in that User Product from | ||
| a modified version of its Corresponding Source. The information must | ||
| suffice to ensure that the continued functioning of the modified object | ||
| code is in no case prevented or interfered with solely because | ||
| modification has been made. | ||
| If you convey an object code work under this section in, or with, or | ||
| specifically for use in, a User Product, and the conveying occurs as | ||
| part of a transaction in which the right of possession and use of the | ||
| User Product is transferred to the recipient in perpetuity or for a | ||
| fixed term (regardless of how the transaction is characterized), the | ||
| Corresponding Source conveyed under this section must be accompanied | ||
| by the Installation Information. But this requirement does not apply | ||
| if neither you nor any third party retains the ability to install | ||
| modified object code on the User Product (for example, the work has | ||
| been installed in ROM). | ||
| The requirement to provide Installation Information does not include a | ||
| requirement to continue to provide support service, warranty, or updates | ||
| for a work that has been modified or installed by the recipient, or for | ||
| the User Product in which it has been modified or installed. Access to a | ||
| network may be denied when the modification itself materially and | ||
| adversely affects the operation of the network or violates the rules and | ||
| protocols for communication across the network. | ||
| Corresponding Source conveyed, and Installation Information provided, | ||
| in accord with this section must be in a format that is publicly | ||
| documented (and with an implementation available to the public in | ||
| source code form), and must require no special password or key for | ||
| unpacking, reading or copying. | ||
| 7. Additional Terms. | ||
| "Additional permissions" are terms that supplement the terms of this | ||
| License by making exceptions from one or more of its conditions. | ||
| Additional permissions that are applicable to the entire Program shall | ||
| be treated as though they were included in this License, to the extent | ||
| that they are valid under applicable law. If additional permissions | ||
| apply only to part of the Program, that part may be used separately | ||
| under those permissions, but the entire Program remains governed by | ||
| this License without regard to the additional permissions. | ||
| When you convey a copy of a covered work, you may at your option | ||
| remove any additional permissions from that copy, or from any part of | ||
| it. (Additional permissions may be written to require their own | ||
| removal in certain cases when you modify the work.) You may place | ||
| additional permissions on material, added by you to a covered work, | ||
| for which you have or can give appropriate copyright permission. | ||
| Notwithstanding any other provision of this License, for material you | ||
| add to a covered work, you may (if authorized by the copyright holders of | ||
| that material) supplement the terms of this License with terms: | ||
| a) Disclaiming warranty or limiting liability differently from the | ||
| terms of sections 15 and 16 of this License; or | ||
| b) Requiring preservation of specified reasonable legal notices or | ||
| author attributions in that material or in the Appropriate Legal | ||
| Notices displayed by works containing it; or | ||
| c) Prohibiting misrepresentation of the origin of that material, or | ||
| requiring that modified versions of such material be marked in | ||
| reasonable ways as different from the original version; or | ||
| d) Limiting the use for publicity purposes of names of licensors or | ||
| authors of the material; or | ||
| e) Declining to grant rights under trademark law for use of some | ||
| trade names, trademarks, or service marks; or | ||
| f) Requiring indemnification of licensors and authors of that | ||
| material by anyone who conveys the material (or modified versions of | ||
| it) with contractual assumptions of liability to the recipient, for | ||
| any liability that these contractual assumptions directly impose on | ||
| those licensors and authors. | ||
| All other non-permissive additional terms are considered "further | ||
| restrictions" within the meaning of section 10. If the Program as you | ||
| received it, or any part of it, contains a notice stating that it is | ||
| governed by this License along with a term that is a further | ||
| restriction, you may remove that term. If a license document contains | ||
| a further restriction but permits relicensing or conveying under this | ||
| License, you may add to a covered work material governed by the terms | ||
| of that license document, provided that the further restriction does | ||
| not survive such relicensing or conveying. | ||
| If you add terms to a covered work in accord with this section, you | ||
| must place, in the relevant source files, a statement of the | ||
| additional terms that apply to those files, or a notice indicating | ||
| where to find the applicable terms. | ||
| Additional terms, permissive or non-permissive, may be stated in the | ||
| form of a separately written license, or stated as exceptions; | ||
| the above requirements apply either way. | ||
| 8. Termination. | ||
| You may not propagate or modify a covered work except as expressly | ||
| provided under this License. Any attempt otherwise to propagate or | ||
| modify it is void, and will automatically terminate your rights under | ||
| this License (including any patent licenses granted under the third | ||
| paragraph of section 11). | ||
| However, if you cease all violation of this License, then your | ||
| license from a particular copyright holder is reinstated (a) | ||
| provisionally, unless and until the copyright holder explicitly and | ||
| finally terminates your license, and (b) permanently, if the copyright | ||
| holder fails to notify you of the violation by some reasonable means | ||
| prior to 60 days after the cessation. | ||
| Moreover, your license from a particular copyright holder is | ||
| reinstated permanently if the copyright holder notifies you of the | ||
| violation by some reasonable means, this is the first time you have | ||
| received notice of violation of this License (for any work) from that | ||
| copyright holder, and you cure the violation prior to 30 days after | ||
| your receipt of the notice. | ||
| Termination of your rights under this section does not terminate the | ||
| licenses of parties who have received copies or rights from you under | ||
| this License. If your rights have been terminated and not permanently | ||
| reinstated, you do not qualify to receive new licenses for the same | ||
| material under section 10. | ||
| 9. Acceptance Not Required for Having Copies. | ||
| You are not required to accept this License in order to receive or | ||
| run a copy of the Program. Ancillary propagation of a covered work | ||
| occurring solely as a consequence of using peer-to-peer transmission | ||
| to receive a copy likewise does not require acceptance. However, | ||
| nothing other than this License grants you permission to propagate or | ||
| modify any covered work. These actions infringe copyright if you do | ||
| not accept this License. Therefore, by modifying or propagating a | ||
| covered work, you indicate your acceptance of this License to do so. | ||
| 10. Automatic Licensing of Downstream Recipients. | ||
| Each time you convey a covered work, the recipient automatically | ||
| receives a license from the original licensors, to run, modify and | ||
| propagate that work, subject to this License. You are not responsible | ||
| for enforcing compliance by third parties with this License. | ||
| An "entity transaction" is a transaction transferring control of an | ||
| organization, or substantially all assets of one, or subdividing an | ||
| organization, or merging organizations. If propagation of a covered | ||
| work results from an entity transaction, each party to that | ||
| transaction who receives a copy of the work also receives whatever | ||
| licenses to the work the party's predecessor in interest had or could | ||
| give under the previous paragraph, plus a right to possession of the | ||
| Corresponding Source of the work from the predecessor in interest, if | ||
| the predecessor has it or can get it with reasonable efforts. | ||
| You may not impose any further restrictions on the exercise of the | ||
| rights granted or affirmed under this License. For example, you may | ||
| not impose a license fee, royalty, or other charge for exercise of | ||
| rights granted under this License, and you may not initiate litigation | ||
| (including a cross-claim or counterclaim in a lawsuit) alleging that | ||
| any patent claim is infringed by making, using, selling, offering for | ||
| sale, or importing the Program or any portion of it. | ||
| 11. Patents. | ||
| A "contributor" is a copyright holder who authorizes use under this | ||
| License of the Program or a work on which the Program is based. The | ||
| work thus licensed is called the contributor's "contributor version". | ||
| A contributor's "essential patent claims" are all patent claims | ||
| owned or controlled by the contributor, whether already acquired or | ||
| hereafter acquired, that would be infringed by some manner, permitted | ||
| by this License, of making, using, or selling its contributor version, | ||
| but do not include claims that would be infringed only as a | ||
| consequence of further modification of the contributor version. For | ||
| purposes of this definition, "control" includes the right to grant | ||
| patent sublicenses in a manner consistent with the requirements of | ||
| this License. | ||
| Each contributor grants you a non-exclusive, worldwide, royalty-free | ||
| patent license under the contributor's essential patent claims, to | ||
| make, use, sell, offer for sale, import and otherwise run, modify and | ||
| propagate the contents of its contributor version. | ||
| In the following three paragraphs, a "patent license" is any express | ||
| agreement or commitment, however denominated, not to enforce a patent | ||
| (such as an express permission to practice a patent or covenant not to | ||
| sue for patent infringement). To "grant" such a patent license to a | ||
| party means to make such an agreement or commitment not to enforce a | ||
| patent against the party. | ||
| If you convey a covered work, knowingly relying on a patent license, | ||
| and the Corresponding Source of the work is not available for anyone | ||
| to copy, free of charge and under the terms of this License, through a | ||
| publicly available network server or other readily accessible means, | ||
| then you must either (1) cause the Corresponding Source to be so | ||
| available, or (2) arrange to deprive yourself of the benefit of the | ||
| patent license for this particular work, or (3) arrange, in a manner | ||
| consistent with the requirements of this License, to extend the patent | ||
| license to downstream recipients. "Knowingly relying" means you have | ||
| actual knowledge that, but for the patent license, your conveying the | ||
| covered work in a country, or your recipient's use of the covered work | ||
| in a country, would infringe one or more identifiable patents in that | ||
| country that you have reason to believe are valid. | ||
| If, pursuant to or in connection with a single transaction or | ||
| arrangement, you convey, or propagate by procuring conveyance of, a | ||
| covered work, and grant a patent license to some of the parties | ||
| receiving the covered work authorizing them to use, propagate, modify | ||
| or convey a specific copy of the covered work, then the patent license | ||
| you grant is automatically extended to all recipients of the covered | ||
| work and works based on it. | ||
| A patent license is "discriminatory" if it does not include within | ||
| the scope of its coverage, prohibits the exercise of, or is | ||
| conditioned on the non-exercise of one or more of the rights that are | ||
| specifically granted under this License. You may not convey a covered | ||
| work if you are a party to an arrangement with a third party that is | ||
| in the business of distributing software, under which you make payment | ||
| to the third party based on the extent of your activity of conveying | ||
| the work, and under which the third party grants, to any of the | ||
| parties who would receive the covered work from you, a discriminatory | ||
| patent license (a) in connection with copies of the covered work | ||
| conveyed by you (or copies made from those copies), or (b) primarily | ||
| for and in connection with specific products or compilations that | ||
| contain the covered work, unless you entered into that arrangement, | ||
| or that patent license was granted, prior to 28 March 2007. | ||
| Nothing in this License shall be construed as excluding or limiting | ||
| any implied license or other defenses to infringement that may | ||
| otherwise be available to you under applicable patent law. | ||
| 12. No Surrender of Others' Freedom. | ||
| If conditions are imposed on you (whether by court order, agreement or | ||
| otherwise) that contradict the conditions of this License, they do not | ||
| excuse you from the conditions of this License. If you cannot convey a | ||
| covered work so as to satisfy simultaneously your obligations under this | ||
| License and any other pertinent obligations, then as a consequence you may | ||
| not convey it at all. For example, if you agree to terms that obligate you | ||
| to collect a royalty for further conveying from those to whom you convey | ||
| the Program, the only way you could satisfy both those terms and this | ||
| License would be to refrain entirely from conveying the Program. | ||
| 13. Remote Network Interaction; Use with the GNU General Public License. | ||
| Notwithstanding any other provision of this License, if you modify the | ||
| Program, your modified version must prominently offer all users | ||
| interacting with it remotely through a computer network (if your version | ||
| supports such interaction) an opportunity to receive the Corresponding | ||
| Source of your version by providing access to the Corresponding Source | ||
| from a network server at no charge, through some standard or customary | ||
| means of facilitating copying of software. This Corresponding Source | ||
| shall include the Corresponding Source for any work covered by version 3 | ||
| of the GNU General Public License that is incorporated pursuant to the | ||
| following paragraph. | ||
| Notwithstanding any other provision of this License, you have | ||
| permission to link or combine any covered work with a work licensed | ||
| under version 3 of the GNU General Public License into a single | ||
| combined work, and to convey the resulting work. The terms of this | ||
| License will continue to apply to the part which is the covered work, | ||
| but the work with which it is combined will remain governed by version | ||
| 3 of the GNU General Public License. | ||
| 14. Revised Versions of this License. | ||
| The Free Software Foundation may publish revised and/or new versions of | ||
| the GNU Affero General Public License from time to time. Such new versions | ||
| will be similar in spirit to the present version, but may differ in detail to | ||
| address new problems or concerns. | ||
| Each version is given a distinguishing version number. If the | ||
| Program specifies that a certain numbered version of the GNU Affero General | ||
| Public License "or any later version" applies to it, you have the | ||
| option of following the terms and conditions either of that numbered | ||
| version or of any later version published by the Free Software | ||
| Foundation. If the Program does not specify a version number of the | ||
| GNU Affero General Public License, you may choose any version ever published | ||
| by the Free Software Foundation. | ||
| If the Program specifies that a proxy can decide which future | ||
| versions of the GNU Affero General Public License can be used, that proxy's | ||
| public statement of acceptance of a version permanently authorizes you | ||
| to choose that version for the Program. | ||
| Later license versions may give you additional or different | ||
| permissions. However, no additional obligations are imposed on any | ||
| author or copyright holder as a result of your choosing to follow a | ||
| later version. | ||
| 15. Disclaimer of Warranty. | ||
| THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | ||
| APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | ||
| HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | ||
| OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | ||
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | ||
| IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | ||
| ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | ||
| 16. Limitation of Liability. | ||
| IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | ||
| THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | ||
| GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | ||
| USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | ||
| DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | ||
| PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | ||
| EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | ||
| SUCH DAMAGES. | ||
| 17. Interpretation of Sections 15 and 16. | ||
| If the disclaimer of warranty and limitation of liability provided | ||
| above cannot be given local legal effect according to their terms, | ||
| reviewing courts shall apply local law that most closely approximates | ||
| an absolute waiver of all civil liability in connection with the | ||
| Program, unless a warranty or assumption of liability accompanies a | ||
| copy of the Program in return for a fee. | ||
| END OF TERMS AND CONDITIONS | ||
| How to Apply These Terms to Your New Programs | ||
| If you develop a new program, and you want it to be of the greatest | ||
| possible use to the public, the best way to achieve this is to make it | ||
| free software which everyone can redistribute and change under these terms. | ||
| To do so, attach the following notices to the program. It is safest | ||
| to attach them to the start of each source file to most effectively | ||
| state the exclusion of warranty; and each file should have at least | ||
| the "copyright" line and a pointer to where the full notice is found. | ||
| <one line to give the program's name and a brief idea of what it does.> | ||
| Copyright (C) <year> <name of author> | ||
| This program is free software: you can redistribute it and/or modify | ||
| it under the terms of the GNU Affero General Public License as published by | ||
| the Free Software Foundation, either version 3 of the License, or | ||
| (at your option) any later version. | ||
| This program is distributed in the hope that it will be useful, | ||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| GNU Affero General Public License for more details. | ||
| You should have received a copy of the GNU Affero General Public License | ||
| along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
| Also add information on how to contact you by electronic and paper mail. | ||
| If your software can interact with users remotely through a computer | ||
| network, you should also make sure that it provides a way for users to | ||
| get its source. For example, if your program is a web application, its | ||
| interface could display a "Source" link that leads users to an archive | ||
| of the code. There are many ways you could offer source, and different | ||
| solutions will be better for different programs; see section 13 for the | ||
| specific requirements. | ||
| You should also get your employer (if you work as a programmer) or school, | ||
| if any, to sign a "copyright disclaimer" for the program, if necessary. | ||
| For more information on this, and how to apply and follow the GNU AGPL, see | ||
| <https://www.gnu.org/licenses/>. |
+6
-4
| { | ||
| "name": "posecode-render", | ||
| "version": "0.2.2", | ||
| "version": "0.3.0", | ||
| "description": "Render a Posecode IR as an animated 3D human figure (skinned character or procedural mannequin) with Three.js.", | ||
| "license": "Apache-2.0", | ||
| "license": "AGPL-3.0-only", | ||
| "type": "module", | ||
@@ -20,3 +20,3 @@ "main": "./dist/index.js", | ||
| "peerDependencies": { | ||
| "posecode-parser": "0.2.2" | ||
| "posecode-parser": ">=0.2.2 <0.4.0" | ||
| }, | ||
@@ -46,3 +46,5 @@ "devDependencies": { | ||
| "dist", | ||
| "README.md" | ||
| "README.md", | ||
| "LICENSE", | ||
| "NOTICE" | ||
| ], | ||
@@ -49,0 +51,0 @@ "publishConfig": { |
+2
-2
@@ -31,3 +31,3 @@ # posecode-render | ||
| // zero-asset procedural figure. | ||
| characterUrl: "https://posecode.org/models/character.glb", | ||
| characterUrl: "https://posecode.org/models/xbot.glb", | ||
| }); | ||
@@ -52,2 +52,2 @@ | ||
| Apache-2.0 | ||
| AGPL-3.0-only. A separate commercial license is available for closed-source product use; see [commercial licensing](https://github.com/posecode-dev/posecode/blob/main/COMMERCIAL-LICENSE.md). |
Copyleft License
LicenseCopyleft license information was found.
Non-permissive License
LicenseA license not known to be considered permissive was found.
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
450225
27.86%46
9.52%5185
20.67%0
-100%3
Infinity%70
-30%