From cba598409672cb03125b1d857d75b87b4394ef5e Mon Sep 17 00:00:00 2001 From: Cal Stephens Date: Tue, 22 Aug 2023 15:16:00 -0700 Subject: [PATCH] Add support for rendering drop shadows (#2142) --- Lottie.xcodeproj/project.pbxproj | 88 +++++++++ .../Animations/DropShadowAnimation.swift | 183 ++++++++++++++++++ .../Animations/LayerProperty.swift | 38 ++++ .../Animations/TransformAnimations.swift | 2 +- .../Layers/BaseCompositionLayer.swift | 9 + .../KeyedDecodingContainerExtensions.swift | 26 +++ .../Model/Keyframes/KeyframeGroup.swift | 1 - .../Model/LayerEffects/DropShadowEffect.swift | 45 +++++ .../EffectValues/ColorEffectValue.swift | 38 ++++ .../EffectValues/EffectValue.swift | 98 ++++++++++ .../EffectValues/Vector1DEffectValue.swift | 38 ++++ .../Model/LayerEffects/LayerEffect.swift | 103 ++++++++++ .../Model/LayerStyles/DropShadowStyle.swift | 72 +++++++ .../Model/LayerStyles/LayerStyle.swift | 85 ++++++++ Sources/Private/Model/Layers/LayerModel.swift | 21 ++ .../Private/Model/ShapeItems/ShapeItem.swift | 51 +++-- Tests/ParsingTests.swift | 2 +- .../Issues/issue_1169_shadow_effect.json | 1 + .../issue_1169_shadow_effect_animated.json | 1 + .../Issues/issue_1169_shadow_style.json | 1 + .../issue_1169_shadow_style_animated.json | 1 + Tests/SnapshotConfiguration.swift | 1 + ...ection.Issues-issue_1169_shadow_effect.txt | 1 + ...sues-issue_1169_shadow_effect_animated.txt | 1 + ...tection.Issues-issue_1169_shadow_style.txt | 1 + ...ssues-issue_1169_shadow_style_animated.txt | 1 + ...gine.Issues-issue_1169_shadow_effect-0.png | Bin 0 -> 10386 bytes ...ne.Issues-issue_1169_shadow_effect-100.png | Bin 0 -> 10386 bytes ...ine.Issues-issue_1169_shadow_effect-25.png | Bin 0 -> 10386 bytes ...ine.Issues-issue_1169_shadow_effect-50.png | Bin 0 -> 10386 bytes ...ine.Issues-issue_1169_shadow_effect-75.png | Bin 0 -> 10386 bytes ...es-issue_1169_shadow_effect_animated-0.png | Bin 0 -> 10386 bytes ...-issue_1169_shadow_effect_animated-100.png | Bin 0 -> 25701 bytes ...s-issue_1169_shadow_effect_animated-25.png | Bin 0 -> 14310 bytes ...s-issue_1169_shadow_effect_animated-50.png | Bin 0 -> 20134 bytes ...s-issue_1169_shadow_effect_animated-75.png | Bin 0 -> 25701 bytes ...ngine.Issues-issue_1169_shadow_style-0.png | Bin 0 -> 15914 bytes ...ine.Issues-issue_1169_shadow_style-100.png | Bin 0 -> 15914 bytes ...gine.Issues-issue_1169_shadow_style-25.png | Bin 0 -> 15914 bytes ...gine.Issues-issue_1169_shadow_style-50.png | Bin 0 -> 15914 bytes ...gine.Issues-issue_1169_shadow_style-75.png | Bin 0 -> 15914 bytes ...ues-issue_1169_shadow_style_animated-0.png | Bin 0 -> 16145 bytes ...s-issue_1169_shadow_style_animated-100.png | Bin 0 -> 16596 bytes ...es-issue_1169_shadow_style_animated-25.png | Bin 0 -> 17336 bytes ...es-issue_1169_shadow_style_animated-50.png | Bin 0 -> 16596 bytes ...es-issue_1169_shadow_style_animated-75.png | Bin 0 -> 16596 bytes ...gine.Issues-issue_1169_shadow_effect-0.png | Bin 0 -> 5099 bytes ...ne.Issues-issue_1169_shadow_effect-100.png | Bin 0 -> 5099 bytes ...ine.Issues-issue_1169_shadow_effect-25.png | Bin 0 -> 5099 bytes ...ine.Issues-issue_1169_shadow_effect-50.png | Bin 0 -> 5099 bytes ...ine.Issues-issue_1169_shadow_effect-75.png | Bin 0 -> 5099 bytes ...es-issue_1169_shadow_effect_animated-0.png | Bin 0 -> 5099 bytes ...-issue_1169_shadow_effect_animated-100.png | Bin 0 -> 6212 bytes ...s-issue_1169_shadow_effect_animated-25.png | Bin 0 -> 6169 bytes ...s-issue_1169_shadow_effect_animated-50.png | Bin 0 -> 6258 bytes ...s-issue_1169_shadow_effect_animated-75.png | Bin 0 -> 6212 bytes ...ngine.Issues-issue_1169_shadow_style-0.png | Bin 0 -> 5099 bytes ...ine.Issues-issue_1169_shadow_style-100.png | Bin 0 -> 5099 bytes ...gine.Issues-issue_1169_shadow_style-25.png | Bin 0 -> 5099 bytes ...gine.Issues-issue_1169_shadow_style-50.png | Bin 0 -> 5099 bytes ...gine.Issues-issue_1169_shadow_style-75.png | Bin 0 -> 5099 bytes ...ues-issue_1169_shadow_style_animated-0.png | Bin 0 -> 5099 bytes ...s-issue_1169_shadow_style_animated-100.png | Bin 0 -> 5771 bytes ...es-issue_1169_shadow_style_animated-25.png | Bin 0 -> 6078 bytes ...es-issue_1169_shadow_style_animated-50.png | Bin 0 -> 5771 bytes ...es-issue_1169_shadow_style_animated-75.png | Bin 0 -> 5771 bytes 66 files changed, 880 insertions(+), 29 deletions(-) create mode 100644 Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift create mode 100644 Sources/Private/Model/LayerEffects/DropShadowEffect.swift create mode 100644 Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift create mode 100644 Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift create mode 100644 Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift create mode 100644 Sources/Private/Model/LayerEffects/LayerEffect.swift create mode 100644 Sources/Private/Model/LayerStyles/DropShadowStyle.swift create mode 100644 Sources/Private/Model/LayerStyles/LayerStyle.swift create mode 100644 Tests/Samples/Issues/issue_1169_shadow_effect.json create mode 100644 Tests/Samples/Issues/issue_1169_shadow_effect_animated.json create mode 100644 Tests/Samples/Issues/issue_1169_shadow_style.json create mode 100644 Tests/Samples/Issues/issue_1169_shadow_style_animated.json create mode 100644 Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect.txt create mode 100644 Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect_animated.txt create mode 100644 Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style.txt create mode 100644 Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style_animated.txt create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-75.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-50.png create mode 100644 Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png diff --git a/Lottie.xcodeproj/project.pbxproj b/Lottie.xcodeproj/project.pbxproj index b38bc08eab..dc643a7c4f 100644 --- a/Lottie.xcodeproj/project.pbxproj +++ b/Lottie.xcodeproj/project.pbxproj @@ -16,6 +16,30 @@ 0820D5972A8ACDD8007D705C /* AnimatedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5962A8ACDD7007D705C /* AnimatedButton.swift */; }; 0820D5982A8ACDD8007D705C /* AnimatedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5962A8ACDD7007D705C /* AnimatedButton.swift */; }; 0820D5992A8ACDD8007D705C /* AnimatedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5962A8ACDD7007D705C /* AnimatedButton.swift */; }; + 0820D59E2A8AE879007D705C /* LayerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D59D2A8AE879007D705C /* LayerStyle.swift */; }; + 0820D59F2A8AE879007D705C /* LayerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D59D2A8AE879007D705C /* LayerStyle.swift */; }; + 0820D5A02A8AE879007D705C /* LayerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D59D2A8AE879007D705C /* LayerStyle.swift */; }; + 0820D5B12A8BF14E007D705C /* DropShadowEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5AF2A8BF14E007D705C /* DropShadowEffect.swift */; }; + 0820D5B22A8BF14E007D705C /* DropShadowEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5AF2A8BF14E007D705C /* DropShadowEffect.swift */; }; + 0820D5B32A8BF14E007D705C /* DropShadowEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5AF2A8BF14E007D705C /* DropShadowEffect.swift */; }; + 0820D5B42A8BF14E007D705C /* LayerEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B02A8BF14E007D705C /* LayerEffect.swift */; }; + 0820D5B52A8BF14E007D705C /* LayerEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B02A8BF14E007D705C /* LayerEffect.swift */; }; + 0820D5B62A8BF14E007D705C /* LayerEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B02A8BF14E007D705C /* LayerEffect.swift */; }; + 0820D5B82A8BF159007D705C /* DropShadowStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B72A8BF159007D705C /* DropShadowStyle.swift */; }; + 0820D5B92A8BF159007D705C /* DropShadowStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B72A8BF159007D705C /* DropShadowStyle.swift */; }; + 0820D5BA2A8BF159007D705C /* DropShadowStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5B72A8BF159007D705C /* DropShadowStyle.swift */; }; + 0820D5C22A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C02A8BF60F007D705C /* Vector1DEffectValue.swift */; }; + 0820D5C32A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C02A8BF60F007D705C /* Vector1DEffectValue.swift */; }; + 0820D5C42A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C02A8BF60F007D705C /* Vector1DEffectValue.swift */; }; + 0820D5C52A8BF60F007D705C /* EffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C12A8BF60F007D705C /* EffectValue.swift */; }; + 0820D5C62A8BF60F007D705C /* EffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C12A8BF60F007D705C /* EffectValue.swift */; }; + 0820D5C72A8BF60F007D705C /* EffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5C12A8BF60F007D705C /* EffectValue.swift */; }; + 0820D5CD2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5CC2A8BF6FF007D705C /* ColorEffectValue.swift */; }; + 0820D5CE2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5CC2A8BF6FF007D705C /* ColorEffectValue.swift */; }; + 0820D5CF2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5CC2A8BF6FF007D705C /* ColorEffectValue.swift */; }; + 0820D5D12A8C006E007D705C /* DropShadowAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5D02A8C006E007D705C /* DropShadowAnimation.swift */; }; + 0820D5D22A8C006E007D705C /* DropShadowAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5D02A8C006E007D705C /* DropShadowAnimation.swift */; }; + 0820D5D32A8C006E007D705C /* DropShadowAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0820D5D02A8C006E007D705C /* DropShadowAnimation.swift */; }; 0887346F28F0CBDE00458627 /* LottieAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887346E28F0CBDE00458627 /* LottieAnimation.swift */; }; 0887347028F0CBDE00458627 /* LottieAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887346E28F0CBDE00458627 /* LottieAnimation.swift */; }; 0887347128F0CBDE00458627 /* LottieAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887346E28F0CBDE00458627 /* LottieAnimation.swift */; }; @@ -860,6 +884,14 @@ 0819D2A02A718CAE00D7DE49 /* LottieAnimationSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottieAnimationSource.swift; sourceTree = ""; }; 0820D5922A8ACD67007D705C /* LottieButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottieButton.swift; sourceTree = ""; }; 0820D5962A8ACDD7007D705C /* AnimatedButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedButton.swift; sourceTree = ""; }; + 0820D59D2A8AE879007D705C /* LayerStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayerStyle.swift; sourceTree = ""; }; + 0820D5AF2A8BF14E007D705C /* DropShadowEffect.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DropShadowEffect.swift; sourceTree = ""; }; + 0820D5B02A8BF14E007D705C /* LayerEffect.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LayerEffect.swift; sourceTree = ""; }; + 0820D5B72A8BF159007D705C /* DropShadowStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DropShadowStyle.swift; sourceTree = ""; }; + 0820D5C02A8BF60F007D705C /* Vector1DEffectValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Vector1DEffectValue.swift; sourceTree = ""; }; + 0820D5C12A8BF60F007D705C /* EffectValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EffectValue.swift; sourceTree = ""; }; + 0820D5CC2A8BF6FF007D705C /* ColorEffectValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorEffectValue.swift; sourceTree = ""; }; + 0820D5D02A8C006E007D705C /* DropShadowAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropShadowAnimation.swift; sourceTree = ""; }; 0887346E28F0CBDE00458627 /* LottieAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieAnimation.swift; sourceTree = ""; }; 0887347228F0CCDD00458627 /* LottieAnimationHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieAnimationHelpers.swift; sourceTree = ""; }; 0887347328F0CCDD00458627 /* LottieAnimationViewInitializers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieAnimationViewInitializers.swift; sourceTree = ""; }; @@ -1192,6 +1224,35 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0820D59C2A8AE860007D705C /* LayerStyles */ = { + isa = PBXGroup; + children = ( + 0820D59D2A8AE879007D705C /* LayerStyle.swift */, + 0820D5B72A8BF159007D705C /* DropShadowStyle.swift */, + ); + path = LayerStyles; + sourceTree = ""; + }; + 0820D5AE2A8BF14E007D705C /* LayerEffects */ = { + isa = PBXGroup; + children = ( + 0820D5BF2A8BF5DB007D705C /* EffectValues */, + 0820D5AF2A8BF14E007D705C /* DropShadowEffect.swift */, + 0820D5B02A8BF14E007D705C /* LayerEffect.swift */, + ); + path = LayerEffects; + sourceTree = ""; + }; + 0820D5BF2A8BF5DB007D705C /* EffectValues */ = { + isa = PBXGroup; + children = ( + 0820D5C12A8BF60F007D705C /* EffectValue.swift */, + 0820D5C02A8BF60F007D705C /* Vector1DEffectValue.swift */, + 0820D5CC2A8BF6FF007D705C /* ColorEffectValue.swift */, + ); + path = EffectValues; + sourceTree = ""; + }; 08AB05532A61C1F000DE86FD /* Configuration */ = { isa = PBXGroup; children = ( @@ -1432,6 +1493,8 @@ 2E9C95432822F43000677516 /* Keyframes */, 2E9C95462822F43000677516 /* Text */, 2E9C954B2822F43000677516 /* Assets */, + 0820D5AE2A8BF14E007D705C /* LayerEffects */, + 0820D59C2A8AE860007D705C /* LayerStyles */, 6DB3BDB7282454A6002A276D /* DictionaryInitializable.swift */, ); path = Model; @@ -1789,6 +1852,7 @@ 2E9C95B92822F43100677516 /* VisibilityAnimation.swift */, 2E9C95BA2822F43100677516 /* LayerProperty.swift */, 2E450DAB283415D500E56D19 /* OpacityAnimation.swift */, + 0820D5D02A8C006E007D705C /* DropShadowAnimation.swift */, ); path = Animations; sourceTree = ""; @@ -2279,6 +2343,7 @@ 2E9C96212822F43100677516 /* Bundle.swift in Sources */, 2E9C96CF2822F43100677516 /* ShapeContainerLayer.swift in Sources */, 08E2073F2A56014E002DCE17 /* SetBehaviorsProviding.swift in Sources */, + 0820D5D12A8C006E007D705C /* DropShadowAnimation.swift in Sources */, 2E9C973E2822F43100677516 /* LayerDebugging.swift in Sources */, 08E2071E2A56014E002DCE17 /* EpoxyModelStorage.swift in Sources */, 6D99D6432823790700E5205B /* LegacyGradientFillRenderer.swift in Sources */, @@ -2300,6 +2365,7 @@ 08C001F52A46150D00AB54BA /* Archive+BackingConfiguration.swift in Sources */, 0887346F28F0CBDE00458627 /* LottieAnimation.swift in Sources */, 08C002002A46150D00AB54BA /* Data+CompressionDeprecated.swift in Sources */, + 0820D5B82A8BF159007D705C /* DropShadowStyle.swift in Sources */, 2E9C97412822F43100677516 /* TestHelpers.swift in Sources */, 08EF21DC289C643B0097EA47 /* KeyframeInterpolator.swift in Sources */, 2E9C96152822F43100677516 /* Transform.swift in Sources */, @@ -2351,6 +2417,7 @@ 2E9C972F2822F43100677516 /* CustomPathAnimation.swift in Sources */, 2E9C97502822F43100677516 /* StringExtensions.swift in Sources */, 2EAF5AEF27A0798700E00531 /* AnimationKeypath.swift in Sources */, + 0820D5B42A8BF14E007D705C /* LayerEffect.swift in Sources */, 2E9C973B2822F43100677516 /* LayerProperty.swift in Sources */, 2E9C95F72822F43100677516 /* Rectangle.swift in Sources */, 2E9C96812822F43100677516 /* FillRenderer.swift in Sources */, @@ -2442,6 +2509,7 @@ 08E2075D2A56014E002DCE17 /* EpoxyModeled.swift in Sources */, 6C4878602901D8C70005AF07 /* DotLottieImageProvider.swift in Sources */, 08E206F42A56014E002DCE17 /* SectionedChangeset.swift in Sources */, + 0820D59E2A8AE879007D705C /* LayerStyle.swift in Sources */, 2E9C95EE2822F43100677516 /* GradientFill.swift in Sources */, 2E9C95D92822F43100677516 /* Trim.swift in Sources */, 2E9C96C32822F43100677516 /* SingleValueProvider.swift in Sources */, @@ -2483,8 +2551,10 @@ 08E2075A2A56014E002DCE17 /* EpoxyModelArrayBuilder.swift in Sources */, 2E9C96002822F43100677516 /* LayerModel.swift in Sources */, 2E9C97652822F43100677516 /* CurveVertex.swift in Sources */, + 0820D5C52A8BF60F007D705C /* EffectValue.swift in Sources */, 08C002042A46150D00AB54BA /* FileManager+ZIP.swift in Sources */, 08E2072A2A56014E002DCE17 /* DidSelectProviding.swift in Sources */, + 0820D5CD2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */, 2E9C96482822F43100677516 /* NullCompositionLayer.swift in Sources */, 2EAF5AFE27A0798700E00531 /* GradientValueProvider.swift in Sources */, 08C002032A46150D00AB54BA /* Data+Serialization.swift in Sources */, @@ -2514,6 +2584,7 @@ 2E9C96CC2822F43100677516 /* ShapeRenderLayer.swift in Sources */, 08C001FA2A46150D00AB54BA /* Data+Compression.swift in Sources */, 5721091F29119F3100169699 /* BezierPathRoundExtension.swift in Sources */, + 0820D5B12A8BF14E007D705C /* DropShadowEffect.swift in Sources */, 6C48780228FF20140005AF07 /* DotLottieFile.swift in Sources */, 2EAF5AEC27A0798700E00531 /* LottieLogger.swift in Sources */, 2E9C976E2822F43100677516 /* KeyframeExtensions.swift in Sources */, @@ -2531,6 +2602,7 @@ A40460592832C52B00ACFEDC /* BlendMode+Filter.swift in Sources */, 2E9C96542822F43100677516 /* ImageCompositionLayer.swift in Sources */, 2EAF5AB327A0798700E00531 /* AnimationImageProvider.swift in Sources */, + 0820D5C22A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */, 2E9C95F12822F43100677516 /* GradientStroke.swift in Sources */, 2EAF5ADD27A0798700E00531 /* Interpolatable.swift in Sources */, 2E9C96122822F43100677516 /* DashPattern.swift in Sources */, @@ -2573,6 +2645,7 @@ 08E6CF942A86E29100A6D92F /* LottieViewType.swift in Sources */, 2E9C96F72822F43100677516 /* ShapeLayer.swift in Sources */, 6C48784828FF20140005AF07 /* DotLottieManifest.swift in Sources */, + 0820D5B92A8BF159007D705C /* DropShadowStyle.swift in Sources */, 08E206EF2A56014E002DCE17 /* EpoxyLogger.swift in Sources */, 2E9C95D72822F43100677516 /* Ellipse.swift in Sources */, 82A552762A2FD44B00E47AC8 /* LottieAnimationLayer.swift in Sources */, @@ -2621,6 +2694,7 @@ 6DB3BDBD28245A14002A276D /* CGPointExtension.swift in Sources */, 2EAF5AE427A0798700E00531 /* AnimationCacheProvider.swift in Sources */, 2E9C96432822F43100677516 /* RootAnimationLayer.swift in Sources */, + 0820D5D22A8C006E007D705C /* DropShadowAnimation.swift in Sources */, 2E9C97722822F43100677516 /* AnimationContext.swift in Sources */, 2E9C96B22822F43100677516 /* NodeProperty.swift in Sources */, 08E6CF8A2A86E26F00A6D92F /* AnimatedSwitch.swift in Sources */, @@ -2640,6 +2714,7 @@ 2E9C975A2822F43100677516 /* BezierPath.swift in Sources */, 2EAF5ABA27A0798700E00531 /* CompatibleAnimationView.swift in Sources */, 08C002CF2A46196300AB54BA /* Data+Compression.swift in Sources */, + 0820D59F2A8AE879007D705C /* LayerStyle.swift in Sources */, 2E9C96072822F43100677516 /* TextLayerModel.swift in Sources */, 2E9C96AF2822F43100677516 /* ValueContainer.swift in Sources */, 2E9C97332822F43100677516 /* CALayer+addAnimation.swift in Sources */, @@ -2651,6 +2726,7 @@ 08C002D72A46196300AB54BA /* Entry+ZIP64.swift in Sources */, 2E9C96762822F43100677516 /* TrimPathNode.swift in Sources */, 2E9C974E2822F43100677516 /* AnimationKeypathExtension.swift in Sources */, + 0820D5CE2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */, 08E207222A56014E002DCE17 /* CallbackContextEpoxyModeled.swift in Sources */, 2E9C97062822F43100677516 /* CoreAnimationLayer.swift in Sources */, 08EED05128F0D2D10057D958 /* LottieColor.swift in Sources */, @@ -2664,6 +2740,7 @@ 2E9C95EC2822F43100677516 /* Repeater.swift in Sources */, 2EAF5AA827A0798700E00531 /* LottieConfiguration.swift in Sources */, 2E9C95D42822F43100677516 /* Fill.swift in Sources */, + 0820D5C32A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */, 6DB3BDB9282454A6002A276D /* DictionaryInitializable.swift in Sources */, 2E9C96B82822F43100677516 /* NodePropertyMap.swift in Sources */, 2E9C97692822F43100677516 /* VectorsExtensions.swift in Sources */, @@ -2685,6 +2762,7 @@ 2E9C963D2822F43100677516 /* AssetLibrary.swift in Sources */, 2E9C97032822F43100677516 /* PreCompLayer.swift in Sources */, 2E9C96EB2822F43100677516 /* SolidLayer.swift in Sources */, + 0820D5C62A8BF60F007D705C /* EffectValue.swift in Sources */, 2EAF5AA227A0798700E00531 /* AnimationSubview.macOS.swift in Sources */, 08E2073A2A56014E002DCE17 /* TraitCollectionProviding.swift in Sources */, 57210914291073E400169699 /* RoundedCorners.swift in Sources */, @@ -2715,6 +2793,7 @@ 2E9C96522822F43100677516 /* PreCompositionLayer.swift in Sources */, 08C002DB2A46196300AB54BA /* Archive+Helpers.swift in Sources */, 2EAF5AF327A0798700E00531 /* AnyValueProvider.swift in Sources */, + 0820D5B22A8BF14E007D705C /* DropShadowEffect.swift in Sources */, 2E9C96642822F43100677516 /* CoreTextRenderLayer.swift in Sources */, 2E9C960A2822F43100677516 /* PreCompLayerModel.swift in Sources */, 2E9C96192822F43100677516 /* Mask.swift in Sources */, @@ -2729,6 +2808,7 @@ 2E9C97272822F43100677516 /* StrokeAnimation.swift in Sources */, 2E9C97392822F43100677516 /* VisibilityAnimation.swift in Sources */, 08E207192A56014E002DCE17 /* SwiftUIView.swift in Sources */, + 0820D5B52A8BF14E007D705C /* LayerEffect.swift in Sources */, 08E2075B2A56014E002DCE17 /* EpoxyModelArrayBuilder.swift in Sources */, 2EAF5AD827A0798700E00531 /* Vectors.swift in Sources */, 2E9C95E32822F43100677516 /* Group.swift in Sources */, @@ -2860,6 +2940,7 @@ 2E9C96232822F43100677516 /* Bundle.swift in Sources */, 2E9C96D12822F43100677516 /* ShapeContainerLayer.swift in Sources */, 08E207412A56014E002DCE17 /* SetBehaviorsProviding.swift in Sources */, + 0820D5D32A8C006E007D705C /* DropShadowAnimation.swift in Sources */, 2E9C97402822F43100677516 /* LayerDebugging.swift in Sources */, 08E207202A56014E002DCE17 /* EpoxyModelStorage.swift in Sources */, 6D99D6452823790700E5205B /* LegacyGradientFillRenderer.swift in Sources */, @@ -2881,6 +2962,7 @@ 2E9C96682822F43100677516 /* LayerTransformNode.swift in Sources */, 0887347128F0CBDE00458627 /* LottieAnimation.swift in Sources */, 2E9C97432822F43100677516 /* TestHelpers.swift in Sources */, + 0820D5BA2A8BF159007D705C /* DropShadowStyle.swift in Sources */, 08EF21DE289C643B0097EA47 /* KeyframeInterpolator.swift in Sources */, 2E9C96172822F43100677516 /* Transform.swift in Sources */, 2E9C97492822F43100677516 /* CGFloatExtensions.swift in Sources */, @@ -2932,6 +3014,7 @@ 2E9C97522822F43100677516 /* StringExtensions.swift in Sources */, 2EAF5AF127A0798700E00531 /* AnimationKeypath.swift in Sources */, 2E9C973D2822F43100677516 /* LayerProperty.swift in Sources */, + 0820D5B62A8BF14E007D705C /* LayerEffect.swift in Sources */, 2E9C95F92822F43100677516 /* Rectangle.swift in Sources */, 2E9C96832822F43100677516 /* FillRenderer.swift in Sources */, 2E9C95ED2822F43100677516 /* Repeater.swift in Sources */, @@ -3023,6 +3106,7 @@ 08E2075F2A56014E002DCE17 /* EpoxyModeled.swift in Sources */, 2E9C95F02822F43100677516 /* GradientFill.swift in Sources */, 08E206F62A56014E002DCE17 /* SectionedChangeset.swift in Sources */, + 0820D5A02A8AE879007D705C /* LayerStyle.swift in Sources */, 2E9C95DB2822F43100677516 /* Trim.swift in Sources */, 2E9C96C52822F43100677516 /* SingleValueProvider.swift in Sources */, 2E9C967D2822F43100677516 /* GradientFillRenderer.swift in Sources */, @@ -3064,8 +3148,10 @@ 08E2075C2A56014E002DCE17 /* EpoxyModelArrayBuilder.swift in Sources */, 6CC544932902FF7D00212722 /* DotLottieCache.swift in Sources */, 2E9C97672822F43100677516 /* CurveVertex.swift in Sources */, + 0820D5C72A8BF60F007D705C /* EffectValue.swift in Sources */, 2E9C964A2822F43100677516 /* NullCompositionLayer.swift in Sources */, 08E2072C2A56014E002DCE17 /* DidSelectProviding.swift in Sources */, + 0820D5CF2A8BF6FF007D705C /* ColorEffectValue.swift in Sources */, 08C002ED2A46196300AB54BA /* Archive+Helpers.swift in Sources */, 2EAF5B0027A0798700E00531 /* GradientValueProvider.swift in Sources */, 2E9C96BF2822F43100677516 /* AnyValueContainer.swift in Sources */, @@ -3095,6 +3181,7 @@ 5721092129119F3100169699 /* BezierPathRoundExtension.swift in Sources */, 2EAF5AEE27A0798700E00531 /* LottieLogger.swift in Sources */, 2E9C97702822F43100677516 /* KeyframeExtensions.swift in Sources */, + 0820D5B32A8BF14E007D705C /* DropShadowEffect.swift in Sources */, 2E9C963B2822F43100677516 /* PrecompAsset.swift in Sources */, 2E9C962C2822F43100677516 /* TextDocument.swift in Sources */, 2EAF5AE827A0798700E00531 /* LRUAnimationCache.swift in Sources */, @@ -3112,6 +3199,7 @@ 08C002EA2A46196300AB54BA /* Data+Serialization.swift in Sources */, 2E9C95F32822F43100677516 /* GradientStroke.swift in Sources */, 2EAF5ADF27A0798700E00531 /* Interpolatable.swift in Sources */, + 0820D5C42A8BF60F007D705C /* Vector1DEffectValue.swift in Sources */, 2E9C96142822F43100677516 /* DashPattern.swift in Sources */, 2E9C960E2822F43100677516 /* ShapeLayerModel.swift in Sources */, 08C002F22A46196300AB54BA /* Archive+ReadingDeprecated.swift in Sources */, diff --git a/Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift b/Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift new file mode 100644 index 0000000000..3a70cf8d84 --- /dev/null +++ b/Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift @@ -0,0 +1,183 @@ +// Created by Cal Stephens on 8/15/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import QuartzCore + +// MARK: - DropShadowModel + +protocol DropShadowModel { + /// The opacity of the drop shadow, from 0 to 100. + var _opacity: KeyframeGroup? { get } + + /// The shadow radius of the blur + var _radius: KeyframeGroup? { get } + + /// The color of the drop shadow + var _color: KeyframeGroup? { get } + + /// The angle of the drop shadow, in degrees, + /// with "90" resulting in a shadow directly beneath the layer. + /// Combines with the `distance` to form the `shadowOffset`. + var _angle: KeyframeGroup? { get } + + /// The distance of the drop shadow offset. + /// Combines with the `angle` to form the `shadowOffset`. + var _distance: KeyframeGroup? { get } +} + +// MARK: - DropShadowStyle + DropShadowModel + +extension DropShadowStyle: DropShadowModel { + var _opacity: KeyframeGroup? { opacity } + var _color: KeyframeGroup? { color } + var _angle: KeyframeGroup? { angle } + var _distance: KeyframeGroup? { distance } + + var _radius: KeyframeGroup? { + size.map { sizeValue in + // `DropShadowStyle.size` is approximately double as large + // as the visually-equivalent `cornerRadius` value + LottieVector1D(sizeValue.cgFloatValue / 2) + } + } +} + +// MARK: - DropShadowEffect + DropShadowModel + +extension DropShadowEffect: DropShadowModel { + var _color: KeyframeGroup? { color?.value } + + var _distance: KeyframeGroup? { + distance?.value?.map { distanceValue in + // `DropShadowEffect.distance` doesn't seem to map cleanly to + // `CALayer.shadowOffset` (e.g. with a simple multiplier). + // Instead, this uses a custom quadratic regression eyeballed + // to match the expected appearance of the start / end of the + // `issue_1169_shadow_effect_animated.json` sample animation: + // - `distance=5` roughly corresponds to an offset value of 4 + // - `distance=10` roughly corresponds to an offset value of 5 + // This could probably be improved with more examples. + let x = distanceValue.cgFloatValue + let cornerRadiusMapping = (-0.06 * pow(x, 2)) + (1.1 * x) + + return LottieVector1D(cornerRadiusMapping) + } + } + + var _radius: KeyframeGroup? { + softness?.value?.map { softnessValue in + // `DropShadowEffect.softness` doesn't seem to map cleanly to + // `CALayer.cornerRadius` (e.g. with a simple multiplier). + // Instead, this uses a custom quadratic regression eyeballed + // to match the expected appearance of the start / end of the + // `issue_1169_shadow_effect_animated.json` sample animation: + // - `softness=10` roughly corresponds to `cornerRadius=2.5` + // - `softness=50` roughly corresponds to `cornerRadius=6.25` + // This could probably be improved with more examples. + let x = softnessValue.cgFloatValue + let cornerRadiusMapping = (-0.003 * pow(x, 2)) + (0.281 * x) + + return LottieVector1D(cornerRadiusMapping) + } + } + + var _opacity: KeyframeGroup? { + opacity?.value?.map { originalOpacityValue in + // `DropShadowEffect.opacity` is a value between 0 and 255, + // but `DropShadowModel._opacity` expects a value between 0 and 100. + LottieVector1D((originalOpacityValue.value / 255.0) * 100) + } + } + + var _angle: KeyframeGroup? { + direction?.value?.map { originalAngleValue in + // `DropShadowEffect.distance` is rotated 90º from the + // angle value representation expected by `DropShadowModel._angle` + LottieVector1D(originalAngleValue.value - 90) + } + } +} + +// MARK: - CALayer + DropShadowModel + +extension CALayer { + + // MARK: Internal + + /// Adds drop shadow animations from the given `DropShadowModel` to this layer + @nonobjc + func addDropShadowAnimations( + for dropShadowModel: DropShadowModel, + context: LayerAnimationContext) + throws + { + try addShadowOpacityAnimation(from: dropShadowModel, context: context) + try addShadowColorAnimation(from: dropShadowModel, context: context) + try addShadowRadiusAnimation(from: dropShadowModel, context: context) + try addShadowOffsetAnimation(from: dropShadowModel, context: context) + } + + // MARK: Private + + private func addShadowOpacityAnimation(from model: DropShadowModel, context: LayerAnimationContext) throws { + guard let opacityKeyframes = model._opacity else { return } + + try addAnimation( + for: .shadowOpacity, + keyframes: opacityKeyframes, + value: { + // Lottie animation files express opacity as a numerical percentage value + // (e.g. 0%, 50%, 100%) so we divide by 100 to get the decimal values + // expected by Core Animation (e.g. 0.0, 0.5, 1.0). + $0.cgFloatValue / 100 + }, + context: context) + } + + private func addShadowColorAnimation(from model: DropShadowModel, context: LayerAnimationContext) throws { + guard let shadowColorKeyframes = model._color else { return } + + try addAnimation( + for: .shadowColor, + keyframes: shadowColorKeyframes, + value: \.cgColorValue, + context: context) + } + + private func addShadowRadiusAnimation(from model: DropShadowModel, context: LayerAnimationContext) throws { + guard let shadowSizeKeyframes = model._radius else { return } + + try addAnimation( + for: .shadowRadius, + keyframes: shadowSizeKeyframes, + value: \.cgFloatValue, + context: context) + } + + private func addShadowOffsetAnimation(from model: DropShadowModel, context: LayerAnimationContext) throws { + guard + let angleKeyframes = model._angle, + let distanceKeyframes = model._distance + else { return } + + let offsetKeyframes = Keyframes.combined(angleKeyframes, distanceKeyframes) { angleDegrees, distance -> CGSize in + // Lottie animation files express rotation in degrees + // (e.g. 90º, 180º, 360º) so we convert to radians to get the + // values expected by Core Animation (e.g. π/2, π, 2π) + let angleRadians = (angleDegrees.cgFloatValue * .pi) / 180 + + // Lottie animation files express the `shadowOffset` as (angle, distance) pair, + // which we convert to the expected x / y offset values: + let offsetX = distance.cgFloatValue * cos(angleRadians) + let offsetY = distance.cgFloatValue * sin(angleRadians) + return CGSize(width: offsetX, height: offsetY) + } + + try addAnimation( + for: .shadowOffset, + keyframes: offsetKeyframes, + value: { $0 }, + context: context) + } + +} diff --git a/Sources/Private/CoreAnimation/Animations/LayerProperty.swift b/Sources/Private/CoreAnimation/Animations/LayerProperty.swift index 3bad51e98b..dc80f99e0f 100644 --- a/Sources/Private/CoreAnimation/Animations/LayerProperty.swift +++ b/Sources/Private/CoreAnimation/Animations/LayerProperty.swift @@ -26,6 +26,16 @@ struct LayerProperty { } extension LayerProperty where ValueRepresentation: Equatable { + /// Initializes a `LayerProperty` that corresponds to a property on `CALayer` + /// or some other `CALayer` subclass like `CAShapeLayer`. + /// - Parameters: + /// - caLayerKeypath: The Objective-C `#keyPath` to the `CALayer` property, + /// e.g. `#keyPath(CALayer.opacity)` or `#keyPath(CAShapeLayer.path)`. + /// - defaultValue: The default value of the property (e.g. the value of the + /// property immediately after calling `CALayer.init()`). Knowing this value + /// lets us perform some optimizations in `CALayer+addAnimation`. + /// - customizableProperty: A description of how this property can be customized + /// dynamically at runtime using `AnimationView.setValueProvider(_:keypath:)`. init( caLayerKeypath: String, defaultValue: ValueRepresentation?, @@ -159,6 +169,34 @@ extension LayerProperty { }, customizableProperty: nil /* currently unsupported */ ) } + + static var shadowOpacity: LayerProperty { + .init( + caLayerKeypath: #keyPath(CALayer.shadowOpacity), + defaultValue: 0, + customizableProperty: nil /* currently unsupported */ ) + } + + static var shadowColor: LayerProperty { + .init( + caLayerKeypath: #keyPath(CALayer.shadowColor), + defaultValue: .rgb(0, 0, 0), + customizableProperty: nil /* currently unsupported */ ) + } + + static var shadowRadius: LayerProperty { + .init( + caLayerKeypath: #keyPath(CALayer.shadowRadius), + defaultValue: 3.0, + customizableProperty: nil /* currently unsupported */ ) + } + + static var shadowOffset: LayerProperty { + .init( + caLayerKeypath: #keyPath(CALayer.shadowOffset), + defaultValue: CGSize(width: 0, height: -3.0), + customizableProperty: nil /* currently unsupported */ ) + } } // MARK: CAShapeLayer properties diff --git a/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift b/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift index 1986b9084a..50da397794 100644 --- a/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift +++ b/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift @@ -6,7 +6,7 @@ import QuartzCore // MARK: - TransformModel /// This protocol mirrors the interface of `Transform`, -/// but it also implemented by `ShapeTransform` to allow +/// but is also implemented by `ShapeTransform` to allow /// both transform types to share the same animation implementation. protocol TransformModel { /// The anchor point of the transform. diff --git a/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift b/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift index bdbbda9ddf..004f1fd128 100644 --- a/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift +++ b/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift @@ -67,6 +67,15 @@ class BaseCompositionLayer: BaseAnimationLayer { inFrame: CGFloat(baseLayerModel.inFrame), outFrame: CGFloat(baseLayerModel.outFrame), context: context) + + // There are two different drop shadow schemas, either using `DropShadowEffect` or `DropShadowStyle`. + // If both happen to be present, prefer the `DropShadowEffect` (which is the drop shadow schema + // supported on other platforms). + let dropShadowEffect = baseLayerModel.effects.first(where: { $0 is DropShadowEffect }) as? DropShadowModel + let dropShadowStyle = baseLayerModel.styles.first(where: { $0 is DropShadowStyle }) as? DropShadowModel + if let dropShadowModel = dropShadowEffect ?? dropShadowStyle { + try contentsLayer.addDropShadowAnimations(for: dropShadowModel, context: context) + } } } diff --git a/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift b/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift index c0d8d75508..e020490799 100644 --- a/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift +++ b/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift @@ -41,4 +41,30 @@ extension KeyedDecodingContainer { } return list } + + /// Decode a heterogeneous list of objects for a given family if the given key is present. + /// - Parameters: + /// - heterogeneousType: The decodable type of the list. + /// - family: The ClassFamily enum for the type family. + /// - key: The CodingKey to look up the list in the current container. + /// - Returns: The resulting list of heterogeneousType elements. + func decodeIfPresent(_: [T].Type, ofFamily family: U.Type, forKey key: K) throws -> [T]? { + var container: UnkeyedDecodingContainer + do { + container = try nestedUnkeyedContainer(forKey: key) + } catch { + return nil + } + + var list = [T]() + var tmpContainer = container + while !container.isAtEnd { + let typeContainer = try container.nestedContainer(keyedBy: Discriminator.self) + let family: U = try typeContainer.decode(U.self, forKey: U.discriminator) + if let type = family.getType() as? T.Type { + list.append(try tmpContainer.decode(type)) + } + } + return list + } } diff --git a/Sources/Private/Model/Keyframes/KeyframeGroup.swift b/Sources/Private/Model/Keyframes/KeyframeGroup.swift index 89437a956e..4998556753 100644 --- a/Sources/Private/Model/Keyframes/KeyframeGroup.swift +++ b/Sources/Private/Model/Keyframes/KeyframeGroup.swift @@ -14,7 +14,6 @@ import Foundation /// Keyframe data is wrapped in a dictionary { "k" : KeyframeData }. /// The keyframe data can either be an array of keyframes or, if no animation is present, the raw value. /// This helper object is needed to properly decode the json. - final class KeyframeGroup { // MARK: Lifecycle diff --git a/Sources/Private/Model/LayerEffects/DropShadowEffect.swift b/Sources/Private/Model/LayerEffects/DropShadowEffect.swift new file mode 100644 index 0000000000..e4fa1504af --- /dev/null +++ b/Sources/Private/Model/LayerEffects/DropShadowEffect.swift @@ -0,0 +1,45 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +final class DropShadowEffect: LayerEffect { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + try super.init(from: decoder) + } + + required init(dictionary: [String: Any]) throws { + try super.init(dictionary: dictionary) + } + + // MARK: Internal + + /// The color of the drop shadow + var color: ColorEffectValue? { + value(named: "Shadow Color") + } + + /// Opacity between 0 and 255 + var opacity: Vector1DEffectValue? { + value(named: "Opacity") + } + + /// The direction / angle of the drop shadow, in degrees + var direction: Vector1DEffectValue? { + value(named: "Direction") + } + + /// The distance of the drop shadow + var distance: Vector1DEffectValue? { + value(named: "Distance") + } + + /// The softness of the drop shadow + var softness: Vector1DEffectValue? { + value(named: "Softness") + } + +} diff --git a/Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift b/Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift new file mode 100644 index 0000000000..a20844cf21 --- /dev/null +++ b/Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift @@ -0,0 +1,38 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +final class ColorEffectValue: EffectValue { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + value = try? container.decode(KeyframeGroup.self, forKey: .value) + try super.init(from: decoder) + } + + required init(dictionary: [String: Any]) throws { + let valueDictionary: [String: Any] = try dictionary.value(for: CodingKeys.value) + value = try KeyframeGroup(dictionary: valueDictionary) + try super.init(dictionary: dictionary) + } + + // MARK: Internal + + /// The value of the color + let value: KeyframeGroup? + + override func encode(to encoder: Encoder) throws { + try super.encode(to: encoder) + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(value, forKey: .value) + } + + // MARK: Private + + private enum CodingKeys: String, CodingKey { + case value = "v" + } +} diff --git a/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift b/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift new file mode 100644 index 0000000000..1c38f74401 --- /dev/null +++ b/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift @@ -0,0 +1,98 @@ +// Created by Cal Stephens on 8/15/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +// MARK: - EffectValueType + +/// https://lottiefiles.github.io/lottie-docs/schema/#/$defs/effect-values +enum EffectValueType: Int, Codable, Sendable { + case slider = 0 + case angle = 1 + case color = 2 + case unknown = 9999 + + init(from decoder: Decoder) throws { + self = try EffectValueType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown + } +} + +// MARK: ClassFamily + +extension EffectValueType: ClassFamily { + static var discriminator: Discriminator = .type + + func getType() -> AnyObject.Type { + switch self { + case .slider: + return Vector1DEffectValue.self + case .angle: + return Vector1DEffectValue.self + case .color: + return ColorEffectValue.self + case .unknown: + // Unsupported + return LayerEffect.self + } + } +} + +// MARK: - EffectValue + +class EffectValue: Codable, DictionaryInitializable { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: EffectValue.CodingKeys.self) + type = try container.decode(EffectValueType.self, forKey: .type) + name = try container.decode(String.self, forKey: .name) + } + + required init(dictionary: [String: Any]) throws { + type = EffectValueType(rawValue: try dictionary.value(for: CodingKeys.type)) ?? .unknown + name = try dictionary.value(for: CodingKeys.name) ?? "Effect" + } + + // MARK: Internal + + /// The type of effect value + let type: EffectValueType + + /// The name of the effect value + let name: String + + // MARK: Fileprivate + + fileprivate enum CodingKeys: String, CodingKey { + case type = "ty" + case name = "nm" + } +} + +extension Array where Element == EffectValue { + static func fromDictionaries(_ dictionaries: [[String: Any]]) throws -> [EffectValue] { + try dictionaries.compactMap { dictionary in + let shapeType = dictionary[EffectValue.CodingKeys.type.rawValue] as? Int + switch EffectValueType(rawValue: shapeType ?? EffectValueType.unknown.rawValue) { + case .slider: + return try Vector1DEffectValue(dictionary: dictionary) + case .angle: + return try Vector1DEffectValue(dictionary: dictionary) + case .color: + return try ColorEffectValue(dictionary: dictionary) + case .unknown: + // Unsupported + return try EffectValue(dictionary: dictionary) + case nil: + return nil + } + } + } +} + +// MARK: - EffectValue + Sendable + +/// Since `EffectValue` isn't `final`, we have to use `@unchecked Sendable` instead of `Sendable.` +/// All `EffectValue` subclasses are immutable `Sendable` values. +extension EffectValue: @unchecked Sendable { } diff --git a/Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift b/Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift new file mode 100644 index 0000000000..28d0694601 --- /dev/null +++ b/Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift @@ -0,0 +1,38 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +final class Vector1DEffectValue: EffectValue { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + value = try? container.decode(KeyframeGroup.self, forKey: .value) + try super.init(from: decoder) + } + + required init(dictionary: [String: Any]) throws { + let valueDictionary: [String: Any] = try dictionary.value(for: CodingKeys.value) + value = try KeyframeGroup(dictionary: valueDictionary) + try super.init(dictionary: dictionary) + } + + // MARK: Internal + + /// The value of the slider + let value: KeyframeGroup? + + override func encode(to encoder: Encoder) throws { + try super.encode(to: encoder) + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(value, forKey: .value) + } + + // MARK: Private + + private enum CodingKeys: String, CodingKey { + case value = "v" + } +} diff --git a/Sources/Private/Model/LayerEffects/LayerEffect.swift b/Sources/Private/Model/LayerEffects/LayerEffect.swift new file mode 100644 index 0000000000..357c23665f --- /dev/null +++ b/Sources/Private/Model/LayerEffects/LayerEffect.swift @@ -0,0 +1,103 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +// MARK: - LayerEffectType + +/// https://lottiefiles.github.io/lottie-docs/schema/#/$defs/effects +enum LayerEffectType: Int, Codable, Sendable { + case dropShadow = 25 + case unknown = 9999 + + init(from decoder: Decoder) throws { + self = try LayerEffectType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown + } +} + +// MARK: ClassFamily + +extension LayerEffectType: ClassFamily { + static var discriminator: Discriminator = .type + + func getType() -> AnyObject.Type { + switch self { + case .dropShadow: + return DropShadowEffect.self + case .unknown: + // Unsupported + return LayerEffect.self + } + } +} + +// MARK: - LayerEffect + +class LayerEffect: Codable, DictionaryInitializable { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: LayerEffect.CodingKeys.self) + name = try container.decodeIfPresent(String.self, forKey: .name) ?? "Effect" + type = try container.decode(LayerEffectType.self, forKey: .type) + effects = try container.decodeIfPresent([EffectValue].self, ofFamily: EffectValueType.self, forKey: .effects) ?? [] + } + + required init(dictionary: [String: Any]) throws { + name = (try? dictionary.value(for: CodingKeys.name)) ?? "Layer" + type = LayerEffectType(rawValue: try dictionary.value(for: CodingKeys.type)) ?? .unknown + if let valueDictionaries = dictionary[CodingKeys.effects.rawValue] as? [[String: Any]] { + effects = try [EffectValue].fromDictionaries(valueDictionaries) + } else { + effects = [] + } + } + + // MARK: Internal + + /// The name of the effect + let name: String + + /// The type of effect + let type: LayerEffectType + + /// Values that configure the behavior of the effect + let effects: [EffectValue] + + /// Retrieves the `EffectValue` for the given name + func value(named name: String) -> ValueType? { + effects.first(where: { + $0.name == name && $0 is ValueType + }) as? ValueType + } + + // MARK: Fileprivate + + fileprivate enum CodingKeys: String, CodingKey { + case name = "nm" + case type = "ty" + case effects = "ef" + } +} + +extension Array where Element == LayerEffect { + static func fromDictionaries(_ dictionaries: [[String: Any]]) throws -> [LayerEffect] { + try dictionaries.compactMap { dictionary in + let shapeType = dictionary[LayerEffect.CodingKeys.type.rawValue] as? Int + switch LayerEffectType(rawValue: shapeType ?? LayerEffectType.unknown.rawValue) { + case .dropShadow: + return try DropShadowEffect(dictionary: dictionary) + case .unknown, nil: + // Unsupported + return try LayerEffect(dictionary: dictionary) + } + } + } +} + +// MARK: - LayerEffect + Sendable + +/// Since `LayerEffect` isn't `final`, we have to use `@unchecked Sendable` instead of `Sendable.` +/// All `LayerEffect` subclasses are immutable `Sendable` values. +extension LayerEffect: @unchecked Sendable { } diff --git a/Sources/Private/Model/LayerStyles/DropShadowStyle.swift b/Sources/Private/Model/LayerStyles/DropShadowStyle.swift new file mode 100644 index 0000000000..4ffa537557 --- /dev/null +++ b/Sources/Private/Model/LayerStyles/DropShadowStyle.swift @@ -0,0 +1,72 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +final class DropShadowStyle: LayerStyle { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: DropShadowStyle.CodingKeys.self) + opacity = try container.decode(KeyframeGroup.self, forKey: .opacity) + color = try container.decode(KeyframeGroup.self, forKey: .color) + angle = try container.decode(KeyframeGroup.self, forKey: .angle) + size = try container.decode(KeyframeGroup.self, forKey: .size) + distance = try container.decode(KeyframeGroup.self, forKey: .distance) + try super.init(from: decoder) + } + + required init(dictionary: [String: Any]) throws { + let opacityDictionary: [String: Any] = try dictionary.value(for: CodingKeys.opacity) + opacity = try KeyframeGroup(dictionary: opacityDictionary) + let colorDictionary: [String: Any] = try dictionary.value(for: CodingKeys.color) + color = try KeyframeGroup(dictionary: colorDictionary) + let angleDictionary: [String: Any] = try dictionary.value(for: CodingKeys.angle) + angle = try KeyframeGroup(dictionary: angleDictionary) + let sizeDictionary: [String: Any] = try dictionary.value(for: CodingKeys.size) + size = try KeyframeGroup(dictionary: sizeDictionary) + let distanceDictionary: [String: Any] = try dictionary.value(for: CodingKeys.distance) + distance = try KeyframeGroup(dictionary: distanceDictionary) + try super.init(dictionary: dictionary) + } + + // MARK: Internal + + /// The opacity of the drop shadow + let opacity: KeyframeGroup + + /// The color of the drop shadow + let color: KeyframeGroup + + /// The angle of the drop shadow, in degrees, + /// with `0` representing a shadow straight-down from the layer + /// (`offsetY=distance, offsetX=0`). + let angle: KeyframeGroup + + /// The size of the drop shadow + let size: KeyframeGroup + + /// The distance of the drop shadow + let distance: KeyframeGroup + + override func encode(to encoder: Encoder) throws { + try super.encode(to: encoder) + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(opacity, forKey: .opacity) + try container.encode(color, forKey: .color) + try container.encode(angle, forKey: .angle) + try container.encode(size, forKey: .size) + try container.encode(distance, forKey: .distance) + } + + // MARK: Private + + private enum CodingKeys: String, CodingKey { + case color = "c" + case opacity = "o" + case angle = "a" + case size = "s" + case distance = "d" + } +} diff --git a/Sources/Private/Model/LayerStyles/LayerStyle.swift b/Sources/Private/Model/LayerStyles/LayerStyle.swift new file mode 100644 index 0000000000..8763b6ca79 --- /dev/null +++ b/Sources/Private/Model/LayerStyles/LayerStyle.swift @@ -0,0 +1,85 @@ +// Created by Cal Stephens on 8/14/23. +// Copyright © 2023 Airbnb Inc. All rights reserved. + +import Foundation + +// MARK: - LayerStyleType + +enum LayerStyleType: Int, Codable, Sendable { + case dropShadow = 1 + case unknown = 9999 + + init(from decoder: Decoder) throws { + self = try LayerStyleType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown + } +} + +// MARK: ClassFamily + +extension LayerStyleType: ClassFamily { + static var discriminator: Discriminator = .type + + func getType() -> AnyObject.Type { + switch self { + case .dropShadow: + return DropShadowStyle.self + case .unknown: + // Unsupported + return LayerStyle.self + } + } +} + +// MARK: - LayerStyle + +class LayerStyle: Codable, DictionaryInitializable { + + // MARK: Lifecycle + + required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: LayerStyle.CodingKeys.self) + name = try container.decodeIfPresent(String.self, forKey: .name) ?? "Style" + type = try container.decode(LayerStyleType.self, forKey: .type) + } + + required init(dictionary: [String: Any]) throws { + name = (try? dictionary.value(for: CodingKeys.name)) ?? "Layer" + type = LayerStyleType(rawValue: try dictionary.value(for: CodingKeys.type)) ?? .unknown + } + + // MARK: Internal + + /// The name of the style + let name: String + + /// The type of style + let type: LayerStyleType + + // MARK: Fileprivate + + fileprivate enum CodingKeys: String, CodingKey { + case name = "nm" + case type = "ty" + } +} + +extension Array where Element == LayerStyle { + static func fromDictionaries(_ dictionaries: [[String: Any]]) throws -> [LayerStyle] { + try dictionaries.compactMap { dictionary in + let shapeType = dictionary[LayerStyle.CodingKeys.type.rawValue] as? Int + switch LayerStyleType(rawValue: shapeType ?? LayerStyleType.unknown.rawValue) { + case .dropShadow: + return try DropShadowStyle(dictionary: dictionary) + case .unknown, nil: + // Unsupported + return try LayerStyle(dictionary: dictionary) + } + } + } +} + +// MARK: - LayerStyle + Sendable + +/// Since `LayerStyle` isn't `final`, we have to use `@unchecked Sendable` instead of `Sendable.` +/// All `LayerStyle` subclasses are immutable `Sendable` values. +extension LayerStyle: @unchecked Sendable { } diff --git a/Sources/Private/Model/Layers/LayerModel.swift b/Sources/Private/Model/Layers/LayerModel.swift index 43c629cb13..6104620cac 100644 --- a/Sources/Private/Model/Layers/LayerModel.swift +++ b/Sources/Private/Model/Layers/LayerModel.swift @@ -99,6 +99,8 @@ class LayerModel: Codable, DictionaryInitializable { timeStretch = try container.decodeIfPresent(Double.self, forKey: .timeStretch) ?? 1 matte = try container.decodeIfPresent(MatteType.self, forKey: .matte) hidden = try container.decodeIfPresent(Bool.self, forKey: .hidden) ?? false + styles = try container.decodeIfPresent([LayerStyle].self, ofFamily: LayerStyleType.self, forKey: .styles) ?? [] + effects = try container.decodeIfPresent([LayerEffect].self, ofFamily: LayerEffectType.self, forKey: .effects) ?? [] } required init(dictionary: [String: Any]) throws { @@ -138,6 +140,16 @@ class LayerModel: Codable, DictionaryInitializable { matte = nil } hidden = (try? dictionary.value(for: CodingKeys.hidden)) ?? false + if let styleDictionaries = dictionary[CodingKeys.styles.rawValue] as? [[String: Any]] { + styles = try [LayerStyle].fromDictionaries(styleDictionaries) + } else { + styles = [] + } + if let effectDictionaries = dictionary[CodingKeys.effects.rawValue] as? [[String: Any]] { + effects = try [LayerEffect].fromDictionaries(effectDictionaries) + } else { + effects = [] + } } // MARK: Internal @@ -180,8 +192,15 @@ class LayerModel: Codable, DictionaryInitializable { /// The type of matte if any. let matte: MatteType? + /// Whether or not this layer is hidden, in which case it will not be rendered. let hidden: Bool + /// A list of styles to apply to this layer + let styles: [LayerStyle] + + /// A list of effects to apply to this layer + let effects: [LayerEffect] + // MARK: Fileprivate fileprivate enum CodingKeys: String, CodingKey { @@ -199,6 +218,8 @@ class LayerModel: Codable, DictionaryInitializable { case timeStretch = "sr" case matte = "tt" case hidden = "hd" + case styles = "sy" + case effects = "ef" } } diff --git a/Sources/Private/Model/ShapeItems/ShapeItem.swift b/Sources/Private/Model/ShapeItems/ShapeItem.swift index 0738c93234..73f62789d6 100644 --- a/Sources/Private/Model/ShapeItems/ShapeItem.swift +++ b/Sources/Private/Model/ShapeItems/ShapeItem.swift @@ -7,9 +7,32 @@ import Foundation -// MARK: - ShapeType + ClassFamily +// MARK: - ShapeType + +enum ShapeType: String, Codable, Sendable { + case ellipse = "el" + case fill = "fl" + case gradientFill = "gf" + case group = "gr" + case gradientStroke = "gs" + case merge = "mm" + case rectangle = "rc" + case repeater = "rp" + case round = "rd" + case shape = "sh" + case star = "sr" + case stroke = "st" + case trim = "tm" + case transform = "tr" + case unknown + + public init(from decoder: Decoder) throws { + self = try ShapeType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown + } +} + +// MARK: ClassFamily -/// Used for mapping a heterogeneous list to classes for parsing. extension ShapeType: ClassFamily { static var discriminator: Discriminator = .type @@ -50,30 +73,6 @@ extension ShapeType: ClassFamily { } } -// MARK: - ShapeType - -enum ShapeType: String, Codable, Sendable { - case ellipse = "el" - case fill = "fl" - case gradientFill = "gf" - case group = "gr" - case gradientStroke = "gs" - case merge = "mm" - case rectangle = "rc" - case repeater = "rp" - case round = "rd" - case shape = "sh" - case star = "sr" - case stroke = "st" - case trim = "tm" - case transform = "tr" - case unknown - - public init(from decoder: Decoder) throws { - self = try ShapeType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown - } -} - // MARK: - ShapeItem /// An item belonging to a Shape Layer diff --git a/Tests/ParsingTests.swift b/Tests/ParsingTests.swift index 8fc071d887..0abf2c71f7 100644 --- a/Tests/ParsingTests.swift +++ b/Tests/ParsingTests.swift @@ -7,8 +7,8 @@ import Difference import Foundation -import Lottie import XCTest +@testable import Lottie // MARK: - ParsingTests diff --git a/Tests/Samples/Issues/issue_1169_shadow_effect.json b/Tests/Samples/Issues/issue_1169_shadow_effect.json new file mode 100644 index 0000000000..d07ead62a6 --- /dev/null +++ b/Tests/Samples/Issues/issue_1169_shadow_effect.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":60,"ip":0,"op":300,"w":200,"h":200,"nm":"Shadow","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":100,"ix":3},"y":{"a":0,"k":100,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":255,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":5,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":10,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.288292320102,0.576094563802,0.994332107843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/Tests/Samples/Issues/issue_1169_shadow_effect_animated.json b/Tests/Samples/Issues/issue_1169_shadow_effect_animated.json new file mode 100644 index 0000000000..3f52fb2b37 --- /dev/null +++ b/Tests/Samples/Issues/issue_1169_shadow_effect_animated.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":60,"ip":0,"op":80,"w":200,"h":200,"nm":"Shadow","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":100,"ix":3},"y":{"a":0,"k":100,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[100,100,100]},{"t":60,"s":[150,150,100]}],"ix":6,"l":2}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[255]},{"t":60,"s":[204]}],"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[5]},{"t":60,"s":[10]}],"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[10]},{"t":60,"s":[50]}],"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.288292320102,0.576094563802,0.994332107843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"ct":1,"bm":0}],"markers":[]} diff --git a/Tests/Samples/Issues/issue_1169_shadow_style.json b/Tests/Samples/Issues/issue_1169_shadow_style.json new file mode 100644 index 0000000000..e3f9e8acd2 --- /dev/null +++ b/Tests/Samples/Issues/issue_1169_shadow_style.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":60,"ip":0,"op":300,"w":200,"h":200,"nm":"Shadow","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":100,"ix":3},"y":{"a":0,"k":100,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"sy":[{"c":{"a":0,"k":[0,0,0,1],"ix":2},"o":{"a":0,"k":90,"ix":3},"a":{"a":0,"k":90,"ix":5},"s":{"a":0,"k":12,"ix":8},"d":{"a":0,"k":5,"ix":6},"ch":{"a":0,"k":0,"ix":7},"bm":{"a":0,"k":5,"ix":1},"no":{"a":0,"k":0,"ix":9},"lc":{"a":0,"k":1,"ix":10},"ty":1,"nm":"Drop Shadow"}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.288292320102,0.576094563802,0.994332107843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"ct":1,"bm":0}],"markers":[]} diff --git a/Tests/Samples/Issues/issue_1169_shadow_style_animated.json b/Tests/Samples/Issues/issue_1169_shadow_style_animated.json new file mode 100644 index 0000000000..e82355b7af --- /dev/null +++ b/Tests/Samples/Issues/issue_1169_shadow_style_animated.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":60,"ip":0,"op":121,"w":200,"h":200,"nm":"Shadow","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":100,"ix":3},"y":{"a":0,"k":100,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"t":60,"s":[130,130,100]}],"ix":6,"l":2}},"ao":0,"sy":[{"c":{"a":0,"k":[0,0,0,1],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":0,"s":[100]},{"t":60,"s":[30]}],"ix":3},"a":{"a":0,"k":90,"ix":5},"s":{"a":0,"k":12,"ix":8},"d":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":0,"s":[2]},{"t":60,"s":[12.2]}],"ix":6},"ch":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":0,"s":[0]},{"t":60,"s":[29.9]}],"ix":7},"bm":{"a":0,"k":5,"ix":1},"no":{"a":0,"k":0,"ix":9},"lc":{"a":0,"k":1,"ix":10},"ty":1,"nm":"Drop Shadow"}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.288292320102,0.576094563802,0.994332107843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":121,"st":0,"ct":1,"bm":0}],"markers":[]} diff --git a/Tests/SnapshotConfiguration.swift b/Tests/SnapshotConfiguration.swift index abb8808f0f..27217e15f9 100644 --- a/Tests/SnapshotConfiguration.swift +++ b/Tests/SnapshotConfiguration.swift @@ -52,6 +52,7 @@ extension SnapshotConfiguration { "Issues/issue_1800": .precision(0.95), "Issues/issue_1882": .precision(0.95), "Issues/issue_1717": .precision(0.95), + "Issues/pr_1964": .precision(0.95), "DotLottie/animation_external_image": .precision(0.95), "DotLottie/animation_inline_image": .precision(0.95), "LottieFiles/gradient_shapes": .precision(0.95), diff --git a/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect.txt b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect.txt new file mode 100644 index 0000000000..4b816d7353 --- /dev/null +++ b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect.txt @@ -0,0 +1 @@ +Supports Core Animation engine \ No newline at end of file diff --git a/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect_animated.txt b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect_animated.txt new file mode 100644 index 0000000000..4b816d7353 --- /dev/null +++ b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_effect_animated.txt @@ -0,0 +1 @@ +Supports Core Animation engine \ No newline at end of file diff --git a/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style.txt b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style.txt new file mode 100644 index 0000000000..4b816d7353 --- /dev/null +++ b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style.txt @@ -0,0 +1 @@ +Supports Core Animation engine \ No newline at end of file diff --git a/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style_animated.txt b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style_animated.txt new file mode 100644 index 0000000000..4b816d7353 --- /dev/null +++ b/Tests/__Snapshots__/AutomaticEngineTests/testAutomaticEngineDetection.Issues-issue_1169_shadow_style_animated.txt @@ -0,0 +1 @@ +Supports Core Animation engine \ No newline at end of file diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-0.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect-0.png new file mode 100644 index 0000000000000000000000000000000000000000..62fb6c5bbec919360a807736685b04a27fa52cdf GIT binary patch literal 10386 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0844a5c84a9377f27fa10beb74f4739f17e269 GIT binary patch literal 14310 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 U;TaEnI-NvU(?FwK%@+5605X0;I{*Lx literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png new file mode 100644 index 0000000000000000000000000000000000000000..3e8b8de50b7b399b0dfd49c276ee3bc5b65018f4 GIT binary patch literal 25701 zcmeFZcQl+`y9bO>MjyS8Q6dSV6Jf#-q7y`mHVC3c^dZ_HQ4=jugCq!|M~}{E(YqkZ zkRW>Re78K$bKduy^RDmjZ>{fGYuvZnp1rSqUBByhl|6(%&{QHPVJ5-B!68>sR?xx0 z!Hv0kfeC>pfsGP9zy;S$M@b&1sE>68_yJ{YsA8j`fx`>jgK_Y2nQ;iNh5#=aT$ca3 zzmIzZ2lVGT9u7{Z9S;8AV>E&5)fceFpZENA1--}pdo(c5d%S-}>mhIj7X0(o34Ff+ysoam>pJ62eE$s`9G*oL z1-XYP+_g009&1~p4(Yq!_j=@WO@7z&xA` zF^~tsoq5mN(gv5wZ<{4E3P#D%(7eSc1ScgWDMxA3Ai}gM+Af`^wfs(gnK~3#G}JeK zcUZsFOkX=+cMf=7ykB>@bQq9vX!`tDL7A@`;X7R0CZ=cqclo0NWUokxTF1gOiURbg zJ+k-POlVm+Q<8jaMj_fwlF0TENH;fIql$qKJ`Dh~jF`SQpfI7Cl*{Oi%oU6w){RgzVLi6XQ^~ z5<6zbM}lXji76%z$ESYYH`mmlpICLZ^do${Ja;?%vqp@Q{A~Hh!{f>2F%^(g#drN- z4OYf)Z)MgVG0bRUB~Q5hJLe>bvw4bA7^`&ommES8m>8DNS^Jv5Iv|r%mg*~YgDX;s zM*V57zZA-$9Ol8@7WJSurTO6nQ4=1)*QL=n_#i>2oY>Ovpvx2362cT@YM+~T@pa6( z@W3JJ#+{+Wd#1;ppN^y_``1$@WI*~9o;SmE#3C{JGR=b=ym)7LwH=R1a_gl=@yp&A} z8Uc&w4mQOw&pDrrJTl6$W=r&#X%Fdn9mjXg>qID@6yz1rk$Lh?AbeE{;*HbY+zXoJ zj^WSZ|DqGb3$;q=FYp| zJbNUQxXzfVQDTiv>TjuW|1Fs4$8fG>@npGc8DE8*s2B`-e^vxsDiZ&WTXaS4y#Lu; zK#l@);-fL%PgLUN(w+Z2>8Y%iZ}gHRO8tzkoSgHjNU_gvHp#Df>E<+U zFIydBM0J*1dadlbXx^e8L;Edk)=-Iem7>Z@+ytD_JH~R$9>fyd=NHC-(I&aB@b(2g zUO{*{ts8v+aUkFR@gKmwCj55tt-@f;y3jMT$gNQ6JkbPfhA%6kYu`f*wZ3od>0$AM z)9mS+V1Cv1k0HMnm*m3HpUExBT*-XG-qR|D@r2N}@G2%MGFkR=J_WTph)>=z%gLC+ z?w{1R-kA_1FCWEk>=wr?RHk%SFzu%}R2OXKp3WhjeOOd{#$8SQE>HNz(VOJAMwMaD zBdhah)i1{qLKKO6y8414AYGPn#sNkoVI8ep7#Ai8r7HJgLf)67Gv!HHi5t~p9Fy#R zMrPT}Mh^fB!%YJ|bDOSCKY?`&^G9v9&!!h+7^aPCxYleoq_HA9F(Xqn8M&=W{v{Lqnj;|Ct(sH(+|mN zmS^8v<+qLcG&t007XvF=jUo)vcE3I<+%hT3`}8&PYn0ThueVn3{D%LA-dl0tX=a(A zVdXu3^PLXf9c7GZl}Pw)mE+|gJ+Igmfw}*&CK~q!5f5QOq>Dmo3PBK39v*g+lwW~? zQ{jzx^UL@5wrZ5W(w>O>%nEGt)c4J^MgdM%-skXjM6;+Ow=uWlQK3$&cE9#)%`XeY z)_bw|IimQ1q?lhS_Uv3;j-)fUu$C;k9?HWt6=_e5<2Yldm4d3QST%mMa}I;iZ(mZi zkbQWGa*&Va>}tCxlPVUODOh6dLyJEcM;Hm7y>sCGU7#PVouOT<-T2*5_1=mVPcuW$ zQ!+zE{aHqYwl@p4jhjHp~aH#_ZUKq>DhzGTsX&cIyv@|{goWECo(%UN(~x~X;1f< zL*0bv$oYq)8=XHhr1w{d5BDpKm;+Ah@ZqJKhVFv)CgV3w(eP_UbE^EIt*n4GBUIKu zS{Kf-_C!i5MTeIeTPFIC)1Hhr&|l=3^JZ(y-KUyORpFhUZ@?_3|X3_9%zHpd$3t|G)Ez| zJE&SZ+o{Up9GN+)A#>`R_1T@4y*yO%g6L=U7d+TN=#pe^Mt8MbKR{C&!w4fHz}7E1 zw3Vh4J?Qrt2=6)ldX(*H82xd-hIz4DjW}HDx2oFU z>KnG=U^3~bL!{Uri7_^FwM7lzIkI=<5!YQhy+u47B$XBr;08M zSLRYRCE}=nJ^#dy8xVRu?d>ict;nWSqp%-gXX3lBLBxLaw(+d9boOLsT+8qHX9oYh zTz^VXKeM45dG1)Aw>>*y*xl^pkXQ`$I44)vDOYKM-s*j%F=JPIigGU^!5ZqMreERr zy81Kk7{8U(J0^vAm$e$p&G}U538qRWGvRR7WX-{B&5U6w$ctNHN7y4 zekb;`$+Ah4Q+;sz;mc5QB>5ZWK&lcvn;xrAr;gmE1q5z8dd5OG%@4ZU?iQr*KN@=U zm{XX_IVE>IsUX_4(Rdw^s>!P<<;8waD%$sjo>MW`*Vl$cmZEEV?WLy`<52jC!|X*` zJb;^@I{X*kaY_NHbwI!ZO%&T%Hr&Uj+%+uW*9wK=mhZnzQQi_oO=6~)Q^)({?1_w| zKS+L;^!^%covg%f^t1kTor(Cctr~e}i95QK4$hdRs@p&cn3tTjJrbSNn4})X5vhCXB7hFBW@d?TPfI z(UNyG-^^iJ;njk@!TCks0ur(!z2B(mKi`u9#HJg+yEWK&64E$qf!M%b z#xq9tyb~89I_ROTxK>!L%I92k+k?}Ez+NJ@N7InmguHKz(Zs6aVy|b$o=8s`rOB`P zCDMDqZxNV1-y3uPIN>54cRC08pty0VHDJdgHPoU6LdbV!hL(NaauOfj#AqmLOR&(@@B0*zi0k@ zuv?!-!0g_v`3(~gIWQ4dJKF;x7t@#F7+KO;8_s4uMwYt5((1(uGyh*te>QKqc@MaV zyfb7}e%h!CBHj(#2zJP}TR%!CT7BW&3O|4wR(?zCFgvd^Z^nU6NF9_eTsJ!zJiL2a zhBgF^HGLMxaX?b6C5wXTo3m~yW@vIZT-Wip@{?9G61Q0`>FX(kCk?@m?yx9VKW0?6 zgZ^w#V&6?#DLc6F#hVqrx#RHEd(Cb3vQ{s$ebZUU2sDOxg7d2hx*fI|ArwnagVq)$ zpfTfVh)gI`rAdCs@TC*+#rw?15vou3a=DpQQB+g#Br%;N9g!!1=;i~C7FG# zMuyv%z zP*jHtUbgoD`VAqqnn8tMwA?S3<@(0+x<-qq$TeD_vpZvt#&7_mSpIlGW3gjmmi+ec z9{nwAf`H(TW0|tksA?q{9OzPTWXC&1HAlC>l<8M&q-43T#&c+~J9Np^{n)9aaVt2W z6ZE@7;F&`c^Mnd{6U>m?W>o#LT7P1ivaeNrUEOUjjwIy_0dCa0O*Q}3TV8;%5i*j{ z(9;SJ_E`L{(RFs|iA9#f@Sb47#jR^{)crVXdIQW2mQWwx<>qMr1vlxNv;hgtkI4-| z;^a-7Nm)-ssgmf;B?^+2r*!m(Wvju@gIlj<0CQ(cKkp`b05xG$PTTZHx=4xE2bE2>#qdtPM#ba1WHjKvfG->-t(<@Hepa|o9x?pOW&Um1b1mPM zfQw8gp>t`5+AC0G5hAG_sdHKskovw_SzQV#312KLYzANYFoOAuJUFg(?0-qCdCNZi z81@cf2dg=S;d*aoj`@|?LDdYrXM_8=dKP%@+903St}_C^&Hw35H3~9UH^2jH;4Af_)4xqebC3jf1cgc4e!ni}3C*AfeOFs|q zDhvJS@Fz(9MTP@vp5z3%b!287A2u$FB>BIJoMA2@^aMzq_(of7{?H z`fC5^t5j~I#jRL$wVq1{%TvE!Z!Sv}?pa*_FxUTOM#=$kIl&nfq~~VSEWk+EZK(Y{ zr%Ayk!jZG|&D&Z?l6M~7%a)-^0HAPQ(9PaVheK`usk*wyw*^hpW)2_hJT;j1*c7}x zUXrH##eCN4Afw;f!92lF-gLuI+*aR7Hp}E2?`2;6(dE6Do*X|zWN(9{3esxYLKBFB zTd68GKp^78te+7Z!9Vkheh@jC)wsX#p3bX2jWxeaEUty!&WGKdfo=-h;oNWje5VX) zFsw7C-e^4XqN#6L-ja#5ox-$zC}X3iuov;s^c$P9?qPG+Le}v&K8aTor=2WIRx(tjWe6N57e0(dlNs)4lpi2Ax%Tq?0j&j;pk&X~5S>Yk{kM$3xKhW6YdCENL4)n(6rm+$XM0f4^tGb6)4Xl|My4d?rUw005<5#W{> zKIOOi`3d1%I%(`{xFLgz$`@x+HfykK4F!X|)1dJXiGGy_$Mw;V4x2qjBya!d2#yGi z_B*J(l;oj0HYC66fD{$S$w!X8GZi9BX!E-FO#mO1eAATykI#Zoi zg=A`zcgq(c|LjFXT|>M@x7f;rNdbAkmBLnOv>); zzBga$lPOsrN2qzZOeR}Kf2`a2t$$Z3|M2t1Jz4fqS^a~0;qcB5`(-0gYTlputr_s9 zkS6XN#}Ng|>7lQLsP$WV8oCWFV9%IsY+u?|t{UXm{G{w+hZ45nzMOi2b~kEh(caw| zP4J(|M;=G)BZ@Sel4~B#>pf>bIS#{4bS3(qaWO2~&}Vi0Sdif%Z{kf7w>8+1M;fn3 z@Ed|@gdqt>7S`WiIC?Shm6rWjwu2oT2I?l($xcmzzXqFUqo0_3KL_u4n|*GSn;@!@Z?tv5X>XaVOYVCt!*ekBqQH-6 z$o80IH}{q~+rVz**J!2v6dHlfUIFFk#*P4W=0GEoi8c~dV+K6XA)io8GG{_5(k8>Y zph6t-E(&RSE1|^lm{$tIDl9QzbqQKpR1H$>HgLRA>Z^Fze1Et;V%WfJ1xnP>rS(b$ z4$w&-^MoULQ^B2D!01yce*o3|D5?8E&ijt@2Evsg&LDBmHXoprcZF5aV9j*;|o_i-CSa zcTIcIy1q|hAq}|yS0=}k9d6IJ{6bnH#--*M=cCg*S#y)iha$hKT4I3=)HiEH(iIquj_H4s`KQR3#offj(j<6?3|PHRv(%t8 zy9tqUASW=qDWKOhGk!xrrz9J~1}=E{-I{^gcf45NEt2xam6at+h7c1y^N&*wWR>Ol z&DVz)R_VC&D=+0Dy&k%lP<0zPk1u$={x{t76Rg=kYX557SbNVUACJC8VFJu`cmrv} zs66f$;|LRau0+n=6MQNGvM404YTbXY@YWV=57&dvd(D^L8V{<==s? z^QPNS{j~*a!Ri;vFKe&%dQfaFuFl83wanmKw1o0%ZIi5OhAss9XQu|`mZAhj%!Dl| zvm6AsOpe#x#z@$8OMIy5VyZN9b;b@~2+|gmz2^1!O(L=LH65$k*wIJBLgp#mDJ_*dC z1`79s@cb;HYrjvVBN{V7WYkT;&7$md8601$+T3LWvN(?D<%pvpZ26@5A;-$r# zt^?0R^(n4=EC;If(kFj&0+YIQk>qDEFkehvECrVpS6Y{s1Z0B5YDHea00~RHf!tOk z;W-5M!O%xpX#;@2Sr23ZD@AMS6al{vrLDRt1R2Bo{?O7XW-;zDOW2`|zZAXUk))Gj zHX)`&0)+MuqC99u071cmD~b$+PP2ds(SgvV8iaVMc9?^hfW5vVM{8Rjn-L&~56}<*>po*FIJNvU`mFt(GrUyinc6SMC!;APWxl zkXJ;sr*s9ANSI$ShL;@QKjUt+>DTCi)}J%jR|~Dx{l5lnUPpW3`yA{*MbuPY;LnlJl zQvd#DH);!*-|7NN3qJ->Ivjij2D$)#y z4q%otbW@)rtVEmzy!N6w6R`D|z=Jv0YBr)Dk73Run-gdAiz+QL1V!I?v>7|ue0uc2 z-x04@mvl*3!fp@Nhd(8c(g#@@_9BohQQd@iAPWmda8$@!AyG2?gq9HjLcGjwKZt%j zr{{`r>E2(u@+RgZTjac}^%(Tw6jjJ66(a$5*k{QHp4VrhYY>iN&yG|R;rwZ~O6wUhC7xPYQX_(nC4e(M1 zIzVw(HmBf2n%lvy(nEEgSr#i;@o<-f2h5K=WcAZ*9;yoKccrV0%w#|2o_x@*p)2V> zh`H5`K;FuiiT{mgK@^RJ4?Z3AY@^nfh%w%SvvvN6IHjxJqEg&IsDh503_}(c#NY+E z4hZ;ZU{IHHJh}<~j|V%kfgP>mWV}H&_pf)2f); z5CQ{e{#L}((bMS<$RE)MuP7FCIR!0hK*C5Kaz?Lf!yBrYGDSkXU8Fg`MYF<0H9(D{ z4o)zJRh&?Mi`aKOpgTpg+Zw&s=_DX5VdNNQ#zMeQDd?ukGp9XkX0W=AN0`dR4YCly z5|dBW@-EpQyP=&AK*#TG9f#9Py?yUC=ne&<>e24PklKSwQE zMEhh?p$d)CzcXp{^9|0Dn^B=fBsyOVV%VMKCqmdFyV0hyO?h(?;Yck(?10P^hfx%L zLm>GJUev^k#oYdlnaM(xS*n#9xTFQ~kxru-`B}*6`_Bxdcg+*eB0Rc9u8?TK>-a+w z^gSoO9r5(RbOGa+@Qu3=mgrX<%#5!HF*P3u@whCm^@OBJK(3(!OuvZ5Jl|tYEOEJp zmsnn5`obC{48ISG_DCi;mFzRA;!58ah8Qv?ZUdyN&e91d{*HJ$?B>O*JP86Y+1vaJ zNv^I6!agzpq0uD}o|gM8VR12sh-ZTmAaBD)FCxo8brM+mc}C6mOQ}UO^;Li#`UyXB zFXoqg)7ax6+$o>gHH|pDVfFw;+)Zc|TuOL9^S>y+@C+J8uAnln^F@!PGjz;Cf8J_h z%_zHLc41ZzWQh%>Rrhy-skS^-yr?QU8ne3K`AUu{YaQ&NsFiOjF0&vT4Lo`R(x%>N zYas!VVL*nb~P=m@(!)WVrUNQGH1^S1>oF%^jmX^>AK9AW8p-{DtjMhq}UB1W!d zJIXahR5d!kqayn134jONjIls*A!QJ7-wB)FOU^#3NFRL!8XgHG#}HbAw%3M%?hT<` z6L8PO&Dwt>=T7EcwU5c^ldC7CXw-on&^QVfLjw0?)S4Ma5$3B#h5sxs0qK|dzvcf= z`TqyK|Ia#}u5ipH@R7XBONREL6dWA*)2q+Bt*05s=#8h%{P;0|0KG!s;mYUM)&%3= zQd7g^h7oQw;NTbB+#f#0mV`X5D=WmP=kwhiFAEVRo-KTt;5nP7?tnH$cqXR7SGd(z+!ACwFdL*ph-% zZnlE9<>6G$7_MzqIL#*J-nI^$&beN9t^y@66G^nthH}kl%H00F zQpQ&z0V*id0_ug_tgF#kanImxYir4w9sLXA6#r2`yNQ@A^X2)U&gdv+`;P(+zy2O6+ggTncwZ*|pEUe`5cod`{2vSa z|BD5Z&2U}66O4W*_zCdN4^`#|fhP3*;W=$I*msh*G{dxoIVr;YuyQVq6C9Nhy_Ug- ze1vWGK=7mWipa)#mKyR?pIf4rX?8ItgT_L}PSMMn%R`=1?7mMY3M1Q8|5-U?t`{FXvqTpr z_2DgDr=QQcKr_kXVj!%+S)pT1QA2^gh2L?S|BAJHxA;Be{Yf3_U$@;V0LT20`h`>K z(sN^BE2@4n%J0*DYF*)5oMzHpoMzE;mM|%cSMNn7!k+{3e3&07A+#wcTy)a|;YVZm zw$6MJsQ|kI~p?L)C`Ho%G!#= z;(Y&jD2-sHr66%Y-giLA7>FabIyE>iqP!4O`HE+B`h~`ZR4|k~Fwv0)IfOb2lE)0Y z=OdU_sx8I>%NTQDXV40_Z9CfDyg1I#czl2E(5L+gPz&mQz^xV{cF&dw&{krCScaUj2-K&5`5sbepgHhtH3 zPxnly8qw|}Bw1#G1;dI?kW|G6Ja5B}qf7id+^-|zIVodGLFT7|m;Ri=zYiyAfx;ch z`)7ac`0=x1h%E^?MRDuyR)a4=kP`MSil^#w*w|3LFFC6}49Dm_>HI93pE}C|3d?to zVh>mjfg?PZC(f}P+VrsKm7_b`A*e@D>;C)ZXYqNAz5$^c?LgJe^YPy;@#Qc7i|z9G zqrPv>Fz>**dX$hE{FXkCGh_y;}Ao+?If~$Vev%#KB5M)^->p-E{>h ztlz1AYoYOOtla){Cz7kK0UdKw{-Q-cF;61^J0}#YS?JQdUm-vQDMg4OoaXosYxMfR zS5WZsb1L?C{zmz@Umn`NCF*?tx{&V7XwpXRTRX|3oYQdlsUkBhry@ZA9RmZ#&1;>h z@qd6|9`K5J3lvj&0wFj(^l%=1OoCsG5#8={CkU#-mb#GUbAh-o#C^Wv85KlgCGv$RvXdA7o?^%!|>#u5x9&FY^Bw{Fy_rh94&9Tx%sV26e= zV8c;d@oV>SgT}EnfO2|=Jqd>L<5Rg(h-2t{ewYUBaVw64rCtPBFyVgDovH<-Rw@rL zS>%HdTAekGU+e}X^)w&aPMKU8my@|EbBh-+4~hla@gw0J?+R@#UfeEq1?c=d3S^=fqy@sjhJ##7z8&s+R|d7@Yy zd35XQRviE}g*svK7~FMHVt}2DYr1K0gATFH)8yF0Xz!0!cp>KJyErxXIye#f_NPyU zVJ|UKrP>23QwsQRUyU=)^ z!wcwO;*WcYhzH)D*M4CzZ-ioizD%6A11u3bt{6CnR{ykpr2|NvC?39+1_-}@ok1PD z6zNMKV%*Wv*xJ8+fJj~U!w}`*4rLZ6DF+q|ovz^HJqAk6qu8*%NsbK$%5c9RO*X1b zY>4EozKC6H(9xn-OmD{Vj24eB{)J;|)KytFh%>{T!7K={VN30nP#u|8>(rKH9YufZ z=@z06qJ?4ER<5J&$4GBK;8_478s(;d@?Epg$x~%nctZ(4;@5A7Q~W%JsuD{A*V@;y zac2{)K+v9U%@kdJvmc~6$-6=0J`-$NJg1aRrF|P=b9l@Dc)99wnKGZOWY)^+>hr%{ z132j+x4RnK3F3eF0I;6-{x6(EnQ()=?g!50q4=QPw+g<{foI@Kdl80c^(h<<1^O`m zQe}R66IR)sMO=|wD+dJtcTdXI*668VL=}DttPDB$vNCrC(y99+)UYqu5-%=fQ^=@} zM4be#3Qk23ihAZDiq`Cf?cbThyc5aGo7kGyxZ-> zpl;)`u9mc3^~34iF^yXBK!$l0lN$e?T3w`^9j`@ERTVo%YN%h94A_m}!p-)&(cx3XHUJmLQh0EpG>#pc+o4s`;e1klucQR+#6TE@z zDj385_8^i^)b1Cb&(!T@ITUjO4@q z4lcgz4)~d@vydEj+UfV0yxibQf`=$7z$5+(9vv79Vg9XZFyxO2#4-DpuNZ0b74gA9 zdVwuOt#P84u=VQLQ~dZ7fH)nOspgmFH>JexL>~nm$v3b{#u~nO7B}s%ki|g`+30nN zRU=^Nt*@=cPXl-pKdoHFk&6GvvH}1aZYVtwh66BE*f6$0QcwU)XlGIfGy9z`dg;cs zc`kU_NasT+^;7f#i|cdpn)nl%{^sXf?^`0bxa)}jrLL{NS^VEM1_3mdd=dD%s(q9F ze6sy{Yv}eOIL3V+9pJ?f(&*sj3f(5yeo1_xL>k;x zXC4KXI2{pdjH)4D4-Ssti{I&ntZiZJJj$ct#(J^XG`uW;6Gn{CX3N^56 zsSfAD9?+%htsaa9`xFgsvZH>fmYS5DH0f@S>4UiUcecFzdKTeW(jmcKP?mwY#$+!| z7Q0&Riy(zMjW+~fS;9e%dsn?XFl6K0h4NYA#4Ru+0Y%hi;iCSI)`f-7{DsM&n?aic zh{*hM9!N32XVgkc*GgWsc2){-;e^G_ZX}z{!R>8|RQb_vlYP$S^L8uieDLBiK$dIi zMnK%wwCTZzb8>$p%eKwVMLsIx9_Lf@t1SLczJlUN54(+x1q2KC`qdaPLIQy&Zw0<4 zk5QEJPB6sp)R7A-fLJ#MJC1DMvP_-eFdQl^pW*{N+XY}+euDn6{;=!#vJdZGZ*Qa9 z?&4KgU#fa{*(~cG=KeHx5_#8iSQ~^QnF;C$^W8^Z@gEKJe}=uknV%YV&k_NFZJ!cB zBY+G9px`ON9lFkP3Wz>O7IVzAcWWliJH+&00babUF{gqfwyfkS!`2h{Q!6&Q>2|4G z$_GHKyJ7lb`G{o|>bJRhl zy?H;g+j=CimEzZ|3~W2#?y#@yk(HTfJH z3T&qH$7XZl{gG-x(i{v54JS=yKy6VlxXuTp2dog6QxYIMSUAvw!glvffYM1M3pdUO zm6%Rieg|M6yve=pZoCkT8YpYViQk{-!#%^4(XX#6O#5Sd__vQfr@mL zC<;r&@9yp=mR~H~m}w~9^#7T0;cyx0(eIcu+%vW$;jSij!3YyvhG!4W&t&>}iKs&sNnWR^+@Hk*#cZQ%`}4FSjaJ5~9xI7H6q zI@7r-^d}a|rw_T<;8w z7Kz8TrEA&QjfbqHkDm68k;-1I4?172X+5ocaDFbK=72nTf}_>MvIRa?3{mo5y#mwL z74J0%Z+#TSzLDg(-xd}&D|7H9RhkdTC=-ih#_TdiI|5;dE#>!Xe zd;8{6+eyb)L%)Ji3Ea4uhDSx`j{wMLvYU!C2aCsPZ8fJ+Cl4HM_I&uU98B zvBJ$wrM|wZn8E@VCvz&YBfcQn+UNIRVU1)|PK}}t8!eP$X>|wD?8mZ!MtBrh7wMjKltbt_54-w>|+4ubok%^n@arKbZk51Z6qh z(834QKN_d!1f(M`XR-CAC(EOr%&;GmTEyn#^Id)zhQUwQ9|$6TtyGxMb}7rdmYVEQ zyVM%;E<+M*LOOp0VX}9Xky5Vl)dn#G+#cV}AF~a)5H5#EUh4xVL~DhSa>_4$sVol5 z$LeX*bDEEDJBK-7&k4FW&u4yh1Z?#m`mM~Kk7v$aEXaDe%)Y~VHrCEwzXuu-tI&9* zyE@{leYKe_z1Sl77FivLvRQ5GjWD`nP8>xs6HGL(2xP+{N^G|2rm>B#{&SrCp0bDPj^2}z!rOuC$ zb1J4fv|ey-wVUVQaOm|CqMtvP`<7EVgaI()5WV@~)M zE8w^PGjG|TF>bR#UzH!T?+tHR?q7w1nG_=B;@5ItPnHM$fB!I@q%6Nv6Me)vxyLPe zvlEoHCPA;F5*G7LO`$-3V?=_un^Ms$@{3+4J=-jgCpaz@cY+T}MT8F$<24kJ;f2zW zaf42>!e;LY*rlQ`3vwAa&4+iLBfT)<+YLtuUtM2r$V^pR2X?&eki`G}L2)E|M5FfB z?a_-{+nFJ=1D;z}PDHYUo_)^0lU&$)+{qWe+RFY8lKA~XqVSr1By*%s=0UEUz3}fi z=4|~uBl|?=PYHQ;_NmMPN)L9;Y0T*=034&t=B_cc4dX?JZ#6yNg4KbwfZRV<3IAV( zh)a%jy&>OAd?>1_T5awXYEehK@&txBA^G*Wu;L^s0e7g7ricNy!pn`9^<59lR-@?% zNo~_FHC>~n3=72veKBXH1umZQ@2IIbmnzQRAm1}>!4=E~OUK(-uo~M5M-d1GbB0;S zX2c<;7_4AG&pkW1EvDX3d@l9?A`vn`b@u^Ib9A{Aa3I>`L9SpraKB#RT;cBEedGf- zyC)CgD}sU_efpH=WdH6_&aXz!8R|a_Ge>2hXoP}iFD$hgZ72QP-sLqMNKwY}Ngc!?V8!A6k%D1W z_@WT}{c+3`UaTpNU5sz;xj7wsxVzpC+d2);EZwXcVlG4#pR^^Ey;7Mrc8UeP*0B7p z;fda+_VsdY*%6&b#v{z)O6z|74Yw>S;P@y!Ev3N zxV9pEe^Sl6X!g(lH)o#Lt8Eh~z2`_nW8}BDdXBP(!sZ)ME=MBJA8AznMXkC3>Gx=b z#79C@K#yO)rs2%udiH^vhe0z)fS#MT>#KT9Ik!Mp?IW@J7@0X0XLh*4}-5TlG9mU_7~clS@>IIr=im|v%z!Uv84fMR|+h7p3A z1xzhgd$K(2utWl{szO#i!s9-xF`l|kT7Q&qO2|(UDLM67CJ1%BI zTVNcHsPJxV1WMb4t~d-(1%c(sM}&#B+|KLQ<}{n(V(Ky@{vlmTlY}9!ns7^V=66aD zbZ{ zeWo`@i~>Q0d49hjG7G-i{Xj`m{1y+Kq`0N5k`(S(HgRJtQXKE9RVxFB2x4fq@55cg zt2O={!Xycv;6tSiMo40w-c5}2sYy>sQ98+9=_>ibr7R6Q_93l)4~7W5i8Q;hj3Z@L z`rc{-;!Yc`wse&Z1Ts=P5U|w)72_1f&l0GIpwwg|{=)qC@j+dIA|*L(OjH~@S(Soe zwrxp_4E;cbdu{s*O0P};GRmL;<>r6hC@@10-Zgb8ob#(_zUX7ySRf%uzklzRqN!q0yUA`YJu^RzZ(PMNk2S^Iyq^Cozz0Oma$u?^_l!QiJgN z^Q%s(HTn-p;k1J5d`UU<#p}1iMmzY|7kYm%{ULhs=p*^bvk*y@xsY9)qr22uqEo`5434g3uO$2Vs6dsE(;*dO&yp^xhb^ z%CIimAqYr+SR^*Cn!hNFp-pc)0tM8VU5V~ze0XxdEC7hq^A*w6Ok(dTgQw3H)i z<6YErDyH=cuO;aIDpz{HfPsYo)P!(kAR{}ZPbH4k_4#4NNgkV1ep!yVVP$Co7c2r} z-1X`>A>UWAyIAt=PlzzE2xWZnieZ7~%$P)wf6km~#j{%rch{Hdimm?U2-#EbG==lJ z%q3V$kW}Wc+`ByP>T5d#?``r-?UVi$4>A}~O-TS62;rRMlt86*hvRj)wu>@ZT)1)+IKW2x9|1DT!> z!pURZCS?T;6U-p}BnoaSQKT4m#kw0s5s7X2c=LXmBP8*Ht9LMwVYqT!Yv2SilbJD> z_Yl{aLE#0NYCW--)r|Ap=qGt>VLl%#KlbI`v5zMHVH`wk#>_mzU!g{>+x<^=2d@aw zo+Civ%>*jV(b)o#a89_@vaz!j^lypw7Y<>VK55<4Y(s&BaG(k|Xu%uo`E8Y87JA*w z_OHzzDmO~X3TsNp1FdZ{wtfQ+_a=F{(3k>leib$BkT>@hiCpMVsry#o`_>f{Au@h~ zlQGFgelg6<>mh_QI${_bg`kZlwPDl>&mq8iYno6m;JI*o>5oXnZ?XEd^GJ@F$9zCo zfhC_NBsv3V7R}f8u7(zTH;7qSEGx4`zsY31+xs@T}QHGOYx$$1we= zQa@}udufB-eeXRZ^(sE7IZ#MwN3mVy_Obze#!vQukPaEYfEl{jUxoaO(6D zIF1GKJLfgQCefuxFeO}^Jm&jk$8%i44FTLuit;-Z(MQ-PyEIWF3wYH@Ga+Cq0qAnr zi=aLu?&aKTz!CjJewyyK|EG;>@n?Gf|6!P0=F(`GxrCUIk=$|_Mk}Uct}#k6_o5Jv z&0=WGHFSzxGPjrvIml%ym10Ik$)yW&S1MB959fS;kKga{`0XF~?Df7pZ?D(m?I59a zA+uSq57uoF453+_t@mE18X;`iN~Ap*sZ!H8AWfE_e$eM#H9g2d+-Gd->3OfTk7@CP z*AGOvv?DndF(xtdZnG1B5C{EI07x8Glx{9#E<9d>SkXEJ~yU1h0Z( zxDXBJFJs5Ks2sFf`oB~ z8mmaI+L3S>`|Lo1@I;wiD&Hk8K{)xJTw$0PT|0UOpPE;SG+pVjDfK~0NBjHmz>5SQ z2P=rY(-skLKMGW&P_$_mcT`(FueaZh8jkA_ilNdOk)k(2s-cv}3S(+n%hJf@*#P6e zGStz@Y#8$-edz`p%5({qdB%H5NMOUV+hSQt^k;*tL<*?KNE7nJo)iFagsW2ebEe6J zhvYpv&}&s4st-jD)eKmFxMwUNafoV0@fmfNAAt0|-$-V*>fG`1L6!M?pTdhoTr1)s zYRsn!$+aT@l+u}}7s*TED!IX(VKr?d1#`HobFgSvS!#j+VUrHj(_}>yQIxmk7ANiDZ z3pD=2{vkgacEQ&R@l3+Y^rpr6Jqp%69Cy`23U=y^!i5-W@bK1Uu)tTIZp5;LsPWU2 z=y0cN)Lz~!c`2&EDw_V+(1v@&NdyY?jY8E`a)PKGpMnr;oes^tithGjB|hfq?#&a} zxwF2o-8)O0N6a6XSD!yPpY9xuXD}+|IJN$IeAn{ zNZd3mwTlmks3?L7J2CJ=Eg8-lyg5{{ExkDLmtCx6@F(>r3BV*wU!P@|r8|}05J;tW zMXD;mS{gBPaR&~UoU!(!xv7teIRAN%fY?6>80@$Qgf2x%Faob4*c1=csKPr`Zn?(T zka&4!8p!i8y&yg1XO(EM0bV1JftUs7>xK9@$iBR!a_FCDya zWMQ)H8;L_qqSD#5lG})R%T?KLmX*YkTg~gAO3eeR_EU}1ggjx;|JkjpC=}xZKq)&0 zvMPR8K5mGZ`qjTu0q@;SXIG%R>HP}aR0F`&HoIDA4cmcfrK{wvmY=o*y`#dJ-exjW zI30_&FKzM)Z84cY&#vw9Jtih`NV1jin2)kI4KnxAu;H2t?K;@FAmdK&Q@pY$gwH^A zR9HaQ>TG&*P@OHDdy&c;fskaA1NI67=#oLjbyt@ovEW>N-iTzU7l9_?`#`i-k~^-} z1H8WkJZ3LlI4+kw(^>GdGoUj0M=e8qjB$gZLe!)-lx&pl-93p{O;L;;(;p@+AKe#< zYo6~q!&&Lt$=s^)R=NO3K(JDn!f9FbxSpS5O|?Xaom_eu+dmNhUY(tgz*)G6^O7&; zan?aY=UGFkQes(Ro5=he(a<*7>)Y|?#HldULTCv{mm*!#*Q|mQ0cMivBmzpZuieyyN zoQ~dIloFyG2Z@sHz8{pPL@2(Qhhc)qAvRCiu`usQ(m6a3eKFx#vtq^A(XEyYqp^ zezH8rkNU&wuAj)Xd)@y*rYiw(Ng@%eL;EAKFhr!hLaPN*dYeBIrEv0*{vJ^fUr!fO zMpT;5c3MC2&6TqjDLcHR`%2U}DH9Co#WPQ!=@2z)Ww1+jihZZ?{-Lcs-Eb&48a2b% z;9>IhI3B$n59s0%1Ntav9H)aj7IPZN3*=ccQJ5=EXyB!DDa9KBa&5r53g`&lG<|ZiVZmxzd8TwO zaTelXOwB0moiz$jLoW?}21^i1FtKC`Pb~}PJNPo4=9lvd$w5s0`nZ>r$Z_cpUDP-6 z&9|a=nUiGCL`jkk*Pcm?wv*f&XkxJtu6pK=tsNf|gs4wvTxTebH8nF>Q{=|35`0&cB;<9_YI~_Rv!m=u1Qx{ja2QrTUyJoCRElVm;4inzJ~Ow+ABU+%oo_ zsJBZXFI+z@`e@p3W_k{6tXhDfme*u~v*HX6mn{2rk-F``bb)^8;-fT>gdSgiuPR;* zEUt7oNyzu(?QDVL6p?B8Nh8K00X_aOo*?G+(t^vs7|v^un+#&v)bU8Qp^yxFVlLn~ zNwDYENgj?#d^&^+{i^z8z6aDvS{)>;7P{XPWk-c5OiOkeX!U(fHVVrbv4?3e zt*Z7R!Ez))rC5)&u2%6{(t~PJlWl2eK-B>Rf(#a(*E#L`o@BXwSPzg?MZh20(Z^Je zZqja72q_a7&93GH(vX$At=ccNH~IZK2_r)RA4opWC8x^#;ZK=|9Y?3;erTAy_K<FJ~kZ9(==u)algY?V<~-ZT&8Z`#9J}SO75$*T$BxsUjjNOT!z%; zc>V#f=@yI3_ky}l(3@OYi*&mU14}O zd%Cpu>Cu7Nipj%+&!pD?x@Us34aU^4;Os_SU;Fe|M1BXjCit=|4_N>Nr_9Q+a2lau z1<6}}AHUeBY(HAZ9cjWj;(WLskec+!t2n4E_u`w_v108So@dAL4 zWP0@X9rE7dLf3NuIKLev78Z2JQj2VAcLsn~`@G#Rty;6x&x&6bBgm}Fr z0XM_m|P#uaqs&9~bq4H!B(J%fZrf-%e<5)v5MS3i}gfrJ2UJX%@b=Nlr=>xe#iR zAqB2I{Q_74Pk7JL^}^RWF$xWeQIa7Z$8kPGw%fRLdNM!DVR0{*ct5xTr-OPD>N4UH z0n82TG>0T$y7h#+9%Q~)snFLePKt4Bvz*`gI2|(;UzLb5so@O&8_(~|kVsU^+u9%pVwEXsI%U-@1SKW^9s7p=phyNdbEV$YDE8~Gm5!C}mA=>s_m3?3&#&z2M5d!V zGN{kfo|n<~R$NTNEP}I87;sj#rR0O0@|x@~DVKXx#d3ePNLf|j8${=U;c!;T9+)Ll z_FFf0$U>!KJ+3ZxDw?}*(ZUigjk_)Z<%Ymyxsf2-&2d|b?XQ{W&S}Ozc`5g($@m@T z5j0fsiFmux_#5tXsgZY$z7hPU?QwN0cPd0}pw_migO&IDWOj;>eik?<5+DH}1UN@= zXmb|gv6JJ?ykxPgb;jutZEF$_JeR5+j+{R*#;9zs*jQ`O5V;2EQ4^oQ+^e>5dFB`< z%;iH%jauV;7vJX?|LeEvuil#fX;+s%15_JmfL6v#Px!qKsf)GD{yljs*?v>T>lwxm z_@J}aADj^f*rC8K%HZd#C%ok+9&|prcstiVX{n4 z$*9sVQ5i*yHD58tRc-))arVvZ)*#8txKdhw1UCQFa?Pi#uk9{AM=rv@9%}LyT=j}P z7a3YMf+<7ThlPx6c6ZktX!1_lb+RSw(I(b450FjWb)xw<-hPdToH?R>=QfLOj8lS02p zYH2KnUTdj;*K+AtWWuo~XTBdnWp_DrjO)G_Cv=@8G=}iLrLstf<`yxj_chdI>co_5 zRZ7Lg=wrdpF%0vBkH_Yt_Pj8d?`pa?Y)K{A^QksJC97`N)PeIF^XwCDXaVKbA^%v* zbD$cGp$Kbq%P&U*Bciu9v7Bw)^)03Pq_|`CWsLepLvkq+N#wVEb1O}ey`Bdg+c$UG z3cE>R6V92b$zUb@EJW%%dp{Qrwt!uCx6z{C8Ytll)D3(e``-N0%mdlU&TyZmQWB#k zpz1zCEq2Jc<|sE3ChKCw=a?!KH1?2fcyr;-#7IETvvt}}XPx_B;WXol!i*Dw+IOJk=7&zFc@Bwgo4S8fVstLhAm}6f z>P}ADW!8LpLVUW};1j~iSalM7S!9(RvEvmLu$-NO2sxmEY6bff>jEnY++6IDArTWPjTzRgN%#Ct&VD?q;o_)@0`&! kbW2S%&ct-(PW;2)f?bwl!dq5e{d<6)z0FDVT`L0lKc{~=4FCWD literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-0.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-0.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9fcb1a62dc6ea54fe4685cc07b9fa7d4a930b GIT binary patch literal 15914 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-100.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-100.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9fcb1a62dc6ea54fe4685cc07b9fa7d4a930b GIT binary patch literal 15914 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-25.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-25.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9fcb1a62dc6ea54fe4685cc07b9fa7d4a930b GIT binary patch literal 15914 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-50.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-50.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9fcb1a62dc6ea54fe4685cc07b9fa7d4a930b GIT binary patch literal 15914 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-75.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style-75.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9fcb1a62dc6ea54fe4685cc07b9fa7d4a930b GIT binary patch literal 15914 zcmeHuXH-+&)-EK}P=ZLWp^0=1ihuzksDPj#Qbn48s8mHDbRta@1w@*3L3-~cbP*7w zOK+ifLho>Q^eyL{?;G#G`{Ukm7}@Mi#$Id9^~`6MwdNvF%K8oj1Ppxmi%>6@ zLJ_XSs^(i*>icuizTgUc#H~zMRCR4^ag^l+&sA8QfwL%$sKP6z>%>7Ufz-v>pY!|R z)E5)I#dVb^nWP-2ZdfwRBD0F^=U_5gLgAXXU+>Eq9;u#Wd+5){j#=jYbd$|m$|~B^ zx7^b|THHICI6FEk>0}+BW|9$)~4*!3Vpe~qR9x_3!SS{JmrSwHA2_>}t6z)DiFobf$yS=&mxF2|3D53S=%|vA{;V^) zTzWUzt$W|4FzhUd$SI*tMllCI1wSvwN+U`wr%Do#gSHqpNbS~kHJV3{aT2-*&<^sW z9sTtm7xo7k7VT0|+jW$PWT|d?sFJw-tb?hHS3iS8e8F-wr#YUax~Akv9W zwo2(YM~I%!g@*3U&Cnuv^GApx0&A}*TgAff4?MA`gPTVes~Ox94I4mq z`PXUJkLt?DClr`>rJe668y2h%KfN9NrL)Isv21(vr^{mP&W+`83!~xH?ndXU`k=P2 zrypUv%)f=n%kAjYt7=YMKa1PS z(Lp_wnX+2U%Bt!y8>vVf>JfV&YM8u{yVeHHQF^d0yrpx>3?*M7L0f?As5HJ^OfDwL z9AYLhU|_j2(wJf~3WukPHV#Z`fX}W-E1hVijYrIT?Cc%~mAFwJo=!+l{8U{`f2l1a zG$um9Q2d}W=S!Y#)WI2EmDa<2-Dmf9z|U%}#6I)1 zkvJ_&O+%G~#GP9QUygfSGndOAz6u}`RRbAbDpL^Kh-Cf_vxsu6zc**42u{w0Pz1fl zgL5G`BOz|!+E&TZ{APL1^5*C#Q6C)&glHVDWc$9WpoeygR=F@m_=8i0#xL_rYQwqa z+94n9zANRFRo1lS;X>;CZYBy%=}hvus%g~M>oz2dNey?I=nVLi_}esoR`{&eNq}T( zmvQ9n%t(%tiI|U|tgO6P-Tpbav`dE-PDIJVt2eBX@kPA2DqCWa;zPd#D*d?6b>-cG zr-9277n;HcDfEz|tl`$m6*obimsRiAH0dRZA@3i=KMEw^aZ&{L(lXiTv9)fo5Rv&V z-*29G`qcn5A&y(FT)zwW3n22sab5wR3DDP zDlX4Qn}i#Gm!IXw{B)&SF9}cMpk=y>*2zcM5?2c%A{^PHEVb?XdXOTjrtJgZ>9{?4 z=XsCXJ?8{3TvO!PRD0yvvK`0K@ZRaphMoJFJg3)U$(hGg%-NnIV6I;XFZ=g*u?@Q| z0PnJid~SX6G9nZCv@vD7J>`jZNcMw%_zlnxGiS15!omq$9j|rBz$bf~H)ewEKb=^G zsk)xV8hohS?NA@xJrz6c<%~P|o^@ug=i_shTVE7N(shC5W>)vAb*|y%pokH^T*!xE zegXMODntXjfz8#z1e#V=SzhtGAR82}9F&r`mClz{x?G1SX}+hb9krtLYPym%zIHE3 z-sPY(9tDU!{&lpb-+u5D$!G1$Z=I6o_1~yyu=1*X>~gPC(u`R}rBsGi`zsGb9`GZ0 z#YI7ep=*4ID3x;@js~IkksxD`Q5E zc1#rdxe|TM`#dr2*^Po}^^?V9%bLR_c{`hL3j`k5sk<28$aTR#-5SZz&y=Ap4kjJ8 z^(F5&QY2cxH{0Bwd{7!d^zC{g{o}xruWjty%MHo>&X;ag4cs#%jhQa$>+ajAGTvXF zmvC^~QDA1n+>QLU`75I(Dl>NxYliZ940zX3AB6D=NG@;~_ z>WTCg}ve7 z%;wHa1wgW;q_EXY*mjRdk%;|Ppi%SZSrkHz^#mcK1nYk#(_enOhd=@`m@n*yU35FX{ z-Xt@|CtzvU2;|Iw7f zY>EtW4%Hv1egbl$;MMa_8k1RJfJkeGy2aSy=@qxp(8{AvVU}_zjj#h5%eAU(LJV4I z&Zu6ZAN^e!6WQpN`0F zt;&zjUa#AG+`_H}MuCGkf1i8k70uAuiKxH(NqRQ zXx2ba*D=qkf_bEM$4FPDfa~CB;>geIxXp*9eLz}jy^sV)!V&F8+&LMyq=4(I6rCxI zZH{qN(i!plnBXw12ntY7Br1!X&D!nA8pi8xO*l!!%Wf$t!1%aqePt6i=_WBlo%!di zP-&|QOQl8^tQ?gX!lW)Zj6oS#VCbn!lxS^2%`wsh-&sio$;~HU4n|3ri*^FHN{>vY zk8AqC8A_e*v*BLy>Gke$K3k$z1a_056~BP43ek_(WqdW?FJi_FBb>QJNeJ>?OO~OD z$V-QWI32u+rjg)Y)3)?4E<9?fXvW7TqoIET>aa3o*MVzQq`D+X+jDizXC`4cqz-#N zonUdz>)|KkJ6URb*O%Kj=~-Q^;|CIiE98Rp%VfhJvG47y@dV3<$dBPp{uL{g5<@bM z22~Wq?uRCdsuL@Vc+I$BJ^|P9{E7$5#L&CAO;>kbb9gq3$HkMoNp@xQX2Tfo{I1+) zc=XTvRS1Ipamw;LSG)lhWQY<$v3v->GMrvjkRPf3?F&fUg)odZ>!S257rK!@Ul{r9 z01^tHPI5FVad))pxa3gD-(<+wo*u8}VSeA|z?F2-u%Fl-2XmE2Z%XtY zEb(MmwCO_UkAlP20i*+QDm`p^xD9VDcVc2TS zqsf?3_S5I48or-~HIK}2$r;9j7F$Q-lx4q>s+R~(9kvk0djOXBEZ{-!2sTDg-^lo7 z1qrI3#*u5GV3oGs#YddPQ+>b8H;0&RSQ0g5sY;2RX0JECk!yC4TR zLF<6JOo9qTZ4D?zvTM0BlC8CZRWrMLJRYFPu!vPTr}ByWQdoxZ*nh~EHbz>H?+#nB zy9GmiXdR;$z#2fh=gUoVMjod=R}4;f>8;AuzjUm6 z%`979y%Lq@95QY}H5uAhp6DS64r&WPA^2Hc>uep7XA3*x}2iiaS(u%j_x6 z`e2m#8a=|t8K+Sd`W{c2m@haO;Vb@)3mi>ZD28=fZYLOe5}52VXeRSvLm`25{5sE) zbJ}>=quzC_Ru%eG$mMjo%Gz@x23wjzf>Va%+4rj0q)h)ZRwkoHha#=3NL)H0Eg456 zjUEFma#oXuZ_3>&QwDIk(O+n`?g*^WUY}W4mHprf-|42~eBVGs8 zYE90IUlmd0>R1tk|9~J8XW|G$6@iF4htWi@nw`j3_>ko`AtR(h$h$KeKLoydIA^Za zDIAa9*=(hAjy#?djhWbcTyB#|h=A|?ine%&r=sm`Kf+a%3QYx!O!B5TqPA^rubTON z%rpEXUs>X)@y>E7o{po@3Y80V7N#;@NKoHP0x+0O6re}T$P04!*C9t;=bjU{u)Db1 zK?)L7N(eWH5NA1mtCQDHcbK3a?{%>SfFr^i6}|^b)kIcUq{@R_ zQ;oaJ3|n(Pw(li$e3ln%*H26~-e89MfsgVV=kN-jhwJNFcsOd4_K>vr98?quJXY^a zkqa*bU(%rb$U*g$pB@Gz9g|#um)SiJL-kVwxmu~JiMIE{=(b69KDNt9Pmw$i(`OR5 zC-T}J9CZ_Ls9?i=NR*G})hI)}w+BVhH3Sthkz2ccB^k>=CQ#h#!Ty@CN8)I-6FJ?v z_E@}0>4=;L6F|Db9sf1v7Z^&DFv1sRqI+7IyT~VHRjPU31vukaIldHln`v5Sa0^M$Yx^wQL}~jcF^5;4p~C*SAqgCvoe^Z zWuaL~EI+`T5Z*P34RU{eOYX`A66MZ?nZ@q&;z&xGYa!^%Cf-4w?%NXFxlj=G$r*qf=kF1BuNh-&EZBj#ma9S zqX$qtv7JEqmlY;t(LQ*~EO%7sd3Ckp4lf@_)wRztsAl)GBp9JOe5)XJ-#9UUm== z@a*GDC981;#fGyk@jT>QT)bSo$XM$LBGB^>KcsJw_)008@YFGxSr6TUGqu+{c`F#Q zI=ohYE?)Y4s@So|r0l7~0@oer;-X+OyG@>3_jW2Hb21O3jhKu~&sUXCyB;e$KZ_jN zt9fmX*8_K5=a@S69CAeNte)iJYbG&PtY>}dE^JvKp-n~|zw-@C`4_S&SQ`XPRR>u* zsOSB*8kP!_%yq*H-fmw)n)52 zhdv)EOv4`%iZJ=BSx6`Y)OohCYSX2s3G}oY<8smu(StF(KHs9uk&k>JW@l9Ud&FkM zYVnDFK$-|e%FgE8j)9N~S`T&?#^X}=cQYOlj~a9a&{F82 z8N$Dt1r?*pg*eB4v?o97ZUC-|(MD zZ1250lHiCMF8m9{*Thpq@DHSaH-q;~VRPM4x^n83f9vgk8!;*^u2g;*S8VZ@-u^dr zHyR$`a^2%!7X0Igm(;J>c=cnSw*9TQ|3%&ZCD?CE04V)mg8k`F{+}V(F)w6h&OPj? zaSV&bb>jkY87>bfkM%`-&2|WwqaXXVhp@wMM6~p+**gx>i&D=AY&8s-S`E_PC1-7@ z1l&0_zppmh+ASS_0jG0^2{EcO{TT%8Om70&JDpxSvVY!Sn2Esv7Cf^qH+$Dr&Z(!S^Q~J# zt1?Vzhq(nEyJu(mlL)Q_Gyj-<$gF$=r{_xS51C1EXKmJmxoytdL8H#VSRQNu@r&lN z)0IxchYV%q=_8x{@2q+GwPEJ|DJShA52&$jx5&8x!_=|3$F^qrCAnFR* zx@|xVG6t#;=oAR4YB<4~prjBk%bh2CXG@@>a^hQK5oNaKK0#_l3XfZ;@epPjz|7yT z?8t*N4D`$+Rt~K&=jzQC>7+h^q-7^MqOmqf1~A>Z19j4NPlE-9mgcSFz!;T524=G&9byHNR_^GTEfu_Og3<_x3*k6UH2|ZvKfLuISW4 zqtAUGK z)H~KGI3WRz(~M&$;pE&Q1nbJWj~Q7v4T!j zS$<0)G3`0Tu#o*_;ujBU-sL1g%#}LC$fJ&i?G?+fn4IqUkv1mbT6Zjs4qs8UPcbk# z8jM$lQo-RrAkkdc%wG$K3KZV_*1{4ULj+f5XidTQ_D$Oa;M1JJBi%-#LIEvwY}l4c zT{~ldGl|;in!Red#3-vA)5VbH21{GdS?Fn9lf8?We@$)k?&$~e!b?BM^tmL=11LlJ z;5SQKnDnziTs{CCVL>0X;cct)KkLZ>oQ2;JmHOGn*CpL^xW(FpGRxZmoFSLBS%wztiJ<<(vn*k8tQK&_>r2i879zd%V zlffU^6j5PkS`86(x$`UbMpE)7ONQ8`{A;6ZyMACS7@Ld@1@?q{OKZ!|V&wPlGd9gu zUpzeJ7&}sBXdxPkdhGif>lWH*Zai;8r3;nt{NRlN4CjM>;W7~bP{dtyvH*>zAuh<< zWrCwLAP&1}uU#%TN@ol8ojkP{N3g|{bw1o`ojAEFDy~#km)^VCA1E9W_*AmxKfvK} zFb}5ua1;I%eS;|YIX%Ex@&ld0`fT!*XZ->1k{~nLv0GNYBMmpv6Y8~a+_L{w{}E8F zKgxJtLyC<9s%|G`IS{$$F|8h};0Zb-l%ts27h!@U8Ct$xW;F+<5}jm><--FNDht;m zR*)PZExi4>Rg`&G0`M^fmm$JhF#g$u=Gdr@6T4EfxMiPtf0c6ahb*~d1H@}X<1A~G zJJ$~trM-mRWf0B>^;b_T-cD>(?H`O+AMCxS4DovkXhkvUh*0KF2UjRb{(DCH06#_W zgKR_E1!?4Bvp^Zpo-Cx(j8&wsv%eK6b%J$`%sGG*wCBW0KDzATG)rz}+-{d}oJ7$b zWBj@gx8F;%9!6Lw{(}gxfPdG!4QxH36&I@| zZU}HWf%a5bR`HK=Q2QP=*5fvCC=>Ium5gh)t{!JrUdLd@x@kMYZCQh3H~;w!Ip(Ox zXtfY3xB@=u9y;IB(?zR}5+l3W8$>!nhxzy%S!eG2L&q1^Tw<*jGPc1y#e4xvj z$c_$a&N&;o$jn(rC2=-F*~MchOVbR9+yjqY2oJYdiS*96KCV)*sH>G)-Bo^xa~7Ecpp21Y>|_{#RVUp)6jYjC??Y_9&f zlO#tfEjz#B-9Z(W&-0LN{2Wuo!PrhrV@;j%=_w9tFC|{+bpgRyLsL_{6`yxP!5`Wr zrY5>%XS0fvL-#P7pC+7dqW*Bm=g@ZY}Q@-T_a}KntH3x6a5jtr4gZaS{lbXtR z+QdC4Y%|5~?B^wJ56r`Y29I-Pc&;Yzy~CE`;_dDBP4@NnZ%j6BpI!BvITjk(J#AlK zaa;8|Sgt;GT`xR5(`)WUu?7c3HqL{_`N8IYEBN=SDrXCD^uSa_m$+8#8NM`h{7v;9}95bFEM?F_^h>Hb`P`@ni*SgIS&~z@9dH7-@D3FXpHLorkl+k&8 za6?>1LLq^9NwS|<+Olt)eo)$w(-yLlKF+%Doqx^G{%kKAH-vk%uZeP;&Ac*EGXt*O zx7(}UZT6bWi7wmCVV+39?vbufnPP&{(#F3{qu4vAPu8~oMZI`ed;y&uTCuh&BrtYGj5a_rlK1P6$3w@cE9UgWHmuKzOVTE;0|!^yZJwg8ubvo^{0l6IGN zm&JH)GBbLve{ZZk;N10^Ru`t_|1kZCyB@#)JcZ4O+_?P5=y*;0r$T|4)zZ@;zPw8x zy)s_Iod?XHEsu;tFrODD$Qgb&o5KXu(_ z<+q7H{#F_zzm+%PvOjRvyJmTI!nt-b<#muyc6NNWU(Y^q+2hl8cezHJJ#;6_Zrf5h`&WU@u1y~$;hv!2+p50Z zXFqX2a1_`)e`D%emchl72m3p?80@-#EvM(T<3?O?>hUz9K|Xp@eM|4yw!^~n%0*6` z-s#2Kk6ySx3N={iKeuJ^5bI-(Zks4>yVs4VlVIM@FZa{y!_EVVRR}%2H%_i}*5wYT zxsB=|T_*C`q12_k9O}C;AWvf>2Amdr0+cMC3Zy-!Hrc&fSL6oG0xpw}3Cz4f)Jg)| zAPqK2ZbHi@@#inT+R<8wXlZjf{emmOJwVC2^S^vMeL?%8mss98_kB{d zU!sYr-s_3h0rP_=`CUit%d?~$8_Ea7>sqE-PbV*7{O2p1(0^4)oZ7&4x-OFkqz%<* zARx=4gF?cE8Z6K%@xpgN_>{uNL5k0s%)9_%?%08D|6r(hi4V#l*ky!(1hk1;^j$7<|lT%Ql^7_PZzbCX7$r z55RxaEb&UPBLb!}_*LuqqzWcbX+to+sS3p;Hod3>2AnI3V?7M*@waCiI(GqUgSNJz zI$1O`G~x*}cW{*A(!(nOL0riPWWSV^7h>rK5Awl}_=~0UB^oB@eYYBR?eCRe#_&93 zXX>;gEAu_UB4NrzZ%o)BM5}?gXq@%FHHr(vRzp|AlBrx1?qJJ$tO@IKzq{Fn)dgMq zdbMFs#$A5C?v+M9vgP=x#=3m)?Au)3@s?#2nHW~!cb&7*O`8oxYd3Wd^Tu*Rl;c|) z>QG}}x$gG_3>v7=)(_cR{>)4>adNgm=XCBU}`?#LD z2pfM?2aa;o|5b&6@!5~>6A-#NkdBT1Y{@fm>fSS9yg>j3^1fPI1X!T?A3cwFI2hZ6+3>uiR?e=#~j>kDf zDT&N<^nAVVc?I8Z~0x=XstxpQIYjL3;t2bpQN6DWL7 z=fM;N?jDf03XBX8{Zp2g6Am41&{-(vSA{K80Bnpchy=wqx}j*qrv8odPca_4dg%zK zSu1>si(eW2&epBXU=GV5X2hisl?4XntBnUA0wBUUAd9;2150!q6-iTiRH?k5iM5lm zHn-($?1md{2b9rI6?DBqP%CgWYRjOZ21qEJ%f<4|j_mjKq}a&#u?IjBLjKi8AXI&(;A)WQY9~R68XrA$ zLN0^+zm2B({y;x>vw{)WQG_AI$;hsAiC+l>G6etptD_8Sl%xuGcsSb+>NRd|DtB;F z1d}?s6YX0zNT4<38Bbrp7QFbh3N%FPL;_y~xaB1@##hdPv!Mvcq0QN5AT(!0C)eD=6__!E_s0SA=4OPFo<}m2F5FHE%_d!tL)#$*X}_b8KBgk_3aP zr1{PGiQ&4l1v2yIFSPZfzr2V^;}8^&2U&dO32zy8f6K(`W48T{aJo}4lw!*f^im(C zR4(|C^%+Zrz`SoT4ehr*q6QarlK^KgSozAK99^bH`8)e35L5nbsJiJnZ}n{xbjU$> z;@N4W*mr)Q!22;6r$tX<)aU@5&6v802)w%Sq)ZBDe}^5&qNg1Z!F#QB1renB*Dhtp z7izeK=tJq5vrdj(6#yQs5r33o>c>dKxJDB?U;`fi?N|Ebf>9^AVESZJ>Pns+<)8JEOr&6d zdEutM%WStI@h#m%s}}gva57?$BHyb6G|ZYjEg%OAgb^t*YYIl+w+hZI*i-wl{>;Fc zZSGUK<)YLz7nE?lfHq9X;u+*k%UZyGOP3n&_fUzuyUge3TV_Zhthi%`0OLoEyD zYoLX-xcO(5Ov`*X$O)_=C$!T1dDXIN4ZHa~`4UyU4;jeVu~mR#J!R}UqrG*aSAHA- z+dY1UFuY)^L=Bz;bPW>$hAHiNBp&iO%<(H{9F0*Xc`^hDWYw}sx52-|ZdDWdw=)X! z-fKnHB3izG6EJ^b2)jSlnry(qp!{_MWhI1rd^^R~@?6jlY_a_wi1&8HIx{2dh44;O zZ7EYo6}Qx-Y;vZAvGY~wo`Ke_Rzb@_t1ESbf#)(+1{ugk-XlXFvWZeflBRwTJm27Y zXHtidYp(SAor}Il{sKhtla2AzSLfXsgjrr3TZu2r&RMz10D)5NAWc#LMG=g>f(Y2d znS_)4OQ0|FQ>mL)yx$BkJ(|Z&C@s6iEE2J!fi8;x8T!01nv2usw%VG%7#gM+-Xb79 z&td1xvdBnYRjdMYXC!j6AA_4ZH;b;vp%p6NH0Dldq8I_<%!ipKdIW=4oJ>ta4tf)p z2|G4!(ccKaaX_XH5C>1}ER|#f7JRBPrc&2-GPQ7*9aybeQ~r)}jkkiR^ldtx6+L#j zK^Hu&j=w5BXvOlmwt#7qO^oe}n~i8neZEs33;`sThdH|QYey;f-(-S<)< zDgTJ4YlSFFuX0wis_B%6!sl1ydYPcBqIGZbS9yA zEQN}T^H-8+mQ+(|UV@DC3Fw5$K9kG_2nK9I#sxUB8G;lT9Y4IgW{p*;`<-4%DxxY3 z*nq_=^bWgSDxxJh0D_sNuS++4pL&C-k-2$DUpp{=dYEPqeJ<5ARDA9{=F{y=wJ0@z zh#ySii&nwQHoq?2R*lOyMJVM?pP*x}vVSMt(UZd#+y-&}%0K-fV09s z+(6C`VBU%r4K|_*s;Hwc@K&p)(pW{mS`K}h8&uz+J9?f1XMJXO7-z2n9^R^FA(CXg zsnIbj^V;*5Z+(Pcwk5|z3sP?u7dF0$b#A>6rI)IqTVRRW%B{bI=v&KBxK}0Q^uYIV z68GX=KBABjgE4r9!lL>`-)IfpikB3rxBVBtnA{7&Tb4$!HZ@`@PB2jLji>&kJVq~! zgk#mS=H3@{LUgGmeY3*-fZ20cL_`|stw89fTkkK2_O0f4M(1boq!iuuGXdhMMD~cu zXqc!TcV46eF-d(8c>Q47v9twID zFTq7m9Zd_(glO@&zSUgMg1)Z}BKe=4-WG9GQTWfxpVI831|Idh85s*D^zm?HW_*70 z`TJ)#t7lJo7Svf!47A4rr}f_Y1i7Tw72cbCqH4ZS%7D#)WBYaXc6G|s_VWwAr(BEE z5IlK=1-qob%1~ATo04~IaY?Y)odxJS<4)1gfpwq=)> zz?++Hvb+56dBzG05!~6$n_83n+Psc#S>IFS#4;2zpp#izl}&IhQTp9AGZ8YmQ`GZV zC6UT_y#>r|K*-d$f)vMtB0+~5nA^$nHX0lZ&6^LwCmG`@K)`6Q8gr|N9grQ@zprxV zf}$T>OK|KF*C;XC`1RV<|MQEblb-omF^AMrjzQ2FEZXHE(8sGutAFRsMg>7wAiS8DXTj_+qO2XVXDVcOwLtNV+p)U}bs5f9M%ggaIgXAHr^#XlcsI84^2 pfdmu(`}r>d|925^NUb{~F1Sq$Qkf>v$NwX>%FVksaurNo{U1zl&FKID literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png new file mode 100644 index 0000000000000000000000000000000000000000..65ae9309ff6ae4ff250c5bba0e07dea961ee5391 GIT binary patch literal 16145 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png new file mode 100644 index 0000000000000000000000000000000000000000..1af966b90eced164b4dfad967735b0024cc22740 GIT binary patch literal 16596 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png new file mode 100644 index 0000000000000000000000000000000000000000..62f26790e82b582cf58263f292f3345bc8d81f38 GIT binary patch literal 17336 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-50.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-50.png new file mode 100644 index 0000000000000000000000000000000000000000..1af966b90eced164b4dfad967735b0024cc22740 GIT binary patch literal 16596 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png new file mode 100644 index 0000000000000000000000000000000000000000..1af966b90eced164b4dfad967735b0024cc22740 GIT binary patch literal 16596 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 literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-0.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-100.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-100.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-25.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-25.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-50.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-50.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-75.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect-75.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-0.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-100.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-100.png new file mode 100644 index 0000000000000000000000000000000000000000..019f55ae208f57e674f7eb0e40c24218c99c89db GIT binary patch literal 6212 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 YQ>KxM=|8d(fU`Ep&Khl1VCj3~pA{M7Gynhq literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-25.png new file mode 100644 index 0000000000000000000000000000000000000000..48826d88f06076b477e4ba67014d94b34312d774 GIT binary patch literal 6169 zcmeHLdpwj`AD?;V5@LrCa!q1LvFSCcF($7TNe#;`xpvWXVMZx4gTa$DY=pMjbsHmg zwOz=nD2$1s+$QO*MB_3cxeR7pXPEa<`@Z|xKm7Av{&PN`-}5`?e7@(L=X1{Y{4OV% zw9i>ZX`K=b22*i$aq@)0;OR@EfQEYFYiye#1&{D_c7zqT>J32+dWetfQFnKk1yomn zA>r#_s3iy_1i0?M>)*h!FvRD600v_nhavyK?1S`Df!6pu=8Hyf;D4Z@c{sqo(C~B) z;?Mfhu;*28!XTv>?&2E(gRR}TByd+xlX0k1@3_-`FGxcRelE|TFBXy|4aw>TwC_9U zS6Bb&>a@#?4j*~{HO2eQT6C}tys)s5g!MGh^yeFCdOq3$atFh>K>xsi8VT$1@8n>1@2P7JIYUL_6n+_j zFFR2FitNV8;7Q%i%n#iSklWVw+AUU1u^#L1Kr}F>F`ZQis=>BLSp-eM9>rapD6y(f zWSo8&Adh98bNo7L`>aGqn|4T$%5aVn1m$(f(T?k6=G9Db;~)~nnVj;`0w zq=g7FbBk|b+&C9`ozbk(*#+z+hs1i7{9cuXcIro3%dxIZ25rk0fnfM_Hq!t}aqr2_ zlP{czNu9acN78HM4d#Ii)u8z>%2eyOY%sH3eEaxp7_TQG? zH!IJe6TZ30tLzR7k=|w6Au6HG(E8S@{2p~VDU7}{_OU*IrRY&znD$x z{1Gp3qF(&uX@JDdV2{YsjVgHl%8jB8T0q^xZn5eUvd)txu6F89-?QB<8`Dj##Q0MM3XH3Jg>NC(7}~k=1%! zuihr_R$eN(2V%Cx7&jAH3kbs(ZxX8x?nI>Wd67{D+>dD08>-rmCp_ufzQRxkaopVQ zAFG`Y|%haz;jeE0;u3<}R9mcsKD=aDf|n7)lwiDC}mdzt{2$8 z+u@Kq3N`BI#{l_PfF7W+yEV2sL2h(xyfHIjf*@QMRM$wZ4` zx)D0?xp5zAK0!(`ULJ6lA$gB~UH1L5C;o*J>MN93p~PRU#0n+;_g11}hk!edzUh<$ z)L?^^h4 zo|tl>r1BK%454WTZj3JWKVLt@!du}DP7<7v|-|6cRWb%PE0aBg^t7{ zgkQB*R*Z(>a(QTgB^)~0TY8vISC1QXuM+y^(83dLg_(d63RSVzi{mf(`c}npB7x~o??}L)23;b{v%_ZUu>RT1EG>t2Qc!9?_MpVI#}bfJjk&q~e*WC2ns`J3o)T(6PPPs@LIvj* zd}~T6>K($(3k9+)A+C9W-5~gFU^ve^c=3Fa;e@xbVF+gx?jmNcdFO|sJFV*ixIX&e z+@Mpvp{>O1HFM`+O1?Co#MP3^Pmu+(^}FI)3-+<+u8tU6%Wo#i7so8);04AWCL#xf z@KSSSUx``A#+xy1jer=+-G34ey>*ezI3b6m3HP%373yNjtl!y9W40-V`?IMB zgwa*vn$p-uTHW7$Tzg`XS#J5T9WSMh@mlJ(YPDOP=P^HXtksbrlSw{&qDw>lZw}W@ zjqVr5)o4GReCeP(HmajdrnCDQzYcb=$+DKF_FGNT$o&gZiYxDpE03=K)ywlSt8uGe YmFTruqv26d91e5cz0axGG5Fj+0qfaT82|tP literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-50.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-50.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd014017ec4465c5e3baefb99e15cbd8244ade2 GIT binary patch literal 6258 zcmeHKeLT}^8{eCq(K*c;a-|Kh(?(28m*YCPBz9W-X zYOU1*fj}$W-CR6DATV!<5OBb9s%l3AAiy!6Bxg`@lhG(JVFdfQAKkYPv>DJ5AQ*Tp zNMi{CkOSE8Kl*O)CJ^)wI|Kwu3kAXc!jJ*EG=Me!@cC0h3&4M&f#(!J{zij&19gp9T8JvmIukP3NtrP6MjWhCW{B^w>1a6I$xUCJ-z%;)y9kdioZ}z*f ze``&s^KDI!*bTCT)U0X-qBdQ&VCyK_dNxn_YPPpIj_=s|iZC&+4ThndK+EhO8-pDX zisPpbl|!Sm*&Hlb(z=SJ z{4_e8ENYjF#cfiVzBj#7e5brzJ`tg=c7i8T;m@Qu#vUFD6L%Efy^`?2c`9{hBBZKZ zJ*c0SBjXIU%LD9oRhVY*%{A4Nstg0h!}th!|JxVh2%~_3YuHHQ=P_@6>xe~G)Kis= zf~*KxpMSnyC<^Kydzc+&XPg?uLUXyo2&=^@iRJa2Ls9BOQH%!`&}w9nv?o4R{$a?5 zS90tz>}!7hVyWiPW!uxOj9*9(@^RyNW3z9&q*~&BZnE&i9u`rWc+*}t4LNQN4Wm~U z&D#4_l$Q*C;w*kSp;BFpU0nJ?8U^@!iKw=Sc(qCgv)_i3mwLn zX*G#Mtg2H8*Leifz9|?nvw5M}ll15!*L{rK!))w2$z$T660}55^fa24 zC7k-W;Eua>)P!ts>?rNY)nV%yahm6q{_V>&GSsa&_HeeBEDH zzQz|goeB0QQrW2Q_jwJ69`$7Fu5=(~Lqe^#WIWCJ0j^tDTEr1=L0!F_@sil+v6*+Z zIxWN#+ZeoYztU533Sw|6Zi=Dd?6rM=ZegywhNtcPq{s56m%sFKdM}^pe{3PEQ^FUG zfu4VHk?AMB4K(~GmKuJ!wECwD!Me3ktIxpnsfh8|_S9Ov2HX9sbgYCD-pWcyK^v## z5bgc#y8JWQWaAt#|9<7IJnuu~9CX&v7gK;kxNf2#8jS z?YE(C>Pf(#CB|U#7lg{kHY_vE2rY?L93oMLO(Vv;^fyj)6atLSpVAFNGx< zLNJXqgGk!@0`~QJ&2x38(2tOH!pQ2#=eh3&vQTSaH=CW~>yn8;6wj>iL9?|@CmWmi z0p#g7<|xQ{wr>b6Nzk7RK+$Vp3VCsoDc4sb3WMfR4F$uh7j3iL@N^+*)#OPNt(vdU zGYvw4%GmPjMH5J}kTDg$fNo0S)e$!iM)74s4vGr>ra0jfltB5es-&=_W4|-SI zLH(P1C+2M-L#{gluDl<$poCK8$g_lTjhQxNNc;ed{H&(4&p3LggVtVC2O3j(PCe#7ygq&8?DLc9dNq z;X}xwlX%O8EQbri?!t!{vg>rG-sh3=XlkP8oPfoGQ}cb8oL_gg+)hzY$iC)8D+O#%>KC<;_#*H)QThY=$zUsmlYj?BSXbm1UiP^sdDP~)OmA4J>3yKyD&Fc zKhO~!$DrT)p)X+kuJL>-kXm)ZSZ}hTp7nb31%FSGtL#pDzSg1|1be`pLQ>owKd ZTZ66F#Q)~B8feEs?yh8)VrSave*?YZOf~=j literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_effect_animated-75.png new file mode 100644 index 0000000000000000000000000000000000000000..019f55ae208f57e674f7eb0e40c24218c99c89db GIT binary patch literal 6212 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 YQ>KxM=|8d(fU`Ep&Khl1VCj3~pA{M7Gynhq literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-0.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-100.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-100.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-25.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-25.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-50.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-50.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-75.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style-75.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3814c74b1357b0f0b3987710c6c5c3bcb762ef40 GIT binary patch literal 5099 zcmeHLYgAKL7QVT;K*9ux$}}JpA}^r`D2TuiASw#61vDa$f+m#Lh!SB@MFb(YRFOi; z!!U?agDn&l6mX3%0wIbDMoe0jhw=sq5J^lZ5FkM2BG~yczvoBS;;gmrx9?ed-@W&_ zd+&A5$=c`Vt)sm`8vp|k)ghpe?%c-bfO0=&p z@CCwS00^}K&{z^d$OC2gC%*?}1)x99g8-0u1b|j#{199kh>edr%ZM&Ttw7UXG#&=MkqZH%qm zk%eG3#cM~vDb#q6FXQq-JO|Zk;kIrqGfg|@1=hfKPi5u zl~bR734jwJV^7rrqN8dGeoHg1G73u#OBFriw}@LuTP3a`%327MY7RGxj`Qm4dOZvY zEJMN?#kQ9kN|F!kQ_ zv?AGk4e@2DXd;g#a`Yg%Ch?Q18Y?!>JHfkPXM6v3MS`1&_k@H(SaEw(rfMJ#gf_sl z-z5G*tiM|rI?N!?7r}=1{7&}St%w3QsO{ht!2!)_gNtqn_c!%gl8Km8l#{yqZ6zCT zMA)&1%KMvc=&vQp@ABs#x(S*zyfkGoeBJWXTC1!kIxYd+g z3dz!N(yd8j4WdOw0--1>EKJOJeZ>Wf$ACk#xdiP5gR`UR*~jXUTEp&uj>I0^Z<02Y&ELRDo|lI-Jl*y11p7yFX>n9P!p_ z?`~`K8O=um#LIo4;1_${?Z;yMOCSt{vbb&@RVpF}8<>I6UUKr}@WXSy(yR*rOe{4o zEW=G2U~D41m}IO~E|1h%bKN~*9T5+)%L>@A2YT5z)bQ^`T87*2Z1Mx4@0bMv1rEQ( z5UX<5qCksM(%b~S>DTGU6ebzJuV61#a}Kw%0&H)Z@v+X8p!ZTK0x}1#ao7W4*vyI1 z=NUSemm?%ozMvS4I^qMLo(JG{`;5;d*MuKf35sH|8r15aT1~(Ittqt$s7AJGYW2+7 zEK6it=DV~lllHhX!cOQv8Q6A=31(^3fbBqd*zZwV*Z&!!L0#9C9j@bZUMKQzN5Ejy z0%^QDuujpXmUU}c>$JJ$3SFIx70ua%#V@g8JsxS(nJ|vTfdfK5-&JZ!ce!G+#x5*S zGxp30U6{?hx{d9yC5Ct~uo-_1tDl>^)HbHt+#xEs=cSK;U-C(fBvv53p*={6_rdB@ z%&gIgn$)NhIQSA%aj_X`0AJI3b`dS;=BzSYtAS5p+g2zRd>UcA)Vh`pukHMF{P ztI6J)+)iD9O9QdZ;9bR1~d2j!>D!EL)Ye0HKU5w?-#bu77f?E{ja(H%sCzHrO=D~$ihuAOk zp=opZ@Ww%!Y4cpy%p2#nL-JkkdYdBrv){G%U`Y)>4LjzWu_Rj$zyH^f~qHP-EZLBgMI< zegNNdzipiFT<_`jJR{Oxw}4w1(ihHCP9>nhrJFFyZa=SEJL%v32RX2_ A&;S4c literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-100.png new file mode 100644 index 0000000000000000000000000000000000000000..868690bfae02f09c8350f1c5c6cad2c1ddbecb19 GIT binary patch literal 5771 zcmeHLdo-Kb7S9U_4WYfIl6tghnHi;>YEUWBrVTZvrO!J>blQ3h!YB!%5tN`*+flTH zThq~&wpv3wgrrsPmKv>hgv6_!i3}nhxgUD(U3abf=lyGzv(`TQclO!mJ7@3je808V zmvG#PgjCg41%W_F2YaFm2n0@D5x6p7iQ?kk0SX-KLOKX~+JyNG3}~0mI$S<>4D>aC z;UE}T7o@b}0*DP5{cn5(Yz%^~+94oNyblQW#m5QID-GCVbbUmgpC^H0xNHlnGS?z@C z*Ty}uFw$~u1k~d2exup!%qe>62gkIrh@W~h1#h2Myd1WLp$H)Gdbgf~|9KDK*g%D( zAR_6uR3%B&NQ!T4%qKM#Xp@Z2m}wiGVWfC)w{k0IZIv-H9y7?|H1%RnTA0@mKa=X+ z`yebI;_A5rw!B^Z{x+9uiT`~ufTf^6=j`7YuOaL^+t|o9Xq2 z1d^d!GpNBmEfp1GOK!%uw!VzzU6_{_OB^^J#2=t}&o4PQV9FxmhupHMp^nqSs_%9N zid)N{#icS{$*2s;o*G#xCW9K<%OAjX`d1VtR`ztf2O2= zhn7rHElO4sg!e~IcX`zFOQ94F3%fZyhI*G0S*sRL)w>Ydy+^w6r1p_3BfI4F>tpf{ zddp&YaE?^`w92~KL}e(OO|^b>DzwuQ(!OxWT+!uwz&U~46vTB^8RE}6(=ANPtn@#O zj^WP>tt;NL$BWtHFDILWXF|4Fy?;?3hsyBqoJ@jM`;SGBFo!Q|;H62($ZC1qNsEyx z@q`11Mw4_PRfgO&j;5b#J4T*K);v(pA9qkUmRtPniE8{ zYn+0hR8RCh``J=_Q{Chln~JL~L_y~Cxn&kMil8B39wb5Z)447yWcHW8*651^+e%ipkhDGMZv#2&>^%${fE~;PrR+mBFt+1J9FI zEjo;AGo=OAL$N57dVe2CrGdG67D9q(lcsuL?%E8pWqoEn2Po8f4%Tz9!W4hmd%&0L zDu7Z}p}A+(L0OnBphn8W)vB&;}G+ zI--!*k#Fr^VLu??@qxhTqjH(kDLf$GP= ztZf&dIMnw3TLdEm-TR(U+;Q~C{(d%L)5Ctt!*7-S4350n!E_>+6RVW{a&aF*-W*^W zAFm2ZWFb2U*JB+a*-_rCH~{SemPUOY`M2{|F>LAi#`@tUzEC%#o{cQXK1@Cf z2xcuXR-E^GVC!#e{VJ}1WB*t3=;*RqBw5A+97q0bjmXF)5wd(5D<0Xw^R`%f6@#T&j48+QCp)f995moil?nm@#Zy#EiBd0OZ;M4A~x=z>>1&rLr4dir;Kxp^$u4lN|d6x9^5h651Ir z+8JR(&d8W40(mP_rF%husJjU6oEggwlZrAu@{yGq%o5lgfyPqEkV?ZdKKkc#xZUiT zlKXwunrF|D$MRo#?Bb@)1l)}$4j+JeP)SLX{pB5jOl+&cUvuE z+f2}B*^-i&K5H$@d%TwH!5kcIG?_Kme?KwGyN|oO*r3k!ip5N~1=ZzQHxAOVav$JC#aFvWqb1TRGg9A@QQOjIlc`9?(Wyx11#U=~NOA>VoG$%y z;T-&YA`py-Ya}#7JE3>#U+WRyI9O90wm64hJi&K#VCM`>E7b@t%rvum#HliSpE8T- z+U8%lo>%8zOZU1b^CY&s5f4eW=}8;a-#w@BCe67F9f_~*uvdjLQ?gI#&fL`+?FZ9o z$co`97xovzutmz^!yknH7ych&zKG@G-75CsB5U~rVdI`}Imq3@{DGPKYp!tuci S%;}XswGM}!h))laqyGuEo@I{! literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-25.png new file mode 100644 index 0000000000000000000000000000000000000000..c900bd05f7c3dd72e6730ff8274e688a93c360ae GIT binary patch literal 6078 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 S%;}XswGM}!h))laqyGuEo@I{! literal 0 HcmV?d00001 diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.Issues-issue_1169_shadow_style_animated-75.png new file mode 100644 index 0000000000000000000000000000000000000000..868690bfae02f09c8350f1c5c6cad2c1ddbecb19 GIT binary patch literal 5771 zcmeHLdo-Kb7S9U_4WYfIl6tghnHi;>YEUWBrVTZvrO!J>blQ3h!YB!%5tN`*+flTH zThq~&wpv3wgrrsPmKv>hgv6_!i3}nhxgUD(U3abf=lyGzv(`TQclO!mJ7@3je808V zmvG#PgjCg41%W_F2YaFm2n0@D5x6p7iQ?kk0SX-KLOKX~+JyNG3}~0mI$S<>4D>aC z;UE}T7o@b}0*DP5{cn5(Yz%^~+94oNyblQW#m5QID-GCVbbUmgpC^H0xNHlnGS?z@C z*Ty}uFw$~u1k~d2exup!%qe>62gkIrh@W~h1#h2Myd1WLp$H)Gdbgf~|9KDK*g%D( zAR_6uR3%B&NQ!T4%qKM#Xp@Z2m}wiGVWfC)w{k0IZIv-H9y7?|H1%RnTA0@mKa=X+ z`yebI;_A5rw!B^Z{x+9uiT`~ufTf^6=j`7YuOaL^+t|o9Xq2 z1d^d!GpNBmEfp1GOK!%uw!VzzU6_{_OB^^J#2=t}&o4PQV9FxmhupHMp^nqSs_%9N zid)N{#icS{$*2s;o*G#xCW9K<%OAjX`d1VtR`ztf2O2= zhn7rHElO4sg!e~IcX`zFOQ94F3%fZyhI*G0S*sRL)w>Ydy+^w6r1p_3BfI4F>tpf{ zddp&YaE?^`w92~KL}e(OO|^b>DzwuQ(!OxWT+!uwz&U~46vTB^8RE}6(=ANPtn@#O zj^WP>tt;NL$BWtHFDILWXF|4Fy?;?3hsyBqoJ@jM`;SGBFo!Q|;H62($ZC1qNsEyx z@q`11Mw4_PRfgO&j;5b#J4T*K);v(pA9qkUmRtPniE8{ zYn+0hR8RCh``J=_Q{Chln~JL~L_y~Cxn&kMil8B39wb5Z)447yWcHW8*651^+e%ipkhDGMZv#2&>^%${fE~;PrR+mBFt+1J9FI zEjo;AGo=OAL$N57dVe2CrGdG67D9q(lcsuL?%E8pWqoEn2Po8f4%Tz9!W4hmd%&0L zDu7Z}p}A+(L0OnBphn8W)vB&;}G+ zI--!*k#Fr^VLu??@qxhTqjH(kDLf$GP= ztZf&dIMnw3TLdEm-TR(U+;Q~C{(d%L)5Ctt!*7-S4350n!E_>+6RVW{a&aF*-W*^W zAFm2ZWFb2U*JB+a*-_rCH~{SemPUOY`M2{|F>LAi#`@tUzEC%#o{cQXK1@Cf z2xcuXR-E^GVC!#e{VJ}1WB*t3=;*RqBw5A+97q0bjmXF)5wd(5D<0Xw^R`%f6@#T&j48+QCp)f995moil?nm@#Zy#EiBd0OZ;M4A~x=z>>1&rLr4dir;Kxp^$u4lN|d6x9^5h651Ir z+8JR(&d8W40(mP_rF%husJjU6oEggwlZrAu@{yGq%o5lgfyPqEkV?ZdKKkc#xZUiT zlKXwunrF|D$MRo#?Bb@)1l)}$4j+JeP)SLX{pB5jOl+&cUvuE z+f2}B*^-i&K5H$@d%TwH!5kcIG?_Kme?KwGyN|oO*r3k!ip5N~1=ZzQHxAOVav$JC#aFvWqb1TRGg9A@QQOjIlc`9?(Wyx11#U=~NOA>VoG$%y z;T-&YA`py-Ya}#7JE3>#U+WRyI9O90wm64hJi&K#VCM`>E7b@t%rvum#HliSpE8T- z+U8%lo>%8zOZU1b^CY&s5f4eW=}8;a-#w@BCe67F9f_~*uvdjLQ?gI#&fL`+?FZ9o z$co`97xovzutmz^!yknH7ych&zKG@G-75CsB5U~rVdI`}Imq3@{DGPKYp!tuci S%;}XswGM}!h))laqyGuEo@I{! literal 0 HcmV?d00001