//------------------------------------------------------------------------------
// <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 Merge.json
//       
//       Input file:
//           Merge.json (124200 bytes created 22:03+02:00 Dec 8 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   |   130 |
// |--------------------------+-------|
// | Expression animators     |     1 |
// | KeyFrame animators       |     6 |
// | Reference parameters     |     1 |
// | Expression operations    |     0 |
// |--------------------------+-------|
// | Animated brushes         |     - |
// | Animated gradient stops  |     - |
// | ExpressionAnimations     |     1 |
// | PathKeyFrameAnimations   |     - |
// |--------------------------+-------|
// | ContainerVisuals         |     7 |
// | ShapeVisuals             |     7 |
// |--------------------------+-------|
// | ContainerShapes          |     1 |
// | CompositionSpriteShapes  |     7 |
// |--------------------------+-------|
// | Brushes                  |    16 |
// | Gradient stops           |     4 |
// | CompositionVisualSurface |     6 |
// ------------------------------------
using Microsoft.Graphics;
using Microsoft.Graphics.Canvas;
using Microsoft.Graphics.Canvas.Effects;
using Microsoft.Graphics.Canvas.Geometry;
using Microsoft.UI.Composition;
using System;
using System.Collections.Generic;
using System.Numerics;
using Windows.UI;

