//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//       LottieGen version:
//           8.1.240821.1+077322fa26
//       
//       Command:
//           LottieGen -Language CSharp -Public -WinUIVersion 3.0 -InputFile SupplementalPolicy.json
//       
//       Input file:
//           SupplementalPolicy.json (126166 bytes created 20:07+02:00 Nov 24 2024)
//       
//       LottieGen source:
//           http://aka.ms/Lottie
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// ____________________________________
// |       Object stats       | Count |
// |__________________________|_______|
// | All CompositionObjects   |    80 |
// |--------------------------+-------|
// | Expression animators     |     1 |
// | KeyFrame animators       |     7 |
// | Reference parameters     |     1 |
// | Expression operations    |     0 |
// |--------------------------+-------|
// | Animated brushes         |     - |
// | Animated gradient stops  |     - |
// | ExpressionAnimations     |     1 |
// | PathKeyFrameAnimations   |     - |
// |--------------------------+-------|
// | ContainerVisuals         |     1 |
// | ShapeVisuals             |     1 |
// |--------------------------+-------|
// | ContainerShapes          |     2 |
// | CompositionSpriteShapes  |     8 |
// |--------------------------+-------|
// | Brushes                  |     5 |
// | Gradient stops           |     6 |
// | CompositionVisualSurface |     - |
// ------------------------------------
using Microsoft.Graphics;
using Microsoft.Graphics.Canvas.Geometry;
using Microsoft.UI.Composition;
using System;
using System.Collections.Generic;
using System.Numerics;
using Windows.UI;

namespace AnimatedVisuals
{
    // Name:        membership-card
    // Frame rate:  24 fps
    // Frame count: 28
    // Duration:    1166.7 mS
    // _____________________________________________________________________________________________
    // |           Marker           |           Constant           | Frame |   mS   |   Progress   |
    // |____________________________|______________________________|_______|________|______________|
    // | NormalToPressed_Start      | M_NormalToPressed_Start      |     0 |    0.0 | 0F           |
    // | NormalToPressed_End        | M_NormalToPressed_End        |     9 |  375.0 | 0.323214293F |
    // | PointerOverToPressed_Start | M_PointerOverToPressed_Start |     9 |  375.0 | 0.323214293F |
    // | PointerOverToPressed_End   | M_PointerOverToPressed_End   |    19 |  791.7 | 0.680357158F |
    // | PressedToNormal_Start      | M_PressedToNormal_Start      |    20 |  833.3 | 0.716071427F |
    // | PressedToNormal_End        | M_PressedToNormal_End        |    28 | 1166.7 | 1F           |
    // | PressedToPointerOver_Start | M_PressedToPointerOver_Start |    28 | 1166.7 | 1F           |
    // | PressedToPointerOver_End   | M_PressedToPointerOver_End   |    28 | 1166.7 | 1F           |
    // ---------------------------------------------------------------------------------------------
    sealed partial class SupplementalPolicy
        : Microsoft.UI.Xaml.Controls.IAnimatedVisualSource
        , Microsoft.UI.Xaml.Controls.IAnimatedVisualSource2
    {
        // Animation duration: 1.167 seconds.
        internal const long c_durationTicks = 11666666;

        // Marker: NormalToPressed_Start.
        internal const float M_NormalToPressed_Start = 0F;

        // Marker: NormalToPressed_End.
        internal const float M_NormalToPressed_End = 0.323214293F;

        // Marker: PointerOverToPressed_Start.
        internal const float M_PointerOverToPressed_Start = 0.323214293F;

        // Marker: PointerOverToPressed_End.
        internal const float M_PointerOverToPressed_End = 0.680357158F;

        // Marker: PressedToNormal_Start.
        internal const float M_PressedToNormal_Start = 0.716071427F;

        // Marker: PressedToNormal_End.
        internal const float M_PressedToNormal_End = 1F;

        // Marker: PressedToPointerOver_Start.
        internal const float M_PressedToPointerOver_Start = 1F;

        // Marker: PressedToPointerOver_End.
        internal const float M_PressedToPointerOver_End = 1F;

        public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor)
        {
            object ignored = null;
            return TryCreateAnimatedVisual(compositor, out ignored);
        }