namespace AnimatedVisuals
{
    // Name:        clickteam-fusion
    // 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 Merge
        : 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 Merge_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 Merge_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;
            CompositionColorGradientStop _gradientStop_0_AlmostFuchsia_FFC721FF;
            CompositionColorGradientStop _gradientStop_1_AlmostDodgerBlue_FF1A6CFF;
            CompositionContainerShape _containerShape;
            CompositionEffectFactory _effectFactory;
            CompositionPathGeometry _pathGeometry_0;
            CompositionSpriteShape _spriteShape_3;
            ContainerVisual _root;
            ScalarKeyFrameAnimation _rotationAngleInDegreesScalarAnimation_0_to_180;
            ScalarKeyFrameAnimation _scalarAnimation_1_to_1;
            StepEasingFunction _holdThenStepEasingFunction;

            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;
            }

            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;
            }

            CanvasGeometry Geometry_00()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(31F, 31F));
                    builder.AddLine(new Vector2(-31F, 31F));
                    builder.AddLine(new Vector2(-31F, -31F));
                    builder.AddLine(new Vector2(31F, -31F));
                    builder.AddLine(new Vector2(31F, 31F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: fill
            // - - Transforms: fill Offset:<-0.332, -0.333>
            // - Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_01()
            {
                var result = CanvasGeometry.CreateGroup(
                    null,
                    new CanvasGeometry[] { Geometry_02(), Geometry_03() },
                    CanvasFilledRegionDetermination.Winding);
                return result;
            }

            // - - - - - Shape tree root for layer: fill
            // - - - Transforms: fill Offset:<-0.332, -0.333>
            // - - Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_02()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(28.5849991F, -10.7250004F));
                    builder.AddCubicBezier(new Vector2(27.118F, -13.6590004F), new Vector2(22.7299995F, -13.0839996F), new Vector2(17.9799995F, -11.335F));
                    builder.AddCubicBezier(new Vector2(12.1750002F, -16.5569992F), new Vector2(-4.66599989F, -30.9519997F), new Vector2(-10.7250004F, -27.9230003F));
                    builder.AddCubicBezier(new Vector2(-13.6590004F, -26.4559994F), new Vector2(-13.0839996F, -22.0680008F), new Vector2(-11.335F, -17.3180008F));
                    builder.AddCubicBezier(new Vector2(-16.5569992F, -11.5129995F), new Vector2(-30.9519997F, 5.32800007F), new Vector2(-27.9230003F, 11.3870001F));
                    builder.AddCubicBezier(new Vector2(-26.4559994F, 14.3210001F), new Vector2(-22.0680008F, 13.7469997F), new Vector2(-17.3180008F, 11.9980001F));
                    builder.AddCubicBezier(new Vector2(-11.5129995F, 17.2199993F), new Vector2(5.32800007F, 31.6140003F), new Vector2(11.3870001F, 28.5849991F));
                    builder.AddCubicBezier(new Vector2(14.3210001F, 27.118F), new Vector2(13.7469997F, 22.7299995F), new Vector2(11.9980001F, 17.9799995F));
                    builder.AddCubicBezier(new Vector2(17.2199993F, 12.1750002F), new Vector2(31.6140003F, -4.66599989F), new Vector2(28.5849991F, -10.7250004F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Shape tree root for layer: fill
            // - - - Transforms: fill Offset:<-0.332, -0.333>
            // - - Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_03()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(10.4119997F, 14.191F));
                    builder.AddCubicBezier(new Vector2(8.83600044F, 10.7930002F), new Vector2(5.64799976F, 5.36499977F), new Vector2(4.34000015F, 3.21300006F));
                    builder.AddCubicBezier(new Vector2(3.50600004F, 4.08900023F), new Vector2(2.46199989F, 4.76100016F), new Vector2(1.28400004F, 5.14400005F));
                    builder.AddCubicBezier(new Vector2(4.53700018F, 10.6619997F), new Vector2(6.85900021F, 18.7579994F), new Vector2(2.78800011F, 18.7579994F));
                    builder.AddCubicBezier(new Vector2(-0.921999991F, 18.7579994F), new Vector2(-9.53199959F, 13.1569996F), new Vector2(-13.5279999F, 10.4119997F));
                    builder.AddCubicBezier(new Vector2(-10.1300001F, 8.83600044F), new Vector2(-6.23699999F, 6.5630002F), new Vector2(-4.08500004F, 5.25500011F));
                    builder.AddCubicBezier(new Vector2(-4.96099997F, 4.421F), new Vector2(-5.63399982F, 3.37700009F), new Vector2(-6.0170002F, 2.19899988F));
                    builder.AddCubicBezier(new Vector2(-11.5349998F, 5.45200014F), new Vector2(-18.0949993F, 6.85900021F), new Vector2(-18.0949993F, 2.78800011F));
                    builder.AddCubicBezier(new Vector2(-18.0949993F, -0.921999991F), new Vector2(-12.4949999F, -9.53199959F), new Vector2(-9.75F, -13.5279999F));
                    builder.AddCubicBezier(new Vector2(-8.17399979F, -10.1300001F), new Vector2(-5.89599991F, -6.0079999F), new Vector2(-4.58799982F, -3.85599995F));
                    builder.AddCubicBezier(new Vector2(-3.75399995F, -4.73199987F), new Vector2(-2.71000004F, -5.40399981F), new Vector2(-1.53199995F, -5.78700018F));
                    builder.AddCubicBezier(new Vector2(-4.78499985F, -11.3050003F), new Vector2(-6.19700003F, -18.0949993F), new Vector2(-2.12599993F, -18.0949993F));
                    builder.AddCubicBezier(new Vector2(1.58399999F, -18.0949993F), new Vector2(10.1949997F, -12.4949999F), new Vector2(14.191F, -9.75F));
                    builder.AddCubicBezier(new Vector2(10.7930002F, -8.17399979F), new Vector2(6.47599983F, -5.81099987F), new Vector2(4.32399988F, -4.50299978F));
                    builder.AddCubicBezier(new Vector2(5.19999981F, -3.66899991F), new Vector2(5.87200022F, -2.625F), new Vector2(6.25500011F, -1.44700003F));
                    builder.AddCubicBezier(new Vector2(11.7729998F, -4.69999981F), new Vector2(18.7579994F, -6.19700003F), new Vector2(18.7579994F, -2.12599993F));
                    builder.AddCubicBezier(new Vector2(18.7579994F, 1.58399999F), new Vector2(13.1569996F, 10.1949997F), new Vector2(10.4119997F, 14.191F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - Shape tree root for layer: outline
            // - - ShapeGroup: Group 1
            // - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_04()
            {
                var result = CanvasGeometry.CreateGroup(
                    null,
                    new CanvasGeometry[] { Geometry_05(), Geometry_06(), Geometry_07(), Geometry_08(), Geometry_09(), Geometry_10() },
                    CanvasFilledRegionDetermination.Winding);
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_05()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(9.14599991F, 29.6490002F));
                    builder.AddCubicBezier(new Vector2(2.14400005F, 29.6499996F), new Vector2(-10.3000002F, 19.5790005F), new Vector2(-17.8729992F, 12.809F));
                    builder.AddCubicBezier(new Vector2(-23.8740005F, 14.9119997F), new Vector2(-27.6650009F, 14.4720001F), new Vector2(-29.1490002F, 11.5019999F));
                    builder.AddCubicBezier(new Vector2(-32.2299995F, 5.34000015F), new Vector2(-20.4279995F, -9.35299969F), new Vector2(-12.809F, -17.8740005F));
                    builder.AddCubicBezier(new Vector2(-14.9110003F, -23.8719997F), new Vector2(-14.4720001F, -27.6650009F), new Vector2(-11.5030003F, -29.1490002F));
                    builder.AddCubicBezier(new Vector2(-5.34100008F, -32.2229996F), new Vector2(9.35200024F, -20.4279995F), new Vector2(17.8729992F, -12.8100004F));
                    builder.AddCubicBezier(new Vector2(23.8710003F, -14.9130001F), new Vector2(27.6650009F, -14.4729996F), new Vector2(29.1490002F, -11.5039997F));
                    builder.AddCubicBezier(new Vector2(32.2299995F, -5.34200001F), new Vector2(20.4279995F, 9.35099983F), new Vector2(12.809F, 17.8719997F));
                    builder.AddCubicBezier(new Vector2(14.9110003F, 23.8700008F), new Vector2(14.4720001F, 27.6639996F), new Vector2(11.5030003F, 29.1480007F));
                    builder.AddCubicBezier(new Vector2(10.816F, 29.4909992F), new Vector2(10.0240002F, 29.6490002F), new Vector2(9.14599991F, 29.6490002F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_06()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-17.6490002F, 10.6660004F));
                    builder.AddCubicBezier(new Vector2(-17.4060001F, 10.6660004F), new Vector2(-17.1669998F, 10.7550001F), new Vector2(-16.9799995F, 10.9230003F));
                    builder.AddCubicBezier(new Vector2(-3.65400004F, 22.9080009F), new Vector2(6.92000008F, 29.2010002F), new Vector2(10.6090002F, 27.3579998F));
                    builder.AddCubicBezier(new Vector2(13.099F, 26.1130009F), new Vector2(12.0480003F, 21.5790005F), new Vector2(10.7279997F, 17.9939995F));
                    builder.AddCubicBezier(new Vector2(10.6000004F, 17.6450005F), new Vector2(10.6750002F, 17.2560005F), new Vector2(10.9230003F, 16.9799995F));
                    builder.AddCubicBezier(new Vector2(22.9069996F, 3.65799999F), new Vector2(29.2059994F, -6.91499996F), new Vector2(27.3600006F, -10.6090002F));
                    builder.AddCubicBezier(new Vector2(26.1140003F, -13.1000004F), new Vector2(21.5790005F, -12.0489998F), new Vector2(17.9950008F, -10.7290001F));
                    builder.AddCubicBezier(new Vector2(17.6480007F, -10.6020002F), new Vector2(17.2560005F, -10.6759996F), new Vector2(16.9799995F, -10.9250002F));
                    builder.AddCubicBezier(new Vector2(3.65700006F, -22.9080009F), new Vector2(-6.91599989F, -29.2029991F), new Vector2(-10.6090002F, -27.3600006F));
                    builder.AddCubicBezier(new Vector2(-13.099F, -26.1149998F), new Vector2(-12.0480003F, -21.5809994F), new Vector2(-10.7279997F, -17.9960003F));
                    builder.AddCubicBezier(new Vector2(-10.6000004F, -17.6469994F), new Vector2(-10.6750002F, -17.257F), new Vector2(-10.9230003F, -16.9810009F));
                    builder.AddCubicBezier(new Vector2(-22.9080009F, -3.65799999F), new Vector2(-29.2070007F, 6.91300011F), new Vector2(-27.3600006F, 10.6070004F));
                    builder.AddCubicBezier(new Vector2(-26.1170006F, 13.0959997F), new Vector2(-21.5809994F, 12.0489998F), new Vector2(-17.9950008F, 10.7279997F));
                    builder.AddCubicBezier(new Vector2(-17.8829994F, 10.6870003F), new Vector2(-17.7649994F, 10.6660004F), new Vector2(-17.6490002F, 10.6660004F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_07()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(2.45700002F, 19.4260006F));
                    builder.AddCubicBezier(new Vector2(-1.24000001F, 19.4260006F), new Vector2(-8.76500034F, 14.7919998F), new Vector2(-14.4259996F, 10.9040003F));
                    builder.AddCubicBezier(new Vector2(-14.7220001F, 10.7010002F), new Vector2(-14.8859997F, 10.3540001F), new Vector2(-14.8559999F, 9.99600029F));
                    builder.AddCubicBezier(new Vector2(-14.8269997F, 9.63899994F), new Vector2(-14.6070004F, 9.32400036F), new Vector2(-14.2810001F, 9.17300034F));
                    builder.AddCubicBezier(new Vector2(-10.96F, 7.6329999F), new Vector2(-6.74599981F, 5.32600021F), new Vector2(-4.30100012F, 3.84299994F));
                    builder.AddCubicBezier(new Vector2(-3.82800007F, 3.55999994F), new Vector2(-3.21399999F, 3.70700002F), new Vector2(-2.92700005F, 4.17999983F));
                    builder.AddCubicBezier(new Vector2(-2.64100003F, 4.65299988F), new Vector2(-2.79099989F, 5.2670002F), new Vector2(-3.26399994F, 5.5539999F));
                    builder.AddCubicBezier(new Vector2(-5.38100004F, 6.83699989F), new Vector2(-8.79899979F, 8.72799969F), new Vector2(-11.8570004F, 10.2309999F));
                    builder.AddCubicBezier(new Vector2(-5.09100008F, 14.757F), new Vector2(0.202000007F, 17.4260006F), new Vector2(2.45700002F, 17.4260006F));
                    builder.AddCubicBezier(new Vector2(2.99799991F, 17.4260006F), new Vector2(3.19300008F, 17.2049999F), new Vector2(3.32299995F, 16.9669991F));
                    builder.AddCubicBezier(new Vector2(4.27400017F, 15.2270002F), new Vector2(2.80900002F, 9.49600029F), new Vector2(-0.885999978F, 3.73900008F));
                    builder.AddCubicBezier(new Vector2(-1.18400002F, 3.27399993F), new Vector2(-1.04900002F, 2.6559999F), new Vector2(-0.583999991F, 2.35700011F));
                    builder.AddCubicBezier(new Vector2(-0.119000003F, 2.05699992F), new Vector2(0.497999996F, 2.19300008F), new Vector2(0.796999991F, 2.65899992F));
                    builder.AddCubicBezier(new Vector2(4.18499994F, 7.9369998F), new Vector2(6.74399996F, 14.8769999F), new Vector2(5.07800007F, 17.9260006F));
                    builder.AddCubicBezier(new Vector2(4.55000019F, 18.8939991F), new Vector2(3.61899996F, 19.4260006F), new Vector2(2.45700002F, 19.4260006F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_08()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(10.0810003F, 14.8579998F));
                    builder.AddCubicBezier(new Vector2(10.0539999F, 14.8579998F), new Vector2(10.0249996F, 14.8579998F), new Vector2(9.99699974F, 14.8549995F));
                    builder.AddCubicBezier(new Vector2(9.64000034F, 14.8260002F), new Vector2(9.32400036F, 14.6049995F), new Vector2(9.17300034F, 14.2790003F));
                    builder.AddCubicBezier(new Vector2(7.87599993F, 11.4840002F), new Vector2(4.97200012F, 6.43499994F), new Vector2(3.23600006F, 3.41700006F));
                    builder.AddLine(new Vector2(2.34200001F, 1.85899997F));
                    builder.AddCubicBezier(new Vector2(2.06900001F, 1.37899995F), new Vector2(2.23699999F, 0.768000007F), new Vector2(2.71600008F, 0.495000005F));
                    builder.AddCubicBezier(new Vector2(3.19499993F, 0.222000003F), new Vector2(3.80800009F, 0.389999986F), new Vector2(4.08099985F, 0.869000018F));
                    builder.AddLine(new Vector2(4.96999979F, 2.42000008F));
                    builder.AddCubicBezier(new Vector2(6.43599987F, 4.96899986F), new Vector2(8.72900009F, 8.95499992F), new Vector2(10.2189999F, 11.8719997F));
                    builder.AddCubicBezier(new Vector2(14.7480001F, 5.10599995F), new Vector2(17.4220009F, -0.193000004F), new Vector2(17.4260006F, -2.46000004F));
                    builder.AddCubicBezier(new Vector2(17.4279995F, -3.21700001F), new Vector2(17.1200008F, -3.48600006F), new Vector2(16.8509998F, -3.63599992F));
                    builder.AddCubicBezier(new Vector2(15.1660004F, -4.57700014F), new Vector2(10.3529997F, -3.22099996F), new Vector2(6.13100004F, -0.609000027F));
                    builder.AddCubicBezier(new Vector2(5.66099977F, -0.317999989F), new Vector2(5.04500008F, -0.463999987F), new Vector2(4.75400019F, -0.934000015F));
                    builder.AddCubicBezier(new Vector2(4.46400023F, -1.40400004F), new Vector2(4.60900021F, -2.01900005F), new Vector2(5.079F, -2.30999994F));
                    builder.AddCubicBezier(new Vector2(9.2489996F, -4.88999987F), new Vector2(15.0190001F, -6.95100021F), new Vector2(17.8269997F, -5.38199997F));
                    builder.AddCubicBezier(new Vector2(18.5580006F, -4.97399998F), new Vector2(19.4290009F, -4.13399982F), new Vector2(19.4260006F, -2.45600009F));
                    builder.AddCubicBezier(new Vector2(19.4190006F, 1.449F), new Vector2(14.085F, 9.79599953F), new Vector2(10.9049997F, 14.4250002F));
                    builder.AddCubicBezier(new Vector2(10.717F, 14.6969995F), new Vector2(10.4090004F, 14.8579998F), new Vector2(10.0810003F, 14.8579998F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_09()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-15.2139997F, 5.94199991F));
                    builder.AddCubicBezier(new Vector2(-16.2129993F, 5.94199991F), new Vector2(-17.1040001F, 5.76599979F), new Vector2(-17.8180008F, 5.36600018F));
                    builder.AddCubicBezier(new Vector2(-18.8630009F, 4.78100014F), new Vector2(-19.434F, 3.74600005F), new Vector2(-19.427F, 2.45000005F));
                    builder.AddCubicBezier(new Vector2(-19.4050007F, -1.47300005F), new Vector2(-14.0780001F, -9.80799961F), new Vector2(-10.9049997F, -14.427F));
                    builder.AddCubicBezier(new Vector2(-10.7019997F, -14.7220001F), new Vector2(-10.368F, -14.8979998F), new Vector2(-9.99699974F, -14.8559999F));
                    builder.AddCubicBezier(new Vector2(-9.64000034F, -14.8269997F), new Vector2(-9.32400036F, -14.6070004F), new Vector2(-9.17300034F, -14.2810001F));
                    builder.AddCubicBezier(new Vector2(-7.5539999F, -10.79F), new Vector2(-3.34100008F, -3.68899989F), new Vector2(-2.30100012F, -1.97899997F));
                    builder.AddCubicBezier(new Vector2(-2.01399994F, -1.50699997F), new Vector2(-2.16400003F, -0.89200002F), new Vector2(-2.63599992F, -0.605000019F));
                    builder.AddCubicBezier(new Vector2(-3.10700011F, -0.317000002F), new Vector2(-3.72300005F, -0.467000008F), new Vector2(-4.01000023F, -0.939999998F));
                    builder.AddCubicBezier(new Vector2(-4.92500019F, -2.44499993F), new Vector2(-8.27099991F, -8.07999992F), new Vector2(-10.2180004F, -11.8760004F));
                    builder.AddCubicBezier(new Vector2(-14.7399998F, -5.11999989F), new Vector2(-17.4130001F, 0.180999994F), new Vector2(-17.427F, 2.46199989F));
                    builder.AddCubicBezier(new Vector2(-17.4309998F, 3.1960001F), new Vector2(-17.1159992F, 3.46700001F), new Vector2(-16.8409996F, 3.62100005F));
                    builder.AddCubicBezier(new Vector2(-15.0939999F, 4.59800005F), new Vector2(-10.283F, 3.28500009F), new Vector2(-6.10900021F, 0.690999985F));
                    builder.AddCubicBezier(new Vector2(-5.63999987F, 0.400999993F), new Vector2(-5.02299976F, 0.541999996F), new Vector2(-4.73199987F, 1.01300001F));
                    builder.AddCubicBezier(new Vector2(-4.44099998F, 1.48199999F), new Vector2(-4.58400011F, 2.09800005F), new Vector2(-5.0539999F, 2.3900001F));
                    builder.AddCubicBezier(new Vector2(-8.15799999F, 4.31899977F), new Vector2(-12.184F, 5.94199991F), new Vector2(-15.2139997F, 5.94199991F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Shape tree root for layer: outline
            // - - - ShapeGroup: Group 1
            // - - Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CanvasGeometry Geometry_10()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(0.0439999998F, -2.21799994F));
                    builder.AddCubicBezier(new Vector2(-0.282999992F, -2.21799994F), new Vector2(-0.602999985F, -2.37800002F), new Vector2(-0.79400003F, -2.6730001F));
                    builder.AddCubicBezier(new Vector2(-4.12799978F, -7.796F), new Vector2(-6.76399994F, -14.8789997F), new Vector2(-5.08500004F, -17.9139996F));
                    builder.AddCubicBezier(new Vector2(-4.54799986F, -18.8859997F), new Vector2(-3.60299993F, -19.4169998F), new Vector2(-2.41599989F, -19.4169998F));
                    builder.AddLine(new Vector2(-2.34899998F, -19.4169998F));
                    builder.AddCubicBezier(new Vector2(1.55499995F, -19.3530006F), new Vector2(9.83600044F, -14.0559998F), new Vector2(14.4259996F, -10.9060001F));
                    builder.AddCubicBezier(new Vector2(14.7220001F, -10.7030001F), new Vector2(14.8859997F, -10.3559999F), new Vector2(14.8559999F, -9.9989996F));
                    builder.AddCubicBezier(new Vector2(14.8269997F, -9.64099979F), new Vector2(14.6070004F, -9.32600021F), new Vector2(14.2810001F, -9.17500019F));
                    builder.AddCubicBezier(new Vector2(10.7989998F, -7.55900002F), new Vector2(6.37300014F, -5.06099987F), new Vector2(4.42600012F, -3.74300003F));
                    builder.AddCubicBezier(new Vector2(3.9690001F, -3.43199992F), new Vector2(3.34800005F, -3.5539999F), new Vector2(3.03800011F, -4.01100016F));
                    builder.AddCubicBezier(new Vector2(2.72799993F, -4.46799994F), new Vector2(2.84800005F, -5.08900023F), new Vector2(3.30500007F, -5.39900017F));
                    builder.AddCubicBezier(new Vector2(5.25199986F, -6.71700001F), new Vector2(8.81499958F, -8.71899986F), new Vector2(11.8599997F, -10.2290001F));
                    builder.AddCubicBezier(new Vector2(5.15600014F, -14.7130003F), new Vector2(-0.109999999F, -17.3799992F), new Vector2(-2.38199997F, -17.4169998F));
                    builder.AddCubicBezier(new Vector2(-2.94300008F, -17.3999996F), new Vector2(-3.19499993F, -17.1959991F), new Vector2(-3.33500004F, -16.9449997F));
                    builder.AddCubicBezier(new Vector2(-4.40199995F, -15.0159998F), new Vector2(-2.43199992F, -8.85700035F), new Vector2(0.880999982F, -3.76300001F));
                    builder.AddCubicBezier(new Vector2(1.18299997F, -3.29999995F), new Vector2(1.051F, -2.68099999F), new Vector2(0.588F, -2.38000011F));
                    builder.AddCubicBezier(new Vector2(0.419999987F, -2.27099991F), new Vector2(0.231000006F, -2.21799994F), new Vector2(0.0439999998F, -2.21799994F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - Shape tree root for layer: core
            // - -  Offset:<32.5, 32.5>
            CanvasGeometry Geometry_11()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(7.5F, 0F));
                    builder.AddCubicBezier(new Vector2(7.5F, 4.1420002F), new Vector2(4.1420002F, 7.5F), new Vector2(0F, 7.5F));
                    builder.AddCubicBezier(new Vector2(-4.1420002F, 7.5F), new Vector2(-7.5F, 4.1420002F), new Vector2(-7.5F, 0F));
                    builder.AddCubicBezier(new Vector2(-7.5F, -4.1420002F), new Vector2(-4.1420002F, -7.5F), new Vector2(0F, -7.5F));
                    builder.AddCubicBezier(new Vector2(4.1420002F, -7.5F), new Vector2(7.5F, -4.1420002F), new Vector2(7.5F, 0F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - Shape tree root for layer: glare
            // - -  Offset:<34.5, 30.5>
            CanvasGeometry Geometry_12()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(1.5F, 0F));
                    builder.AddCubicBezier(new Vector2(1.5F, 0.828000009F), new Vector2(0.828000009F, 1.5F), new Vector2(0F, 1.5F));
                    builder.AddCubicBezier(new Vector2(-0.828000009F, 1.5F), new Vector2(-1.5F, 0.828000009F), new Vector2(-1.5F, 0F));
                    builder.AddCubicBezier(new Vector2(-1.5F, -0.828000009F), new Vector2(-0.828000009F, -1.5F), new Vector2(0F, -1.5F));
                    builder.AddCubicBezier(new Vector2(0.828000009F, -1.5F), new Vector2(1.5F, -0.828000009F), new Vector2(1.5F, 0F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - Shape tree root for layer: core
            // Offset:<32.5, 32.5>
            CompositionColorBrush ColorBrush_AlmostBlack_FF020000()
            {
                return _c.CreateColorBrush(Color.FromArgb(0xFF, 0x02, 0x00, 0x00));
            }

            // - - Shape tree root for layer: fill
            // Transforms: fill Offset:<-0.332, -0.333>
            CompositionColorBrush ColorBrush_AlmostGray_FF777777()
            {
                return _c.CreateColorBrush(Color.FromArgb(0xFF, 0x77, 0x77, 0x77));
            }

            // - Shape tree root for layer: outline
            // ShapeGroup: Group 1
            CompositionColorBrush ColorBrush_AlmostGreenYellow_FFB9ED18()
            {
                return _c.CreateColorBrush(Color.FromArgb(0xFF, 0xB9, 0xED, 0x18));
            }

            // - Shape tree root for layer: glare
            // Offset:<34.5, 30.5>
            CompositionColorBrush ColorBrush_White()
            {
                return _c.CreateColorBrush(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF));
            }

            // Stop 0
            CompositionColorGradientStop GradientStop_0_AlmostFuchsia_FFC721FF()
            {
                return (_gradientStop_0_AlmostFuchsia_FFC721FF == null)
                    ? _gradientStop_0_AlmostFuchsia_FFC721FF = _c.CreateColorGradientStop(0F, Color.FromArgb(0xFF, 0xC7, 0x21, 0xFF))
                    : _gradientStop_0_AlmostFuchsia_FFC721FF;
            }

            // - - Shape tree root for layer: gradient1
            // -  Offset:<32, 32>
            // Stop 0
            CompositionColorGradientStop GradientStop_0_AlmostLightSkyBlue_FF6CC6FF()
            {
                return _c.CreateColorGradientStop(0F, Color.FromArgb(0xFF, 0x6C, 0xC6, 0xFF));
            }

            // Stop 1
            CompositionColorGradientStop GradientStop_1_AlmostDodgerBlue_FF1A6CFF()
            {
                return (_gradientStop_1_AlmostDodgerBlue_FF1A6CFF == null)
                    ? _gradientStop_1_AlmostDodgerBlue_FF1A6CFF = _c.CreateColorGradientStop(1F, Color.FromArgb(0xFF, 0x1A, 0x6C, 0xFF))
                    : _gradientStop_1_AlmostDodgerBlue_FF1A6CFF;
            }

            // - - Shape tree root for layer: gradient1
            // -  Offset:<32, 32>
            // Stop 1
            CompositionColorGradientStop GradientStop_1_AlmostPlum_FFE6ABFF()
            {
                return _c.CreateColorGradientStop(1F, Color.FromArgb(0xFF, 0xE6, 0xAB, 0xFF));
            }

            // Shape tree root for layer: fill
            CompositionContainerShape ContainerShape()
            {
                if (_containerShape != null) { return _containerShape; }
                var result = _containerShape = _c.CreateContainerShape();
                result.Offset = new Vector2(32.3320007F, 32.3330002F);
                // Transforms: fill Offset:<-0.332, -0.333>
                result.Shapes.Add(SpriteShape_1());
                return result;
            }

            CompositionEffectBrush EffectBrush_0()
            {
                var effectFactory = EffectFactory();
                var result = effectFactory.CreateBrush();
                result.SetSourceParameter("destination", SurfaceBrush_0());
                result.SetSourceParameter("source", SurfaceBrush_1());
                return result;
            }

            CompositionEffectBrush EffectBrush_1()
            {
                var effectFactory = EffectFactory();
                var result = effectFactory.CreateBrush();
                result.SetSourceParameter("destination", SurfaceBrush_2());
                result.SetSourceParameter("source", SurfaceBrush_3());
                return result;
            }

            CompositionEffectBrush EffectBrush_2()
            {
                var effectFactory = EffectFactory();
                var result = effectFactory.CreateBrush();
                result.SetSourceParameter("destination", SurfaceBrush_4());
                result.SetSourceParameter("source", SurfaceBrush_5());
                return result;
            }

            CompositionEffectFactory EffectFactory()
            {
                var compositeEffect = new CompositeEffect();
                compositeEffect.Mode = CanvasComposite.DestinationIn;
                compositeEffect.Sources.Add(new CompositionEffectSourceParameter("destination"));
                compositeEffect.Sources.Add(new CompositionEffectSourceParameter("source"));
                if (_effectFactory != null) { return _effectFactory; }
                var result = _effectFactory = _c.CreateEffectFactory(compositeEffect);
                return result;
            }

            // - Shape tree root for layer: gradient1
            // Offset:<32, 32>
            CompositionLinearGradientBrush LinearGradientBrush_0()
            {
                var result = _c.CreateLinearGradientBrush();
                var colorStops = result.ColorStops;
                colorStops.Add(GradientStop_0_AlmostLightSkyBlue_FF6CC6FF());
                colorStops.Add(GradientStop_1_AlmostPlum_FFE6ABFF());
                result.MappingMode = CompositionMappingMode.Absolute;
                result.StartPoint = new Vector2(-1F, -21F);
                result.EndPoint = new Vector2(-1F, 28.7989998F);
                return result;
            }

            // - Shape tree root for layer: gradient2
            // Offset:<32, 32>
            CompositionLinearGradientBrush LinearGradientBrush_1()
            {
                var result = _c.CreateLinearGradientBrush();
                var colorStops = result.ColorStops;
                colorStops.Add(GradientStop_0_AlmostFuchsia_FFC721FF());
                colorStops.Add(GradientStop_1_AlmostDodgerBlue_FF1A6CFF());
                result.MappingMode = CompositionMappingMode.Absolute;
                result.StartPoint = new Vector2(0F, 31F);
                result.EndPoint = new Vector2(0F, -31F);
                return result;
            }

            // - Shape tree root for layer: gradient3
            // Offset:<32, 32>
            CompositionLinearGradientBrush LinearGradientBrush_2()
            {
                var result = _c.CreateLinearGradientBrush();
                var colorStops = result.ColorStops;
                colorStops.Add(GradientStop_0_AlmostFuchsia_FFC721FF());
                colorStops.Add(GradientStop_1_AlmostDodgerBlue_FF1A6CFF());
                result.MappingMode = CompositionMappingMode.Absolute;
                result.StartPoint = new Vector2(0F, 31F);
                result.EndPoint = new Vector2(0F, -31F);
                return result;
            }

            CompositionPathGeometry PathGeometry_0()
            {
                return (_pathGeometry_0 == null)
                    ? _pathGeometry_0 = _c.CreatePathGeometry(new CompositionPath(Geometry_00()))
                    : _pathGeometry_0;
            }

            // - - Shape tree root for layer: fill
            // Transforms: fill Offset:<-0.332, -0.333>
            // Path 2+Path 1.PathGeometry
            CompositionPathGeometry PathGeometry_1()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_01()));
            }

            // - Shape tree root for layer: outline
            // ShapeGroup: Group 1
            // Path 6+Path 5+Path 4+Path 3+Path 2+Path 1.PathGeometry
            CompositionPathGeometry PathGeometry_2()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_04()));
            }

            // - Shape tree root for layer: core
            // Offset:<32.5, 32.5>
            CompositionPathGeometry PathGeometry_3()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_11()));
            }

            // - Shape tree root for layer: glare
            // Offset:<34.5, 30.5>
            CompositionPathGeometry PathGeometry_4()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_12()));
            }

            // Shape tree root for layer: gradient1
            // Path 1
            CompositionSpriteShape SpriteShape_0()
            {
                // Offset:<32, 32>
                var geometry = PathGeometry_0();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 32F, 32F), LinearGradientBrush_0()); ;
                return result;
            }

            // - Shape tree root for layer: fill
            // Path 2+Path 1
            CompositionSpriteShape SpriteShape_1()
            {
                // Offset:<-0.332, -0.333>
                var geometry = PathGeometry_1();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, -0.331999987F, -0.333000004F), ColorBrush_AlmostGray_FF777777()); ;
                return result;
            }

            // Shape tree root for layer: gradient2
            // Path 1
            CompositionSpriteShape SpriteShape_2()
            {
                // Offset:<32, 32>
                var geometry = PathGeometry_0();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 32F, 32F), LinearGradientBrush_1()); ;
                return result;
            }

            // Shape tree root for layer: outline
            // Path 6+Path 5+Path 4+Path 3+Path 2+Path 1
            CompositionSpriteShape SpriteShape_3()
            {
                if (_spriteShape_3 != null) { return _spriteShape_3; }
                var result = _spriteShape_3 = _c.CreateSpriteShape(PathGeometry_2());
                result.Offset = new Vector2(32.3320007F, 32.3330002F);
                result.FillBrush = ColorBrush_AlmostGreenYellow_FFB9ED18();
                return result;
            }

            // Shape tree root for layer: gradient3
            // Path 1
            CompositionSpriteShape SpriteShape_4()
            {
                // Offset:<32, 32>
                var geometry = PathGeometry_0();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 32F, 32F), LinearGradientBrush_2()); ;
                return result;
            }

            // Shape tree root for layer: core
            // Path 1
            CompositionSpriteShape SpriteShape_5()
            {
                // Offset:<32.5, 32.5>
                var geometry = PathGeometry_3();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 32.5F, 32.5F), ColorBrush_AlmostBlack_FF020000()); ;
                return result;
            }

            // Shape tree root for layer: glare
            // Path 1
            CompositionSpriteShape SpriteShape_6()
            {
                // Offset:<34.5, 30.5>
                var geometry = PathGeometry_4();
                var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 34.5F, 30.5F), ColorBrush_White()); ;
                return result;
            }

            CompositionSurfaceBrush SurfaceBrush_0()
            {
                return _c.CreateSurfaceBrush(VisualSurface_0());
            }

            CompositionSurfaceBrush SurfaceBrush_1()
            {
                return _c.CreateSurfaceBrush(VisualSurface_1());
            }

            CompositionSurfaceBrush SurfaceBrush_2()
            {
                return _c.CreateSurfaceBrush(VisualSurface_2());
            }

            CompositionSurfaceBrush SurfaceBrush_3()
            {
                return _c.CreateSurfaceBrush(VisualSurface_3());
            }

            CompositionSurfaceBrush SurfaceBrush_4()
            {
                return _c.CreateSurfaceBrush(VisualSurface_4());
            }

            CompositionSurfaceBrush SurfaceBrush_5()
            {
                return _c.CreateSurfaceBrush(VisualSurface_5());
            }

            CompositionVisualSurface VisualSurface_0()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_0();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            CompositionVisualSurface VisualSurface_1()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_1();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            CompositionVisualSurface VisualSurface_2()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_2();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            CompositionVisualSurface VisualSurface_3()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_3();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            CompositionVisualSurface VisualSurface_4()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_4();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            CompositionVisualSurface VisualSurface_5()
            {
                var result = _c.CreateVisualSurface();
                result.SourceVisual = ContainerVisual_5();
                result.SourceSize = new Vector2(64F, 64F);
                return result;
            }

            ContainerVisual ContainerVisual_0()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: gradient1
                result.Children.InsertAtTop(ShapeVisual_0());
                return result;
            }

            ContainerVisual ContainerVisual_1()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: fill
                result.Children.InsertAtTop(ShapeVisual_1());
                return result;
            }

            ContainerVisual ContainerVisual_2()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: gradient2
                result.Children.InsertAtTop(ShapeVisual_2());
                return result;
            }

            ContainerVisual ContainerVisual_3()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: outline
                result.Children.InsertAtTop(ShapeVisual_3());
                return result;
            }

            ContainerVisual ContainerVisual_4()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: gradient3
                result.Children.InsertAtTop(ShapeVisual_4());
                return result;
            }

            ContainerVisual ContainerVisual_5()
            {
                var result = _c.CreateContainerVisual();
                result.BorderMode = CompositionBorderMode.Soft;
                // Shape tree root for layer: core
                result.Children.InsertAtTop(ShapeVisual_5());
                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);
                var children = result.Children;
                children.InsertAtTop(SpriteVisual_0());
                children.InsertAtTop(SpriteVisual_1());
                children.InsertAtTop(SpriteVisual_2());
                // Shape tree root for layer: glare
                children.InsertAtTop(ShapeVisual_6());
                return result;
            }

            // Rotation
            ScalarKeyFrameAnimation RotationAngleInDegreesScalarAnimation_0_to_180()
            {
                // Frame 0.
                if (_rotationAngleInDegreesScalarAnimation_0_to_180 != null) { return _rotationAngleInDegreesScalarAnimation_0_to_180; }
                var result = _rotationAngleInDegreesScalarAnimation_0_to_180 = CreateScalarKeyFrameAnimation(0F, 0F, HoldThenStepEasingFunction());
                // Frame 28.
                result.InsertKeyFrame(1F, 180F, _c.CreateCubicBezierEasingFunction(new Vector2(0.166999996F, 0.166999996F), new Vector2(0.833000004F, 0.833000004F)));
                return result;
            }

            // Scale
            ScalarKeyFrameAnimation ScalarAnimation_1_to_1()
            {
                // Frame 0.
                if (_scalarAnimation_1_to_1 != null) { return _scalarAnimation_1_to_1; }
                var result = _scalarAnimation_1_to_1 = CreateScalarKeyFrameAnimation(0F, 1F, HoldThenStepEasingFunction());
                // Frame 14.
                result.InsertKeyFrame(0.5F, 0.879999995F, _c.CreateCubicBezierEasingFunction(new Vector2(0.166999996F, 0.166999996F), new Vector2(0.833000004F, 1F)));
                // Frame 28.
                result.InsertKeyFrame(1F, 1F, _c.CreateCubicBezierEasingFunction(new Vector2(0.166999996F, 0F), new Vector2(0.833000004F, 0.833000004F)));
                return result;
            }

            // Shape tree root for layer: gradient1
            ShapeVisual ShapeVisual_0()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // Offset:<32, 32>
                result.Shapes.Add(SpriteShape_0());
                return result;
            }

            // Shape tree root for layer: fill
            ShapeVisual ShapeVisual_1()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                result.Shapes.Add(ContainerShape());
                return result;
            }

            // Shape tree root for layer: gradient2
            ShapeVisual ShapeVisual_2()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // Offset:<32, 32>
                result.Shapes.Add(SpriteShape_2());
                return result;
            }

            // Shape tree root for layer: outline
            ShapeVisual ShapeVisual_3()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // ShapeGroup: Group 1
                result.Shapes.Add(SpriteShape_3());
                return result;
            }

            // Shape tree root for layer: gradient3
            ShapeVisual ShapeVisual_4()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // Offset:<32, 32>
                result.Shapes.Add(SpriteShape_4());
                return result;
            }

            // Shape tree root for layer: core
            ShapeVisual ShapeVisual_5()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // Offset:<32.5, 32.5>
                result.Shapes.Add(SpriteShape_5());
                return result;
            }

            // Shape tree root for layer: glare
            ShapeVisual ShapeVisual_6()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(64F, 64F);
                // Offset:<34.5, 30.5>
                result.Shapes.Add(SpriteShape_6());
                return result;
            }

            SpriteVisual SpriteVisual_0()
            {
                var result = _c.CreateSpriteVisual();
                result.Size = new Vector2(64F, 64F);
                result.Brush = EffectBrush_0();
                return result;
            }

            SpriteVisual SpriteVisual_1()
            {
                var result = _c.CreateSpriteVisual();
                result.Size = new Vector2(64F, 64F);
                result.Brush = EffectBrush_1();
                return result;
            }

            SpriteVisual SpriteVisual_2()
            {
                var result = _c.CreateSpriteVisual();
                result.Size = new Vector2(64F, 64F);
                result.Brush = EffectBrush_2();
                return result;
            }

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

            internal Merge_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(64F, 64F);
            void IDisposable.Dispose() => _root?.Dispose();

            public void CreateAnimations()
            {
                _containerShape.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_180(), AnimationController_0());
                _containerShape.StartAnimation("Scale.X", ScalarAnimation_1_to_1(), AnimationController_0());
                _containerShape.StartAnimation("Scale.Y", ScalarAnimation_1_to_1(), AnimationController_0());
                _spriteShape_3.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_180(), AnimationController_0());
                _spriteShape_3.StartAnimation("Scale.X", ScalarAnimation_1_to_1(), AnimationController_0());
                _spriteShape_3.StartAnimation("Scale.Y", ScalarAnimation_1_to_1(), AnimationController_0());
            }

            public void DestroyAnimations()
            {
                _containerShape.StopAnimation("RotationAngleInDegrees");
                _containerShape.StopAnimation("Scale.X");
                _containerShape.StopAnimation("Scale.Y");
                _spriteShape_3.StopAnimation("RotationAngleInDegrees");
                _spriteShape_3.StopAnimation("Scale.X");
                _spriteShape_3.StopAnimation("Scale.Y");
            }

        }
    }
}