        public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor, out object diagnostics)
        {
            diagnostics = null;

            var res =
                new SupplementalPolicy_AnimatedVisual(
                    compositor
                    );
            res.CreateAnimations();
            return res;
        }

        /// <summary>
        /// Gets the number of frames in the animation.
        /// </summary>
        public double FrameCount => 28d;

        /// <summary>
        /// Gets the frame rate of the animation.
        /// </summary>
        public double Framerate => 24d;

        /// <summary>
        /// Gets the duration of the animation.
        /// </summary>
        public TimeSpan Duration => TimeSpan.FromTicks(11666666);

        /// <summary>
        /// Converts a zero-based frame number to the corresponding progress value denoting the
        /// start of the frame.
        /// </summary>
        public double FrameToProgress(double frameNumber)
        {
            return frameNumber / 28d;
        }

        /// <summary>
        /// Returns a map from marker names to corresponding progress values.
        /// </summary>
        public IReadOnlyDictionary<string, double> Markers =>
            new Dictionary<string, double>
            {
                { "NormalToPressed_Start", 0d },
                { "NormalToPressed_End", 0.323214285714286 },
                { "PointerOverToPressed_Start", 0.323214285714286 },
                { "PointerOverToPressed_End", 0.680357142857143 },
                { "PressedToNormal_Start", 0.716071428571429 },
                { "PressedToNormal_End", 1d },
                { "PressedToPointerOver_Start", 1d },
                { "PressedToPointerOver_End", 1d },
            };

        /// <summary>
        /// Sets the color property with the given name, or does nothing if no such property
        /// exists.
        /// </summary>
        public void SetColorProperty(string propertyName, Color value)
        {
        }

        /// <summary>
        /// Sets the scalar property with the given name, or does nothing if no such property
        /// exists.
        /// </summary>
        public void SetScalarProperty(string propertyName, double value)
        {
        }

        sealed partial class SupplementalPolicy_AnimatedVisual
            : Microsoft.UI.Xaml.Controls.IAnimatedVisual
            , Microsoft.UI.Xaml.Controls.IAnimatedVisual2
        {
            const long c_durationTicks = 11666666;
            readonly Compositor _c;
            readonly ExpressionAnimation _reusableExpressionAnimation;
            AnimationController _animationController_0;
            CompositionColorBrush _colorBrush_AlmostDarkMagenta_FF7219A4;
            CompositionContainerShape _containerShape_0;
            CompositionContainerShape _containerShape_1;
            CompositionPathGeometry _pathGeometry_1;
            CompositionPathGeometry _pathGeometry_2;
            CompositionSpriteShape _spriteShape_1;
            CompositionSpriteShape _spriteShape_2;
            CompositionSpriteShape _spriteShape_3;
            CompositionSpriteShape _spriteShape_4;
            CompositionSpriteShape _spriteShape_7;
            ContainerVisual _root;
            CubicBezierEasingFunction _cubicBezierEasingFunction_0;
            StepEasingFunction _holdThenStepEasingFunction;
            StepEasingFunction _stepThenHoldEasingFunction;
            Vector2KeyFrameAnimation _scaleVector2Animation_4;

            void BindProperty(
                CompositionObject target,
                string animatedPropertyName,
                string expression,
                string referenceParameterName,
                CompositionObject referencedObject)
            {
                _reusableExpressionAnimation.ClearAllParameters();
                _reusableExpressionAnimation.Expression = expression;
                _reusableExpressionAnimation.SetReferenceParameter(referenceParameterName, referencedObject);
                target.StartAnimation(animatedPropertyName, _reusableExpressionAnimation);
            }

            ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation(float initialProgress, float initialValue, CompositionEasingFunction initialEasingFunction)
            {
                var result = _c.CreateScalarKeyFrameAnimation();
                result.Duration = TimeSpan.FromTicks(c_durationTicks);
                result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
                return result;
            }

            Vector2KeyFrameAnimation CreateVector2KeyFrameAnimation(float initialProgress, Vector2 initialValue, CompositionEasingFunction initialEasingFunction)
            {
                var result = _c.CreateVector2KeyFrameAnimation();
                result.Duration = TimeSpan.FromTicks(c_durationTicks);
                result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
                return result;
            }

            CompositionSpriteShape CreateSpriteShape(CompositionGeometry geometry, Matrix3x2 transformMatrix, CompositionBrush fillBrush)
            {
                var result = _c.CreateSpriteShape(geometry);
                result.TransformMatrix = transformMatrix;
                result.FillBrush = fillBrush;
                return result;
            }

            AnimationController AnimationController_0()
            {
                if (_animationController_0 != null) { return _animationController_0; }
                var result = _animationController_0 = _c.CreateAnimationController();
                result.Pause();
                BindProperty(_animationController_0, "Progress", "_.Progress", "_", _root);
                return result;
            }

            // - - - - Layer aggregator
            // - - ShapeGroup: Group 1
            CanvasGeometry Geometry_0()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(19.125F, -15F));
                    builder.AddLine(new Vector2(-19.125F, -15F));
                    builder.AddCubicBezier(new Vector2(-20.7129993F, -15F), new Vector2(-22F, -13.7130003F), new Vector2(-22F, -12.125F));
                    builder.AddLine(new Vector2(-22F, 12.125F));
                    builder.AddCubicBezier(new Vector2(-22F, 13.7130003F), new Vector2(-20.7129993F, 15F), new Vector2(-19.125F, 15F));
                    builder.AddLine(new Vector2(19.125F, 15F));
                    builder.AddCubicBezier(new Vector2(20.7129993F, 15F), new Vector2(22F, 13.7130003F), new Vector2(22F, 12.125F));
                    builder.AddLine(new Vector2(22F, -12.125F));
                    builder.AddCubicBezier(new Vector2(22F, -13.7130003F), new Vector2(20.7129993F, -15F), new Vector2(19.125F, -15F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_1()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(6.5F, 1F));
                    builder.AddLine(new Vector2(-6.5F, 1F));
                    builder.AddCubicBezier(new Vector2(-6.77600002F, 1F), new Vector2(-7F, 0.776000023F), new Vector2(-7F, 0.5F));
                    builder.AddLine(new Vector2(-7F, -0.5F));
                    builder.AddCubicBezier(new Vector2(-7F, -0.776000023F), new Vector2(-6.77600002F, -1F), new Vector2(-6.5F, -1F));
                    builder.AddLine(new Vector2(6.5F, -1F));
                    builder.AddCubicBezier(new Vector2(6.77600002F, -1F), new Vector2(7F, -0.776000023F), new Vector2(7F, -0.5F));
                    builder.AddLine(new Vector2(7F, 0.5F));
                    builder.AddCubicBezier(new Vector2(7F, 0.776000023F), new Vector2(6.77600002F, 1F), new Vector2(6.5F, 1F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_2()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(5.5F, 1F));
                    builder.AddLine(new Vector2(-5.5F, 1F));
                    builder.AddCubicBezier(new Vector2(-5.77600002F, 1F), new Vector2(-6F, 0.776000023F), new Vector2(-6F, 0.5F));
                    builder.AddLine(new Vector2(-6F, -0.5F));
                    builder.AddCubicBezier(new Vector2(-6F, -0.776000023F), new Vector2(-5.77600002F, -1F), new Vector2(-5.5F, -1F));
                    builder.AddLine(new Vector2(5.5F, -1F));
                    builder.AddCubicBezier(new Vector2(5.77600002F, -1F), new Vector2(6F, -0.776000023F), new Vector2(6F, -0.5F));
                    builder.AddLine(new Vector2(6F, 0.5F));
                    builder.AddCubicBezier(new Vector2(6F, 0.776000023F), new Vector2(5.77600002F, 1F), new Vector2(5.5F, 1F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: star
            // - - Transforms: shadow-2 Offset:<0.001, 0>
            CanvasGeometry Geometry_3()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(4.40999985F, 8.15100002F));
                    builder.AddCubicBezier(new Vector2(4.17199993F, 8.15100002F), new Vector2(3.93700004F, 8.0880003F), new Vector2(3.72900009F, 7.96799994F));
                    builder.AddLine(new Vector2(-0.00100000005F, 5.81599998F));
                    builder.AddLine(new Vector2(-3.73000002F, 7.96700001F));
                    builder.AddCubicBezier(new Vector2(-3.93899989F, 8.08699989F), new Vector2(-4.17399979F, 8.14999962F), new Vector2(-4.41099977F, 8.14999962F));
                    builder.AddCubicBezier(new Vector2(-4.82399988F, 8.14999962F), new Vector2(-5.21000004F, 7.96500015F), new Vector2(-5.47200012F, 7.64300013F));
                    builder.AddCubicBezier(new Vector2(-5.73099995F, 7.32399988F), new Vector2(-5.83099985F, 6.90899992F), new Vector2(-5.74499989F, 6.50500011F));
                    builder.AddLine(new Vector2(-4.85099983F, 2.29200006F));
                    builder.AddLine(new Vector2(-8.04899979F, -0.588999987F));
                    builder.AddCubicBezier(new Vector2(-8.45499992F, -0.95599997F), new Vector2(-8.60200024F, -1.505F), new Vector2(-8.43299961F, -2.02399993F));
                    builder.AddCubicBezier(new Vector2(-8.26399994F, -2.54399991F), new Vector2(-7.82200003F, -2.90100002F), new Vector2(-7.27899981F, -2.95799994F));
                    builder.AddLine(new Vector2(-2.99799991F, -3.41000009F));
                    builder.AddLine(new Vector2(-1.24399996F, -7.34299994F));
                    builder.AddCubicBezier(new Vector2(-1.023F, -7.84100008F), new Vector2(-0.546000004F, -8.15100002F), new Vector2(0F, -8.15100002F));
                    builder.AddCubicBezier(new Vector2(0.545000017F, -8.15100002F), new Vector2(1.02199996F, -7.84100008F), new Vector2(1.245F, -7.34299994F));
                    builder.AddLine(new Vector2(2.99799991F, -3.41000009F));
                    builder.AddLine(new Vector2(7.28000021F, -2.95799994F));
                    builder.AddCubicBezier(new Vector2(7.82299995F, -2.9000001F), new Vector2(8.26500034F, -2.54200006F), new Vector2(8.43299961F, -2.023F));
                    builder.AddCubicBezier(new Vector2(8.60099983F, -1.50300002F), new Vector2(8.45400047F, -0.954999983F), new Vector2(8.04800034F, -0.589999974F));
                    builder.AddLine(new Vector2(4.8499999F, 2.29200006F));
                    builder.AddLine(new Vector2(5.74399996F, 6.50500011F));
                    builder.AddCubicBezier(new Vector2(5.829F, 6.90799999F), new Vector2(5.73000002F, 7.32299995F), new Vector2(5.47200012F, 7.64300013F));
                    builder.AddCubicBezier(new Vector2(5.20900011F, 7.96600008F), new Vector2(4.82299995F, 8.15100002F), new Vector2(4.40999985F, 8.15100002F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: star
            // - - Transforms: shadow-1 Offset:<0.001, -0.001>
            CanvasGeometry Geometry_4()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(4.40999985F, 7.65199995F));
                    builder.AddCubicBezier(new Vector2(4.26000023F, 7.65199995F), new Vector2(4.11100006F, 7.61199999F), new Vector2(3.97900009F, 7.53599977F));
                    builder.AddLine(new Vector2(-0.00100000005F, 5.23999977F));
                    builder.AddLine(new Vector2(-3.98000002F, 7.53499985F));
                    builder.AddCubicBezier(new Vector2(-4.11299992F, 7.61100006F), new Vector2(-4.26200008F, 7.6500001F), new Vector2(-4.41099977F, 7.6500001F));
                    builder.AddCubicBezier(new Vector2(-4.67299986F, 7.6500001F), new Vector2(-4.91699982F, 7.53399992F), new Vector2(-5.08300018F, 7.329F));
                    builder.AddCubicBezier(new Vector2(-5.24700022F, 7.12699986F), new Vector2(-5.30999994F, 6.86399984F), new Vector2(-5.25500011F, 6.60699987F));
                    builder.AddLine(new Vector2(-4.30100012F, 2.11299992F));
                    builder.AddLine(new Vector2(-7.71400023F, -0.963F));
                    builder.AddCubicBezier(new Vector2(-7.97100019F, -1.19500005F), new Vector2(-8.06400013F, -1.54200006F), new Vector2(-7.95699978F, -1.87F));
                    builder.AddCubicBezier(new Vector2(-7.8499999F, -2.19799995F), new Vector2(-7.57000017F, -2.42600012F), new Vector2(-7.22700024F, -2.46199989F));
                    builder.AddLine(new Vector2(-2.65899992F, -2.94499993F));
                    builder.AddLine(new Vector2(-0.787999988F, -7.14099979F));
                    builder.AddCubicBezier(new Vector2(-0.648000002F, -7.45599985F), new Vector2(-0.345999986F, -7.65199995F), new Vector2(0F, -7.65199995F));
                    builder.AddCubicBezier(new Vector2(0.345999986F, -7.65199995F), new Vector2(0.647000015F, -7.45499992F), new Vector2(0.787999988F, -7.13899994F));
                    builder.AddLine(new Vector2(2.65899992F, -2.94300008F));
                    builder.AddLine(new Vector2(7.22800016F, -2.46199989F));
                    builder.AddCubicBezier(new Vector2(7.57200003F, -2.42499995F), new Vector2(7.85200024F, -2.19899988F), new Vector2(7.95800018F, -1.87F));
                    builder.AddCubicBezier(new Vector2(8.06400013F, -1.54100001F), new Vector2(7.97100019F, -1.19299996F), new Vector2(7.71400023F, -0.962000012F));
                    builder.AddLine(new Vector2(4.30200005F, 2.11299992F));
                    builder.AddLine(new Vector2(5.25500011F, 6.60699987F));
                    builder.AddCubicBezier(new Vector2(5.30900002F, 6.86199999F), new Vector2(5.24700022F, 7.125F), new Vector2(5.08300018F, 7.32700014F));
                    builder.AddCubicBezier(new Vector2(4.91599989F, 7.53299999F), new Vector2(4.671F, 7.65199995F), new Vector2(4.40999985F, 7.65199995F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Layer aggregator
            // - - Transforms: star
            CanvasGeometry Geometry_5()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(0.331F, -6.93499994F));
                    builder.AddLine(new Vector2(2.31900001F, -2.4749999F));
                    builder.AddLine(new Vector2(7.17399979F, -1.96200001F));
                    builder.AddCubicBezier(new Vector2(7.48600006F, -1.92900002F), new Vector2(7.61199999F, -1.54200006F), new Vector2(7.37900019F, -1.33200002F));
                    builder.AddLine(new Vector2(3.75200009F, 1.93599999F));
                    builder.AddLine(new Vector2(4.76499987F, 6.71199989F));
                    builder.AddCubicBezier(new Vector2(4.82999992F, 7.01900005F), new Vector2(4.50099993F, 7.25899982F), new Vector2(4.22900009F, 7.10200024F));
                    builder.AddLine(new Vector2(0F, 4.66200018F));
                    builder.AddLine(new Vector2(-4.22900009F, 7.10200024F));
                    builder.AddCubicBezier(new Vector2(-4.50099993F, 7.25899982F), new Vector2(-4.82999992F, 7.01999998F), new Vector2(-4.76499987F, 6.71199989F));
                    builder.AddLine(new Vector2(-3.75200009F, 1.93599999F));
                    builder.AddLine(new Vector2(-7.37900019F, -1.33200002F));
                    builder.AddCubicBezier(new Vector2(-7.61199999F, -1.54200006F), new Vector2(-7.48600006F, -1.92900002F), new Vector2(-7.17399979F, -1.96200001F));
                    builder.AddLine(new Vector2(-2.31900001F, -2.4749999F));
                    builder.AddLine(new Vector2(-0.331F, -6.93499994F));
                    builder.AddCubicBezier(new Vector2(-0.203999996F, -7.22300005F), new Vector2(0.203999996F, -7.22300005F), new Vector2(0.331F, -6.93499994F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CompositionColorBrush ColorBrush_AlmostDarkMagenta_FF7219A4()
            {
                return (_colorBrush_AlmostDarkMagenta_FF7219A4 == null)
                    ? _colorBrush_AlmostDarkMagenta_FF7219A4 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x72, 0x19, 0xA4))
                    : _colorBrush_AlmostDarkMagenta_FF7219A4;
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Transforms: shadow-2 Offset:<0.001, 0>
            CompositionColorBrush ColorBrush_SemiTransparentBlack_0()
            {
                return _c.CreateColorBrush(Color.FromArgb(0x0C, 0x00, 0x00, 0x00));
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Transforms: shadow-1 Offset:<0.001, -0.001>
            CompositionColorBrush ColorBrush_SemiTransparentBlack_1()
            {
                return _c.CreateColorBrush(Color.FromArgb(0x11, 0x00, 0x00, 0x00));
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Stop 0
            CompositionColorGradientStop GradientStop_0_AlmostGold_FFFFDA1C()
            {
                return _c.CreateColorGradientStop(0F, Color.FromArgb(0xFF, 0xFF, 0xDA, 0x1C));
            }

            // - - - Layer aggregator
            // - ShapeGroup: Group 1
            // Stop 0
            CompositionColorGradientStop GradientStop_0_AlmostMediumOrchid_FFBC4FF4()
            {
                return _c.CreateColorGradientStop(0F, Color.FromArgb(0xFF, 0xBC, 0x4F, 0xF4));
            }

            // - - - Layer aggregator
            // - ShapeGroup: Group 1
            // Stop 1
            CompositionColorGradientStop GradientStop_0p587_AlmostBlueViolet_FFA135EB()
            {
                return _c.CreateColorGradientStop(0.587000012F, Color.FromArgb(0xFF, 0xA1, 0x35, 0xEB));
            }

            // - - - Layer aggregator
            // - ShapeGroup: Group 1
            // Stop 2
            CompositionColorGradientStop GradientStop_0p794_AlmostBlueViolet_FF962AE8()
            {
                return _c.CreateColorGradientStop(0.79400003F, Color.FromArgb(0xFF, 0x96, 0x2A, 0xE8));
            }

            // - - - Layer aggregator
            // - ShapeGroup: Group 1
            // Stop 3
            CompositionColorGradientStop GradientStop_1_AlmostBlueViolet_FF8B1FE4()
            {
                return _c.CreateColorGradientStop(1F, Color.FromArgb(0xFF, 0x8B, 0x1F, 0xE4));
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Stop 1
            CompositionColorGradientStop GradientStop_1_AlmostOrange_FFFDB705()
            {
                return _c.CreateColorGradientStop(1F, Color.FromArgb(0xFF, 0xFD, 0xB7, 0x05));
            }

            // Layer aggregator
            CompositionContainerShape ContainerShape_0()
            {
                if (_containerShape_0 != null) { return _containerShape_0; }
                var result = _containerShape_0 = _c.CreateContainerShape();
                result.Offset = new Vector2(96F, 96F);
                result.Scale = new Vector2(4F, 4F);
                var shapes = result.Shapes;
                // ShapeGroup: Group 1
                shapes.Add(SpriteShape_0());
                // Transforms: line-4
                shapes.Add(SpriteShape_1());
                // Transforms: line-3
                shapes.Add(SpriteShape_2());
                // Transforms: line-2
                shapes.Add(SpriteShape_3());
                // Transforms: line-1
                shapes.Add(SpriteShape_4());
                // Transforms: star
                shapes.Add(ContainerShape_1());
                // Transforms: star
                shapes.Add(SpriteShape_7());
                return result;
            }

            // - Layer aggregator
            // Transforms for star
            CompositionContainerShape ContainerShape_1()
            {
                if (_containerShape_1 != null) { return _containerShape_1; }
                var result = _containerShape_1 = _c.CreateContainerShape();
                result.Offset = new Vector2(-9.5F, -1.13399994F);
                var shapes = result.Shapes;
                // Transforms: shadow-2 Offset:<0.001, 0>
                shapes.Add(SpriteShape_5());
                // Transforms: shadow-1 Offset:<0.001, -0.001>
                shapes.Add(SpriteShape_6());
                return result;
            }

            // - - Layer aggregator
            // ShapeGroup: Group 1
            CompositionLinearGradientBrush LinearGradientBrush_0()
            {
                var result = _c.CreateLinearGradientBrush();
                var colorStops = result.ColorStops;
                colorStops.Add(GradientStop_0_AlmostMediumOrchid_FFBC4FF4());
                colorStops.Add(GradientStop_0p587_AlmostBlueViolet_FFA135EB());
                colorStops.Add(GradientStop_0p794_AlmostBlueViolet_FF962AE8());
                colorStops.Add(GradientStop_1_AlmostBlueViolet_FF8B1FE4());
                result.MappingMode = CompositionMappingMode.Absolute;
                result.StartPoint = new Vector2(-18.625F, -18.25F);
                result.EndPoint = new Vector2(19.0639992F, 18.4360008F);
                return result;
            }

            // - - Layer aggregator
            // Transforms: star
            CompositionLinearGradientBrush LinearGradientBrush_1()
            {
                var result = _c.CreateLinearGradientBrush();
                var colorStops = result.ColorStops;
                colorStops.Add(GradientStop_0_AlmostGold_FFFFDA1C());
                colorStops.Add(GradientStop_1_AlmostOrange_FFFDB705());
                result.MappingMode = CompositionMappingMode.Absolute;
                result.StartPoint = new Vector2(-4F, -4.49100018F);
                result.EndPoint = new Vector2(4.55499983F, 8.12899971F);
                return result;
            }

            // - - Layer aggregator
            // ShapeGroup: Group 1
            CompositionPathGeometry PathGeometry_0()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_0()));
            }

            CompositionPathGeometry PathGeometry_1()
            {
                return (_pathGeometry_1 == null)
                    ? _pathGeometry_1 = _c.CreatePathGeometry(new CompositionPath(Geometry_1()))
                    : _pathGeometry_1;
            }

            CompositionPathGeometry PathGeometry_2()
            {
                return (_pathGeometry_2 == null)
                    ? _pathGeometry_2 = _c.CreatePathGeometry(new CompositionPath(Geometry_2()))
                    : _pathGeometry_2;
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Transforms: shadow-2 Offset:<0.001, 0>
            CompositionPathGeometry PathGeometry_3()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_3()));
            }

            // - - - Layer aggregator
            // - Transforms: star
            // Transforms: shadow-1 Offset:<0.001, -0.001>
            CompositionPathGeometry PathGeometry_4()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_4()));
            }

            // - - Layer aggregator
            // Transforms: star
            CompositionPathGeometry PathGeometry_5()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_5()));
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_0()
            {
                var result = _c.CreateSpriteShape(PathGeometry_0());
                result.FillBrush = LinearGradientBrush_0();
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_1()
            {
                if (_spriteShape_1 != null) { return _spriteShape_1; }
                var result = _spriteShape_1 = _c.CreateSpriteShape(PathGeometry_1());
                result.CenterPoint = new Vector2(-7F, 0F);
                result.Offset = new Vector2(10F, -6F);
                result.FillBrush = ColorBrush_AlmostDarkMagenta_FF7219A4();
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_2()
            {
                if (_spriteShape_2 != null) { return _spriteShape_2; }
                var result = _spriteShape_2 = _c.CreateSpriteShape(PathGeometry_2());
                result.CenterPoint = new Vector2(-6F, 0F);
                result.Offset = new Vector2(9F, -2F);
                result.FillBrush = ColorBrush_AlmostDarkMagenta_FF7219A4();
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_3()
            {
                if (_spriteShape_3 != null) { return _spriteShape_3; }
                var result = _spriteShape_3 = _c.CreateSpriteShape(PathGeometry_2());
                result.CenterPoint = new Vector2(-6F, 0F);
                result.Offset = new Vector2(9F, 6F);
                result.FillBrush = ColorBrush_AlmostDarkMagenta_FF7219A4();
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_4()
            {
                if (_spriteShape_4 != null) { return _spriteShape_4; }
                var result = _spriteShape_4 = _c.CreateSpriteShape(PathGeometry_1());
                result.CenterPoint = new Vector2(-7F, 0F);
                result.Offset = new Vector2(10F, 2F);
                result.FillBrush = ColorBrush_AlmostDarkMagenta_FF7219A4();
                return result;
            }

            // - - Layer aggregator
            // Transforms: star
            // Path 1
            CompositionSpriteShape SpriteShape_5()
            {
                // Offset:<0.001, 0>
                var geometry = PathGeometry_3();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 0.00100000005F, 0F), ColorBrush_SemiTransparentBlack_0()); ;
                return result;
            }

            // - - Layer aggregator
            // Transforms: star
            // Path 1
            CompositionSpriteShape SpriteShape_6()
            {
                // Offset:<0.001, -0.001>
                var geometry = PathGeometry_4();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 0.00100000005F, -0.00100000005F), ColorBrush_SemiTransparentBlack_1()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_7()
            {
                if (_spriteShape_7 != null) { return _spriteShape_7; }
                var result = _spriteShape_7 = _c.CreateSpriteShape(PathGeometry_5());
                result.Offset = new Vector2(-9.5F, -1.13399994F);
                result.FillBrush = LinearGradientBrush_1();
                return result;
            }

            // The root of the composition.
            ContainerVisual Root()
            {
                if (_root != null) { return _root; }
                var result = _root = _c.CreateContainerVisual();
                var propertySet = result.Properties;
                propertySet.InsertScalar("Progress", 0F);
                // Layer aggregator
                result.Children.InsertAtTop(ShapeVisual_0());
                return result;
            }

            CubicBezierEasingFunction CubicBezierEasingFunction_0()
            {
                return (_cubicBezierEasingFunction_0 == null)
                    ? _cubicBezierEasingFunction_0 = _c.CreateCubicBezierEasingFunction(new Vector2(0.333000004F, 0F), new Vector2(0.666999996F, 1F))
                    : _cubicBezierEasingFunction_0;
            }

            // - Layer aggregator
            // Rotation
            ScalarKeyFrameAnimation RotationAngleInDegreesScalarAnimation_0_to_0()
            {
                // Frame 0.
                var result = CreateScalarKeyFrameAnimation(0F, 0F, HoldThenStepEasingFunction());
                // Frame 4.
                result.InsertKeyFrame(0.142857149F, 7F, CubicBezierEasingFunction_0());
                // Frame 8.
                result.InsertKeyFrame(0.285714298F, -7F, CubicBezierEasingFunction_0());
                // Frame 12.
                result.InsertKeyFrame(0.428571433F, 5F, CubicBezierEasingFunction_0());
                // Frame 16.
                result.InsertKeyFrame(0.571428597F, -4F, CubicBezierEasingFunction_0());
                // Frame 20.
                result.InsertKeyFrame(0.714285731F, 3F, CubicBezierEasingFunction_0());
                // Frame 24.
                result.InsertKeyFrame(0.857142866F, 0F, CubicBezierEasingFunction_0());
                return result;
            }

            // Layer aggregator
            ShapeVisual ShapeVisual_0()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(192F, 192F);
                result.Shapes.Add(ContainerShape_0());
                return result;
            }

            StepEasingFunction HoldThenStepEasingFunction()
            {
                if (_holdThenStepEasingFunction != null) { return _holdThenStepEasingFunction; }
                var result = _holdThenStepEasingFunction = _c.CreateStepEasingFunction();
                result.IsFinalStepSingleFrame = true;
                return result;
            }

            StepEasingFunction StepThenHoldEasingFunction()
            {
                if (_stepThenHoldEasingFunction != null) { return _stepThenHoldEasingFunction; }
                var result = _stepThenHoldEasingFunction = _c.CreateStepEasingFunction();
                result.IsInitialStepSingleFrame = true;
                return result;
            }

            // - - Layer aggregator
            // Transforms: line-4
            // Scale
            Vector2KeyFrameAnimation ScaleVector2Animation_0()
            {
                // Frame 0.
                var result = CreateVector2KeyFrameAnimation(0F, new Vector2(1F, 1F), StepThenHoldEasingFunction());
                // Frame 3.
                result.InsertKeyFrame(0.107142858F, new Vector2(1F, 1F), HoldThenStepEasingFunction());
                // Frame 7.
                result.InsertKeyFrame(0.25F, new Vector2(0.810000002F, 1F), CubicBezierEasingFunction_0());
                // Frame 11.
                result.InsertKeyFrame(0.392857134F, new Vector2(1.04999995F, 1F), CubicBezierEasingFunction_0());
                // Frame 15.
                result.InsertKeyFrame(0.535714269F, new Vector2(1F, 1F), CubicBezierEasingFunction_0());
                return result;
            }

            // - - Layer aggregator
            // Transforms: line-3
            // Scale
            Vector2KeyFrameAnimation ScaleVector2Animation_1()
            {
                // Frame 0.
                var result = CreateVector2KeyFrameAnimation(0F, new Vector2(1F, 1F), StepThenHoldEasingFunction());
                // Frame 2.
                result.InsertKeyFrame(0.0714285746F, new Vector2(1F, 1F), HoldThenStepEasingFunction());
                // Frame 6.
                result.InsertKeyFrame(0.214285716F, new Vector2(0.810000002F, 1F), CubicBezierEasingFunction_0());
                // Frame 10.
                result.InsertKeyFrame(0.357142866F, new Vector2(1.04999995F, 1F), CubicBezierEasingFunction_0());
                // Frame 14.
                result.InsertKeyFrame(0.5F, new Vector2(1F, 1F), CubicBezierEasingFunction_0());
                return result;
            }

            // - - Layer aggregator
            // Transforms: line-2
            // Scale
            Vector2KeyFrameAnimation ScaleVector2Animation_2()
            {
                // Frame 0.
                var result = CreateVector2KeyFrameAnimation(0F, new Vector2(1F, 1F), StepThenHoldEasingFunction());
                // Frame 1.
                result.InsertKeyFrame(0.0357142873F, new Vector2(1F, 1F), HoldThenStepEasingFunction());
                // Frame 5.
                result.InsertKeyFrame(0.178571433F, new Vector2(0.810000002F, 1F), CubicBezierEasingFunction_0());
                // Frame 9.
                result.InsertKeyFrame(0.321428567F, new Vector2(1.04999995F, 1F), CubicBezierEasingFunction_0());
                // Frame 13.
                result.InsertKeyFrame(0.464285702F, new Vector2(1F, 1F), CubicBezierEasingFunction_0());
                return result;
            }

            // - - Layer aggregator
            // Transforms: line-1
            // Scale
            Vector2KeyFrameAnimation ScaleVector2Animation_3()
            {
                // Frame 0.
                var result = CreateVector2KeyFrameAnimation(0F, new Vector2(1F, 1F), HoldThenStepEasingFunction());
                // Frame 4.
                result.InsertKeyFrame(0.142857149F, new Vector2(0.810000002F, 1F), CubicBezierEasingFunction_0());
                // Frame 8.
                result.InsertKeyFrame(0.285714298F, new Vector2(1.04999995F, 1F), CubicBezierEasingFunction_0());
                // Frame 12.
                result.InsertKeyFrame(0.428571433F, new Vector2(1F, 1F), CubicBezierEasingFunction_0());
                return result;
            }

            // Scale
            Vector2KeyFrameAnimation ScaleVector2Animation_4()
            {
                // Frame 0.
                if (_scaleVector2Animation_4 != null) { return _scaleVector2Animation_4; }
                var result = _scaleVector2Animation_4 = CreateVector2KeyFrameAnimation(0F, new Vector2(1F, 1F), HoldThenStepEasingFunction());
                // Frame 4.
                result.InsertKeyFrame(0.142857149F, new Vector2(0.899999976F, 0.899999976F), CubicBezierEasingFunction_0());
                // Frame 8.
                result.InsertKeyFrame(0.285714298F, new Vector2(1.10000002F, 1.10000002F), CubicBezierEasingFunction_0());
                // Frame 12.
                result.InsertKeyFrame(0.428571433F, new Vector2(1F, 1F), CubicBezierEasingFunction_0());
                return result;
            }

            internal SupplementalPolicy_AnimatedVisual(
                Compositor compositor
                )
            {
                _c = compositor;
                _reusableExpressionAnimation = compositor.CreateExpressionAnimation();
                Root();
            }

            public Visual RootVisual => _root;
            public TimeSpan Duration => TimeSpan.FromTicks(c_durationTicks);
            public Vector2 Size => new Vector2(192F, 192F);
            void IDisposable.Dispose() => _root?.Dispose();

            public void CreateAnimations()
            {
                _containerShape_0.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_0(), AnimationController_0());
                _containerShape_1.StartAnimation("Scale", ScaleVector2Animation_4(), AnimationController_0());
                _spriteShape_1.StartAnimation("Scale", ScaleVector2Animation_0(), AnimationController_0());
                _spriteShape_2.StartAnimation("Scale", ScaleVector2Animation_1(), AnimationController_0());
                _spriteShape_3.StartAnimation("Scale", ScaleVector2Animation_2(), AnimationController_0());
                _spriteShape_4.StartAnimation("Scale", ScaleVector2Animation_3(), AnimationController_0());
                _spriteShape_7.StartAnimation("Scale", ScaleVector2Animation_4(), AnimationController_0());
            }

            public void DestroyAnimations()
            {
                _containerShape_0.StopAnimation("RotationAngleInDegrees");
                _containerShape_1.StopAnimation("Scale");
                _spriteShape_1.StopAnimation("Scale");
                _spriteShape_2.StopAnimation("Scale");
                _spriteShape_3.StopAnimation("Scale");
                _spriteShape_4.StopAnimation("Scale");
                _spriteShape_7.StopAnimation("Scale");
            }

        }
    }
}
