Merge "Rename the widget suggestion background drawable for outside usage" into tm-qpr-dev
diff --git a/go/quickstep/res/layout/overview_actions_container.xml b/go/quickstep/res/layout/overview_actions_container.xml
index 196541f..48650aa 100644
--- a/go/quickstep/res/layout/overview_actions_container.xml
+++ b/go/quickstep/res/layout/overview_actions_container.xml
@@ -109,7 +109,7 @@
style="@style/GoOverviewActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:drawableStart="@drawable/ic_split_screen"
+ android:drawableStart="@drawable/ic_split_vertical"
android:text="@string/action_split"
android:theme="@style/ThemeControlHighlightWorkspaceColor"
android:visibility="gone" />
diff --git a/protos/launcher_atom.proto b/protos/launcher_atom.proto
index 677c992..c8a7d85 100644
--- a/protos/launcher_atom.proto
+++ b/protos/launcher_atom.proto
@@ -130,7 +130,7 @@
optional int32 cardinality = 2;
}
-// Next value 41
+// Next value 43
enum Attribute {
UNKNOWN = 0;
DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat
@@ -174,6 +174,8 @@
ALL_APPS_SEARCH_RESULT_PEOPLE_TILE = 27;
ALL_APPS_SEARCH_RESULT_LEGACY_SHORTCUT = 30;
ALL_APPS_SEARCH_RESULT_ASSISTANT_MEMORY = 31;
+ ALL_APPS_SEARCH_RESULT_VIDEO = 41;
+ ALL_APPS_SEARCH_RESULT_SYSTEM_POINTER = 42;
// Web suggestions provided by AGA
ALL_APPS_SEARCH_RESULT_WEB_SUGGEST = 39;
diff --git a/quickstep/res/drawable/bg_taskbar_edu_tooltip.xml b/quickstep/res/drawable/bg_taskbar_edu_tooltip.xml
new file mode 100644
index 0000000..a20f7da
--- /dev/null
+++ b/quickstep/res/drawable/bg_taskbar_edu_tooltip.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ android:shape="rectangle">
+
+ <corners android:radius="@dimen/dialogCornerRadius" />
+ <solid android:color="?androidprv:attr/colorSurface" />
+</shape>
\ No newline at end of file
diff --git a/quickstep/res/drawable/gesture_tutorial_complete_checkmark.xml b/quickstep/res/drawable/gesture_tutorial_complete_checkmark.xml
new file mode 100644
index 0000000..254d6d5
--- /dev/null
+++ b/quickstep/res/drawable/gesture_tutorial_complete_checkmark.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="48dp"
+ android:height="48dp"
+ android:tint="?attr/colorControlNormal"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@android:color/black"
+ android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41L9,16.17z" />
+</vector>
diff --git a/quickstep/res/drawable/gesture_tutorial_complete_checkmark_bg.xml b/quickstep/res/drawable/gesture_tutorial_complete_checkmark_bg.xml
new file mode 100644
index 0000000..d6a6686
--- /dev/null
+++ b/quickstep/res/drawable/gesture_tutorial_complete_checkmark_bg.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="148dp"
+ android:height="148dp"
+ android:viewportHeight="148"
+ android:viewportWidth="148">
+
+ <group>
+ <clip-path android:pathData="M74 0C114.869 0 148 33.1309 148 74C148 114.869 114.869 148 74 148C33.1309 148 0 114.869 0 74C0 33.1309 33.1309 0 74 0Z" />
+
+ <path
+ android:fillColor="#E0E994"
+ android:pathData="M0 0V148H148V0" />
+ </group>
+
+</vector>
diff --git a/quickstep/res/drawable/mock_app_icon.xml b/quickstep/res/drawable/mock_app_icon.xml
new file mode 100644
index 0000000..92cdea3
--- /dev/null
+++ b/quickstep/res/drawable/mock_app_icon.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/mock_app_icon" />
+ <corners android:radius="@dimen/gesture_tutorial_taskbar_icon_corner_radius" />
+</shape>
\ No newline at end of file
diff --git a/quickstep/res/drawable/mock_taskbar_background.xml b/quickstep/res/drawable/mock_taskbar_background.xml
new file mode 100644
index 0000000..8ac9080
--- /dev/null
+++ b/quickstep/res/drawable/mock_taskbar_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/gesture_tutorial_taskbar_color" />
+ <corners android:radius="@dimen/gesture_tutorial_taskbar_corner_radius" />
+</shape>
\ No newline at end of file
diff --git a/quickstep/res/drawable/redesigned_default_sandbox_app_icon.xml b/quickstep/res/drawable/redesigned_default_sandbox_app_icon.xml
new file mode 100644
index 0000000..cb94d9a
--- /dev/null
+++ b/quickstep/res/drawable/redesigned_default_sandbox_app_icon.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid android:color="@color/gesture_home_tutorial_background" />
+</shape>
diff --git a/quickstep/res/layout-land/gesture_tutorial_mock_hotseat.xml b/quickstep/res/layout-land/gesture_tutorial_mock_hotseat.xml
index 20d2ecc..1e2e014 100644
--- a/quickstep/res/layout-land/gesture_tutorial_mock_hotseat.xml
+++ b/quickstep/res/layout-land/gesture_tutorial_mock_hotseat.xml
@@ -31,7 +31,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintVertical_chainStyle="spread_inside"
app:layout_constraintTop_toTopOf="parent"
@@ -45,7 +45,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_icon_1"
app:layout_constraintBottom_toTopOf="@id/hotseat_icon_3"
@@ -58,7 +58,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_icon_2"
app:layout_constraintBottom_toTopOf="@id/hotseat_icon_4"
@@ -71,7 +71,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_icon_3"
app:layout_constraintBottom_toBottomOf="parent"
diff --git a/quickstep/res/layout-land/gesture_tutorial_tablet_mock_hotseat.xml b/quickstep/res/layout-land/gesture_tutorial_tablet_mock_hotseat.xml
index 6877b89..f04fbb6 100644
--- a/quickstep/res/layout-land/gesture_tutorial_tablet_mock_hotseat.xml
+++ b/quickstep/res/layout-land/gesture_tutorial_tablet_mock_hotseat.xml
@@ -43,7 +43,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
@@ -57,7 +57,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
@@ -71,7 +71,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
@@ -85,7 +85,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
@@ -99,25 +99,11 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_4"
- app:layout_constraintEnd_toStartOf="@id/hotseat_icon_6"/>
-
- <androidx.cardview.widget.CardView
- android:id="@+id/hotseat_icon_6"
- android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
- android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
-
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/hotseat_icon_5"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/quickstep/res/layout/gesture_tutorial_foldable_mock_hotseat.xml b/quickstep/res/layout/gesture_tutorial_foldable_mock_hotseat.xml
index 027e4a0..363f14e 100644
--- a/quickstep/res/layout/gesture_tutorial_foldable_mock_hotseat.xml
+++ b/quickstep/res/layout/gesture_tutorial_foldable_mock_hotseat.xml
@@ -42,7 +42,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
@@ -57,7 +57,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_1"
@@ -71,7 +71,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_2"
@@ -85,7 +85,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_3"
@@ -99,24 +99,10 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_4"
- app:layout_constraintEnd_toStartOf="@id/hotseat_icon_6"/>
-
- <androidx.cardview.widget.CardView
- android:id="@+id/hotseat_icon_6"
- android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
- android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
- android:layout_marginTop="@dimen/gesture_tutorial_hotseat_icon_search_margin"
-
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
- app:layout_constraintStart_toEndOf="@id/hotseat_icon_5"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/quickstep/res/layout/gesture_tutorial_fragment.xml b/quickstep/res/layout/gesture_tutorial_fragment.xml
index b3ca297..8eeef67 100644
--- a/quickstep/res/layout/gesture_tutorial_fragment.xml
+++ b/quickstep/res/layout/gesture_tutorial_fragment.xml
@@ -102,11 +102,11 @@
<include
layout="@layout/gesture_tutorial_tablet_mock_taskbar"
android:id="@+id/gesture_tutorial_fake_taskbar_view"
- android:layout_width="match_parent"
- android:layout_height="@dimen/gesture_tutorial_mock_taskbar_height"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:layout_alignParentStart="true"
- android:layout_alignParentEnd="true" />
+ android:layout_centerHorizontal="true"
+ android:layout_marginBottom="@dimen/gesture_tutorial_taskbar_margin_bottom"/>
<ImageView
android:id="@+id/gesture_tutorial_edge_gesture_video"
diff --git a/quickstep/res/layout/gesture_tutorial_mock_hotseat.xml b/quickstep/res/layout/gesture_tutorial_mock_hotseat.xml
index b3e86cf..8513dcf 100644
--- a/quickstep/res/layout/gesture_tutorial_mock_hotseat.xml
+++ b/quickstep/res/layout/gesture_tutorial_mock_hotseat.xml
@@ -15,7 +15,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintTop_toTopOf="parent"
@@ -29,7 +29,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_1"
@@ -42,7 +42,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_2"
@@ -55,7 +55,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_3"
diff --git a/quickstep/res/layout/gesture_tutorial_tablet_mock_hotseat.xml b/quickstep/res/layout/gesture_tutorial_tablet_mock_hotseat.xml
index 027e4a0..363f14e 100644
--- a/quickstep/res/layout/gesture_tutorial_tablet_mock_hotseat.xml
+++ b/quickstep/res/layout/gesture_tutorial_tablet_mock_hotseat.xml
@@ -42,7 +42,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
@@ -57,7 +57,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_1"
@@ -71,7 +71,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_2"
@@ -85,7 +85,7 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_3"
@@ -99,24 +99,10 @@
app:cardElevation="0dp"
app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
+ app:cardBackgroundColor="@color/mock_app_icon"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
app:layout_constraintStart_toEndOf="@id/hotseat_icon_4"
- app:layout_constraintEnd_toStartOf="@id/hotseat_icon_6"/>
-
- <androidx.cardview.widget.CardView
- android:id="@+id/hotseat_icon_6"
- android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
- android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
- android:layout_marginTop="@dimen/gesture_tutorial_hotseat_icon_search_margin"
-
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintTop_toBottomOf="@id/hotseat_search_bar"
- app:layout_constraintStart_toEndOf="@id/hotseat_icon_5"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/quickstep/res/layout/gesture_tutorial_tablet_mock_taskbar.xml b/quickstep/res/layout/gesture_tutorial_tablet_mock_taskbar.xml
index ddfeeec..bc68928 100644
--- a/quickstep/res/layout/gesture_tutorial_tablet_mock_taskbar.xml
+++ b/quickstep/res/layout/gesture_tutorial_tablet_mock_taskbar.xml
@@ -2,115 +2,240 @@
<com.android.quickstep.interaction.AnimatedTaskbarView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="@dimen/gesture_tutorial_mock_taskbar_height">
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clipChildren="false">
+ <!-- Pill-shaped background -->
<View
android:id="@+id/taskbar_background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/gesture_tutorial_taskbar_color"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:background="@drawable/mock_taskbar_background"
+ android:clipToOutline="true"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
+ <!-- Container for the all apps button and app icons -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/icon_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/gesture_tutorial_taskbar_padding"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
- <androidx.cardview.widget.CardView
+ <!-- All apps button -->
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/taskbar_all_apps"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_marginEnd="@dimen/taskbar_icon_spacing"
+ android:padding="@dimen/gesture_tutorial_taskbar_padding"
+
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/taskbar_icon_1"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <!-- 9 mini circles representing the all apps button icon -->
+ <View
+ android:id="@+id/all_apps_mini_1"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintHorizontal_chainStyle="spread_inside"
+ app:layout_constraintVertical_chainStyle="spread_inside"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_4"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_2"/>
+
+ <View
+ android:id="@+id/all_apps_mini_2"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintVertical_chainStyle="spread_inside"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_5"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_1"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_3"/>
+
+ <View
+ android:id="@+id/all_apps_mini_3"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintVertical_chainStyle="spread_inside"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_6"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_2"
+ app:layout_constraintEnd_toEndOf="parent"/>
+
+ <View
+ android:id="@+id/all_apps_mini_4"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintHorizontal_chainStyle="spread_inside"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_1"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_7"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_5"/>
+
+ <View
+ android:id="@+id/all_apps_mini_5"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_2"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_8"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_4"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_6"/>
+
+ <View
+ android:id="@+id/all_apps_mini_6"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_3"
+ app:layout_constraintBottom_toTopOf="@id/all_apps_mini_9"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_5"
+ app:layout_constraintEnd_toEndOf="parent"/>
+
+ <View
+ android:id="@+id/all_apps_mini_7"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintHorizontal_chainStyle="spread_inside"
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_4"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_8"/>
+
+ <View
+ android:id="@+id/all_apps_mini_8"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_5"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_7"
+ app:layout_constraintEnd_toStartOf="@id/all_apps_mini_9"/>
+
+ <View
+ android:id="@+id/all_apps_mini_9"
+ android:layout_width="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:layout_height="@dimen/gesture_tutorial_taskbar_all_apps_mini_size"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
+
+ app:layout_constraintTop_toBottomOf="@id/all_apps_mini_6"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@id/all_apps_mini_8"
+ app:layout_constraintEnd_toEndOf="parent"/>
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <!-- App icons -->
+ <View
android:id="@+id/taskbar_icon_1"
android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
- android:layout_marginStart="@dimen/gesture_tutorial_taskbar_padding_start_end"
+ android:layout_marginStart="@dimen/taskbar_icon_spacing"
+ android:layout_marginEnd="@dimen/taskbar_icon_spacing"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
- app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintStart_toEndOf="@id/taskbar_all_apps"
app:layout_constraintEnd_toStartOf="@id/taskbar_icon_2"/>
- <androidx.cardview.widget.CardView
+ <View
android:id="@+id/taskbar_icon_2"
android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_marginStart="@dimen/taskbar_icon_spacing"
+ android:layout_marginEnd="@dimen/taskbar_icon_spacing"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
- app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/taskbar_icon_1"
app:layout_constraintEnd_toStartOf="@id/taskbar_icon_3"/>
- <androidx.cardview.widget.CardView
+ <View
android:id="@+id/taskbar_icon_3"
android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_marginStart="@dimen/taskbar_icon_spacing"
+ android:layout_marginEnd="@dimen/taskbar_icon_spacing"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_3"
- app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/taskbar_icon_2"
app:layout_constraintEnd_toStartOf="@id/taskbar_icon_4"/>
- <androidx.cardview.widget.CardView
+ <View
android:id="@+id/taskbar_icon_4"
android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_marginStart="@dimen/taskbar_icon_spacing"
+ android:layout_marginEnd="@dimen/taskbar_icon_spacing"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_1"
- app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/taskbar_icon_3"
app:layout_constraintEnd_toStartOf="@id/taskbar_icon_5"/>
- <androidx.cardview.widget.CardView
+ <View
android:id="@+id/taskbar_icon_5"
android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
+ android:layout_marginStart="@dimen/taskbar_icon_spacing"
+ android:background="@drawable/mock_app_icon"
+ android:clipToOutline="true"
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_4"
- app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/taskbar_icon_4"
- app:layout_constraintEnd_toStartOf="@id/taskbar_icon_6"/>
-
- <androidx.cardview.widget.CardView
- android:id="@+id/taskbar_icon_6"
- android:layout_width="@dimen/gesture_tutorial_taskbar_icon_size"
- android:layout_height="@dimen/gesture_tutorial_taskbar_icon_size"
- android:layout_marginEnd="@dimen/gesture_tutorial_taskbar_padding_start_end"
-
- app:cardElevation="0dp"
- app:cardCornerRadius="@dimen/gesture_tutorial_taskbar_icon_corner_radius"
- app:cardBackgroundColor="@color/mock_app_icon_2"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/taskbar_icon_5"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/quickstep/res/layout/redesigned_gesture_tutorial_fragment.xml b/quickstep/res/layout/redesigned_gesture_tutorial_fragment.xml
new file mode 100644
index 0000000..13b7238
--- /dev/null
+++ b/quickstep/res/layout/redesigned_gesture_tutorial_fragment.xml
@@ -0,0 +1,244 @@
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<com.android.quickstep.interaction.RootSandboxLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:clipChildren="false">
+
+ <RelativeLayout
+ android:id="@+id/gesture_tutorial_fake_launcher_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:id="@+id/gesture_tutorial_fake_hotseat_view"
+ android:layout_width="@dimen/gesture_tutorial_hotseat_width"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_height" />
+
+ </RelativeLayout>
+
+ <com.android.launcher3.views.ClipIconView
+ android:id="@+id/gesture_tutorial_fake_icon_view"
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:visibility="invisible" />
+
+ <com.android.quickstep.interaction.AnimatedTaskView
+ android:id="@+id/gesture_tutorial_fake_previous_task_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleX="0.98"
+ android:scaleY="0.98"
+ android:visibility="invisible">
+
+ <View
+ android:id="@+id/full_task_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="invisible"
+
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/top_task_view"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_marginBottom="@dimen/gesture_tutorial_multi_row_task_view_spacing"
+ android:visibility="invisible"
+
+ app:cardCornerRadius="@dimen/gesture_tutorial_small_task_view_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintBottom_toTopOf="@id/bottom_task_view"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@id/full_task_view"
+ app:layout_constraintVertical_chainStyle="spread" />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/bottom_task_view"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:visibility="invisible"
+
+ app:cardCornerRadius="@dimen/gesture_tutorial_small_task_view_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintBottom_toBottomOf="@id/full_task_view"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/top_task_view" />
+
+ </com.android.quickstep.interaction.AnimatedTaskView>
+
+ <FrameLayout
+ android:id="@+id/gesture_tutorial_fake_task_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+ <View
+ android:id="@+id/gesture_tutorial_ripple_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/gesture_tutorial_ripple" />
+
+ <include
+ layout="@layout/gesture_tutorial_tablet_mock_taskbar"
+ android:id="@+id/gesture_tutorial_fake_taskbar_view"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/gesture_tutorial_mock_taskbar_height"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentEnd="true" />
+
+ <ImageView
+ android:id="@+id/gesture_tutorial_edge_gesture_video"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:scaleType="fitXY"
+ android:visibility="gone" />
+
+ <RelativeLayout
+ android:id="@+id/full_gesture_demonstration"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/gesture_demonstration_animations"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:scaleType="centerCrop"
+ app:lottie_loop="true" />
+
+ </RelativeLayout>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/gesture_tutorial_fragment_feedback_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
+ android:layout_centerHorizontal="true"
+ android:background="@android:color/transparent"
+ android:paddingEnd="24dp"
+ android:paddingStart="24dp"
+ android:paddingTop="24dp">
+
+ <TextView
+ android:id="@+id/gesture_tutorial_fragment_feedback_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="104dp"
+ android:accessibilityHeading="true"
+ android:gravity="top"
+ android:lineSpacingExtra="-1sp"
+ android:textAppearance="@style/TextAppearance.GestureTutorial.MainTitle"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/gesture_tutorial_fragment_feedback_subtitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="1dp"
+ android:layout_marginTop="24dp"
+ android:lineSpacingExtra="4sp"
+ android:textAppearance="@style/TextAppearance.GestureTutorial.MainSubtitle"
+
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_fragment_feedback_title" />
+
+ <com.android.quickstep.interaction.TutorialStepIndicator
+ android:id="@+id/gesture_tutorial_fragment_feedback_tutorial_step"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+
+ app:layout_constraintBottom_toBottomOf="@id/gesture_tutorial_fragment_action_button"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <Button
+ android:id="@+id/gesture_tutorial_fragment_close_button"
+ style="@style/TextAppearance.GestureTutorial.Feedback.Subtext"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="32dp"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:paddingBottom="16dp"
+ android:paddingTop="16dp"
+ android:text="@string/gesture_tutorial_action_button_label_skip"
+ android:visibility="gone"
+
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_fragment_feedback_subtitle" />
+
+ <ImageView
+ android:id="@+id/gesture_tutorial_checkbox_bg"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="48dp"
+ android:layout_marginTop="100dp"
+ android:background="@drawable/gesture_tutorial_complete_checkmark_bg"
+ android:visibility="gone"
+ app:layout_constraintBottom_toBottomOf="@id/gesture_tutorial_fragment_action_button"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_fragment_feedback_subtitle" />
+
+ <ImageView
+ android:id="@+id/gesture_tutorial_checkbox"
+ android:layout_width="124dp"
+ android:layout_height="124dp"
+ android:background="@drawable/gesture_tutorial_complete_checkmark"
+ android:visibility="gone"
+ app:layout_constraintBottom_toBottomOf="@id/gesture_tutorial_checkbox_bg"
+ app:layout_constraintEnd_toEndOf="@id/gesture_tutorial_checkbox_bg"
+ app:layout_constraintStart_toStartOf="@id/gesture_tutorial_checkbox_bg"
+ app:layout_constraintTop_toTopOf="@id/gesture_tutorial_checkbox_bg" />
+
+ <Button
+ android:id="@+id/gesture_tutorial_fragment_action_button"
+ style="@style/TextAppearance.GestureTutorial.ButtonLabel"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="48dp"
+ android:background="@drawable/gesture_tutorial_action_button_background"
+ android:stateListAnimator="@null"
+ android:text="@string/gesture_tutorial_action_button_label"
+ android:visibility="gone"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_checkbox_bg" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <ImageView
+ android:id="@+id/gesture_tutorial_finger_dot"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:src="@drawable/gesture_tutorial_finger_dot"
+ android:visibility="gone" />
+
+</com.android.quickstep.interaction.RootSandboxLayout>
\ No newline at end of file
diff --git a/quickstep/res/layout/redesigned_gesture_tutorial_mock_hotseat.xml b/quickstep/res/layout/redesigned_gesture_tutorial_mock_hotseat.xml
new file mode 100644
index 0000000..6d9ffae
--- /dev/null
+++ b/quickstep/res/layout/redesigned_gesture_tutorial_mock_hotseat.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="70dp"
+ android:paddingStart="26dp"
+ android:paddingEnd="26dp"
+ android:background="@color/gesture_home_tutorial_swipe_up_rect">
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/hotseat_icon_1"
+ android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
+
+ app:cardBackgroundColor="@color/gesture_home_tutorial_background"
+ app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toStartOf="@id/hotseat_icon_2"
+ app:layout_constraintHorizontal_chainStyle="spread_inside"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/hotseat_icon_2"
+ android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
+
+ app:cardBackgroundColor="@color/gesture_home_tutorial_background"
+ app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toStartOf="@id/hotseat_icon_3"
+ app:layout_constraintStart_toEndOf="@id/hotseat_icon_1"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/hotseat_icon_3"
+ android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
+
+ app:cardBackgroundColor="@color/gesture_home_tutorial_background"
+ app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toStartOf="@id/hotseat_icon_4"
+ app:layout_constraintStart_toEndOf="@id/hotseat_icon_2"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/hotseat_icon_4"
+ android:layout_width="@dimen/gesture_tutorial_hotseat_icon_size"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_icon_size"
+
+ app:cardBackgroundColor="@color/gesture_home_tutorial_background"
+ app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_icon_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/hotseat_icon_3"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.cardview.widget.CardView
+ android:layout_width="0dp"
+ android:layout_height="@dimen/gesture_tutorial_hotseat_search_height"
+ android:layout_marginTop="@dimen/gesture_tutorial_hotseat_icon_search_margin"
+
+ app:cardBackgroundColor="@color/gesture_home_tutorial_background"
+ app:cardCornerRadius="@dimen/gesture_tutorial_hotseat_search_corner_radius"
+ app:cardElevation="0dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/hotseat_icon_1" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/quickstep/res/layout/swipe_up_gesture_tutorial_shape.xml b/quickstep/res/layout/swipe_up_gesture_tutorial_shape.xml
new file mode 100644
index 0000000..3575e4d
--- /dev/null
+++ b/quickstep/res/layout/swipe_up_gesture_tutorial_shape.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<View
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/swipe_up_gesture_tutorial_shape"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/gesture_home_tutorial_background" />
diff --git a/quickstep/res/layout/taskbar_edu_features.xml b/quickstep/res/layout/taskbar_edu_features.xml
new file mode 100644
index 0000000..ed8cfb1
--- /dev/null
+++ b/quickstep/res/layout/taskbar_edu_features.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <TextView
+ android:id="@+id/title"
+ style="@style/TextAppearance.TaskbarEduTooltip.Title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/taskbar_edu_features"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/splitscreen_animation"
+ android:layout_width="@dimen/taskbar_edu_features_lottie_width"
+ android:layout_height="@dimen/taskbar_edu_features_lottie_height"
+ android:layout_marginTop="@dimen/taskbar_edu_tooltip_vertical_margin"
+ android:scaleType="centerCrop"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:lottie_autoPlay="true"
+ app:lottie_loop="true"
+ app:lottie_rawRes="@raw/taskbar_edu_splitscreen" />
+
+ <TextView
+ android:id="@+id/splitscreen_text"
+ style="@style/TextAppearance.TaskbarEduTooltip.Subtext"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/taskbar_edu_splitscreen"
+ app:layout_constraintEnd_toEndOf="@id/splitscreen_animation"
+ app:layout_constraintStart_toStartOf="@id/splitscreen_animation"
+ app:layout_constraintTop_toBottomOf="@id/splitscreen_animation" />
+
+ <androidx.constraintlayout.widget.Group
+ android:id="@+id/settings_edu"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:constraint_referenced_ids="settings_animation,settings_text" />
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/settings_animation"
+ android:layout_width="@dimen/taskbar_edu_features_lottie_width"
+ android:layout_height="@dimen/taskbar_edu_features_lottie_height"
+ android:layout_marginStart="@dimen/taskbar_edu_features_horizontal_spacing"
+ android:layout_marginTop="@dimen/taskbar_edu_tooltip_vertical_margin"
+ android:scaleType="centerCrop"
+ app:layout_constraintStart_toEndOf="@id/splitscreen_animation"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:lottie_autoPlay="true"
+ app:lottie_loop="true"
+ app:lottie_rawRes="@raw/taskbar_edu_settings" />
+
+ <TextView
+ android:id="@+id/settings_text"
+ style="@style/TextAppearance.TaskbarEduTooltip.Subtext"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/taskbar_edu_settings_persistent"
+ app:layout_constraintEnd_toEndOf="@id/settings_animation"
+ app:layout_constraintStart_toStartOf="@id/settings_animation"
+ app:layout_constraintTop_toBottomOf="@id/settings_animation" />
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/suggestions_animation"
+ android:layout_width="@dimen/taskbar_edu_features_lottie_width"
+ android:layout_height="@dimen/taskbar_edu_features_lottie_height"
+ android:layout_marginStart="@dimen/taskbar_edu_features_horizontal_spacing"
+ android:layout_marginTop="@dimen/taskbar_edu_tooltip_vertical_margin"
+ android:scaleType="centerCrop"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/settings_animation"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:lottie_autoPlay="true"
+ app:lottie_loop="true"
+ app:lottie_rawRes="@raw/taskbar_edu_suggestions" />
+
+ <TextView
+ android:id="@+id/suggestions_text"
+ style="@style/TextAppearance.TaskbarEduTooltip.Subtext"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/taskbar_edu_suggestions"
+ app:layout_constraintEnd_toEndOf="@id/suggestions_animation"
+ app:layout_constraintStart_toStartOf="@id/suggestions_animation"
+ app:layout_constraintTop_toBottomOf="@id/suggestions_animation" />
+
+ <androidx.constraintlayout.widget.Barrier
+ android:id="@+id/edu_barrier_bottom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:barrierDirection="bottom"
+ app:constraint_referenced_ids="splitscreen_text,settings_text,suggestions_text" />
+
+ <Button
+ android:id="@+id/done_button"
+ style="@style/TaskbarEdu.Button.Next"
+ android:layout_width="wrap_content"
+ android:layout_height="36dp"
+ android:layout_marginTop="32dp"
+ android:text="@string/taskbar_edu_done"
+ android:textColor="?androidprv:attr/textColorOnAccent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/edu_barrier_bottom" />
+</merge>
\ No newline at end of file
diff --git a/quickstep/res/layout/taskbar_edu_swipe.xml b/quickstep/res/layout/taskbar_edu_swipe.xml
new file mode 100644
index 0000000..d8b56b5
--- /dev/null
+++ b/quickstep/res/layout/taskbar_edu_swipe.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <TextView
+ android:id="@+id/title"
+ style="@style/TextAppearance.TaskbarEduTooltip.Title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/taskbar_edu_stashing"
+ app:layout_constraintEnd_toEndOf="@id/swipe_animation"
+ app:layout_constraintStart_toStartOf="@id/swipe_animation"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/swipe_animation"
+ android:layout_width="@dimen/taskbar_edu_swipe_lottie_width"
+ android:layout_height="@dimen/taskbar_edu_swipe_lottie_height"
+ android:layout_marginTop="@dimen/taskbar_edu_tooltip_vertical_margin"
+ android:scaleType="centerCrop"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/title"
+ app:lottie_autoPlay="true"
+ app:lottie_loop="true"
+ app:lottie_rawRes="@raw/taskbar_edu_stashing" />
+
+</merge>
\ No newline at end of file
diff --git a/quickstep/res/layout/taskbar_edu_tooltip.xml b/quickstep/res/layout/taskbar_edu_tooltip.xml
new file mode 100644
index 0000000..29f4956
--- /dev/null
+++ b/quickstep/res/layout/taskbar_edu_tooltip.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<com.android.launcher3.taskbar.TaskbarEduTooltip xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|center"
+ android:layout_marginBottom="16dp"
+ android:clipChildren="false"
+ android:clipToPadding="false"
+ android:fitsSystemWindows="true"
+ android:gravity="center"
+ android:orientation="vertical">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/content"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/bg_taskbar_edu_tooltip"
+ android:elevation="@dimen/taskbar_edu_tooltip_elevation"
+ android:paddingHorizontal="@dimen/taskbar_edu_tooltip_horizontal_margin"
+ android:paddingVertical="@dimen/taskbar_edu_tooltip_vertical_margin" />
+
+ <View
+ android:id="@+id/arrow"
+ android:layout_width="@dimen/popup_arrow_width"
+ android:layout_height="@dimen/popup_arrow_height"
+ android:elevation="@dimen/taskbar_edu_tooltip_elevation" />
+</com.android.launcher3.taskbar.TaskbarEduTooltip>
\ No newline at end of file
diff --git a/quickstep/res/raw/home_gesture_tutorial_animation.json b/quickstep/res/raw/home_gesture_tutorial_animation.json
new file mode 100644
index 0000000..7527209
--- /dev/null
+++ b/quickstep/res/raw/home_gesture_tutorial_animation.json
@@ -0,0 +1 @@
+{"v":"5.10.0","fr":60,"ip":0,"op":1301,"w":412,"h":892,"nm":"Part01_ThumbDemo_V01","ddd":1,"assets":[{"id":"comp_0","nm":"Part02_Charade_Loop_V01","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Secondary Y Movement","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":206,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[807.709]},{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":185.334,"s":[814.909]},{"t":197,"s":[807.709]}],"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":5,"nm":"Void","np":20,"mn":"Pseudo/289611","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/289611-0001","ix":1,"v":{"a":0,"k":100,"ix":1}},{"ty":0,"nm":"Height","mn":"Pseudo/289611-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset X","mn":"Pseudo/289611-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/289611-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":6,"nm":"About","mn":"Pseudo/289611-0005","ix":5,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/289611-0006","ix":6,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0007","ix":7,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/289611-0008","ix":8,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0009","ix":9,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/289611-0010","ix":10,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0011","ix":11,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/289611-0012","ix":12,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0013","ix":13,"v":0},{"ty":6,"nm":"Void - 1.0.0","mn":"Pseudo/289611-0014","ix":14,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0015","ix":15,"v":0},{"ty":6,"nm":"© 2022 Battle Axe Inc","mn":"Pseudo/289611-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0017","ix":17,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0018","ix":18,"v":0}]}],"ip":0,"op":612,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"MASTER Y POSITION","parent":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":0,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":111,"s":[-52.709]},{"i":{"x":[0.426],"y":[0.515]},"o":{"x":[0.48],"y":[0.04]},"t":145,"s":[-97.709]},{"i":{"x":[0.404],"y":[1]},"o":{"x":[0.654],"y":[-0.5]},"t":163,"s":[-103.709]},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":183,"s":[-92.709]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":189.666,"s":[-50.709]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.52],"y":[0]},"t":223,"s":[12.291]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":254,"s":[-7.709]},{"i":{"x":[0.8],"y":[0.764]},"o":{"x":[0.3],"y":[0]},"t":263,"s":[-7.709]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":273,"s":[64.291]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.78],"y":[0]},"t":288,"s":[46.291]},{"i":{"x":[0.8],"y":[0.528]},"o":{"x":[0.3],"y":[0]},"t":290,"s":[46.291]},{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.18],"y":[1]},"t":300,"s":[64.291]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":329,"s":[-7.709]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.52],"y":[0]},"t":340,"s":[-7.709]},{"i":{"x":[0.428],"y":[1]},"o":{"x":[0.681],"y":[0]},"t":380,"s":[-261.709]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":435,"s":[-71.709]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.52],"y":[0]},"t":439,"s":[-71.709]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":479,"s":[-261.709]},{"i":{"x":[0.473],"y":[1.533]},"o":{"x":[0.63],"y":[0]},"t":488,"s":[-261.709]},{"i":{"x":[0.105],"y":[1]},"o":{"x":[0.497],"y":[-0.207]},"t":551,"s":[-157.709]},{"t":611,"s":[62.291]}],"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":5,"nm":"Void","np":20,"mn":"Pseudo/289611","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/289611-0001","ix":1,"v":{"a":0,"k":100,"ix":1}},{"ty":0,"nm":"Height","mn":"Pseudo/289611-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset X","mn":"Pseudo/289611-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/289611-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":6,"nm":"About","mn":"Pseudo/289611-0005","ix":5,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/289611-0006","ix":6,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0007","ix":7,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/289611-0008","ix":8,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0009","ix":9,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/289611-0010","ix":10,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0011","ix":11,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/289611-0012","ix":12,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0013","ix":13,"v":0},{"ty":6,"nm":"Void - 1.0.0","mn":"Pseudo/289611-0014","ix":14,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0015","ix":15,"v":0},{"ty":6,"nm":"© 2022 Battle Axe Inc","mn":"Pseudo/289611-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0017","ix":17,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0018","ix":18,"v":0}]}],"ip":0,"op":612,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Gesture Flash","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":205,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":217,"s":[100]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":229,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":241,"s":[100]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":253,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":307,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":319,"s":[100]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":331,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":343,"s":[100]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":355,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":409,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":421,"s":[100]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":433,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":445,"s":[100]},{"t":457,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1429,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":0,"k":581,"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":0,"k":90,"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":0,"k":90,"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":1499,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607844949,0.341176480055,0.780392169952,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":1499,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":205,"op":457,"st":-60,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Part03_Demonstration_Loop_V01","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,446,0],"ix":2,"l":2},"a":{"a":0,"k":[206,446,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":412,"h":892,"ip":611,"op":1026,"st":611,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Pill - Closing","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":694,"s":[100]},{"t":700,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.12,"y":1},"o":{"x":0.167,"y":0.108},"t":571,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":610,"s":[0,-10.9,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.44,"y":0},"t":551,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[55.625,-40.25]],"c":false}]},{"i":{"x":0.12,"y":1},"o":{"x":0.167,"y":0.167},"t":571,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-36.75]],"c":false}]},{"t":610,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.83],"y":[0.83]},"o":{"x":[0.44],"y":[0]},"t":551,"s":[54]},{"t":571,"s":[58]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0]},{"t":163,"s":[90]}],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[55.625,-40.25]],"c":false}],"t":551,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[55.461,-40.238]],"c":false}],"t":552,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[54.979,-40.201]],"c":false}],"t":553,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[54.191,-40.142]],"c":false}],"t":554,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[53.112,-40.06]],"c":false}],"t":555,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[51.754,-39.958]],"c":false}],"t":556,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[50.13,-39.835]],"c":false}],"t":557,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[48.251,-39.693]],"c":false}],"t":558,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[46.13,-39.533]],"c":false}],"t":559,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[43.779,-39.356]],"c":false}],"t":560,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[41.212,-39.162]],"c":false}],"t":561,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[38.443,-38.953]],"c":false}],"t":562,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[35.488,-38.73]],"c":false}],"t":563,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[32.365,-38.494]],"c":false}],"t":564,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[29.095,-38.248]],"c":false}],"t":565,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[25.705,-37.992]],"c":false}],"t":566,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[22.232,-37.73]],"c":false}],"t":567,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[18.728,-37.465]],"c":false}],"t":568,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[15.275,-37.205]],"c":false}],"t":569,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[12.014,-36.959]],"c":false}],"t":570,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-36.75]],"c":false}],"t":571,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-36.245]],"c":false}],"t":572,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-35.487]],"c":false}],"t":573,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-34.479]],"c":false}],"t":574,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-33.307]],"c":false}],"t":575,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-32.102]],"c":false}],"t":576,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-30.966]],"c":false}],"t":577,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-29.94]],"c":false}],"t":578,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-29.029]],"c":false}],"t":579,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-28.223]],"c":false}],"t":580,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-27.508]],"c":false}],"t":581,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-26.872]],"c":false}],"t":582,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-26.304]],"c":false}],"t":583,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-25.794]],"c":false}],"t":584,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-25.335]],"c":false}],"t":585,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-24.92]],"c":false}],"t":586,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-24.545]],"c":false}],"t":587,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-24.205]],"c":false}],"t":588,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-23.896]],"c":false}],"t":589,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-23.615]],"c":false}],"t":590,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-23.36]],"c":false}],"t":591,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-23.129]],"c":false}],"t":592,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.918]],"c":false}],"t":593,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.728]],"c":false}],"t":594,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.555]],"c":false}],"t":595,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.4]],"c":false}],"t":596,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.26]],"c":false}],"t":597,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.135]],"c":false}],"t":598,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-22.023]],"c":false}],"t":599,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.924]],"c":false}],"t":600,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.837]],"c":false}],"t":601,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.762]],"c":false}],"t":602,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.697]],"c":false}],"t":603,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.642]],"c":false}],"t":604,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.597]],"c":false}],"t":605,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.561]],"c":false}],"t":606,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.534]],"c":false}],"t":607,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[9.25,-21.5],[9.25,-21.515]],"c":false}],"t":608,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"k":[{"s":[54.014],"t":552,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.056],"t":553,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.123],"t":554,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.216],"t":555,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.333],"t":556,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.474],"t":557,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.636],"t":558,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.819],"t":559,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[55.022],"t":560,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[55.244],"t":561,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[55.483],"t":562,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[55.738],"t":563,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.008],"t":564,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.291],"t":565,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.584],"t":566,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.883],"t":567,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[57.185],"t":568,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[57.482],"t":569,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[57.763],"t":570,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58],"t":571,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,-100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":163,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.44,"y":0},"t":551,"s":[{"i":[[6.167,-3.179],[-15.352,0],[5.008,2.581]],"o":[[-5.59,2.881],[13.869,0],[-6.167,-3.179]],"v":[[-9.526,-79.571],[0.604,-100.669],[9.867,-79.571]],"c":true}]},{"t":571,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.895,-79.571],[0.709,-100.669],[11.321,-79.571]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,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":1,"k":[{"i":{"x":0.765,"y":0.675},"o":{"x":0.399,"y":0},"t":551,"s":[0,139],"to":[0,0],"ti":[0,0]},{"i":{"x":0.24,"y":1},"o":{"x":0.4,"y":0.441},"t":569,"s":[0,101],"to":[0,0],"ti":[0,0]},{"t":572,"s":[0,93]}],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":551,"op":611,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Pill Shape - Horizontal Flip","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":139,"s":[100]},{"t":150,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-40.125]],"c":false}],"t":340,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.033,-21.75],[-55.984,-40.016]],"c":false}],"t":341,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-7.198,-21.75],[-50.169,-39.599]],"c":false}],"t":342,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5.356,-21.75],[-37.325,-38.678]],"c":false}],"t":343,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.425,-21.75],[-16.892,-37.213]],"c":false}],"t":344,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.467,-21.75],[3.272,-35.766]],"c":false}],"t":345,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.584,-21.75],[18.031,-34.708]],"c":false}],"t":346,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[4.048,-21.75],[28.237,-33.976]],"c":false}],"t":347,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[5.064,-21.75],[35.32,-33.468]],"c":false}],"t":348,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[5.767,-21.75],[40.22,-33.116]],"c":false}],"t":349,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.241,-21.75],[43.523,-32.88]],"c":false}],"t":350,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.54,-21.75],[45.607,-32.73]],"c":false}],"t":351,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.701,-21.75],[46.73,-32.65]],"c":false}],"t":352,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[47.072,-32.625]],"c":false}],"t":353,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[49.587,-33.707]],"c":false}],"t":354,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[54.144,-35.668]],"c":false}],"t":355,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[57.197,-36.982]],"c":false}],"t":356,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[59.162,-37.828]],"c":false}],"t":357,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[60.549,-38.425]],"c":false}],"t":358,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[61.581,-38.869]],"c":false}],"t":359,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[62.369,-39.208]],"c":false}],"t":360,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[62.978,-39.47]],"c":false}],"t":361,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[63.45,-39.673]],"c":false}],"t":362,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[63.811,-39.829]],"c":false}],"t":363,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[64.082,-39.945]],"c":false}],"t":364,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[64.276,-40.028]],"c":false}],"t":365,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[64.405,-40.084]],"c":false}],"t":366,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[64.477,-40.115]],"c":false}],"t":367,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":54,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,-100],"ix":3},"r":{"a":0,"k":90,"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":"Left","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":340,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-40.125]],"c":false}]},{"i":{"x":0.01,"y":1},"o":{"x":0.167,"y":0.167},"t":353,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[47.072,-32.625]],"c":false}]},{"t":368,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6.75,-21.75],[64.5,-40.125]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":54,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"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":"Right","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":345,"op":366,"st":139,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Pill Shape - Spin","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-55.625,-45.75]],"c":false}],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-55.725,-44.786]],"c":false}],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-55.906,-43.051]],"c":false}],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.119,-41.012]],"c":false}],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.349,-38.801]],"c":false}],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.591,-36.476]],"c":false}],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.841,-34.073]],"c":false}],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.097,-31.615]],"c":false}],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.357,-29.121]],"c":false}],"t":212,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.618,-26.612]],"c":false}],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.878,-24.121]],"c":false}],"t":214,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-58.125,-21.75]],"c":false}],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-58.021,-24.795]],"c":false}],"t":216,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.846,-29.943]],"c":false}],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.74,-33.077]],"c":false}],"t":218,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.672,-35.065]],"c":false}],"t":219,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.625,-36.457]],"c":false}],"t":220,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.59,-37.483]],"c":false}],"t":221,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.564,-38.258]],"c":false}],"t":222,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.543,-38.847]],"c":false}],"t":223,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.528,-39.292]],"c":false}],"t":224,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.517,-39.621]],"c":false}],"t":225,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.509,-39.856]],"c":false}],"t":226,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.504,-40.011]],"c":false}],"t":227,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.501,-40.098]],"c":false}],"t":228,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-40.125]],"c":false}],"t":229,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-40.048]],"c":false}],"t":230,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-39.825]],"c":false}],"t":231,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-39.469]],"c":false}],"t":232,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-38.991]],"c":false}],"t":233,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-38.401]],"c":false}],"t":234,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-37.708]],"c":false}],"t":235,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-36.919]],"c":false}],"t":236,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-36.042]],"c":false}],"t":237,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-35.084]],"c":false}],"t":238,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-34.051]],"c":false}],"t":239,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-32.951]],"c":false}],"t":240,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-31.79]],"c":false}],"t":241,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-30.576]],"c":false}],"t":242,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-29.316]],"c":false}],"t":243,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-28.021]],"c":false}],"t":244,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-26.701]],"c":false}],"t":245,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-25.375]],"c":false}],"t":246,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-24.067]],"c":false}],"t":247,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-22.825]],"c":false}],"t":248,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-21.75]],"c":false}],"t":249,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.38,-24.323]],"c":false}],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.199,-28.188]],"c":false}],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.031,-31.777]],"c":false}],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.898,-34.618]],"c":false}],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.795,-36.811]],"c":false}],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.716,-38.509]],"c":false}],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.654,-39.829]],"c":false}],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.606,-40.851]],"c":false}],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.57,-41.634]],"c":false}],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.542,-42.22]],"c":false}],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.523,-42.64]],"c":false}],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.51,-42.919]],"c":false}],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.502,-43.076]],"c":false}],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.5,-43.125]],"c":false}],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":54,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,-100],"ix":3},"r":{"a":0,"k":90,"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":"Left","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.17,"y":0},"t":204,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-55.625,-45.75]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":215,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-58.125,-21.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.4,"y":0},"t":229,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-40.125]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":249,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-57.5,-21.75]],"c":false}]},{"t":263,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.25,-21.75],[-56.5,-43.125]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":54,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"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":"Right","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.17,"y":0},"t":204,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.895,10.429],[0.709,-10.669],[11.321,10.429]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":215,"s":[{"i":[[4.884,-3.179],[-12.16,0],[3.966,2.581]],"o":[[-4.427,2.881],[10.985,0],[-4.884,-3.179]],"v":[[-7.577,14.554],[0.447,-6.544],[7.784,14.554]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.4,"y":0},"t":229,"s":[{"i":[[5.367,-3.179],[-13.36,0],[4.358,2.581]],"o":[[-4.864,2.881],[12.069,0],[-5.367,-3.179]],"v":[[-8.36,13.429],[0.455,-7.669],[8.517,13.429]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":249,"s":[{"i":[[6.067,-3.179],[-15.103,0],[4.926,2.581]],"o":[[-5.499,2.881],[13.644,0],[-6.067,-3.179]],"v":[[-9.38,13.554],[0.585,-7.544],[9.699,13.554]],"c":true}]},{"t":257,"s":[{"i":[[6.067,-3.179],[-15.103,0],[4.926,2.581]],"o":[[-5.499,2.881],[13.644,0],[-6.067,-3.179]],"v":[[-9.38,13.554],[0.585,-7.544],[9.699,13.554]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,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,-90],"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":"Round Bottom","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":204,"op":257,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Matte for Text","parent":2,"td":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":694,"s":[100]},{"t":700,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[35,-21.75],[-35,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":18,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]},{"i":{"x":0.98,"y":0},"o":{"x":0.3,"y":0},"t":115,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.03,"y":1},"t":120,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[29.665,-21.75],[-29.665,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":145,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":157,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":163,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":169,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.643,-21.893],[-35.357,-21.893]],"c":false}]},{"t":183,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.75,-21.75],[-47.75,-37]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":115,"s":[52]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":120,"s":[50.4]},{"i":{"x":[0.52],"y":[0.96]},"o":{"x":[0.48],"y":[0.04]},"t":145,"s":[48]},{"t":163,"s":[64]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0]},{"t":163,"s":[90]}],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":163,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":169,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.643,-21.893],[-35.357,-21.893]],"c":false}]},{"t":183,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.75,-21.75],[-47.75,-7.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":64,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":163,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":173,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Swipe up Outlines","parent":10,"tt":1,"tp":8,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[100]},{"t":120,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-17,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.771,0],[-0.481,0.201],[-0.308,0.416],[0,0.613],[0.433,0.446],[0.797,0.28],[0,0],[0.264,0.215],[0,0.324],[-0.295,0.228],[-0.425,0],[-0.277,-0.228],[-0.087,-0.315],[0,0],[0.485,0.398],[0.806,0],[0.446,-0.228],[0.247,-0.394],[0,-0.464],[-0.42,-0.407],[-0.633,-0.228],[0,0],[-0.286,-0.258],[0,-0.394],[0.325,-0.245],[0.468,0],[0.355,0.333],[0.139,0.525],[0,0],[-0.615,-0.455]],"o":[[0.503,0],[0.481,-0.201],[0.308,-0.416],[0,-0.744],[-0.433,-0.446],[0,0],[-0.555,-0.192],[-0.264,-0.214],[0,-0.35],[0.295,-0.228],[0.442,0],[0.277,0.228],[0,0],[-0.173,-0.499],[-0.485,-0.398],[-0.563,0],[-0.446,0.228],[-0.247,0.394],[0,0.674],[0.42,0.407],[0,0],[0.702,0.245],[0.286,0.258],[0,0.429],[-0.325,0.245],[-0.503,0],[-0.355,-0.333],[0,0],[0.243,0.823],[0.615,0.455]],"v":[[-25.545,0.21],[-24.069,-0.092],[-22.886,-1.018],[-22.425,-2.56],[-23.075,-4.346],[-24.921,-5.436],[-25.519,-5.646],[-26.747,-6.256],[-27.144,-7.064],[-26.702,-7.931],[-25.623,-8.272],[-24.544,-7.931],[-23.998,-7.116],[-22.711,-7.668],[-23.699,-9.014],[-25.636,-9.611],[-27.15,-9.27],[-28.19,-8.338],[-28.561,-7.051],[-27.93,-5.429],[-26.351,-4.477],[-25.766,-4.267],[-24.284,-3.512],[-23.855,-2.534],[-24.342,-1.523],[-25.532,-1.155],[-26.819,-1.654],[-27.56,-2.941],[-28.912,-2.39],[-27.625,-0.473]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"S","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-19.149,0],[-17.693,0],[-16.172,-4.845],[-16.12,-4.845],[-14.586,0],[-13.117,0],[-10.985,-6.696],[-12.48,-6.696],[-13.845,-1.878],[-13.897,-1.878],[-15.392,-6.696],[-16.835,-6.696],[-18.33,-1.878],[-18.382,-1.878],[-19.747,-6.696],[-21.268,-6.696]],"c":true},"ix":2},"nm":"w","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"w","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.26,0],[-0.186,0.188],[0,0.263],[0.186,0.184],[0.26,0],[0.186,-0.184],[0,-0.263],[-0.186,-0.188]],"o":[[0.26,0],[0.186,-0.188],[0,-0.263],[-0.186,-0.184],[-0.26,0],[-0.186,0.184],[0,0.263],[0.186,0.188]],"v":[[-8.671,-7.681],[-8.001,-7.963],[-7.722,-8.64],[-8.001,-9.309],[-8.671,-9.585],[-9.34,-9.309],[-9.62,-8.64],[-9.34,-7.963]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.373,0],[-7.969,0],[-7.969,-6.696],[-9.373,-6.696]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"i","np":5,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.377,-0.214],[-0.477,0],[-0.485,0.302],[-0.277,0.543],[0,0.683],[0.277,0.538],[0.485,0.307],[0.598,0],[0.377,-0.214],[0.191,-0.315],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.191,0.307],[0.377,0.214],[0.598,0],[0.485,-0.302],[0.277,-0.543],[0,-0.683],[-0.277,-0.538],[-0.485,-0.306],[-0.477,0],[-0.377,0.215],[0,0],[0,0],[0,0],[0,0]],"v":[[-5.681,2.836],[-4.277,2.836],[-4.277,0.039],[-4.355,-0.893],[-4.277,-0.893],[-3.425,-0.112],[-2.145,0.21],[-0.52,-0.243],[0.624,-1.51],[1.04,-3.348],[0.624,-5.18],[-0.52,-6.447],[-2.145,-6.906],[-3.425,-6.585],[-4.277,-5.79],[-4.355,-5.79],[-4.355,-6.696],[-5.681,-6.696]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.355,0],[0.308,0.188],[0.186,0.341],[0,0.446],[-0.186,0.341],[-0.308,0.188],[-0.347,0],[-0.308,-0.188],[-0.182,-0.341],[0,-0.446],[0.182,-0.341],[0.308,-0.188]],"o":[[-0.347,0],[-0.308,-0.188],[-0.186,-0.341],[0,-0.446],[0.186,-0.341],[0.308,-0.188],[0.355,0],[0.308,0.188],[0.182,0.341],[0,0.446],[-0.182,0.341],[-0.308,0.188]],"v":[[-2.353,-1.09],[-3.334,-1.372],[-4.075,-2.166],[-4.355,-3.348],[-4.075,-4.53],[-3.334,-5.324],[-2.353,-5.607],[-1.358,-5.324],[-0.624,-4.53],[-0.351,-3.348],[-0.624,-2.166],[-1.358,-1.372]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"p","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.641,0],[-0.503,0.315],[-0.303,0.551],[0,0],[0.303,-0.197],[0.425,0],[0.39,0.346],[0.061,0.639],[0,0],[0,0.175],[0.256,0.517],[0.485,0.293],[0.667,0],[0.503,-0.324],[0.282,-0.547],[0,-0.639],[-0.29,-0.538],[-0.516,-0.306]],"o":[[0.702,0],[0.503,-0.315],[0,0],[-0.182,0.324],[-0.303,0.197],[-0.52,0],[-0.39,-0.346],[0,0],[0.017,-0.122],[0,-0.656],[-0.256,-0.516],[-0.485,-0.293],[-0.633,0],[-0.503,0.324],[-0.282,0.547],[0,0.674],[0.29,0.538],[0.516,0.306]],"v":[[5.954,0.21],[7.761,-0.263],[8.97,-1.562],[7.813,-2.127],[7.085,-1.346],[5.993,-1.05],[4.628,-1.569],[3.952,-3.046],[9.074,-3.046],[9.1,-3.493],[8.717,-5.252],[7.605,-6.467],[5.876,-6.906],[4.173,-6.421],[2.997,-5.114],[2.574,-3.335],[3.01,-1.517],[4.219,-0.249]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.325,0.289],[-0.468,0],[-0.264,-0.162],[-0.139,-0.245],[-0.017,-0.245]],"o":[[0.121,-0.481],[0.325,-0.289],[0.39,0],[0.264,0.162],[0.139,0.245],[0,0]],"v":[[4.03,-4.11],[4.7,-5.265],[5.889,-5.698],[6.871,-5.456],[7.475,-4.845],[7.709,-4.11]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"e","np":5,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.797,0],[-0.381,0.21],[-0.191,0.324],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.143,-0.306],[0.269,-0.184],[0.347,0],[0.251,0.28],[0,0.543],[0,0],[0,0],[0,0],[-0.42,-0.486]],"o":[[0.442,0],[0.381,-0.21],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.359],[-0.143,0.307],[-0.269,0.184],[-0.425,0],[-0.251,-0.28],[0,0],[0,0],[0,0],[0,0.867],[0.42,0.486]],"v":[[17.03,0.21],[18.265,-0.105],[19.123,-0.906],[19.201,-0.906],[19.201,0],[20.514,0],[20.514,-6.696],[19.123,-6.696],[19.123,-3.099],[18.909,-2.101],[18.291,-1.366],[17.368,-1.09],[16.354,-1.51],[15.977,-2.744],[15.977,-6.696],[14.573,-6.696],[14.573,-2.547],[15.204,-0.519]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"u","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.377,-0.214],[-0.477,0],[-0.485,0.302],[-0.277,0.543],[0,0.683],[0.277,0.538],[0.485,0.307],[0.598,0],[0.377,-0.214],[0.191,-0.315],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.191,0.307],[0.377,0.214],[0.598,0],[0.485,-0.302],[0.277,-0.543],[0,-0.683],[-0.277,-0.538],[-0.485,-0.306],[-0.477,0],[-0.377,0.215],[0,0],[0,0],[0,0],[0,0]],"v":[[22.711,2.836],[24.115,2.836],[24.115,0.039],[24.037,-0.893],[24.115,-0.893],[24.967,-0.112],[26.247,0.21],[27.872,-0.243],[29.016,-1.51],[29.432,-3.348],[29.016,-5.18],[27.872,-6.447],[26.247,-6.906],[24.967,-6.585],[24.115,-5.79],[24.037,-5.79],[24.037,-6.696],[22.711,-6.696]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.355,0],[0.308,0.188],[0.186,0.341],[0,0.446],[-0.186,0.341],[-0.308,0.188],[-0.347,0],[-0.308,-0.188],[-0.182,-0.341],[0,-0.446],[0.182,-0.341],[0.308,-0.188]],"o":[[-0.347,0],[-0.308,-0.188],[-0.186,-0.341],[0,-0.446],[0.186,-0.341],[0.308,-0.188],[0.355,0],[0.308,0.188],[0.182,0.341],[0,0.446],[-0.182,0.341],[-0.308,0.188]],"v":[[26.039,-1.09],[25.058,-1.372],[24.317,-2.166],[24.037,-3.348],[24.317,-4.53],[25.058,-5.324],[26.039,-5.607],[27.034,-5.324],[27.768,-4.53],[28.041,-3.348],[27.768,-2.166],[27.034,-1.372]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"p","np":5,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Pill Shape - Opening","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":694,"s":[100]},{"t":700,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[35,-21.75],[-35,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":18,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]},{"i":{"x":0.98,"y":0},"o":{"x":0.3,"y":0},"t":115,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.03,"y":1},"t":120,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[29.665,-21.75],[-29.665,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":145,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":157,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":163,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":169,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.643,-21.893],[-35.357,-21.893]],"c":false}]},{"t":183,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.75,-21.75],[-47.75,-37]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":115,"s":[52]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":120,"s":[50.4]},{"i":{"x":[0.52],"y":[0.96]},"o":{"x":[0.48],"y":[0.04]},"t":145,"s":[48]},{"t":163,"s":[64]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0]},{"t":163,"s":[90]}],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":163,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":169,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.643,-21.893],[-35.357,-21.893]],"c":false}]},{"t":183,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.75,-21.75],[-47.75,-7.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":64,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":163,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":173,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Charade_OPENING","parent":8,"sr":1,"ks":{"o":{"a":1,"k":[{"t":197,"s":[100],"h":1},{"t":207,"s":[0],"h":1},{"t":257,"s":[100],"h":1},{"t":345,"s":[0],"h":1},{"t":366,"s":[100],"h":1},{"t":553,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-280.897,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0.7},"t":172,"s":[{"i":[[4.22,-5.198],[6.889,-2.445],[6.141,2.195],[4.414,5.745],[2.09,6.003],[1.842,5.673],[0,0],[-4.629,7.032],[-3.668,2.338],[-9.176,-4.129],[0,0],[-2.537,1.423],[0,0],[-5.764,-2.348],[-3.35,-5.761],[3.559,-9.527],[0,0],[2.211,-5.388]],"o":[[-4.607,5.675],[-6.146,2.181],[-6.823,-2.438],[-3.873,-5.041],[-1.961,-5.633],[-0.673,-2.074],[-3.418,-8.054],[2.391,-3.632],[7.091,-4.519],[0,0],[2.053,0.611],[0,0],[6.766,-3.045],[6.042,2.461],[4.226,7.269],[0,0],[0,0],[-2.542,6.194]],"v":[[26.625,263.759],[9.088,276.927],[-10.477,276.927],[-27.766,263.755],[-34.35,245.857],[-39.92,228.853],[-41.895,222.617],[-38.621,196.593],[-29.625,187.329],[-2.764,182.988],[-0.678,184.077],[3.537,183.327],[5.123,182.613],[23.746,183.97],[38.891,196.367],[42.816,222.402],[40.88,229.024],[34.705,245.369]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":183,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":185,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":194,"s":[{"i":[[0,0],[5.924,-2.615],[6.267,2.766],[3.263,7.561],[2.981,6.909],[0,0],[0,0],[-4.825,8.784],[-3.668,2.709],[-9.176,-4.785],[0,0],[-7.064,3.683],[0,0],[-5.942,-2.295],[-3.35,-6.676],[4.5,-10.429],[0,0],[2.725,-6.315]],"o":[[-3.262,7.56],[-6.266,2.766],[-5.925,-2.615],[0,0],[-2.981,-6.909],[0,0],[-3.988,-9.246],[2.335,-4.251],[7.091,-5.237],[0,0],[7.064,3.683],[0,0],[6.766,-3.528],[6.387,2.466],[4.226,8.423],[0,0],[0,0],[-3.063,7.1]],"v":[[23.515,261.285],[9.088,276.548],[-10.477,276.549],[-24.906,261.285],[-33.85,240.557],[-42.795,219.829],[-48.707,206.127],[-47.871,176.22],[-38.875,165.486],[-13.389,163.498],[-11.803,164.325],[10.412,164.325],[11.998,163.498],[31.496,162.173],[46.641,176.538],[47.316,206.126],[40.88,221.041],[32.705,239.986]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.61,"y":0},"t":202,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":206,"s":[{"i":[[0,0],[5.829,-2.275],[6.166,2.405],[3.21,6.575],[2.933,6.009],[0,0],[0,0],[-4.747,7.639],[-3.609,2.356],[-9.028,-5.782],[0,0],[-6.95,4.451],[0,0],[-5.847,-1.996],[-3.296,-5.806],[4.428,-9.07],[0,0],[2.681,-5.492]],"o":[[-3.21,6.575],[-6.165,2.406],[-5.83,-2.274],[0,0],[-2.933,-6.009],[0,0],[-3.924,-8.041],[2.297,-3.697],[6.977,-4.554],[0,0],[6.95,4.451],[0,0],[6.657,-4.263],[6.284,2.145],[4.158,7.326],[0,0],[0,0],[-3.014,6.174]],"v":[[23.147,263.139],[8.953,276.413],[-10.297,276.414],[-24.493,263.14],[-31.981,245.113],[-39.468,227.086],[-43.871,215.169],[-44.463,189.161],[-35.612,179.825],[-10.537,178.375],[-8.977,179.374],[7.631,179.374],[9.191,178.375],[28.374,176.944],[43.275,189.437],[42.525,215.169],[37.607,228.14],[30.877,244.617]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":212,"s":[{"i":[[0,0],[5.782,-2.283],[6.116,2.414],[3.184,6.6],[2.91,6.031],[0,0],[0,0],[-4.709,7.668],[-3.58,2.365],[-8.956,-2.881],[0,0],[-6.894,2.218],[0,0],[-5.8,-2.003],[-3.269,-5.828],[4.392,-9.104],[0,0],[2.66,-5.513]],"o":[[-3.184,6.599],[-6.116,2.415],[-5.783,-2.283],[0,0],[-2.91,-6.031],[0,0],[-3.893,-8.071],[2.279,-3.711],[6.921,-4.571],[0,0],[6.894,2.218],[0,0],[6.604,-2.124],[6.234,2.153],[4.125,7.353],[0,0],[0,0],[-2.99,6.198]],"v":[[22.966,262.838],[8.886,276.162],[-10.209,276.162],[-24.29,262.838],[-31.064,244.743],[-37.837,226.649],[-41.5,214.688],[-42.792,188.581],[-34.012,179.21],[-9.139,174.179],[-7.591,174.677],[6.267,174.677],[7.814,174.179],[26.844,176.318],[41.625,188.859],[40.176,214.688],[36.003,227.707],[29.98,244.245]],"c":true}]},{"i":{"x":0.48,"y":1},"o":{"x":0.26,"y":1},"t":256,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,1.445],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,1.445],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[22.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-30.85,245.866],[-37.795,227.978],[-42.707,216.152],[-41.871,190.343],[-32.875,181.079],[-7.389,179.363],[-5.803,180.077],[5.412,180.077],[6.998,179.363],[26.496,178.22],[41.641,190.617],[42.316,216.152],[38.88,229.024],[31.705,245.374]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":263,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0.902,"y":0},"o":{"x":0.3,"y":0},"t":264,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":274,"s":[{"i":[[0,0],[6.002,-2.085],[6.349,2.205],[3.305,6.027],[3.02,5.508],[0,0],[0,0],[-4.888,7.002],[-3.716,2.159],[-9.296,-3.814],[0,0],[-7.157,2.936],[0,0],[-6.02,-1.829],[-3.393,-5.322],[4.559,-8.314],[0,0],[2.761,-5.034]],"o":[[-3.305,6.027],[-6.349,2.205],[-6.003,-2.085],[0,0],[-3.02,-5.508],[0,0],[-4.041,-7.37],[2.366,-3.389],[7.184,-4.175],[0,0],[7.157,2.936],[0,0],[6.855,-2.813],[6.471,1.966],[4.282,6.715],[0,0],[0,0],[-3.104,5.66]],"v":[[23.828,264.941],[9.213,277.109],[-10.609,277.11],[-25.226,264.942],[-34.288,248.418],[-43.349,231.894],[-49.339,220.97],[-48.492,197.13],[-39.379,188.572],[-13.559,186.988],[-11.952,187.647],[10.554,187.647],[12.161,186.988],[31.914,185.931],[47.257,197.383],[47.941,220.97],[41.421,232.86],[33.139,247.963]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.78,"y":0},"t":289,"s":[{"i":[[0,0],[5.924,-2.439],[6.267,2.579],[3.263,7.051],[2.981,6.443],[0,0],[0,0],[-4.825,8.191],[-3.668,2.526],[-9.176,-4.462],[0,0],[-7.064,3.435],[0,0],[-5.942,-2.14],[-3.35,-6.225],[4.5,-9.725],[0,0],[2.725,-5.889]],"o":[[-3.262,7.05],[-6.266,2.58],[-5.925,-2.439],[0,0],[-2.981,-6.443],[0,0],[-3.988,-8.622],[2.335,-3.964],[7.091,-4.884],[0,0],[7.064,3.435],[0,0],[6.766,-3.29],[6.387,2.3],[4.226,7.855],[0,0],[0,0],[-3.063,6.621]],"v":[[23.515,262.501],[9.088,276.734],[-10.477,276.735],[-24.906,262.501],[-33.85,243.171],[-42.795,223.841],[-48.707,211.063],[-47.871,183.174],[-38.875,173.164],[-13.389,171.31],[-11.803,172.081],[10.412,172.081],[11.998,171.31],[31.496,170.074],[46.641,183.471],[47.316,211.063],[40.88,224.972],[32.705,242.639]],"c":true}]},{"i":{"x":0.999,"y":1},"o":{"x":0.4,"y":0},"t":291,"s":[{"i":[[0,0],[5.924,-2.439],[6.267,2.579],[3.263,7.051],[2.981,6.443],[0,0],[0,0],[-4.825,8.191],[-3.668,2.526],[-9.176,-4.462],[0,0],[-7.064,3.435],[0,0],[-5.942,-2.14],[-3.35,-6.225],[4.5,-9.725],[0,0],[2.725,-5.889]],"o":[[-3.262,7.05],[-6.266,2.58],[-5.925,-2.439],[0,0],[-2.981,-6.443],[0,0],[-3.988,-8.622],[2.335,-3.964],[7.091,-4.884],[0,0],[7.064,3.435],[0,0],[6.766,-3.29],[6.387,2.3],[4.226,7.855],[0,0],[0,0],[-3.063,6.621]],"v":[[23.515,262.501],[9.088,276.734],[-10.477,276.735],[-24.906,262.501],[-33.85,243.171],[-42.795,223.841],[-48.707,211.063],[-47.871,183.174],[-38.875,173.164],[-13.389,171.31],[-11.803,172.081],[10.412,172.081],[11.998,171.31],[31.496,170.074],[46.641,183.471],[47.316,211.063],[40.88,224.972],[32.705,242.639]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.884},"t":301,"s":[{"i":[[0,0],[6.002,-2.085],[6.349,2.205],[3.305,6.027],[3.02,5.508],[0,0],[0,0],[-4.888,7.002],[-3.716,2.159],[-9.296,-3.814],[0,0],[-7.157,2.936],[0,0],[-6.02,-1.829],[-3.393,-5.322],[4.559,-8.314],[0,0],[2.761,-5.034]],"o":[[-3.305,6.027],[-6.349,2.205],[-6.003,-2.085],[0,0],[-3.02,-5.508],[0,0],[-4.041,-7.37],[2.366,-3.389],[7.184,-4.175],[0,0],[7.157,2.936],[0,0],[6.855,-2.813],[6.471,1.966],[4.282,6.715],[0,0],[0,0],[-3.104,5.66]],"v":[[23.828,264.941],[9.213,277.109],[-10.609,277.11],[-25.226,264.942],[-34.288,248.418],[-43.349,231.894],[-49.339,220.97],[-48.492,197.13],[-39.379,188.572],[-13.559,186.988],[-11.952,187.647],[10.554,187.647],[12.161,186.988],[31.914,185.931],[47.257,197.383],[47.941,220.97],[41.421,232.86],[33.139,247.963]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":320,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":340,"s":[{"i":[[0,0],[5.924,-2.257],[6.267,2.387],[3.263,6.525],[2.981,5.963],[0,0],[0,0],[-4.825,7.58],[-3.668,2.338],[-9.176,-4.129],[0,0],[-7.064,3.179],[0,0],[-5.942,-1.98],[-3.35,-5.761],[4.5,-9],[0,0],[2.725,-5.45]],"o":[[-3.262,6.524],[-6.266,2.387],[-5.925,-2.257],[0,0],[-2.981,-5.963],[0,0],[-3.988,-7.979],[2.335,-3.669],[7.091,-4.519],[0,0],[7.064,3.179],[0,0],[6.766,-3.045],[6.387,2.129],[4.226,7.269],[0,0],[0,0],[-3.063,6.127]],"v":[[23.515,263.755],[9.088,276.927],[-10.477,276.927],[-24.906,263.755],[-33.85,245.866],[-42.795,227.978],[-48.707,216.152],[-47.871,190.343],[-38.875,181.079],[-13.389,179.363],[-11.803,180.077],[10.412,180.077],[11.998,179.363],[31.496,178.22],[46.641,190.617],[47.316,216.152],[40.88,229.024],[32.705,245.374]],"c":true}]},{"t":345,"s":[{"i":[[0,0],[4.982,-1.843],[5.269,1.949],[2.743,5.327],[2.507,4.868],[0,0],[0,0],[-4.057,6.188],[-3.084,1.909],[-7.716,-3.371],[0,0],[-5.94,2.595],[0,0],[-4.997,-1.617],[-2.817,-4.703],[3.784,-7.348],[0,0],[2.291,-4.449]],"o":[[-2.743,5.326],[-5.269,1.949],[-4.982,-1.842],[0,0],[-2.507,-4.868],[0,0],[-3.354,-6.514],[1.963,-2.995],[5.963,-3.69],[0,0],[5.94,2.595],[0,0],[5.69,-2.486],[5.371,1.738],[3.554,5.935],[0,0],[0,0],[-2.576,5.002]],"v":[[21.328,266.623],[7.572,277.365],[-8.88,277.366],[-21.013,266.612],[-30.158,252.046],[-38.929,237.463],[-42.276,232.155],[-38.901,208.3],[-31.337,200.737],[-7.657,199.329],[-6.324,199.912],[6.078,199.877],[7.412,199.294],[26.437,198.157],[39.172,208.278],[42.466,230.78],[38.179,240.068],[31.18,251.666]],"c":true}],"h":1},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":366,"s":[{"i":[[0,0],[-6.469,2.54],[-6.843,-2.686],[-3.562,-7.344],[-2.238,-6.985],[0,0],[0,0],[6.26,-8],[4.298,-2.248],[9.409,5.544],[0,0],[2.81,-1.732],[0,0],[6.751,1.517],[4.533,6.044],[-3.466,10.58],[0,0],[-1.94,6.445]],"o":[[3.562,-7.343],[6.843,-2.687],[6.47,2.54],[0,0],[2.25,7.021],[0,0],[3.257,9.331],[-3.029,3.872],[-8.309,4.346],[0,0],[-2.38,-1.461],[0,0],[-6.856,4.193],[-7.256,-1.631],[-5.72,-7.626],[0,0],[0,0],[2.154,-7.155]],"v":[[-25.972,255.773],[-10.844,240.983],[10.52,240.983],[26.276,255.808],[31.363,274.998],[37.793,295.9],[41.622,309.746],[42.615,338.568],[31.6,348.034],[3.818,347.339],[2.192,346.381],[-2.497,346.652],[-4.104,347.635],[-23.931,350.481],[-42.288,338.404],[-42.272,310.024],[-38.575,296.317],[-32.279,277.471]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":370,"s":[{"i":[[0,0],[-6.469,2.54],[-6.843,-2.686],[-3.562,-7.344],[-2.238,-6.985],[0,0],[0,0],[6.26,-8],[4.298,-2.248],[9.409,5.544],[0,0],[2.81,-1.732],[0,0],[6.751,1.517],[4.533,6.044],[-3.466,10.58],[0,0],[-1.94,6.445]],"o":[[3.562,-7.343],[6.843,-2.687],[6.47,2.54],[0,0],[2.25,7.021],[0,0],[3.257,9.331],[-3.029,3.872],[-8.309,4.346],[0,0],[-2.38,-1.461],[0,0],[-6.856,4.193],[-7.256,-1.631],[-5.72,-7.626],[0,0],[0,0],[2.154,-7.155]],"v":[[-25.972,255.773],[-10.844,240.983],[10.52,240.983],[26.276,255.808],[31.363,274.998],[37.793,295.9],[41.622,309.746],[42.615,338.568],[31.6,348.034],[3.818,347.339],[2.192,346.381],[-2.497,346.652],[-4.104,347.635],[-23.931,350.481],[-42.288,338.404],[-42.272,310.024],[-38.575,296.317],[-32.279,277.471]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":375,"s":[{"i":[[0,0],[-6.469,2.537],[-6.843,-2.683],[-3.562,-7.334],[-3.256,-6.702],[0,0],[0,0],[5.268,-8.52],[4.005,-2.628],[10.02,4.641],[0,0],[7.713,-3.573],[0,0],[6.489,2.226],[3.658,6.475],[-4.914,10.116],[0,0],[-2.976,6.126]],"o":[[3.562,-7.333],[6.843,-2.683],[6.47,2.537],[0,0],[3.256,6.702],[0,0],[4.355,8.968],[-2.55,4.123],[-7.743,5.08],[0,0],[-7.714,-3.573],[0,0],[-7.388,3.422],[-6.974,-2.392],[-4.615,-8.17],[0,0],[0,0],[3.345,-6.886]],"v":[[-26.597,256.303],[-10.844,241.499],[10.52,241.498],[26.276,256.303],[36.042,276.409],[45.809,296.515],[52.265,309.806],[51.352,338.814],[41.529,349.227],[13.7,351.155],[11.968,350.353],[-12.29,350.353],[-14.021,351.155],[-35.312,352.44],[-51.849,338.506],[-52.586,309.806],[-45.559,295.339],[-36.632,276.963]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":380,"s":[{"i":[[0,0],[-6.469,2.527],[-6.843,-2.672],[-3.562,-7.305],[-2.238,-6.948],[0,0],[0,0],[6.26,-7.958],[4.298,-2.236],[9.409,5.515],[0,0],[2.81,-1.723],[0,0],[6.751,1.509],[4.533,6.012],[-3.466,10.525],[0,0],[-1.94,6.411]],"o":[[3.562,-7.305],[6.843,-2.673],[6.47,2.527],[0,0],[2.25,6.984],[0,0],[3.257,9.283],[-3.029,3.851],[-8.309,4.323],[0,0],[-2.38,-1.454],[0,0],[-6.856,4.171],[-7.256,-1.622],[-5.72,-7.586],[0,0],[0,0],[2.154,-7.118]],"v":[[-25.972,256.282],[-10.844,241.57],[10.52,241.569],[26.276,256.317],[31.363,275.406],[37.793,296.199],[41.622,309.972],[42.615,338.644],[31.6,348.06],[3.818,347.368],[2.192,346.415],[-2.497,346.685],[-4.104,347.662],[-23.931,350.493],[-42.288,338.48],[-42.272,310.249],[-38.575,296.613],[-32.279,277.866]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.4,"y":0},"t":385,"s":[{"i":[[0,0],[-6.469,2.537],[-6.843,-2.683],[-3.562,-7.334],[-3.256,-6.702],[0,0],[0,0],[5.268,-8.52],[4.005,-2.628],[10.02,4.641],[0,0],[7.713,-3.573],[0,0],[6.489,2.226],[3.658,6.475],[-4.914,10.116],[0,0],[-2.976,6.126]],"o":[[3.562,-7.333],[6.843,-2.683],[6.47,2.537],[0,0],[3.256,6.702],[0,0],[4.355,8.968],[-2.55,4.123],[-7.743,5.08],[0,0],[-7.714,-3.573],[0,0],[-7.388,3.422],[-6.974,-2.392],[-4.615,-8.17],[0,0],[0,0],[3.345,-6.886]],"v":[[-26.597,256.303],[-10.844,241.499],[10.52,241.498],[26.276,256.303],[36.042,276.409],[45.809,296.515],[52.265,309.806],[51.352,338.814],[41.529,349.227],[13.7,351.155],[11.968,350.353],[-12.29,350.353],[-14.021,351.155],[-35.312,352.44],[-51.849,338.506],[-52.586,309.806],[-45.559,295.339],[-36.632,276.963]],"c":true}]},{"i":{"x":0.83,"y":1},"o":{"x":0.17,"y":0},"t":395,"s":[{"i":[[0,0],[-6.469,2.528],[-6.843,-2.674],[-3.562,-7.309],[-2.238,-6.951],[0,0],[0,0],[6.26,-7.962],[4.298,-2.237],[9.409,5.517],[0,0],[2.81,-1.724],[0,0],[6.751,1.51],[4.533,6.015],[-3.466,10.53],[0,0],[-1.94,6.414]],"o":[[3.562,-7.308],[6.843,-2.674],[6.47,2.528],[0,0],[2.25,6.988],[0,0],[3.257,9.287],[-3.029,3.853],[-8.309,4.325],[0,0],[-2.38,-1.454],[0,0],[-6.856,4.173],[-7.256,-1.623],[-5.72,-7.59],[0,0],[0,0],[2.154,-7.121]],"v":[[-25.972,256.238],[-10.844,241.519],[10.52,241.518],[26.276,256.273],[31.363,275.37],[37.793,296.172],[41.622,309.952],[42.615,338.637],[31.6,348.057],[3.818,347.366],[2.192,346.412],[-2.497,346.682],[-4.104,347.66],[-23.931,350.492],[-42.288,338.473],[-42.272,310.229],[-38.575,296.587],[-32.279,277.831]],"c":true}]},{"i":{"x":0.31,"y":1},"o":{"x":0.5,"y":0},"t":441,"s":[{"i":[[0,0],[-5.924,2.257],[-6.267,-2.387],[-3.263,-6.525],[-2.981,-5.963],[0,0],[0,0],[4.825,-7.58],[3.668,-2.338],[9.176,4.129],[0,0],[7.064,-3.179],[0,0],[5.942,1.98],[3.35,5.761],[-4.5,9],[0,0],[-2.725,5.45]],"o":[[3.262,-6.524],[6.266,-2.387],[5.925,2.257],[0,0],[2.981,5.963],[0,0],[3.988,7.979],[-2.335,3.669],[-7.091,4.519],[0,0],[-7.064,-3.179],[0,0],[-6.766,3.045],[-6.387,-2.129],[-4.226,-7.269],[0,0],[0,0],[3.063,-6.127]],"v":[[-24.394,255.294],[-9.968,242.121],[9.597,242.121],[24.026,255.294],[32.971,273.182],[41.915,291.071],[47.827,302.896],[46.991,328.705],[37.996,337.969],[12.509,339.685],[10.924,338.971],[-11.292,338.971],[-12.878,339.685],[-32.376,340.828],[-47.521,328.431],[-48.196,302.896],[-41.76,290.025],[-33.585,273.675]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0},"t":458,"s":[{"i":[[0,0],[-5.924,2.568],[-6.267,-2.716],[-3.263,-7.424],[-2.981,-6.785],[0,0],[0,0],[4.825,-8.625],[3.668,-2.66],[9.176,4.699],[0,0],[7.064,-3.617],[0,0],[5.942,2.253],[3.35,6.555],[-4.5,10.241],[0,0],[-2.725,6.201]],"o":[[3.262,-7.424],[6.266,-2.716],[5.925,2.568],[0,0],[2.981,6.785],[0,0],[3.988,9.079],[-2.335,4.174],[-7.091,5.142],[0,0],[-7.064,-3.617],[0,0],[-6.766,3.465],[-6.387,-2.422],[-4.226,-8.271],[0,0],[0,0],[3.063,-6.972]],"v":[[-24.394,257.438],[-9.968,242.451],[9.597,242.45],[24.026,257.438],[32.971,277.793],[41.915,298.147],[47.827,311.602],[46.991,340.969],[37.996,351.51],[12.509,353.462],[10.924,352.65],[-11.292,352.65],[-12.878,353.462],[-32.376,354.763],[-47.521,340.657],[-48.196,311.602],[-41.76,296.957],[-33.585,278.353]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":463,"s":[{"i":[[0,0],[-6.469,2.54],[-6.843,-2.686],[-3.562,-7.344],[-2.238,-6.985],[0,0],[0,0],[6.26,-8],[4.298,-2.248],[9.409,5.544],[0,0],[2.81,-1.732],[0,0],[6.751,1.517],[4.533,6.044],[-3.466,10.58],[0,0],[-1.94,6.445]],"o":[[3.562,-7.343],[6.843,-2.687],[6.47,2.54],[0,0],[2.25,7.021],[0,0],[3.257,9.331],[-3.029,3.872],[-8.309,4.346],[0,0],[-2.38,-1.461],[0,0],[-6.856,4.193],[-7.256,-1.631],[-5.72,-7.626],[0,0],[0,0],[2.154,-7.155]],"v":[[-25.972,255.773],[-10.844,240.983],[10.52,240.983],[26.276,255.808],[31.363,274.998],[37.793,295.9],[41.622,309.746],[42.615,338.568],[31.6,348.034],[3.818,347.339],[2.192,346.381],[-2.497,346.652],[-4.104,347.635],[-23.931,350.481],[-42.288,338.404],[-42.272,310.024],[-38.575,296.317],[-32.279,277.471]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":468,"s":[{"i":[[0,0],[-6.469,2.434],[-6.843,-2.574],[-3.562,-7.037],[-3.256,-6.431],[0,0],[0,0],[5.268,-8.175],[4.005,-2.521],[10.02,4.453],[0,0],[7.713,-3.428],[0,0],[6.489,2.136],[3.658,6.213],[-4.914,9.707],[0,0],[-2.976,5.878]],"o":[[3.562,-7.036],[6.843,-2.575],[6.47,2.434],[0,0],[3.256,6.431],[0,0],[4.355,8.605],[-2.55,3.956],[-7.743,4.874],[0,0],[-7.714,-3.428],[0,0],[-7.388,3.284],[-6.974,-2.296],[-4.615,-7.84],[0,0],[0,0],[3.345,-6.608]],"v":[[-26.597,255.596],[-10.844,241.39],[10.52,241.389],[26.276,255.596],[36.042,274.888],[45.809,294.181],[52.265,306.934],[51.352,334.769],[41.529,344.76],[13.7,346.61],[11.968,345.84],[-12.29,345.84],[-14.021,346.61],[-35.312,347.843],[-51.849,334.473],[-52.586,306.934],[-45.559,293.052],[-36.632,275.419]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.21,"y":0},"t":473,"s":[{"i":[[0,0],[-6.469,2.527],[-6.843,-2.672],[-3.562,-7.305],[-2.238,-6.948],[0,0],[0,0],[6.26,-7.958],[4.298,-2.236],[9.409,5.515],[0,0],[2.81,-1.723],[0,0],[6.751,1.509],[4.533,6.012],[-3.466,10.525],[0,0],[-1.94,6.411]],"o":[[3.562,-7.305],[6.843,-2.673],[6.47,2.527],[0,0],[2.25,6.984],[0,0],[3.257,9.283],[-3.029,3.851],[-8.309,4.323],[0,0],[-2.38,-1.454],[0,0],[-6.856,4.171],[-7.256,-1.622],[-5.72,-7.586],[0,0],[0,0],[2.154,-7.118]],"v":[[-25.972,256.282],[-10.844,241.57],[10.52,241.569],[26.276,256.317],[31.363,275.406],[37.793,296.199],[41.622,309.972],[42.615,338.644],[31.6,348.06],[3.818,347.368],[2.192,346.415],[-2.497,346.685],[-4.104,347.662],[-23.931,350.493],[-42.288,338.48],[-42.272,310.249],[-38.575,296.613],[-32.279,277.866]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.4,"y":0},"t":478,"s":[{"i":[[0,0],[-6.469,2.537],[-6.843,-2.683],[-3.562,-7.334],[-3.256,-6.702],[0,0],[0,0],[5.268,-8.52],[4.005,-2.628],[10.02,4.641],[0,0],[7.713,-3.573],[0,0],[6.489,2.226],[3.658,6.475],[-4.914,10.116],[0,0],[-2.976,6.126]],"o":[[3.562,-7.333],[6.843,-2.683],[6.47,2.537],[0,0],[3.256,6.702],[0,0],[4.355,8.968],[-2.55,4.123],[-7.743,5.08],[0,0],[-7.714,-3.573],[0,0],[-7.388,3.422],[-6.974,-2.392],[-4.615,-8.17],[0,0],[0,0],[3.345,-6.886]],"v":[[-26.597,256.303],[-10.844,241.499],[10.52,241.498],[26.276,256.303],[36.042,276.409],[45.809,296.515],[52.265,309.806],[51.352,338.814],[41.529,349.227],[13.7,351.155],[11.968,350.353],[-12.29,350.353],[-14.021,351.155],[-35.312,352.44],[-51.849,338.506],[-52.586,309.806],[-45.559,295.339],[-36.632,276.963]],"c":true}]},{"i":{"x":0.83,"y":1},"o":{"x":0.17,"y":0},"t":488,"s":[{"i":[[0,0],[-6.469,2.528],[-6.843,-2.674],[-3.562,-7.309],[-2.238,-6.951],[0,0],[0,0],[6.26,-7.962],[4.298,-2.237],[9.409,5.517],[0,0],[2.81,-1.724],[0,0],[6.751,1.51],[4.533,6.015],[-3.466,10.53],[0,0],[-1.94,6.414]],"o":[[3.562,-7.308],[6.843,-2.674],[6.47,2.528],[0,0],[2.25,6.988],[0,0],[3.257,9.287],[-3.029,3.853],[-8.309,4.325],[0,0],[-2.38,-1.454],[0,0],[-6.856,4.173],[-7.256,-1.623],[-5.72,-7.59],[0,0],[0,0],[2.154,-7.121]],"v":[[-25.972,256.238],[-10.844,241.519],[10.52,241.518],[26.276,256.273],[31.363,275.37],[37.793,296.172],[41.622,309.952],[42.615,338.637],[31.6,348.057],[3.818,347.366],[2.192,346.412],[-2.497,346.682],[-4.104,347.66],[-23.931,350.492],[-42.288,338.473],[-42.272,310.229],[-38.575,296.587],[-32.279,277.831]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.5,"y":0},"t":534,"s":[{"i":[[0,0],[-5.924,2.257],[-6.267,-2.387],[-3.263,-6.525],[-2.981,-5.963],[0,0],[0,0],[4.825,-7.58],[3.668,-2.338],[9.176,4.129],[0,0],[7.064,-3.179],[0,0],[5.942,1.98],[3.35,5.761],[-4.5,9],[0,0],[-2.725,5.45]],"o":[[3.262,-6.524],[6.266,-2.387],[5.925,2.257],[0,0],[2.981,5.963],[0,0],[3.988,7.979],[-2.335,3.669],[-7.091,4.519],[0,0],[-7.064,-3.179],[0,0],[-6.766,3.045],[-6.387,-2.129],[-4.226,-7.269],[0,0],[0,0],[3.063,-6.127]],"v":[[-24.394,255.294],[-9.968,242.121],[9.597,242.121],[24.026,255.294],[32.971,273.182],[41.915,291.071],[47.827,302.896],[46.991,328.705],[37.996,337.969],[12.509,339.685],[10.924,338.971],[-11.292,338.971],[-12.878,339.685],[-32.376,340.828],[-47.521,328.431],[-48.196,302.896],[-41.76,290.025],[-33.585,273.675]],"c":true}]},{"t":551,"s":[{"i":[[0,0],[-5.924,2.257],[-6.267,-2.387],[-3.263,-6.525],[-2.981,-5.963],[0,0],[0,0],[4.825,-7.58],[3.668,-2.338],[9.176,4.129],[0,0],[7.064,-3.179],[0,0],[5.942,1.98],[3.35,5.761],[-4.5,9],[0,0],[-2.725,5.45]],"o":[[3.262,-6.524],[6.266,-2.387],[5.925,2.257],[0,0],[2.981,5.963],[0,0],[3.988,7.979],[-2.335,3.669],[-7.091,4.519],[0,0],[-7.064,-3.179],[0,0],[-6.766,3.045],[-6.387,-2.129],[-4.226,-7.269],[0,0],[0,0],[3.063,-6.127]],"v":[[-24.394,255.294],[-9.968,242.121],[9.597,242.121],[24.026,255.294],[30.971,273.182],[38.915,291.071],[43.202,302.895],[42.366,328.704],[33.371,337.968],[7.884,339.684],[6.299,338.97],[-6.167,338.97],[-7.753,339.684],[-27.251,340.827],[-42.396,328.43],[-43.071,302.895],[-38.76,290.025],[-31.585,273.675]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,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":"animated arrow","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":172,"op":553,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Part03_Demonstration_Loop_V01","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null Controller","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":206,"ix":3},"y":{"k":[{"s":[869.65],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[868.552],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[866.62],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[863.754],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[859.83],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[854.697],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[848.161],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[839.974],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[829.807],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[817.208],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[801.528],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[781.789],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[756.397],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[722.519],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[674.682],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[606.651],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[553.048],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[541],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[484.717],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[453.506],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[434.136],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[420.535],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[410.249],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[402.1],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[395.436],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[389.862],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[385.123],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[381.042],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[377.493],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[374.382],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[371.638],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[369.207],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[367.043],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[365.113],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[363.386],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[361.84],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[360.453],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[359.209],"t":91,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[358.094],"t":92,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[357.096],"t":93,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.202],"t":94,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.404],"t":95,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.694],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.065],"t":97,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.51],"t":98,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.022],"t":99,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.599],"t":100,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.233],"t":101,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.923],"t":102,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.663],"t":103,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.45],"t":104,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.155],"t":106,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.246],"t":111,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.562],"t":112,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.016],"t":113,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.613],"t":114,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.36],"t":115,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.264],"t":116,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.332],"t":117,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.57],"t":118,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[357.985],"t":119,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[359.582],"t":120,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[361.367],"t":121,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[363.343],"t":122,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[365.514],"t":123,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[367.88],"t":124,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[370.439],"t":125,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[373.185],"t":126,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[376.111],"t":127,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[379.204],"t":128,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[382.447],"t":129,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[385.817],"t":130,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[389.289],"t":131,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[392.833],"t":132,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[396.416],"t":133,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[400.002],"t":134,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[403.557],"t":135,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[407.045],"t":136,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[410.436],"t":137,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[413.7],"t":138,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[416.814],"t":139,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[419.758],"t":140,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[422.518],"t":141,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[425.083],"t":142,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[427.447],"t":143,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[429.606],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[431.561],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[433.314],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[434.869],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[436.232],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[437.407],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[438.403],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[439.225],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[439.883],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[440.382],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[440.73],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[441.105],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[441.434],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[442.009],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[442.856],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[444.004],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[445.489],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[447.353],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[449.647],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[452.433],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[455.788],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[459.807],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[464.614],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[470.368],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[477.283],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[485.646],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[495.857],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[508.473],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[524.252],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[544.08],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[568.422],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[595.903],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[622.885],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[646.387],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[665.81],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[681.749],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[694.958],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[706.05],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[715.481],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[723.582],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[730.598],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[736.714],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[742.07],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.778],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[750.924],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[754.579],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[757.802],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[760.641],"t":214,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[763.135],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[765.318],"t":216,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[767.221],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[768.867],"t":218,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[770.279],"t":219,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[771.475],"t":220,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[772.472],"t":221,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[773.285],"t":222,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[773.927],"t":223,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[774.41],"t":224,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[774.021],"t":232,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[773.506],"t":233,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[772.832],"t":234,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[771.963],"t":235,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[770.847],"t":236,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[769.411],"t":237,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[767.551],"t":238,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[765.132],"t":239,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[762.034],"t":240,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[758.373],"t":241,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[754.748],"t":242,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[751.783],"t":243,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[749.59],"t":244,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[748.016],"t":245,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.895],"t":246,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.109],"t":247,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[745.576],"t":248,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.056],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.466],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[746.943],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[747.474],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[748.047],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[748.643],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[749.247],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[749.84],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[750.412],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[750.952],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[751.455],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[751.918],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[752.342],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[753.071],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[753.655],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[754.299],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":5,"nm":"Continue Y Position","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":71,"s":[0]},{"i":{"x":[0.544],"y":[1]},"o":{"x":[0.477],"y":[0]},"t":109,"s":[-190]},{"i":{"x":[0.671],"y":[1]},"o":{"x":[0.309],"y":[0]},"t":156,"s":[-100]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":177,"s":[-100]},{"i":{"x":[0.424],"y":[1]},"o":{"x":[0.75],"y":[0]},"t":227,"s":[20]},{"i":{"x":[0.363],"y":[1]},"o":{"x":[0.345],"y":[0]},"t":251,"s":[-10]},{"t":285,"s":[0]}],"ix":1}}]}],"ip":0,"op":415,"st":-110,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Pill to Arc","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-609,"s":[0]},{"t":-599,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":206,"ix":3},"y":{"k":[{"s":[869.65],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[868.552],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[866.62],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[863.754],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[859.83],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[854.697],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[848.161],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[839.974],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[829.807],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[817.208],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[801.528],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[781.789],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[756.397],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[722.519],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[674.682],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[606.651],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[553.048],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[541],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[484.717],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[453.506],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[434.136],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[420.535],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[410.249],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[402.1],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[395.436],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[389.862],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[385.123],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[381.042],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[377.493],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[374.382],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[371.638],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[369.207],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[367.043],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[365.113],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[363.386],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[361.84],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[360.453],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[359.209],"t":91,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[358.094],"t":92,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[357.096],"t":93,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.202],"t":94,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.404],"t":95,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.694],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.065],"t":97,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.51],"t":98,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.022],"t":99,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.599],"t":100,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.233],"t":101,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.923],"t":102,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.663],"t":103,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.45],"t":104,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.155],"t":106,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":5,"nm":"Continue Y Position","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":71,"s":[0]},{"t":109,"s":[-190]}],"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.32,"y":1},"o":{"x":0.82,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[21.75,-21.641],[21.75,-21.75],[21.75,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.4,"y":0},"t":24,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,23.5],[21.75,-21.75],[21.75,-66.5]],"c":false}]},{"i":{"x":0.65,"y":1},"o":{"x":0.167,"y":0},"t":44,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,13.5],[21.75,-21.75],[21.75,-56.5]],"c":false}]},{"i":{"x":0.39,"y":1},"o":{"x":0.35,"y":0},"t":49,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,13.5],[21.75,-21.75],[21.75,-56.5]],"c":false}]},{"i":{"x":0.39,"y":1},"o":{"x":0.35,"y":0},"t":66,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,31.5],[21.75,-21.75],[21.75,-74.5]],"c":false}]},{"t":71,"s":[{"i":[[0,0],[0,26.75],[0,0]],"o":[[0,0],[0,-26.583],[0,0]],"v":[[29.75,31.5],[21.75,-21.75],[29.75,-74.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":-59,"s":[54]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.418],"y":[0]},"t":-4,"s":[58]},{"i":{"x":[0.149],"y":[1]},"o":{"x":[0.529],"y":[0]},"t":0,"s":[58]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":20,"s":[27]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":67,"s":[27]},{"t":86,"s":[58],"h":1}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.28],"y":[0.77]},"o":{"x":[0.87],"y":[0.12]},"t":69,"s":[0]},{"t":83,"s":[49.5]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.28],"y":[0.77]},"o":{"x":[0.87],"y":[0.12]},"t":69,"s":[100]},{"t":83,"s":[50.5]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-465,"s":[0]},{"t":-447,"s":[90]}],"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":"Bend","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":82,"st":-610,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Matte Layer","parent":1,"td":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":358,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":364,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":935,"s":[100]},{"t":941,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":241,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"t":291,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":52,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":64,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":0,"k":0,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":241,"op":365,"st":241,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Swipe up Outlines","parent":5,"tt":1,"tp":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":272,"s":[0]},{"t":277,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-17,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.771,0],[-0.481,0.201],[-0.308,0.416],[0,0.613],[0.433,0.446],[0.797,0.28],[0,0],[0.264,0.215],[0,0.324],[-0.295,0.228],[-0.425,0],[-0.277,-0.228],[-0.087,-0.315],[0,0],[0.485,0.398],[0.806,0],[0.446,-0.228],[0.247,-0.394],[0,-0.464],[-0.42,-0.407],[-0.633,-0.228],[0,0],[-0.286,-0.258],[0,-0.394],[0.325,-0.245],[0.468,0],[0.355,0.333],[0.139,0.525],[0,0],[-0.615,-0.455]],"o":[[0.503,0],[0.481,-0.201],[0.308,-0.416],[0,-0.744],[-0.433,-0.446],[0,0],[-0.555,-0.192],[-0.264,-0.214],[0,-0.35],[0.295,-0.228],[0.442,0],[0.277,0.228],[0,0],[-0.173,-0.499],[-0.485,-0.398],[-0.563,0],[-0.446,0.228],[-0.247,0.394],[0,0.674],[0.42,0.407],[0,0],[0.702,0.245],[0.286,0.258],[0,0.429],[-0.325,0.245],[-0.503,0],[-0.355,-0.333],[0,0],[0.243,0.823],[0.615,0.455]],"v":[[-25.545,0.21],[-24.069,-0.092],[-22.886,-1.018],[-22.425,-2.56],[-23.075,-4.346],[-24.921,-5.436],[-25.519,-5.646],[-26.747,-6.256],[-27.144,-7.064],[-26.702,-7.931],[-25.623,-8.272],[-24.544,-7.931],[-23.998,-7.116],[-22.711,-7.668],[-23.699,-9.014],[-25.636,-9.611],[-27.15,-9.27],[-28.19,-8.338],[-28.561,-7.051],[-27.93,-5.429],[-26.351,-4.477],[-25.766,-4.267],[-24.284,-3.512],[-23.855,-2.534],[-24.342,-1.523],[-25.532,-1.155],[-26.819,-1.654],[-27.56,-2.941],[-28.912,-2.39],[-27.625,-0.473]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"S","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-19.149,0],[-17.693,0],[-16.172,-4.845],[-16.12,-4.845],[-14.586,0],[-13.117,0],[-10.985,-6.696],[-12.48,-6.696],[-13.845,-1.878],[-13.897,-1.878],[-15.392,-6.696],[-16.835,-6.696],[-18.33,-1.878],[-18.382,-1.878],[-19.747,-6.696],[-21.268,-6.696]],"c":true},"ix":2},"nm":"w","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"w","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.26,0],[-0.186,0.188],[0,0.263],[0.186,0.184],[0.26,0],[0.186,-0.184],[0,-0.263],[-0.186,-0.188]],"o":[[0.26,0],[0.186,-0.188],[0,-0.263],[-0.186,-0.184],[-0.26,0],[-0.186,0.184],[0,0.263],[0.186,0.188]],"v":[[-8.671,-7.681],[-8.001,-7.963],[-7.722,-8.64],[-8.001,-9.309],[-8.671,-9.585],[-9.34,-9.309],[-9.62,-8.64],[-9.34,-7.963]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.373,0],[-7.969,0],[-7.969,-6.696],[-9.373,-6.696]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"i","np":5,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.377,-0.214],[-0.477,0],[-0.485,0.302],[-0.277,0.543],[0,0.683],[0.277,0.538],[0.485,0.307],[0.598,0],[0.377,-0.214],[0.191,-0.315],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.191,0.307],[0.377,0.214],[0.598,0],[0.485,-0.302],[0.277,-0.543],[0,-0.683],[-0.277,-0.538],[-0.485,-0.306],[-0.477,0],[-0.377,0.215],[0,0],[0,0],[0,0],[0,0]],"v":[[-5.681,2.836],[-4.277,2.836],[-4.277,0.039],[-4.355,-0.893],[-4.277,-0.893],[-3.425,-0.112],[-2.145,0.21],[-0.52,-0.243],[0.624,-1.51],[1.04,-3.348],[0.624,-5.18],[-0.52,-6.447],[-2.145,-6.906],[-3.425,-6.585],[-4.277,-5.79],[-4.355,-5.79],[-4.355,-6.696],[-5.681,-6.696]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.355,0],[0.308,0.188],[0.186,0.341],[0,0.446],[-0.186,0.341],[-0.308,0.188],[-0.347,0],[-0.308,-0.188],[-0.182,-0.341],[0,-0.446],[0.182,-0.341],[0.308,-0.188]],"o":[[-0.347,0],[-0.308,-0.188],[-0.186,-0.341],[0,-0.446],[0.186,-0.341],[0.308,-0.188],[0.355,0],[0.308,0.188],[0.182,0.341],[0,0.446],[-0.182,0.341],[-0.308,0.188]],"v":[[-2.353,-1.09],[-3.334,-1.372],[-4.075,-2.166],[-4.355,-3.348],[-4.075,-4.53],[-3.334,-5.324],[-2.353,-5.607],[-1.358,-5.324],[-0.624,-4.53],[-0.351,-3.348],[-0.624,-2.166],[-1.358,-1.372]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"p","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.641,0],[-0.503,0.315],[-0.303,0.551],[0,0],[0.303,-0.197],[0.425,0],[0.39,0.346],[0.061,0.639],[0,0],[0,0.175],[0.256,0.517],[0.485,0.293],[0.667,0],[0.503,-0.324],[0.282,-0.547],[0,-0.639],[-0.29,-0.538],[-0.516,-0.306]],"o":[[0.702,0],[0.503,-0.315],[0,0],[-0.182,0.324],[-0.303,0.197],[-0.52,0],[-0.39,-0.346],[0,0],[0.017,-0.122],[0,-0.656],[-0.256,-0.516],[-0.485,-0.293],[-0.633,0],[-0.503,0.324],[-0.282,0.547],[0,0.674],[0.29,0.538],[0.516,0.306]],"v":[[5.954,0.21],[7.761,-0.263],[8.97,-1.562],[7.813,-2.127],[7.085,-1.346],[5.993,-1.05],[4.628,-1.569],[3.952,-3.046],[9.074,-3.046],[9.1,-3.493],[8.717,-5.252],[7.605,-6.467],[5.876,-6.906],[4.173,-6.421],[2.997,-5.114],[2.574,-3.335],[3.01,-1.517],[4.219,-0.249]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.325,0.289],[-0.468,0],[-0.264,-0.162],[-0.139,-0.245],[-0.017,-0.245]],"o":[[0.121,-0.481],[0.325,-0.289],[0.39,0],[0.264,0.162],[0.139,0.245],[0,0]],"v":[[4.03,-4.11],[4.7,-5.265],[5.889,-5.698],[6.871,-5.456],[7.475,-4.845],[7.709,-4.11]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"e","np":5,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.797,0],[-0.381,0.21],[-0.191,0.324],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.143,-0.306],[0.269,-0.184],[0.347,0],[0.251,0.28],[0,0.543],[0,0],[0,0],[0,0],[-0.42,-0.486]],"o":[[0.442,0],[0.381,-0.21],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.359],[-0.143,0.307],[-0.269,0.184],[-0.425,0],[-0.251,-0.28],[0,0],[0,0],[0,0],[0,0.867],[0.42,0.486]],"v":[[17.03,0.21],[18.265,-0.105],[19.123,-0.906],[19.201,-0.906],[19.201,0],[20.514,0],[20.514,-6.696],[19.123,-6.696],[19.123,-3.099],[18.909,-2.101],[18.291,-1.366],[17.368,-1.09],[16.354,-1.51],[15.977,-2.744],[15.977,-6.696],[14.573,-6.696],[14.573,-2.547],[15.204,-0.519]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"u","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.377,-0.214],[-0.477,0],[-0.485,0.302],[-0.277,0.543],[0,0.683],[0.277,0.538],[0.485,0.307],[0.598,0],[0.377,-0.214],[0.191,-0.315],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.191,0.307],[0.377,0.214],[0.598,0],[0.485,-0.302],[0.277,-0.543],[0,-0.683],[-0.277,-0.538],[-0.485,-0.306],[-0.477,0],[-0.377,0.215],[0,0],[0,0],[0,0],[0,0]],"v":[[22.711,2.836],[24.115,2.836],[24.115,0.039],[24.037,-0.893],[24.115,-0.893],[24.967,-0.112],[26.247,0.21],[27.872,-0.243],[29.016,-1.51],[29.432,-3.348],[29.016,-5.18],[27.872,-6.447],[26.247,-6.906],[24.967,-6.585],[24.115,-5.79],[24.037,-5.79],[24.037,-6.696],[22.711,-6.696]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.355,0],[0.308,0.188],[0.186,0.341],[0,0.446],[-0.186,0.341],[-0.308,0.188],[-0.347,0],[-0.308,-0.188],[-0.182,-0.341],[0,-0.446],[0.182,-0.341],[0.308,-0.188]],"o":[[-0.347,0],[-0.308,-0.188],[-0.186,-0.341],[0,-0.446],[0.186,-0.341],[0.308,-0.188],[0.355,0],[0.308,0.188],[0.182,0.341],[0,0.446],[-0.182,0.341],[-0.308,0.188]],"v":[[26.039,-1.09],[25.058,-1.372],[24.317,-2.166],[24.037,-3.348],[24.317,-4.53],[25.058,-5.324],[26.039,-5.607],[27.034,-5.324],[27.768,-4.53],[28.041,-3.348],[27.768,-2.166],[27.034,-1.372]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,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":"p","np":5,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":272,"op":365,"st":272,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Pill Shape - Opening","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":358,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":364,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":935,"s":[100]},{"t":941,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":241,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false}]},{"t":291,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[45,-21.75],[-45,-21.75]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":52,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-21.75],[0,-21.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431372549,0.913725490196,0.580392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":64,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":0,"k":0,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":241,"op":365,"st":241,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Circle to Shape","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-466,"s":[0]},{"t":-456,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.18],"y":[1]},"t":82,"s":[162]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.18],"y":[0]},"t":120,"s":[190]},{"i":{"x":[0.7],"y":[1.01]},"o":{"x":[1],"y":[0]},"t":201,"s":[190]},{"t":221,"s":[200]}],"ix":4}},"a":{"a":0,"k":[0,-21.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":82,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-162.25,-21],[-162.25,-21]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.48,"y":0},"t":110,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.437]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":120,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.437]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":151,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.437]],"c":false}]},{"i":{"x":0.33,"y":1},"o":{"x":1,"y":0},"t":154,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.437]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.55,"y":0},"t":171,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.25]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":1,"y":0},"t":185,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-257.375,-41.562]],"c":false}]},{"i":{"x":0.47,"y":1},"o":{"x":0.34,"y":0},"t":201,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-272.375,-37.562]],"c":false}]},{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":241,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.25]],"c":false}]},{"t":291,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-67.25]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.18],"y":[0.9]},"t":82,"s":[54]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":106,"s":[64]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":136,"s":[52]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":221,"s":[52]},{"i":{"x":[0.56],"y":[1]},"o":{"x":[0.88],"y":[0]},"t":241,"s":[50]},{"t":291,"s":[52]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-322,"s":[0]},{"t":-304,"s":[90]}],"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":"Right","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-162.25,-21],[-162.25,-21]],"c":false}],"t":82,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-171.218,-21.242],[-162.226,-24.963]],"c":false}],"t":83,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-179.437,-21.465],[-162.204,-28.595]],"c":false}],"t":84,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-186.429,-21.654],[-162.185,-31.685]],"c":false}],"t":85,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-191.962,-21.803],[-162.17,-34.13]],"c":false}],"t":86,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-196.133,-21.916],[-162.158,-35.972]],"c":false}],"t":87,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-199.213,-21.999],[-162.15,-37.334]],"c":false}],"t":88,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-201.485,-22.06],[-162.144,-38.338]],"c":false}],"t":89,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-203.175,-22.106],[-162.139,-39.084]],"c":false}],"t":90,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-204.445,-22.14],[-162.136,-39.645]],"c":false}],"t":91,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-205.408,-22.166],[-162.133,-40.071]],"c":false}],"t":92,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-206.145,-22.186],[-162.131,-40.397]],"c":false}],"t":93,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-206.712,-22.202],[-162.13,-40.647]],"c":false}],"t":94,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.15,-22.214],[-162.129,-40.841]],"c":false}],"t":95,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.489,-22.223],[-162.128,-40.991]],"c":false}],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.75,-22.23],[-162.127,-41.106]],"c":false}],"t":97,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.952,-22.235],[-162.127,-41.195]],"c":false}],"t":98,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.106,-22.239],[-162.126,-41.263]],"c":false}],"t":99,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.223,-22.243],[-162.126,-41.315]],"c":false}],"t":100,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.31,-22.245],[-162.126,-41.354]],"c":false}],"t":101,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.374,-22.247],[-162.125,-41.382]],"c":false}],"t":102,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.453,-22.249],[-162.125,-41.417]],"c":false}],"t":104,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.418]],"c":false}],"t":121,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.358]],"c":false}],"t":122,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.252]],"c":false}],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.094]],"c":false}],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.877]],"c":false}],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.59]],"c":false}],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.224]],"c":false}],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-39.761]],"c":false}],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-39.181]],"c":false}],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-38.454]],"c":false}],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-37.534]],"c":false}],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-36.35]],"c":false}],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-34.776]],"c":false}],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-32.559]],"c":false}],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-29.136]],"c":false}],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-24.536]],"c":false}],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.25]],"c":false}],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.437]],"c":false}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.414]],"c":false}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.338]],"c":false}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-41.199]],"c":false}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.983]],"c":false}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.668]],"c":false}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-40.224]],"c":false}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-39.598]],"c":false}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-38.698]],"c":false}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-37.322]],"c":false}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-34.857]],"c":false}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-28.947]],"c":false}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-25.094]],"c":false}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-23.637]],"c":false}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.895]],"c":false}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.497]],"c":false}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.305]],"c":false}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.125,-22.25]],"c":false}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-162.753,-22.377]],"c":false}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-165.208,-22.875]],"c":false}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-171.361,-24.123]],"c":false}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-188.488,-27.595]],"c":false}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-219.099,-33.802]],"c":false}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-234.244,-36.873]],"c":false}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-242.564,-38.559]],"c":false}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-247.877,-39.637]],"c":false}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-251.472,-40.366]],"c":false}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-253.937,-40.865]],"c":false}],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-255.594,-41.201]],"c":false}],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-256.64,-41.413]],"c":false}],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.5,-22.25],[-257.203,-41.528]],"c":false}],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.455,-22.25],[-257.459,-41.54]],"c":false}],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.395,-22.25],[-257.572,-41.51]],"c":false}],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.305,-22.25],[-257.74,-41.465]],"c":false}],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.181,-22.25],[-257.973,-41.403]],"c":false}],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-208.018,-22.25],[-258.279,-41.321]],"c":false}],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.808,-22.25],[-258.673,-41.216]],"c":false}],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.541,-22.25],[-259.174,-41.083]],"c":false}],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-207.203,-22.25],[-259.806,-40.914]],"c":false}],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-206.776,-22.25],[-260.608,-40.7]],"c":false}],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-206.227,-22.25],[-261.637,-40.426]],"c":false}],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-205.502,-22.25],[-262.996,-40.064]],"c":false}],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-204.5,-22.25],[-264.875,-39.562]],"c":false}],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-203.002,-22.25],[-267.683,-38.814]],"c":false}],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-201.093,-22.25],[-271.264,-37.859]],"c":false}],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-272.375,-37.562]],"c":false}],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-272.244,-37.534]],"c":false}],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-271.843,-37.449]],"c":false}],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-271.165,-37.305]],"c":false}],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-270.202,-37.1]],"c":false}],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-268.952,-36.833]],"c":false}],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-267.415,-36.506]],"c":false}],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-265.596,-36.118]],"c":false}],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-263.505,-35.673]],"c":false}],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-261.16,-35.173]],"c":false}],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-258.583,-34.624]],"c":false}],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-255.802,-34.032]],"c":false}],"t":212,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-252.851,-33.403]],"c":false}],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-249.768,-32.746]],"c":false}],"t":214,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-246.593,-32.07]],"c":false}],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-243.367,-31.382]],"c":false}],"t":216,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-240.129,-30.693]],"c":false}],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-236.915,-30.008]],"c":false}],"t":218,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-233.76,-29.336]],"c":false}],"t":219,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-230.692,-28.682]],"c":false}],"t":220,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-227.734,-28.052]],"c":false}],"t":221,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-224.906,-27.449]],"c":false}],"t":222,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-222.222,-26.878]],"c":false}],"t":223,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-219.692,-26.339]],"c":false}],"t":224,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-217.325,-25.834]],"c":false}],"t":225,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-215.123,-25.365]],"c":false}],"t":226,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-213.089,-24.932]],"c":false}],"t":227,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-211.222,-24.534]],"c":false}],"t":228,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-209.521,-24.172]],"c":false}],"t":229,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-207.982,-23.844]],"c":false}],"t":230,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-206.602,-23.55]],"c":false}],"t":231,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-205.377,-23.289]],"c":false}],"t":232,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-204.302,-23.06]],"c":false}],"t":233,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-203.371,-22.862]],"c":false}],"t":234,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-202.581,-22.693]],"c":false}],"t":235,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-201.926,-22.554]],"c":false}],"t":236,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-201.4,-22.442]],"c":false}],"t":237,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.999,-22.356]],"c":false}],"t":238,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.719,-22.297]],"c":false}],"t":239,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.554,-22.262]],"c":false}],"t":240,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.258]],"c":false}],"t":242,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.282]],"c":false}],"t":243,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.323]],"c":false}],"t":244,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.382]],"c":false}],"t":245,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.46]],"c":false}],"t":246,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.558]],"c":false}],"t":247,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.677]],"c":false}],"t":248,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.819]],"c":false}],"t":249,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-22.984]],"c":false}],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-23.174]],"c":false}],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-23.391]],"c":false}],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-23.637]],"c":false}],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-23.913]],"c":false}],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-24.223]],"c":false}],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-24.568]],"c":false}],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-24.951]],"c":false}],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-25.376]],"c":false}],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-25.846]],"c":false}],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-26.366]],"c":false}],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-26.94]],"c":false}],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-27.574]],"c":false}],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-28.274]],"c":false}],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-29.049]],"c":false}],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-29.907]],"c":false}],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-30.859]],"c":false}],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-31.918]],"c":false}],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-33.101]],"c":false}],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-34.425]],"c":false}],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-35.914]],"c":false}],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-37.595]],"c":false}],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-39.5]],"c":false}],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-41.659]],"c":false}],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-44.097]],"c":false}],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-46.807]],"c":false}],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-49.72]],"c":false}],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-52.682]],"c":false}],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-55.485]],"c":false}],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-57.961]],"c":false}],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-60.044]],"c":false}],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-61.745]],"c":false}],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-63.113]],"c":false}],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-64.205]],"c":false}],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-65.068]],"c":false}],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-65.743]],"c":false}],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-66.262]],"c":false}],"t":286,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-66.651]],"c":false}],"t":287,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-66.93]],"c":false}],"t":288,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-67.114]],"c":false}],"t":289,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-200.5,-22.25],[-200.5,-67.218]],"c":false}],"t":290,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"k":[{"s":[54],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.043],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[57.904],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[59.441],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[60.61],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[61.465],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.085],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.541],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.882],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.14],"t":91,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.338],"t":92,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.492],"t":93,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.612],"t":94,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.706],"t":95,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.78],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.838],"t":97,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.883],"t":98,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.945],"t":100,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.932],"t":109,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.876],"t":110,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.8],"t":111,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.703],"t":112,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.582],"t":113,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.435],"t":114,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.259],"t":115,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[63.049],"t":116,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.802],"t":117,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.512],"t":118,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.171],"t":119,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[61.773],"t":120,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[61.307],"t":121,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[60.76],"t":122,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[60.117],"t":123,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[59.363],"t":124,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.485],"t":125,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[57.487],"t":126,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[56.408],"t":127,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[55.337],"t":128,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.382],"t":129,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[53.607],"t":130,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[53.021],"t":131,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[52.599],"t":132,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[52.31],"t":133,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[52.128],"t":134,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[52.03],"t":135,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[52],"t":221,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.963],"t":222,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.888],"t":223,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.796],"t":224,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.694],"t":225,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.586],"t":226,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.473],"t":227,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.357],"t":228,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.239],"t":229,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.12],"t":230,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.88],"t":232,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.761],"t":233,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.643],"t":234,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.527],"t":235,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.414],"t":236,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.306],"t":237,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.204],"t":238,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.112],"t":239,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.037],"t":240,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.074],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.12],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.16],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.208],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.237],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.268],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.302],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.34],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.383],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.43],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.482],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.541],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.607],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.682],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.767],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.863],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.971],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.091],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.221],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.353],"t":277,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.477],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.587],"t":279,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.68],"t":280,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.755],"t":281,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.816],"t":282,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.865],"t":283,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.903],"t":284,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.933],"t":285,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[51.973],"t":287,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,-100],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"t":-467,"s":[0],"h":1},{"t":-304,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.22,"y":1},"o":{"x":0.18,"y":1},"t":82,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.862,-261.879],[0.055,-282.955],[11.354,-261.879]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.18,"y":0},"t":110,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.915,-246.504],[0.001,-267.58],[11.3,-246.504]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":120,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.915,-246.504],[0.001,-267.58],[11.3,-246.504]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":137,"s":[{"i":[[4.907,-3.179],[-12.215,0],[3.984,2.581]],"o":[[-4.447,2.881],[11.035,0],[-4.907,-3.179]],"v":[[-7.665,-246.504],[-0.083,-267.58],[7.766,-246.504]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.915,-246.504],[0.001,-267.58],[11.3,-246.504]],"c":true}]},{"i":{"x":0.33,"y":1},"o":{"x":1,"y":0},"t":154,"s":[{"i":[[7.064,-3.179],[-17.586,0],[5.736,2.581]],"o":[[-6.403,2.881],[15.887,0],[-7.064,-3.179]],"v":[[-10.915,-246.504],[0.001,-267.58],[11.3,-246.504]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.55,"y":0},"t":171,"s":[{"i":[[4.907,-3.179],[-12.215,0],[3.984,2.581]],"o":[[-4.447,2.881],[11.035,0],[-4.907,-3.179]],"v":[[-7.665,-246.504],[-0.083,-267.58],[7.766,-246.504]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":1,"y":0},"t":185,"s":[{"i":[[7.064,3.179],[-17.586,0],[5.736,-2.581]],"o":[[-6.403,-2.881],[15.887,0],[-7.064,3.179]],"v":[[-10.865,-389.406],[0.052,-368.33],[11.351,-389.406]],"c":true}]},{"i":{"x":0.47,"y":1},"o":{"x":0.34,"y":0},"t":201,"s":[{"i":[[5.881,3.179],[-14.64,0],[4.775,-2.581]],"o":[[-5.33,-2.881],[13.225,0],[-5.881,3.179]],"v":[[-9.107,-406.156],[-0.02,-385.08],[9.387,-406.156]],"c":true}]},{"t":241,"s":[{"i":[[4.598,3.179],[-11.448,0],[3.734,-2.581]],"o":[[-4.168,-2.881],[10.342,0],[-4.598,3.179]],"v":[[-7.195,-320.656],[-0.089,-299.58],[7.266,-320.656]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.913725495338,0.580392181873,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":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.64,"y":0},"t":120,"s":[0,92],"to":[0,0],"ti":[0,0]},{"i":{"x":0.48,"y":1},"o":{"x":0.55,"y":0},"t":137,"s":[0,82],"to":[0,0],"ti":[0,0]},{"i":{"x":0.48,"y":0.48},"o":{"x":0.167,"y":0.167},"t":151,"s":[0,87],"to":[0,0],"ti":[0,0]},{"i":{"x":0.66,"y":1},"o":{"x":0.167,"y":0.167},"t":154,"s":[0,87],"to":[0,0],"ti":[0,0]},{"i":{"x":0.48,"y":1},"o":{"x":0.55,"y":0},"t":171,"s":[0,85],"to":[0,0],"ti":[0,0]},{"t":185,"s":[0,87]}],"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":"Bottom Rounding","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":82,"op":241,"st":-467,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Gesture KO","td":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":7,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":19,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":31,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":49,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":71,"s":[100]},{"t":80,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1429,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.8],"y":[1]},"o":{"x":[1],"y":[0]},"t":53,"s":[581]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.312],"y":[4.051]},"t":71,"s":[910]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[910]},{"t":110,"s":[581]}],"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":53,"s":[90]},{"t":71,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[200]},{"t":110,"s":[90]}],"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":53,"s":[90]},{"t":71,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[200]},{"t":110,"s":[90]}],"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":53,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.772,0],[0,0],[0,-49.772],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.772],[0,0],[49.772,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.167],[-116.817,-581.35],[116.817,-581.35],[207,-491.167],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":54,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.09,0],[0,0],[0,-50.09],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.09],[0,0],[50.09,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.689],[-116.241,-582.448],[116.241,-582.448],[207,-491.689],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":55,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.651,0],[0,0],[0,-50.651],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.651],[0,0],[50.651,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.605],[-115.225,-584.38],[115.225,-584.38],[207,-492.605],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":56,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.485,0],[0,0],[0,-51.485],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-51.485],[0,0],[51.485,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-493.959],[-113.713,-587.246],[113.713,-587.246],[207,-493.959],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":57,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-52.63,0],[0,0],[0,-52.63],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-52.63],[0,0],[52.63,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.808],[-111.638,-591.17],[111.638,-591.17],[207,-495.808],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":58,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.132,0],[0,0],[0,-54.133],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-54.133],[0,0],[54.133,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.219],[-108.916,-596.303],[108.916,-596.303],[207,-498.219],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":59,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.05,0],[0,0],[0,-56.05],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-56.05],[0,0],[56.05,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-501.281],[-105.442,-602.839],[105.442,-602.839],[207,-501.281],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":60,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.455,0],[0,0],[0,-58.455],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.455],[0,0],[58.455,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-505.109],[-101.083,-611.026],[101.083,-611.026],[207,-505.109],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":61,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.443,0],[0,0],[0,-61.443],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-61.443],[0,0],[61.443,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-509.862],[-95.67,-621.193],[95.669,-621.193],[207,-509.862],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":62,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-65.136,0],[0,0],[0,-65.136],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-65.136],[0,0],[65.136,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.772],[-88.979,-633.792],[88.979,-633.792],[207,-515.772],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":63,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.689,0],[0,0],[0,-69.689],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-69.689],[0,0],[69.689,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.201],[-80.73,-649.472],[80.73,-649.472],[207,-523.201],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":64,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-75.292,0],[0,0],[0,-75.292],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-75.292],[0,0],[75.292,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.789],[-70.578,-669.211],[70.578,-669.211],[207,-532.789],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":65,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-82.119,0],[0,0],[0,-82.119],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-82.119],[0,0],[82.119,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-545.809],[-58.206,-694.603],[58.206,-694.603],[207,-545.809],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":66,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.124,0],[0,0],[0,-90.124],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-90.124],[0,0],[90.124,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-565.184],[-43.703,-728.481],[43.703,-728.481],[207,-565.184],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":67,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-98.484,0],[0,0],[0,-98.484],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-98.484],[0,0],[98.484,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-597.873],[-28.555,-776.318],[28.555,-776.318],[207,-597.873],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":68,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.33,0],[0,0],[0,-105.33],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.33],[0,0],[105.33,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-653.5],[-16.151,-844.349],[16.151,-844.349],[207,-653.5],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":69,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.245,0],[0,0],[0,-109.245],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.245],[0,0],[109.245,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-700.008],[-9.056,-897.952],[9.056,-897.952],[207,-700.008],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":70,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":71,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.387],[-7,-911.387],[7,-911.387],[207,-711.387],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":72,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.036],[-7,-911.036],[7,-911.036],[207,-711.036],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":74,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.362],[-7,-910.362],[7,-910.362],[207,-710.362],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":76,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":80,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.251,0],[0,0],[0,-110.251],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.251],[0,0],[110.251,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-709.533],[-7.234,-909.299],[7.234,-909.299],[207,-709.533],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":81,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.855,0],[0,0],[0,-109.855],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.855],[0,0],[109.855,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-708.106],[-7.951,-907.155],[7.951,-907.155],[207,-708.106],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":82,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.183,0],[0,0],[0,-109.183],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.183],[0,0],[109.183,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-705.681],[-9.169,-903.511],[9.169,-903.511],[207,-705.681],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":83,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-108.224,0],[0,0],[0,-108.224],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-108.224],[0,0],[108.224,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-702.223],[-10.906,-898.317],[10.906,-898.317],[207,-702.223],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":84,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-106.972,0],[0,0],[0,-106.972],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-106.972],[0,0],[106.972,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-697.707],[-13.174,-891.533],[13.174,-891.533],[207,-697.707],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":85,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.423,0],[0,0],[0,-105.422],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.422],[0,0],[105.423,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-692.117],[-15.983,-883.134],[15.983,-883.134],[207,-692.117],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":86,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-103.574,0],[0,0],[0,-103.574],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-103.574],[0,0],[103.574,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-685.448],[-19.332,-873.116],[19.332,-873.116],[207,-685.448],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":87,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-101.431,0],[0,0],[0,-101.431],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-101.431],[0,0],[101.431,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-677.717],[-23.215,-861.502],[23.215,-861.502],[207,-677.717],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":88,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-99.003,0],[0,0],[0,-99.003],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-99.003],[0,0],[99.003,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-668.96],[-27.614,-848.347],[27.614,-848.347],[207,-668.96],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":89,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-96.309,0],[0,0],[0,-96.309],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-96.309],[0,0],[96.309,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-659.241],[-32.495,-833.746],[32.495,-833.746],[207,-659.241],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":90,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-93.374,0],[0,0],[0,-93.374],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-93.374],[0,0],[93.374,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-648.653],[-37.814,-817.839],[37.814,-817.839],[207,-648.653],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":91,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.232,0],[0,0],[0,-90.232],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-90.232],[0,0],[90.232,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-637.317],[-43.507,-800.81],[43.507,-800.81],[207,-637.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":92,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-86.925,0],[0,0],[0,-86.925],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-86.925],[0,0],[86.925,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-625.39],[-49.498,-782.892],[49.498,-782.892],[207,-625.39],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":93,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-83.505,0],[0,0],[0,-83.505],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-83.505],[0,0],[83.505,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-613.051],[-55.696,-764.355],[55.696,-764.355],[207,-613.051],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":94,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-76.546,0],[0,0],[0,-76.546],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-76.546],[0,0],[76.546,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-587.949],[-68.304,-726.645],[68.304,-726.645],[207,-587.949],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-73.126,0],[0,0],[0,-73.126],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-73.126],[0,0],[73.126,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-575.61],[-74.502,-708.108],[74.502,-708.108],[207,-575.61],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":97,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.819,0],[0,0],[0,-69.819],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-69.819],[0,0],[69.819,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-563.683],[-80.493,-690.19],[80.493,-690.19],[207,-563.683],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":98,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-66.677,0],[0,0],[0,-66.677],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-66.677],[0,0],[66.677,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-552.347],[-86.186,-673.161],[86.186,-673.161],[207,-552.347],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":99,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-63.742,0],[0,0],[0,-63.742],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-63.742],[0,0],[63.742,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-541.759],[-91.505,-657.254],[91.505,-657.254],[207,-541.759],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":100,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.048,0],[0,0],[0,-61.048],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-61.048],[0,0],[61.048,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.04],[-96.386,-642.653],[96.386,-642.653],[207,-532.04],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":101,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.62,0],[0,0],[0,-58.62],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.62],[0,0],[58.62,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.283],[-100.785,-629.498],[100.785,-629.498],[207,-523.283],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":102,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.477,0],[0,0],[0,-56.477],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-56.477],[0,0],[56.477,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.552],[-104.668,-617.884],[104.668,-617.884],[207,-515.552],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":103,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.628,0],[0,0],[0,-54.629],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-54.629],[0,0],[54.628,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-508.884],[-108.017,-607.866],[108.017,-607.866],[207,-508.884],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":104,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-53.079,0],[0,0],[0,-53.079],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-53.079],[0,0],[53.079,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-503.293],[-110.826,-599.467],[110.826,-599.467],[207,-503.293],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":105,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.827,0],[0,0],[0,-51.827],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-51.827],[0,0],[51.827,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.777],[-113.094,-592.683],[113.094,-592.683],[207,-498.777],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":106,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.868,0],[0,0],[0,-50.868],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.868],[0,0],[50.868,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.319],[-114.831,-587.489],[114.831,-587.489],[207,-495.319],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":107,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.196,0],[0,0],[0,-50.196],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.196],[0,0],[50.196,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.894],[-116.049,-583.845],[116.049,-583.845],[207,-492.894],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":108,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.8,0],[0,0],[0,-49.8],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.8],[0,0],[49.8,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.467],[-116.766,-581.701],[116.766,-581.701],[207,-491.467],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":109,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":110,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.341176470588,0.780392156863,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":414,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":82,"st":-110,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Pill to Arch | Elevation","tt":1,"tp":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-609,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-599,"s":[100]},{"t":0,"s":[15]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":206,"ix":3},"y":{"k":[{"s":[869.65],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[868.552],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[866.62],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[863.754],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[859.83],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[854.697],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[848.161],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[839.974],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[829.807],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[817.208],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[801.528],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[781.789],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[756.397],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[722.519],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[674.682],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[606.651],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[553.048],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[541],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[484.717],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[453.506],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[434.136],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[420.535],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[410.249],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[402.1],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[395.436],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[389.862],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[385.123],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[381.042],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[377.493],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[374.382],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[371.638],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[369.207],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[367.043],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[365.113],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[363.386],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[361.84],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[360.453],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[359.209],"t":91,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[358.094],"t":92,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[357.096],"t":93,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.202],"t":94,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.404],"t":95,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.694],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.065],"t":97,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.51],"t":98,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[353.022],"t":99,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.599],"t":100,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.233],"t":101,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.923],"t":102,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.663],"t":103,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.45],"t":104,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.155],"t":106,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"a":{"a":0,"k":[0,-2,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Continue Y Position","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":71,"s":[0]},{"t":109,"s":[-190]}],"ix":1}}]},{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":2,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":8,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.32,"y":1},"o":{"x":0.82,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[21.75,-21.641],[21.75,-21.75],[21.75,-21.75]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.4,"y":0},"t":24,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,23.5],[21.75,-21.75],[21.75,-66.5]],"c":false}]},{"i":{"x":0.65,"y":1},"o":{"x":0.167,"y":0},"t":44,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,13.5],[21.75,-21.75],[21.75,-56.5]],"c":false}]},{"i":{"x":0.39,"y":1},"o":{"x":0.35,"y":0},"t":49,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,13.5],[21.75,-21.75],[21.75,-56.5]],"c":false}]},{"i":{"x":0.39,"y":1},"o":{"x":0.35,"y":0},"t":66,"s":[{"i":[[0,0],[0,11.75],[0,0]],"o":[[0,0],[0,-11.583],[0,0]],"v":[[21.75,31.5],[21.75,-21.75],[21.75,-74.5]],"c":false}]},{"t":71,"s":[{"i":[[0,0],[0,23.75],[0,0]],"o":[[0,0],[0,-23.583],[0,0]],"v":[[29.75,31.5],[21.75,-21.75],[29.75,-74.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":-59,"s":[54]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.418],"y":[0]},"t":-4,"s":[58]},{"i":{"x":[0.149],"y":[1]},"o":{"x":[0.529],"y":[0]},"t":0,"s":[58]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":20,"s":[27]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":67,"s":[27]},{"t":86,"s":[58],"h":1}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.28],"y":[0.77]},"o":{"x":[0.87],"y":[0.12]},"t":69,"s":[0]},{"t":83,"s":[49.5]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.28],"y":[0.77]},"o":{"x":[0.87],"y":[0.12]},"t":69,"s":[100]},{"t":83,"s":[50.5]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-21.75],"ix":2},"a":{"a":0,"k":[0,-21.75],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-465,"s":[0]},{"t":-447,"s":[90]}],"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":"Bend","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":82,"st":-610,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Gesture Flash","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":7,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":19,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":31,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":49,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":71,"s":[100]},{"t":80,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1429,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.8],"y":[1]},"o":{"x":[1],"y":[0]},"t":53,"s":[581]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.312],"y":[4.051]},"t":71,"s":[910]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[910]},{"t":110,"s":[581]}],"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":53,"s":[90]},{"t":71,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[200]},{"t":110,"s":[90]}],"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":53,"s":[90]},{"t":71,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":80,"s":[200]},{"t":110,"s":[90]}],"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":53,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.772,0],[0,0],[0,-49.772],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.772],[0,0],[49.772,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.167],[-116.817,-581.35],[116.817,-581.35],[207,-491.167],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":54,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.09,0],[0,0],[0,-50.09],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.09],[0,0],[50.09,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.689],[-116.241,-582.448],[116.241,-582.448],[207,-491.689],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":55,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.651,0],[0,0],[0,-50.651],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.651],[0,0],[50.651,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.605],[-115.225,-584.38],[115.225,-584.38],[207,-492.605],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":56,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.485,0],[0,0],[0,-51.485],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-51.485],[0,0],[51.485,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-493.959],[-113.713,-587.246],[113.713,-587.246],[207,-493.959],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":57,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-52.63,0],[0,0],[0,-52.63],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-52.63],[0,0],[52.63,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.808],[-111.638,-591.17],[111.638,-591.17],[207,-495.808],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":58,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.132,0],[0,0],[0,-54.133],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-54.133],[0,0],[54.133,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.219],[-108.916,-596.303],[108.916,-596.303],[207,-498.219],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":59,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.05,0],[0,0],[0,-56.05],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-56.05],[0,0],[56.05,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-501.281],[-105.442,-602.839],[105.442,-602.839],[207,-501.281],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":60,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.455,0],[0,0],[0,-58.455],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.455],[0,0],[58.455,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-505.109],[-101.083,-611.026],[101.083,-611.026],[207,-505.109],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":61,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.443,0],[0,0],[0,-61.443],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-61.443],[0,0],[61.443,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-509.862],[-95.67,-621.193],[95.669,-621.193],[207,-509.862],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":62,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-65.136,0],[0,0],[0,-65.136],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-65.136],[0,0],[65.136,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.772],[-88.979,-633.792],[88.979,-633.792],[207,-515.772],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":63,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.689,0],[0,0],[0,-69.689],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-69.689],[0,0],[69.689,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.201],[-80.73,-649.472],[80.73,-649.472],[207,-523.201],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":64,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-75.292,0],[0,0],[0,-75.292],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-75.292],[0,0],[75.292,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.789],[-70.578,-669.211],[70.578,-669.211],[207,-532.789],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":65,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-82.119,0],[0,0],[0,-82.119],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-82.119],[0,0],[82.119,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-545.809],[-58.206,-694.603],[58.206,-694.603],[207,-545.809],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":66,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.124,0],[0,0],[0,-90.124],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-90.124],[0,0],[90.124,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-565.184],[-43.703,-728.481],[43.703,-728.481],[207,-565.184],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":67,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-98.484,0],[0,0],[0,-98.484],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-98.484],[0,0],[98.484,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-597.873],[-28.555,-776.318],[28.555,-776.318],[207,-597.873],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":68,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.33,0],[0,0],[0,-105.33],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.33],[0,0],[105.33,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-653.5],[-16.151,-844.349],[16.151,-844.349],[207,-653.5],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":69,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.245,0],[0,0],[0,-109.245],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.245],[0,0],[109.245,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-700.008],[-9.056,-897.952],[9.056,-897.952],[207,-700.008],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":70,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":71,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.387],[-7,-911.387],[7,-911.387],[207,-711.387],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":72,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.036],[-7,-911.036],[7,-911.036],[207,-711.036],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":74,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.362],[-7,-910.362],[7,-910.362],[207,-710.362],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":76,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":80,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.251,0],[0,0],[0,-110.251],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.251],[0,0],[110.251,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-709.533],[-7.234,-909.299],[7.234,-909.299],[207,-709.533],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":81,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.855,0],[0,0],[0,-109.855],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.855],[0,0],[109.855,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-708.106],[-7.951,-907.155],[7.951,-907.155],[207,-708.106],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":82,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.183,0],[0,0],[0,-109.183],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.183],[0,0],[109.183,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-705.681],[-9.169,-903.511],[9.169,-903.511],[207,-705.681],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":83,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-108.224,0],[0,0],[0,-108.224],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-108.224],[0,0],[108.224,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-702.223],[-10.906,-898.317],[10.906,-898.317],[207,-702.223],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":84,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-106.972,0],[0,0],[0,-106.972],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-106.972],[0,0],[106.972,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-697.707],[-13.174,-891.533],[13.174,-891.533],[207,-697.707],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":85,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.423,0],[0,0],[0,-105.422],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.422],[0,0],[105.423,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-692.117],[-15.983,-883.134],[15.983,-883.134],[207,-692.117],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":86,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-103.574,0],[0,0],[0,-103.574],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-103.574],[0,0],[103.574,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-685.448],[-19.332,-873.116],[19.332,-873.116],[207,-685.448],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":87,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-101.431,0],[0,0],[0,-101.431],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-101.431],[0,0],[101.431,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-677.717],[-23.215,-861.502],[23.215,-861.502],[207,-677.717],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":88,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-99.003,0],[0,0],[0,-99.003],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-99.003],[0,0],[99.003,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-668.96],[-27.614,-848.347],[27.614,-848.347],[207,-668.96],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":89,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-96.309,0],[0,0],[0,-96.309],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-96.309],[0,0],[96.309,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-659.241],[-32.495,-833.746],[32.495,-833.746],[207,-659.241],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":90,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-93.374,0],[0,0],[0,-93.374],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-93.374],[0,0],[93.374,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-648.653],[-37.814,-817.839],[37.814,-817.839],[207,-648.653],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":91,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.232,0],[0,0],[0,-90.232],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-90.232],[0,0],[90.232,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-637.317],[-43.507,-800.81],[43.507,-800.81],[207,-637.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":92,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-86.925,0],[0,0],[0,-86.925],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-86.925],[0,0],[86.925,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-625.39],[-49.498,-782.892],[49.498,-782.892],[207,-625.39],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":93,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-83.505,0],[0,0],[0,-83.505],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-83.505],[0,0],[83.505,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-613.051],[-55.696,-764.355],[55.696,-764.355],[207,-613.051],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":94,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-76.546,0],[0,0],[0,-76.546],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-76.546],[0,0],[76.546,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-587.949],[-68.304,-726.645],[68.304,-726.645],[207,-587.949],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-73.126,0],[0,0],[0,-73.126],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-73.126],[0,0],[73.126,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-575.61],[-74.502,-708.108],[74.502,-708.108],[207,-575.61],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":97,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.819,0],[0,0],[0,-69.819],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-69.819],[0,0],[69.819,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-563.683],[-80.493,-690.19],[80.493,-690.19],[207,-563.683],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":98,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-66.677,0],[0,0],[0,-66.677],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-66.677],[0,0],[66.677,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-552.347],[-86.186,-673.161],[86.186,-673.161],[207,-552.347],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":99,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-63.742,0],[0,0],[0,-63.742],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-63.742],[0,0],[63.742,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-541.759],[-91.505,-657.254],[91.505,-657.254],[207,-541.759],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":100,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.048,0],[0,0],[0,-61.048],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-61.048],[0,0],[61.048,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.04],[-96.386,-642.653],[96.386,-642.653],[207,-532.04],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":101,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.62,0],[0,0],[0,-58.62],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.62],[0,0],[58.62,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.283],[-100.785,-629.498],[100.785,-629.498],[207,-523.283],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":102,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.477,0],[0,0],[0,-56.477],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-56.477],[0,0],[56.477,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.552],[-104.668,-617.884],[104.668,-617.884],[207,-515.552],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":103,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.628,0],[0,0],[0,-54.629],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-54.629],[0,0],[54.628,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-508.884],[-108.017,-607.866],[108.017,-607.866],[207,-508.884],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":104,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-53.079,0],[0,0],[0,-53.079],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-53.079],[0,0],[53.079,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-503.293],[-110.826,-599.467],[110.826,-599.467],[207,-503.293],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":105,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.827,0],[0,0],[0,-51.827],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-51.827],[0,0],[51.827,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.777],[-113.094,-592.683],[113.094,-592.683],[207,-498.777],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":106,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.868,0],[0,0],[0,-50.868],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.868],[0,0],[50.868,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.319],[-114.831,-587.489],[114.831,-587.489],[207,-495.319],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":107,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.196,0],[0,0],[0,-50.196],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.196],[0,0],[50.196,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.894],[-116.049,-583.845],[116.049,-583.845],[207,-492.894],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":108,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.8,0],[0,0],[0,-49.8],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.8],[0,0],[49.8,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.467],[-116.766,-581.701],[116.766,-581.701],[207,-491.467],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":109,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":110,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.341176470588,0.780392156863,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":414,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":110,"st":-110,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Gesture Second Flash - ON COMMIT","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[95]},{"t":100,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1376,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.268]},"t":71,"s":[857]},{"t":109,"s":[1204]}],"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":0,"k":200,"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":0,"k":200,"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]},{"ty":5,"nm":"Transform","np":14,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[206,446],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[206,446],"ix":2}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":50,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-657],[-7,-857],[7,-857],[207,-657],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":71,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.063],[-7,-910.063],[7,-910.063],[207,-710.063],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":72,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-753.007],[-7,-953.007],[7,-953.007],[207,-753.007],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":73,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-785.49],[-7,-985.49],[7,-985.49],[207,-785.49],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":74,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-811.374],[-7,-1011.374],[7,-1011.374],[207,-811.374],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":75,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-832.839],[-7,-1032.839],[7,-1032.839],[207,-832.839],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":76,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-851.125],[-7,-1051.125],[7,-1051.125],[207,-851.125],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":77,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-866.998],[-7,-1066.998],[7,-1066.998],[207,-866.998],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":78,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-880.965],[-7,-1080.965],[7,-1080.965],[207,-880.965],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":79,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-893.379],[-7,-1093.379],[7,-1093.379],[207,-893.379],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":80,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-904.497],[-7,-1104.497],[7,-1104.497],[207,-904.497],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":81,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-914.513],[-7,-1114.513],[7,-1114.513],[207,-914.513],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":82,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-923.578],[-7,-1123.578],[7,-1123.578],[207,-923.578],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":83,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-931.81],[-7,-1131.81],[7,-1131.81],[207,-931.81],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":84,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-939.307],[-7,-1139.307],[7,-1139.307],[207,-939.307],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":85,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-946.146],[-7,-1146.146],[7,-1146.146],[207,-946.146],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":86,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-952.394],[-7,-1152.394],[7,-1152.394],[207,-952.394],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":87,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-958.107],[-7,-1158.106],[7,-1158.106],[207,-958.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":88,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-963.331],[-7,-1163.331],[7,-1163.331],[207,-963.331],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":89,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-968.107],[-7,-1168.107],[7,-1168.107],[207,-968.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":90,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-972.472],[-7,-1172.472],[7,-1172.472],[207,-972.472],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":91,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-976.455],[-7,-1176.455],[7,-1176.455],[207,-976.455],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":92,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-980.085],[-7,-1180.085],[7,-1180.085],[207,-980.085],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":93,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-983.384],[-7,-1183.384],[7,-1183.384],[207,-983.384],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":94,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-986.375],[-7,-1186.375],[7,-1186.375],[207,-986.375],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":95,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-989.077],[-7,-1189.078],[7,-1189.078],[207,-989.077],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-991.508],[-7,-1191.508],[7,-1191.508],[207,-991.508],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":97,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-993.682],[-7,-1193.682],[7,-1193.682],[207,-993.682],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":98,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-995.614],[-7,-1195.614],[7,-1195.614],[207,-995.614],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":99,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-997.317],[-7,-1197.317],[7,-1197.317],[207,-997.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":100,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-998.803],[-7,-1198.803],[7,-1198.803],[207,-998.803],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":101,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1000.082],[-7,-1200.082],[7,-1200.082],[207,-1000.082],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":102,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1001.164],[-7,-1201.165],[7,-1201.165],[207,-1001.164],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":103,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.06],[-7,-1202.06],[7,-1202.06],[207,-1002.06],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":104,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.776],[-7,-1202.776],[7,-1202.776],[207,-1002.776],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":105,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1003.702],[-7,-1203.702],[7,-1203.702],[207,-1003.702],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":107,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.341176470588,0.780392156863,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":414,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":70,"op":109,"st":-110,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Part02_Charade_Loop_V01","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,446,0],"ix":2,"l":2},"a":{"a":0,"k":[206,446,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":412,"h":892,"ip":320,"op":1301,"st":320,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"HAND NULL","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.59],"y":[0]},"t":3,"s":[10]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.15],"y":[0]},"t":59,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":95,"s":[-3]},{"i":{"x":[0.44],"y":[1]},"o":{"x":[0.84],"y":[0]},"t":122,"s":[-4]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.56],"y":[0]},"t":150,"s":[15]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":175,"s":[-4]},{"i":{"x":[0.44],"y":[1]},"o":{"x":[0.84],"y":[0]},"t":234,"s":[-4]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":262,"s":[15]},{"t":323,"s":[-5]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.06],"y":[0.36]},"t":0,"s":[549]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[412]},{"i":{"x":[0.56],"y":[1]},"o":{"x":[0.88],"y":[0]},"t":262,"s":[412]},{"t":343,"s":[549]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.194],"y":[0]},"t":0,"s":[1031.366]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":63,"s":[920]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":122,"s":[920]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.259],"y":[0]},"t":145,"s":[727]},{"i":{"x":[0.45],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":147,"s":[727]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":208,"s":[920]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":234,"s":[920]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.259],"y":[0]},"t":257,"s":[727]},{"i":{"x":[0.47],"y":[1]},"o":{"x":[0.47],"y":[0]},"t":259,"s":[727]},{"t":336,"s":[1014.366]}],"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":5,"nm":"Void","np":20,"mn":"Pseudo/289611","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/289611-0001","ix":1,"v":{"a":0,"k":100,"ix":1}},{"ty":0,"nm":"Height","mn":"Pseudo/289611-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset X","mn":"Pseudo/289611-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/289611-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":6,"nm":"About","mn":"Pseudo/289611-0005","ix":5,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/289611-0006","ix":6,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0007","ix":7,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/289611-0008","ix":8,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0009","ix":9,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/289611-0010","ix":10,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0011","ix":11,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/289611-0012","ix":12,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0013","ix":13,"v":0},{"ty":6,"nm":"Void - 1.0.0","mn":"Pseudo/289611-0014","ix":14,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0015","ix":15,"v":0},{"ty":6,"nm":"© 2022 Battle Axe Inc","mn":"Pseudo/289611-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0017","ix":17,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/289611-0018","ix":18,"v":0}]}],"ip":0,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"⨳ Thumb KO","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[17.7],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.084],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.752],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.548],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.405],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.298],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.213],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.144],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.086],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.037],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.995],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.958],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.926],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.898],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.874],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.852],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.832],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.815],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.8],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.786],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.773],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.763],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.753],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.744],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.73],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.715],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.706],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.723],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.753],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.794],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.845],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.906],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.974],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.048],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.126],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.206],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.286],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.366],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.445],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.522],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.596],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.667],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.736],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.801],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.864],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.923],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.979],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.033],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.083],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.131],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.176],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.219],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.259],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.297],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.333],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.366],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.397],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.427],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.454],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.48],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.504],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.526],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.547],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.566],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.584],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.6],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.615],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.628],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.64],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.651],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.661],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.677],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.693],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.682],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.664],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.642],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.617],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.589],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.559],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.528],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.496],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.462],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.427],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.391],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.355],"t":214,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.318],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.28],"t":216,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.241],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.202],"t":218,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.163],"t":219,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.123],"t":220,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.083],"t":221,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.043],"t":222,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.002],"t":223,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.961],"t":224,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.92],"t":225,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.878],"t":226,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.837],"t":227,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.795],"t":228,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.754],"t":229,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.587],"t":233,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.545],"t":234,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.504],"t":235,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.462],"t":236,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.421],"t":237,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.38],"t":238,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.339],"t":239,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.298],"t":240,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.258],"t":241,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.218],"t":242,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.178],"t":243,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.139],"t":244,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.1],"t":245,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.062],"t":246,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.025],"t":247,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.988],"t":248,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.952],"t":249,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.917],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.883],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.85],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.819],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.79],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.764],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.74],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.72],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.706],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.706],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.723],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.753],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.794],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.845],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.906],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.974],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.048],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.126],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.206],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.286],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.366],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.445],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.522],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.596],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.667],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.736],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.801],"t":277,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.864],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.923],"t":279,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.979],"t":280,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.033],"t":281,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.083],"t":282,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.131],"t":283,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.176],"t":284,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.219],"t":285,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.259],"t":286,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.297],"t":287,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.333],"t":288,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.366],"t":289,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.397],"t":290,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.427],"t":291,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.454],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.48],"t":293,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.504],"t":294,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.526],"t":295,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.547],"t":296,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.566],"t":297,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.584],"t":298,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.6],"t":299,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.615],"t":300,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.628],"t":301,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.64],"t":302,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.651],"t":303,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.661],"t":304,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.677],"t":306,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.693],"t":309,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"k":[{"s":[0,0,0],"t":122,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.015,0,0],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.077,0,0],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.192,0,0],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.364,0,0],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.598,0,0],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.902,0,0],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.285,0,0],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.76,0,0],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.347,0,0],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.074,0,0],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.968,0,0],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.068,0,0],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.423,0,0],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.089,0,0],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-10.109,0,0],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-12.416,0,0],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.732,0,0],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-16.688,0,0],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.11,0,0],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.047,0,0],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.624,0,0],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.922,0,0],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-20,0,0],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-20,0,0],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.949,0,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.77,0,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.468,0,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.054,0,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.54,0,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-17.938,0,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-17.258,0,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-16.519,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-15.742,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.942,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.136,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-13.336,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-12.55,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-11.783,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-11.04,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-10.326,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-9.641,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.987,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.363,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.77,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.207,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.673,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.169,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.691,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.24,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.813,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.411,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.031,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.675,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.34,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.026,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.732,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.457,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.2,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.961,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.739,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.533,0,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.343,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.168,0,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.006,0,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.857,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.722,0,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.598,0,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.488,0,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.389,0,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.302,0,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.226,0,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.161,0,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.108,0,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.066,0,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.034,0,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.013,0,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.002,0,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0,0],"t":234,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.015,0,0],"t":235,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.077,0,0],"t":236,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.192,0,0],"t":237,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.364,0,0],"t":238,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.598,0,0],"t":239,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.902,0,0],"t":240,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.285,0,0],"t":241,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.76,0,0],"t":242,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.347,0,0],"t":243,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.074,0,0],"t":244,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.968,0,0],"t":245,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.068,0,0],"t":246,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.423,0,0],"t":247,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.089,0,0],"t":248,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-10.109,0,0],"t":249,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-12.416,0,0],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.732,0,0],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-16.688,0,0],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.11,0,0],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.047,0,0],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.624,0,0],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.922,0,0],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-20,0,0],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-20,0,0],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.949,0,0],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.77,0,0],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.468,0,0],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.054,0,0],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.54,0,0],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-17.938,0,0],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-17.258,0,0],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-16.519,0,0],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-15.742,0,0],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.942,0,0],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.136,0,0],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-13.336,0,0],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-12.55,0,0],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-11.783,0,0],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-11.04,0,0],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-10.326,0,0],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-9.641,0,0],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.987,0,0],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.363,0,0],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.77,0,0],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.207,0,0],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.673,0,0],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.169,0,0],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.691,0,0],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.24,0,0],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.813,0,0],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.411,0,0],"t":286,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.031,0,0],"t":287,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.675,0,0],"t":288,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.34,0,0],"t":289,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.026,0,0],"t":290,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.732,0,0],"t":291,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.457,0,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.2,0,0],"t":293,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.961,0,0],"t":294,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.739,0,0],"t":295,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.533,0,0],"t":296,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.343,0,0],"t":297,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.168,0,0],"t":298,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.006,0,0],"t":299,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.857,0,0],"t":300,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.722,0,0],"t":301,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.598,0,0],"t":302,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.488,0,0],"t":303,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.389,0,0],"t":304,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.302,0,0],"t":305,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.226,0,0],"t":306,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.161,0,0],"t":307,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.108,0,0],"t":308,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.066,0,0],"t":309,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.034,0,0],"t":310,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.013,0,0],"t":311,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.002,0,0],"t":312,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0,0],"t":313,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[0,49,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.058],[20.871,-4.348],[30.147,15.653],[-19.422,9.856],[-43.806,10.633],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.364],[31.033,-15.738],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.238,116.511],[-118.128,117.96],[-234.659,118.83],[-235.238,50.129],[-138.858,16.664],[-91.169,5.488],[-12.612,-36.255]],"c":true}],"t":59,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.095,4.103],[20.866,-4.391],[30.055,14.909],[-19.458,9.569],[-43.79,10.76],[-18.62,4.309],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.284,-4.689],[-20.866,4.391],[-30.056,-14.63],[31.09,-15.283],[13.475,-3.311],[35.363,-7.848],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.667,116.665],[-117.97,119.232],[-229.615,116.95],[-229.867,50.888],[-139.016,15.389],[-88.152,4.787],[-12.612,-36.255]],"c":true}],"t":60,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.098,4.127],[20.863,-4.414],[30.005,14.508],[-19.477,9.414],[-43.782,10.829],[-18.619,4.316],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.287,-4.716],[-20.863,4.414],[-30.007,-14.235],[31.121,-15.037],[13.472,-3.332],[35.361,-7.859],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.82,116.749],[-117.884,119.917],[-226.898,115.937],[-226.972,51.297],[-139.102,14.702],[-86.526,4.409],[-12.612,-36.255]],"c":true}],"t":61,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.099,4.142],[20.861,-4.429],[29.974,14.261],[-19.489,9.319],[-43.776,10.871],[-18.619,4.32],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.289,-4.733],[-20.861,4.429],[-29.977,-13.992],[31.139,-14.886],[13.471,-3.345],[35.36,-7.866],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.3,116.8],[-117.832,120.338],[-225.228,115.315],[-225.194,51.548],[-139.154,14.28],[-85.528,4.177],[-12.612,-36.255]],"c":true}],"t":62,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.101,4.152],[20.86,-4.438],[29.953,14.089],[-19.498,9.253],[-43.773,10.9],[-18.618,4.323],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.291,-4.744],[-20.86,4.438],[-29.956,-13.823],[31.153,-14.781],[13.469,-3.354],[35.36,-7.871],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.936,116.835],[-117.796,120.632],[-224.061,114.88],[-223.952,51.724],[-139.191,13.985],[-84.829,4.015],[-12.612,-36.255]],"c":true}],"t":63,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.102,4.16],[20.859,-4.446],[29.937,13.959],[-19.504,9.203],[-43.77,10.923],[-18.618,4.325],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.292,-4.753],[-20.859,4.446],[-29.94,-13.695],[31.162,-14.701],[13.469,-3.361],[35.359,-7.874],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.662,116.862],[-117.768,120.854],[-223.181,114.552],[-223.014,51.856],[-139.219,13.762],[-84.303,3.893],[-12.612,-36.255]],"c":true}],"t":64,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.102,4.166],[20.858,-4.452],[29.924,13.857],[-19.509,9.163],[-43.768,10.94],[-18.618,4.326],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.293,-4.76],[-20.858,4.452],[-29.927,-13.594],[31.17,-14.638],[13.468,-3.366],[35.359,-7.877],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.446,116.884],[-117.746,121.029],[-222.486,114.293],[-222.274,51.961],[-139.241,13.586],[-83.887,3.796],[-12.612,-36.255]],"c":true}],"t":65,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.103,4.171],[20.858,-4.457],[29.914,13.773],[-19.513,9.131],[-43.766,10.954],[-18.618,4.328],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.294,-4.766],[-20.858,4.457],[-29.917,-13.511],[31.177,-14.587],[13.467,-3.371],[35.359,-7.88],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.269,116.901],[-117.728,121.172],[-221.919,114.082],[-221.67,52.046],[-139.258,13.443],[-83.548,3.717],[-12.612,-36.255]],"c":true}],"t":66,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.104,4.175],[20.857,-4.461],[29.905,13.703],[-19.516,9.104],[-43.764,10.966],[-18.617,4.329],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.294,-4.771],[-20.857,4.461],[-29.908,-13.443],[31.182,-14.544],[13.467,-3.375],[35.358,-7.882],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.121,116.915],[-117.714,121.291],[-221.446,113.906],[-221.166,52.118],[-139.273,13.323],[-83.265,3.652],[-12.612,-36.255]],"c":true}],"t":67,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.104,4.179],[20.857,-4.464],[29.897,13.644],[-19.519,9.081],[-43.763,10.977],[-18.617,4.33],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.775],[-20.857,4.464],[-29.901,-13.384],[31.186,-14.508],[13.467,-3.378],[35.358,-7.883],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.997,116.928],[-117.701,121.392],[-221.044,113.756],[-220.739,52.178],[-139.286,13.222],[-83.025,3.596],[-12.612,-36.255]],"c":true}],"t":68,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.104,4.182],[20.856,-4.467],[29.891,13.593],[-19.522,9.062],[-43.762,10.985],[-18.617,4.331],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.778],[-20.856,4.467],[-29.895,-13.334],[31.19,-14.477],[13.466,-3.38],[35.358,-7.885],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.889,116.938],[-117.69,121.479],[-220.7,113.628],[-220.372,52.23],[-139.297,13.135],[-82.819,3.548],[-12.612,-36.255]],"c":true}],"t":69,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.184],[20.856,-4.47],[29.886,13.549],[-19.524,9.045],[-43.761,10.993],[-18.617,4.331],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.781],[-20.856,4.47],[-29.89,-13.291],[31.194,-14.45],[13.466,-3.383],[35.358,-7.886],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.796,116.947],[-117.681,121.554],[-220.401,113.516],[-220.054,52.275],[-139.306,13.059],[-82.64,3.507],[-12.612,-36.255]],"c":true}],"t":70,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.187],[20.856,-4.472],[29.881,13.51],[-19.526,9.03],[-43.76,10.999],[-18.617,4.332],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.784],[-20.856,4.472],[-29.885,-13.253],[31.197,-14.426],[13.466,-3.385],[35.358,-7.887],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.715,116.955],[-117.673,121.62],[-220.14,113.419],[-219.776,52.314],[-139.314,12.993],[-82.484,3.47],[-12.612,-36.255]],"c":true}],"t":71,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.189],[20.856,-4.474],[29.877,13.477],[-19.527,9.017],[-43.76,11.005],[-18.617,4.333],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.786],[-20.856,4.474],[-29.881,-13.219],[31.199,-14.406],[13.465,-3.386],[35.357,-7.888],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.643,116.962],[-117.665,121.678],[-219.911,113.334],[-219.531,52.349],[-139.322,12.935],[-82.347,3.438],[-12.612,-36.255]],"c":true}],"t":72,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.191],[20.855,-4.476],[29.873,13.447],[-19.529,9.005],[-43.759,11.01],[-18.617,4.333],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.788],[-20.855,4.476],[-29.877,-13.19],[31.201,-14.387],[13.465,-3.388],[35.357,-7.889],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.58,116.969],[-117.659,121.729],[-219.708,113.258],[-219.316,52.379],[-139.328,12.884],[-82.226,3.41],[-12.612,-36.255]],"c":true}],"t":73,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.192],[20.855,-4.477],[29.87,13.42],[-19.53,8.995],[-43.758,11.015],[-18.617,4.334],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.79],[-20.855,4.477],[-29.874,-13.164],[31.203,-14.371],[13.465,-3.389],[35.357,-7.89],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.524,116.974],[-117.654,121.774],[-219.529,113.191],[-219.124,52.406],[-139.334,12.839],[-82.118,3.385],[-12.612,-36.255]],"c":true}],"t":74,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.194],[20.855,-4.478],[29.867,13.397],[-19.531,8.986],[-43.758,11.019],[-18.617,4.334],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.791],[-20.855,4.478],[-29.871,-13.141],[31.205,-14.357],[13.465,-3.391],[35.357,-7.89],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.475,116.979],[-117.649,121.815],[-219.369,113.132],[-218.955,52.43],[-139.339,12.798],[-82.023,3.363],[-12.612,-36.255]],"c":true}],"t":75,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.195],[20.855,-4.48],[29.864,13.376],[-19.532,8.978],[-43.757,11.022],[-18.617,4.334],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.793],[-20.855,4.48],[-29.868,-13.12],[31.207,-14.344],[13.465,-3.392],[35.357,-7.891],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.43,116.983],[-117.644,121.85],[-219.227,113.079],[-218.803,52.451],[-139.343,12.762],[-81.938,3.343],[-12.612,-36.255]],"c":true}],"t":76,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.196],[20.855,-4.481],[29.862,13.357],[-19.533,8.971],[-43.757,11.026],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.794],[-20.855,4.481],[-29.866,-13.102],[31.208,-14.332],[13.465,-3.393],[35.357,-7.891],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.391,116.987],[-117.64,121.882],[-219.101,113.032],[-218.669,52.47],[-139.347,12.73],[-81.862,3.326],[-12.612,-36.255]],"c":true}],"t":77,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.197],[20.855,-4.482],[29.86,13.34],[-19.534,8.965],[-43.757,11.028],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.795],[-20.855,4.482],[-29.864,-13.085],[31.21,-14.322],[13.465,-3.394],[35.357,-7.892],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.356,116.991],[-117.637,121.911],[-218.988,112.99],[-218.549,52.487],[-139.351,12.702],[-81.795,3.31],[-12.612,-36.255]],"c":true}],"t":78,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.198],[20.854,-4.483],[29.858,13.326],[-19.535,8.959],[-43.756,11.031],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.796],[-20.854,4.483],[-29.862,-13.071],[31.211,-14.313],[13.464,-3.394],[35.357,-7.892],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.324,116.994],[-117.633,121.936],[-218.888,112.952],[-218.441,52.503],[-139.354,12.676],[-81.735,3.296],[-12.612,-36.255]],"c":true}],"t":79,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.199],[20.854,-4.483],[29.856,13.312],[-19.535,8.954],[-43.756,11.033],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.797],[-20.854,4.483],[-29.861,-13.058],[31.212,-14.305],[13.464,-3.395],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.297,116.997],[-117.631,121.959],[-218.798,112.919],[-218.346,52.516],[-139.357,12.654],[-81.681,3.284],[-12.612,-36.255]],"c":true}],"t":80,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.199],[20.854,-4.484],[29.855,13.301],[-19.536,8.949],[-43.756,11.035],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.798],[-20.854,4.484],[-29.859,-13.046],[31.213,-14.298],[13.464,-3.396],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.272,116.999],[-117.628,121.979],[-218.719,112.889],[-218.261,52.528],[-139.359,12.634],[-81.633,3.273],[-12.612,-36.255]],"c":true}],"t":81,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.2],[20.854,-4.485],[29.854,13.29],[-19.537,8.945],[-43.756,11.037],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.799],[-20.854,4.485],[-29.858,-13.036],[31.213,-14.291],[13.464,-3.396],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.25,117.001],[-117.626,121.996],[-218.648,112.863],[-218.186,52.539],[-139.361,12.616],[-81.591,3.263],[-12.612,-36.255]],"c":true}],"t":82,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.201],[20.854,-4.485],[29.852,13.281],[-19.537,8.942],[-43.755,11.039],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.799],[-20.854,4.485],[-29.857,-13.027],[31.214,-14.286],[13.464,-3.397],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.23,117.003],[-117.624,122.012],[-218.586,112.84],[-218.12,52.548],[-139.363,12.6],[-81.554,3.254],[-12.612,-36.255]],"c":true}],"t":83,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.201],[20.854,-4.486],[29.851,13.273],[-19.537,8.939],[-43.755,11.04],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.8],[-20.854,4.486],[-29.856,-13.019],[31.215,-14.281],[13.464,-3.397],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.213,117.005],[-117.622,122.026],[-218.531,112.819],[-218.062,52.556],[-139.365,12.586],[-81.521,3.247],[-12.612,-36.255]],"c":true}],"t":84,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.201],[20.854,-4.486],[29.85,13.266],[-19.538,8.936],[-43.755,11.041],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.8],[-20.854,4.486],[-29.855,-13.012],[31.215,-14.277],[13.464,-3.397],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.199,117.006],[-117.621,122.038],[-218.483,112.801],[-218.011,52.563],[-139.366,12.574],[-81.493,3.24],[-12.612,-36.255]],"c":true}],"t":85,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[20.854,-4.486],[29.85,13.26],[-19.538,8.933],[-43.755,11.042],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-20.854,4.486],[-29.854,-13.006],[31.216,-14.273],[13.464,-3.398],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.186,117.007],[-117.619,122.048],[-218.442,112.786],[-217.967,52.57],[-139.368,12.564],[-81.468,3.234],[-12.612,-36.255]],"c":true}],"t":86,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[20.854,-4.487],[29.849,13.255],[-19.538,8.931],[-43.755,11.043],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-20.854,4.487],[-29.853,-13.001],[31.216,-14.27],[13.464,-3.398],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.174,117.009],[-117.618,122.057],[-218.406,112.773],[-217.929,52.575],[-139.369,12.555],[-81.446,3.229],[-12.612,-36.255]],"c":true}],"t":87,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[20.854,-4.487],[29.849,13.25],[-19.538,8.93],[-43.755,11.044],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-20.854,4.487],[-29.853,-12.996],[31.216,-14.267],[13.464,-3.398],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.165,117.009],[-117.617,122.065],[-218.376,112.761],[-217.896,52.58],[-139.37,12.547],[-81.428,3.225],[-12.612,-36.255]],"c":true}],"t":88,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.487],[29.848,13.246],[-19.539,8.928],[-43.755,11.045],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.487],[-29.852,-12.992],[31.217,-14.265],[13.464,-3.399],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.157,117.01],[-117.617,122.071],[-218.35,112.752],[-217.869,52.583],[-139.371,12.541],[-81.413,3.221],[-12.612,-36.255]],"c":true}],"t":89,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.487],[29.848,13.243],[-19.539,8.927],[-43.755,11.045],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.487],[-29.852,-12.99],[31.217,-14.263],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.151,117.011],[-117.616,122.077],[-218.33,112.744],[-217.847,52.586],[-139.371,12.535],[-81.401,3.219],[-12.612,-36.255]],"c":true}],"t":90,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.487],[29.847,13.241],[-19.539,8.926],[-43.755,11.046],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.487],[-29.852,-12.987],[31.217,-14.261],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.146,117.011],[-117.615,122.081],[-218.313,112.738],[-217.83,52.589],[-139.372,12.531],[-81.391,3.216],[-12.612,-36.255]],"c":true}],"t":91,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.853,-4.49],[29.848,13.234],[-19.538,8.926],[-43.753,11.05],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.853,4.49],[-29.852,-12.98],[31.216,-14.262],[13.464,-3.4],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.609,122.089],[-218.282,112.739],[-217.802,52.604],[-139.378,12.528],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.852,-4.496],[29.852,13.224],[-19.535,8.933],[-43.749,11.064],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.852,4.496],[-29.856,-12.971],[31.211,-14.271],[13.462,-3.405],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.592,122.092],[-218.266,112.774],[-217.805,52.64],[-139.395,12.539],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":97,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.849,-4.509],[29.859,13.206],[-19.529,8.944],[-43.742,11.09],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.849,4.509],[-29.863,-12.952],[31.202,-14.29],[13.46,-3.413],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.558,122.098],[-218.236,112.841],[-217.812,52.707],[-139.427,12.561],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":98,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.843,-4.529],[29.871,13.176],[-19.52,8.963],[-43.729,11.133],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.843,4.529],[-29.875,-12.923],[31.187,-14.32],[13.456,-3.426],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.504,122.108],[-218.187,112.95],[-217.822,52.818],[-139.479,12.596],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":99,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.835,-4.56],[29.89,13.13],[-19.505,8.992],[-43.71,11.199],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.835,4.56],[-29.893,-12.877],[31.163,-14.367],[13.45,-3.446],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.42,122.123],[-218.112,113.119],[-217.838,52.99],[-139.56,12.65],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":100,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.823,-4.609],[29.918,13.059],[-19.483,9.037],[-43.681,11.3],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.823,4.609],[-29.921,-12.806],[31.128,-14.438],[13.441,-3.477],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.29,122.147],[-217.996,113.379],[-217.863,53.253],[-139.685,12.734],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":101,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.804,-4.686],[29.964,12.946],[-19.447,9.109],[-43.634,11.462],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.804,4.686],[-29.966,-12.693],[31.07,-14.553],[13.427,-3.527],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.083,122.185],[-217.811,113.794],[-217.902,53.674],[-139.884,12.867],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":102,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.77,-4.822],[30.044,12.747],[-19.384,9.235],[-43.551,11.747],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.77,4.822],[-30.044,-12.494],[30.969,-14.755],[13.401,-3.615],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-116.718,122.253],[-217.485,114.525],[-217.971,54.416],[-140.234,13.103],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":103,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.705,-5.078],[30.195,12.372],[-19.265,9.473],[-43.396,12.284],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.705,5.078],[-30.192,-12.118],[30.779,-15.136],[13.353,-3.78],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-116.032,122.379],[-216.87,115.902],[-218.102,55.813],[-140.895,13.546],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":104,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.64,-5.337],[30.347,11.993],[-19.145,9.713],[-43.239,12.825],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.64,5.337],[-30.341,-11.74],[30.588,-15.519],[13.305,-3.947],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.339,122.506],[-216.251,117.29],[-218.233,57.222],[-141.561,13.993],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":105,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.601,-5.492],[30.439,11.766],[-19.073,9.857],[-43.144,13.15],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.601,5.492],[-30.431,-11.513],[30.473,-15.749],[13.276,-4.047],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.924,122.583],[-215.879,118.123],[-218.312,58.067],[-141.96,14.261],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":106,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.575,-5.593],[30.498,11.617],[-19.026,9.952],[-43.083,13.363],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.575,5.593],[-30.489,-11.364],[30.397,-15.9],[13.257,-4.112],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.651,122.633],[-215.635,118.67],[-218.364,58.621],[-142.223,14.437],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":107,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.557,-5.667],[30.542,11.51],[-18.992,10.02],[-43.038,13.517],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.557,5.667],[-30.532,-11.257],[30.343,-16.009],[13.243,-4.159],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.455,122.669],[-215.459,119.064],[-218.401,59.021],[-142.412,14.564],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":108,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.543,-5.723],[30.575,11.428],[-18.966,10.072],[-43.004,13.634],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.543,5.723],[-30.564,-11.175],[30.301,-16.092],[13.233,-4.195],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.305,122.697],[-215.325,119.365],[-218.43,59.326],[-142.556,14.661],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":109,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.531,-5.767],[30.601,11.363],[-18.945,10.113],[-42.977,13.727],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.531,5.767],[-30.589,-11.11],[30.269,-16.158],[13.225,-4.224],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.186,122.719],[-215.219,119.602],[-218.452,59.567],[-142.67,14.737],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":110,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.523,-5.802],[30.622,11.312],[-18.929,10.146],[-42.956,13.801],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.523,5.802],[-30.61,-11.058],[30.242,-16.21],[13.218,-4.247],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.092,122.736],[-215.134,119.792],[-218.47,59.76],[-142.761,14.798],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":111,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.515,-5.831],[30.638,11.269],[-18.916,10.173],[-42.938,13.861],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.515,5.831],[-30.626,-11.016],[30.221,-16.253],[13.213,-4.265],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.014,122.75],[-215.066,119.947],[-218.485,59.916],[-142.835,14.848],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":112,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.509,-5.855],[30.652,11.235],[-18.905,10.194],[-42.924,13.91],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.509,5.855],[-30.64,-10.982],[30.204,-16.288],[13.208,-4.28],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.952,122.762],[-215.009,120.073],[-218.497,60.044],[-142.896,14.888],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":113,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.505,-5.874],[30.664,11.207],[-18.896,10.212],[-42.912,13.951],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.505,5.874],[-30.651,-10.954],[30.19,-16.316],[13.205,-4.293],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.9,122.771],[-214.963,120.176],[-218.507,60.149],[-142.945,14.922],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":114,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.501,-5.889],[30.673,11.184],[-18.889,10.227],[-42.903,13.983],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.501,5.889],[-30.66,-10.931],[30.178,-16.339],[13.202,-4.303],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.858,122.779],[-214.926,120.259],[-218.514,60.234],[-142.985,14.948],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":115,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.497,-5.902],[30.68,11.166],[-18.883,10.238],[-42.895,14.009],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.497,5.902],[-30.667,-10.913],[30.169,-16.358],[13.2,-4.311],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.825,122.785],[-214.896,120.327],[-218.521,60.302],[-143.017,14.97],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":116,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.495,-5.912],[30.686,11.151],[-18.878,10.248],[-42.889,14.03],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.495,5.912],[-30.673,-10.898],[30.161,-16.372],[13.198,-4.317],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.799,122.79],[-214.872,120.38],[-218.526,60.356],[-143.043,14.987],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":117,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.493,-5.919],[30.69,11.14],[-18.875,10.255],[-42.885,14.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.493,5.919],[-30.677,-10.887],[30.156,-16.384],[13.196,-4.322],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.778,122.794],[-214.854,120.42],[-218.53,60.397],[-143.062,15],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":118,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.492,-5.925],[30.694,11.132],[-18.872,10.26],[-42.881,14.058],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.492,5.925],[-30.68,-10.879],[30.152,-16.392],[13.195,-4.326],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.763,122.797],[-214.841,120.45],[-218.533,60.427],[-143.077,15.01],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":119,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.491,-5.929],[30.696,11.127],[-18.87,10.263],[-42.879,14.065],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.491,5.929],[-30.683,-10.873],[30.149,-16.397],[13.195,-4.328],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.753,122.798],[-214.832,120.47],[-218.534,60.448],[-143.086,15.016],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":120,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.491,-5.926],[30.694,11.13],[-18.871,10.261],[-42.88,14.06],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.491,5.926],[-30.681,-10.877],[30.15,-16.393],[13.195,-4.327],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.76,122.801],[-214.837,120.461],[-218.532,60.439],[-143.08,15.017],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.494,-5.909],[30.683,11.154],[-18.878,10.245],[-42.888,14.024],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.494,5.909],[-30.67,-10.901],[30.161,-16.368],[13.197,-4.315],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.807,122.805],[-214.874,120.382],[-218.52,60.362],[-143.036,15.005],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.5,-5.878],[30.662,11.198],[-18.891,10.215],[-42.903,13.959],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.5,5.878],[-30.649,-10.945],[30.181,-16.321],[13.202,-4.295],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.891,122.811],[-214.94,120.24],[-218.497,60.223],[-142.957,14.984],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.509,-5.831],[30.631,11.264],[-18.91,10.171],[-42.926,13.86],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.509,5.831],[-30.619,-11.011],[30.212,-16.25],[13.209,-4.265],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.018,122.822],[-215.041,120.025],[-218.463,60.011],[-142.837,14.951],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.522,-5.764],[30.587,11.358],[-18.937,10.109],[-42.957,13.721],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.522,5.764],[-30.575,-11.105],[30.255,-16.15],[13.219,-4.222],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.198,122.836],[-215.184,119.721],[-218.416,59.713],[-142.668,14.904],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.539,-5.674],[30.527,11.485],[-18.973,10.024],[-43.001,13.532],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.539,5.674],[-30.517,-11.232],[30.313,-16.015],[13.232,-4.164],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.441,122.855],[-215.377,119.309],[-218.351,59.31],[-142.439,14.841],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.562,-5.555],[30.448,11.653],[-19.021,9.911],[-43.058,13.281],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.562,5.555],[-30.439,-11.4],[30.39,-15.835],[13.249,-4.087],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.764,122.881],[-215.634,118.763],[-218.265,58.774],[-142.135,14.757],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.592,-5.398],[30.343,11.875],[-19.085,9.763],[-43.133,12.95],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.592,5.398],[-30.336,-11.622],[30.492,-15.598],[13.273,-3.985],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.19,122.915],[-215.972,118.042],[-218.152,58.067],[-141.734,14.646],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.632,-5.189],[30.204,12.169],[-19.169,9.566],[-43.233,12.512],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.632,5.189],[-30.2,-11.916],[30.627,-15.284],[13.303,-3.85],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.755,122.96],[-216.421,117.086],[-218.001,57.13],[-141.203,14.5],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.686,-4.908],[30.018,12.566],[-19.283,9.302],[-43.368,11.922],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.686,4.908],[-30.017,-12.313],[30.808,-14.861],[13.345,-3.669],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-116.515,123.021],[-217.025,115.8],[-217.799,55.869],[-140.488,14.302],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.76,-4.519],[29.759,13.113],[-19.44,8.935],[-43.554,11.106],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.76,4.519],[-29.763,-12.861],[31.059,-14.276],[13.402,-3.417],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.567,123.104],[-217.86,114.021],[-217.519,54.124],[-139.498,14.029],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.865,-3.972],[29.396,13.885],[-19.662,8.42],[-43.816,9.956],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.865,3.972],[-29.406,-13.633],[31.413,-13.452],[13.483,-3.064],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-119.049,123.222],[-219.037,111.514],[-217.125,51.666],[-138.104,13.644],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.997,-3.279],[28.935,14.862],[-19.942,7.767],[-44.148,8.501],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.997,3.279],[-28.954,-14.61],[31.861,-12.409],[13.585,-2.616],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-120.924,123.372],[-220.526,108.342],[-216.626,48.556],[-136.34,13.158],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.11,-2.69],[28.544,15.692],[-20.18,7.212],[-44.431,7.265],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.11,2.69],[-28.57,-15.44],[32.241,-11.522],[13.672,-2.235],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-122.517,123.499],[-221.791,105.647],[-216.202,45.913],[-134.841,12.744],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.177,-2.342],[28.313,16.183],[-20.321,6.884],[-44.597,6.533],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.177,2.342],[-28.343,-15.931],[32.466,-10.998],[13.723,-2.01],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-123.459,123.574],[-222.539,104.053],[-215.952,44.35],[-133.955,12.499],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.212,-2.159],[28.191,16.441],[-20.395,6.711],[-44.685,6.149],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.212,2.159],[-28.224,-16.189],[32.585,-10.723],[13.75,-1.892],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-123.954,123.613],[-222.933,103.215],[-215.82,43.528],[-133.488,12.371],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.228,-2.074],[28.135,16.561],[-20.429,6.631],[-44.726,5.97],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.228,2.074],[-28.168,-16.31],[32.64,-10.595],[13.763,-1.837],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.185,123.632],[-223.116,102.825],[-215.759,43.146],[-133.272,12.311],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.05],[28.119,16.594],[-20.439,6.609],[-44.737,5.921],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.05],[-28.153,-16.343],[32.655,-10.559],[13.766,-1.822],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.248,123.637],[-223.166,102.718],[-215.742,43.041],[-133.212,12.294],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.054],[28.123,16.592],[-20.437,6.615],[-44.735,5.929],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.054],[-28.156,-16.341],[32.652,-10.569],[13.766,-1.825],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.146,117.011],[-124.237,123.627],[-223.187,102.747],[-215.777,43.054],[-133.222,12.302],[-81.393,3.217],[-12.612,-36.255]],"c":true}],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[21.23,-2.068],[28.135,16.587],[-20.431,6.634],[-44.73,5.957],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-21.23,2.068],[-28.168,-16.335],[32.642,-10.599],[13.764,-1.833],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.176,117.008],[-124.201,123.593],[-223.254,102.841],[-215.891,43.095],[-133.255,12.328],[-81.45,3.23],[-12.612,-36.255]],"c":true}],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.201],[21.226,-2.092],[28.156,16.577],[-20.42,6.669],[-44.72,6.008],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.799],[-21.226,2.092],[-28.189,-16.325],[32.625,-10.655],[13.761,-1.849],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.231,117.003],[-124.136,123.533],[-223.377,103.014],[-216.1,43.171],[-133.316,12.375],[-81.555,3.254],[-12.612,-36.255]],"c":true}],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.198],[21.22,-2.131],[28.19,16.561],[-20.403,6.723],[-44.705,6.086],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.797],[-21.22,2.131],[-28.223,-16.308],[32.598,-10.741],[13.756,-1.873],[35.357,-7.892],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.316,116.995],[-124.034,123.438],[-223.568,103.281],[-216.424,43.289],[-133.409,12.447],[-81.717,3.292],[-12.612,-36.255]],"c":true}],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.195],[21.211,-2.185],[28.238,16.539],[-20.379,6.8],[-44.682,6.198],[-18.617,4.334],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.793],[-21.211,2.185],[-28.27,-16.285],[32.56,-10.864],[13.749,-1.907],[35.357,-7.891],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.437,116.983],[-123.889,123.303],[-223.841,103.664],[-216.887,43.457],[-133.544,12.551],[-81.95,3.346],[-12.612,-36.255]],"c":true}],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.19],[21.2,-2.26],[28.304,16.508],[-20.346,6.905],[-44.652,6.351],[-18.617,4.333],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.787],[-21.2,2.26],[-28.335,-16.253],[32.507,-11.032],[13.74,-1.954],[35.357,-7.889],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.602,116.966],[-123.69,123.119],[-224.214,104.187],[-217.52,43.687],[-133.727,12.693],[-82.268,3.42],[-12.612,-36.255]],"c":true}],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.184],[21.184,-2.358],[28.391,16.468],[-20.303,7.044],[-44.612,6.552],[-18.617,4.331],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.78],[-21.184,2.358],[-28.42,-16.211],[32.438,-11.253],[13.728,-2.016],[35.358,-7.886],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.82,116.945],[-123.428,122.877],[-224.705,104.876],[-218.353,43.99],[-133.968,12.88],[-82.687,3.517],[-12.612,-36.255]],"c":true}],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.104,4.176],[21.164,-2.483],[28.501,16.417],[-20.247,7.22],[-44.562,6.808],[-18.617,4.329],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.294,-4.771],[-21.164,2.483],[-28.528,-16.158],[32.35,-11.534],[13.712,-2.095],[35.358,-7.882],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.097,116.918],[-123.096,122.568],[-225.33,105.751],[-219.412,44.375],[-134.275,13.117],[-83.219,3.641],[-12.612,-36.255]],"c":true}],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.102,4.166],[21.141,-2.634],[28.634,16.355],[-20.18,7.434],[-44.501,7.118],[-18.618,4.327],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.293,-4.761],[-21.141,2.634],[-28.659,-16.094],[32.243,-11.875],[13.693,-2.19],[35.359,-7.877],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.433,116.885],[-122.694,122.195],[-226.085,106.81],[-220.694,44.841],[-134.646,13.404],[-83.863,3.79],[-12.612,-36.255]],"c":true}],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.101,4.156],[21.114,-2.805],[28.785,16.285],[-20.105,7.675],[-44.431,7.468],[-18.618,4.324],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.291,-4.748],[-21.114,2.805],[-28.808,-16.021],[32.122,-12.26],[13.672,-2.298],[35.359,-7.872],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.812,116.848],[-122.238,121.773],[-226.94,108.009],[-222.145,45.369],[-135.066,13.729],[-84.591,3.96],[-12.612,-36.255]],"c":true}],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.1,4.144],[21.086,-2.984],[28.943,16.212],[-20.026,7.928],[-44.359,7.835],[-18.619,4.321],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.29,-4.736],[-21.086,2.984],[-28.963,-15.945],[31.996,-12.664],[13.65,-2.411],[35.36,-7.867],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.21,116.809],[-121.761,121.331],[-227.835,109.264],[-223.663,45.921],[-135.506,14.07],[-85.354,4.137],[-12.612,-36.255]],"c":true}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.098,4.133],[21.058,-3.158],[29.097,16.141],[-19.949,8.174],[-44.288,8.192],[-18.619,4.318],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.288,-4.723],[-21.058,3.158],[-29.114,-15.871],[31.873,-13.055],[13.628,-2.521],[35.361,-7.862],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.595,116.771],[-121.298,120.901],[-228.705,110.483],[-225.138,46.457],[-135.933,14.4],[-86.095,4.309],[-12.612,-36.255]],"c":true}],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.097,4.123],[21.033,-3.318],[29.238,16.075],[-19.878,8.4],[-44.224,8.52],[-18.619,4.315],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.287,-4.712],[-21.033,3.318],[-29.253,-15.803],[31.761,-13.416],[13.608,-2.622],[35.361,-7.857],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.951,116.736],[-120.872,120.506],[-229.505,111.605],[-226.495,46.95],[-136.326,14.705],[-86.777,4.468],[-12.612,-36.255]],"c":true}],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.096,4.114],[21.011,-3.46],[29.364,16.017],[-19.815,8.601],[-44.166,8.812],[-18.62,4.312],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.286,-4.701],[-21.011,3.46],[-29.377,-15.742],[31.66,-13.737],[13.59,-2.712],[35.362,-7.853],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.267,116.705],[-120.493,120.154],[-230.218,112.604],[-227.705,47.39],[-136.676,14.976],[-87.385,4.609],[-12.612,-36.255]],"c":true}],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.095,4.106],[20.991,-3.585],[29.474,15.966],[-19.759,8.778],[-44.115,9.069],[-18.62,4.31],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.284,-4.693],[-20.991,3.585],[-29.485,-15.689],[31.572,-14.019],[13.575,-2.791],[35.362,-7.849],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.545,116.677],[-120.159,119.845],[-230.844,113.481],[-228.766,47.776],[-136.984,15.214],[-87.918,4.733],[-12.612,-36.255]],"c":true}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.094,4.1],[20.974,-3.694],[29.57,15.921],[-19.711,8.932],[-44.071,9.293],[-18.62,4.308],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.283,-4.685],[-20.974,3.694],[-29.58,-15.642],[31.495,-14.265],[13.561,-2.86],[35.363,-7.846],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.787,116.654],[-119.869,119.575],[-231.389,114.247],[-229.692,48.113],[-137.252,15.421],[-88.383,4.841],[-12.612,-36.255]],"c":true}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.093,4.094],[20.959,-3.79],[29.654,15.882],[-19.669,9.067],[-44.032,9.488],[-18.62,4.307],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.283,-4.678],[-20.959,3.79],[-29.662,-15.602],[31.428,-14.479],[13.549,-2.92],[35.363,-7.843],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.998,116.633],[-119.615,119.34],[-231.865,114.913],[-230.499,48.406],[-137.485,15.602],[-88.788,4.935],[-12.612,-36.255]],"c":true}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.093,4.088],[20.946,-3.872],[29.727,15.848],[-19.632,9.184],[-43.999,9.658],[-18.62,4.305],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.282,-4.672],[-20.946,3.872],[-29.734,-15.566],[31.369,-14.666],[13.539,-2.972],[35.363,-7.841],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.182,116.615],[-119.395,119.135],[-232.279,115.494],[-231.202,48.662],[-137.689,15.76],[-89.141,5.017],[-12.612,-36.255]],"c":true}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.084],[20.935,-3.945],[29.791,15.819],[-19.6,9.286],[-43.969,9.806],[-18.621,4.304],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.667],[-20.935,3.945],[-29.797,-15.535],[31.318,-14.829],[13.53,-3.017],[35.364,-7.839],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.343,116.599],[-119.202,118.957],[-232.641,116.002],[-231.816,48.885],[-137.867,15.897],[-89.45,5.088],[-12.612,-36.255]],"c":true}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.08],[20.925,-4.008],[29.847,15.793],[-19.572,9.375],[-43.944,9.935],[-18.621,4.303],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.662],[-20.925,4.008],[-29.852,-15.509],[31.274,-14.972],[13.522,-3.057],[35.364,-7.837],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.483,116.585],[-119.034,118.801],[-232.957,116.445],[-232.352,49.08],[-138.022,16.017],[-89.719,5.151],[-12.612,-36.255]],"c":true}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.076],[20.916,-4.063],[29.896,15.77],[-19.548,9.453],[-43.921,10.049],[-18.621,4.302],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.658],[-20.916,4.063],[-29.9,-15.485],[31.235,-15.096],[13.515,-3.092],[35.364,-7.835],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.605,116.573],[-118.887,118.664],[-233.233,116.832],[-232.82,49.25],[-138.158,16.122],[-89.954,5.206],[-12.612,-36.255]],"c":true}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.073],[20.908,-4.111],[29.938,15.75],[-19.527,9.521],[-43.902,10.147],[-18.621,4.301],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.655],[-20.908,4.111],[-29.942,-15.464],[31.201,-15.205],[13.509,-3.123],[35.364,-7.834],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.712,116.563],[-118.758,118.545],[-233.474,117.169],[-233.229,49.399],[-138.276,16.214],[-90.16,5.253],[-12.612,-36.255]],"c":true}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.071],[20.902,-4.153],[29.975,15.733],[-19.508,9.581],[-43.885,10.234],[-18.621,4.301],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.652],[-20.902,4.153],[-29.978,-15.447],[31.171,-15.299],[13.504,-3.149],[35.364,-7.832],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.806,116.553],[-118.647,118.441],[-233.684,117.464],[-233.586,49.528],[-138.379,16.294],[-90.339,5.295],[-12.612,-36.255]],"c":true}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.068],[20.896,-4.19],[30.008,15.718],[-19.492,9.632],[-43.87,10.308],[-18.621,4.3],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.649],[-20.896,4.19],[-30.01,-15.431],[31.145,-15.382],[13.499,-3.172],[35.365,-7.831],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.887,116.545],[-118.549,118.351],[-233.867,117.72],[-233.895,49.641],[-138.469,16.363],[-90.494,5.331],[-12.612,-36.255]],"c":true}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.066],[20.891,-4.221],[30.035,15.705],[-19.478,9.677],[-43.857,10.373],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.647],[-20.891,4.221],[-30.037,-15.418],[31.123,-15.453],[13.495,-3.192],[35.365,-7.83],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.957,116.539],[-118.465,118.273],[-234.025,117.942],[-234.163,49.738],[-138.547,16.423],[-90.629,5.362],[-12.612,-36.255]],"c":true}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.065],[20.887,-4.249],[30.059,15.694],[-19.466,9.715],[-43.846,10.429],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.645],[-20.887,4.249],[-30.061,-15.406],[31.104,-15.514],[13.492,-3.209],[35.365,-7.83],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.017,116.533],[-118.393,118.206],[-234.161,118.132],[-234.394,49.822],[-138.613,16.475],[-90.745,5.389],[-12.612,-36.255]],"c":true}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.063],[20.883,-4.272],[30.08,15.685],[-19.456,9.748],[-43.837,10.476],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.643],[-20.883,4.272],[-30.081,-15.396],[31.087,-15.566],[13.489,-3.224],[35.365,-7.829],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.069,116.528],[-118.331,118.149],[-234.277,118.295],[-234.59,49.893],[-138.67,16.519],[-90.844,5.412],[-12.612,-36.255]],"c":true}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.062],[20.88,-4.291],[30.097,15.677],[-19.447,9.776],[-43.829,10.516],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.642],[-20.88,4.291],[-30.098,-15.388],[31.074,-15.61],[13.487,-3.236],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.112,116.523],[-118.279,118.101],[-234.374,118.431],[-234.756,49.954],[-138.718,16.556],[-90.927,5.432],[-12.612,-36.255]],"c":true}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.061],[20.878,-4.307],[30.111,15.67],[-19.44,9.798],[-43.822,10.55],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.641],[-20.878,4.307],[-30.112,-15.381],[31.062,-15.647],[13.485,-3.246],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.148,116.52],[-118.236,118.061],[-234.455,118.545],[-234.894,50.004],[-138.758,16.587],[-90.996,5.448],[-12.612,-36.255]],"c":true}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.06],[20.876,-4.321],[30.123,15.665],[-19.434,9.817],[-43.817,10.577],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.64],[-20.875,4.321],[-30.123,-15.375],[31.053,-15.676],[13.483,-3.255],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.177,116.517],[-118.201,118.028],[-234.521,118.637],[-235.005,50.044],[-138.79,16.612],[-91.052,5.461],[-12.612,-36.255]],"c":true}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.874,-4.331],[30.132,15.66],[-19.429,9.832],[-43.813,10.598],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.639],[-20.874,4.331],[-30.132,-15.371],[31.046,-15.7],[13.482,-3.261],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.2,116.515],[-118.173,118.003],[-234.573,118.71],[-235.093,50.076],[-138.816,16.632],[-91.096,5.471],[-12.612,-36.255]],"c":true}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.873,-4.339],[30.139,15.657],[-19.426,9.843],[-43.81,10.614],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.639],[-20.873,4.339],[-30.139,-15.368],[31.04,-15.717],[13.481,-3.266],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.217,116.513],[-118.153,117.984],[-234.611,118.764],[-235.158,50.1],[-138.835,16.646],[-91.129,5.479],[-12.612,-36.255]],"c":true}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.872,-4.344],[30.144,15.655],[-19.424,9.85],[-43.808,10.625],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.872,4.344],[-30.144,-15.365],[31.036,-15.729],[13.48,-3.269],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.229,116.512],[-118.139,117.97],[-234.638,118.801],[-235.204,50.116],[-138.848,16.656],[-91.152,5.484],[-12.612,-36.255]],"c":true}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.871,-4.348],[30.147,15.648],[-19.422,9.854],[-43.806,10.634],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.358],[31.034,-15.735],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.226,116.512],[-118.126,117.97],[-234.619,118.815],[-235.196,50.135],[-138.859,16.654],[-91.145,5.482],[-12.612,-36.255]],"c":true}],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.871,-4.349],[30.146,15.64],[-19.422,9.851],[-43.806,10.635],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.639],[-20.871,4.349],[-30.146,-15.35],[31.035,-15.73],[13.48,-3.273],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.209,116.514],[-118.125,117.984],[-234.566,118.796],[-235.14,50.143],[-138.861,16.641],[-91.114,5.475],[-12.612,-36.255]],"c":true}],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.06],[20.871,-4.35],[30.144,15.628],[-19.423,9.846],[-43.805,10.637],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.64],[-20.871,4.35],[-30.144,-15.339],[31.035,-15.723],[13.48,-3.273],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.185,116.516],[-118.122,118.003],[-234.489,118.767],[-235.058,50.155],[-138.863,16.621],[-91.068,5.464],[-12.612,-36.255]],"c":true}],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.061],[20.871,-4.35],[30.142,15.613],[-19.424,9.84],[-43.805,10.64],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.641],[-20.871,4.35],[-30.142,-15.324],[31.037,-15.714],[13.479,-3.274],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.153,116.519],[-118.119,118.029],[-234.386,118.728],[-234.948,50.17],[-138.866,16.595],[-91.006,5.45],[-12.612,-36.255]],"c":true}],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.062],[20.871,-4.352],[30.14,15.594],[-19.425,9.833],[-43.805,10.643],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.642],[-20.871,4.352],[-30.14,-15.305],[31.038,-15.702],[13.479,-3.275],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.112,116.523],[-118.115,118.062],[-234.254,118.679],[-234.807,50.19],[-138.871,16.562],[-90.927,5.432],[-12.612,-36.255]],"c":true}],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.063],[20.871,-4.353],[30.137,15.569],[-19.426,9.824],[-43.804,10.647],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.644],[-20.871,4.353],[-30.137,-15.281],[31.04,-15.687],[13.479,-3.276],[35.365,-7.829],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.061,116.528],[-118.11,118.104],[-234.089,118.618],[-234.632,50.215],[-138.876,16.52],[-90.828,5.409],[-12.612,-36.255]],"c":true}],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.065],[20.87,-4.355],[30.133,15.54],[-19.427,9.812],[-43.803,10.652],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.646],[-20.87,4.355],[-30.133,-15.252],[31.042,-15.669],[13.479,-3.278],[35.365,-7.83],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.998,116.534],[-118.104,118.154],[-233.888,118.543],[-234.418,50.245],[-138.882,16.469],[-90.708,5.381],[-12.612,-36.255]],"c":true}],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.067],[20.87,-4.357],[30.129,15.504],[-19.429,9.798],[-43.803,10.659],[-18.621,4.3],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.648],[-20.87,4.357],[-30.129,-15.217],[31.045,-15.647],[13.479,-3.28],[35.365,-7.831],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.923,116.542],[-118.096,118.215],[-233.647,118.453],[-234.162,50.281],[-138.89,16.409],[-90.564,5.347],[-12.612,-36.255]],"c":true}],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.07],[20.87,-4.359],[30.123,15.462],[-19.431,9.782],[-43.802,10.666],[-18.621,4.3],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.651],[-20.87,4.359],[-30.124,-15.175],[31.048,-15.621],[13.478,-3.282],[35.364,-7.832],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.834,116.551],[-118.087,118.287],[-233.361,118.347],[-233.857,50.324],[-138.899,16.336],[-90.393,5.308],[-12.612,-36.255]],"c":true}],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.073],[20.869,-4.362],[30.117,15.412],[-19.434,9.763],[-43.801,10.674],[-18.621,4.301],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.654],[-20.869,4.362],[-30.118,-15.126],[31.052,-15.591],[13.478,-3.285],[35.364,-7.833],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.729,116.561],[-118.076,118.372],[-233.024,118.221],[-233.498,50.375],[-138.909,16.251],[-90.191,5.261],[-12.612,-36.255]],"c":true}],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.076],[20.869,-4.365],[30.11,15.354],[-19.436,9.74],[-43.799,10.684],[-18.621,4.302],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.658],[-20.869,4.365],[-30.111,-15.068],[31.056,-15.555],[13.478,-3.288],[35.364,-7.835],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.605,116.573],[-118.064,118.472],[-232.628,118.073],[-233.076,50.435],[-138.922,16.151],[-89.954,5.206],[-12.612,-36.255]],"c":true}],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.08],[20.869,-4.369],[30.102,15.285],[-19.44,9.714],[-43.798,10.696],[-18.621,4.303],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.663],[-20.869,4.369],[-30.102,-15.001],[31.062,-15.513],[13.477,-3.291],[35.364,-7.837],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.461,116.587],[-118.049,118.589],[-232.164,117.9],[-232.581,50.504],[-138.936,16.033],[-89.677,5.141],[-12.612,-36.255]],"c":true}],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.085],[20.868,-4.374],[30.092,15.205],[-19.444,9.683],[-43.796,10.71],[-18.62,4.305],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.668],[-20.868,4.374],[-30.092,-14.922],[31.068,-15.464],[13.477,-3.296],[35.364,-7.839],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.291,116.604],[-118.032,118.726],[-231.62,117.698],[-232.003,50.586],[-138.953,15.896],[-89.352,5.066],[-12.612,-36.255]],"c":true}],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.093,4.091],[20.867,-4.379],[30.08,15.111],[-19.448,9.647],[-43.794,10.726],[-18.62,4.306],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.282,-4.675],[-20.867,4.379],[-30.081,-14.829],[31.075,-15.406],[13.476,-3.301],[35.363,-7.842],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.093,116.623],[-118.013,118.887],[-230.984,117.46],[-231.325,50.682],[-138.973,15.735],[-88.971,4.977],[-12.612,-36.255]],"c":true}],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.094,4.097],[20.867,-4.386],[30.066,15.001],[-19.453,9.604],[-43.792,10.745],[-18.62,4.308],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.283,-4.682],[-20.866,4.386],[-30.067,-14.721],[31.083,-15.339],[13.475,-3.306],[35.363,-7.845],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.861,116.646],[-117.989,119.075],[-230.237,117.182],[-230.53,50.794],[-138.997,15.546],[-88.524,4.873],[-12.612,-36.255]],"c":true}],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.095,4.105],[20.866,-4.393],[30.05,14.871],[-19.46,9.555],[-43.789,10.767],[-18.62,4.31],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.284,-4.691],[-20.866,4.393],[-30.052,-14.593],[31.093,-15.26],[13.475,-3.313],[35.362,-7.849],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.587,116.673],[-117.962,119.296],[-229.361,116.856],[-229.596,50.926],[-139.024,15.325],[-88,4.752],[-12.612,-36.255]],"c":true}],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.096,4.114],[20.864,-4.402],[30.031,14.72],[-19.467,9.496],[-43.786,10.793],[-18.619,4.312],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.286,-4.701],[-20.864,4.402],[-30.033,-14.444],[31.105,-15.167],[13.474,-3.321],[35.362,-7.853],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.267,116.705],[-117.929,119.555],[-228.332,116.472],[-228.5,51.081],[-139.057,15.065],[-87.385,4.609],[-12.612,-36.255]],"c":true}],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.097,4.125],[20.863,-4.412],[30.009,14.543],[-19.476,9.428],[-43.782,10.823],[-18.619,4.315],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.287,-4.714],[-20.863,4.412],[-30.011,-14.27],[31.118,-15.058],[13.472,-3.33],[35.361,-7.858],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.894,116.741],[-117.892,119.857],[-227.135,116.026],[-227.225,51.261],[-139.094,14.762],[-86.668,4.442],[-12.612,-36.255]],"c":true}],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.099,4.137],[20.862,-4.424],[29.984,14.342],[-19.485,9.35],[-43.778,10.857],[-18.619,4.319],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.289,-4.727],[-20.862,4.424],[-29.987,-14.072],[31.133,-14.935],[13.471,-3.341],[35.36,-7.864],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.47,116.783],[-117.849,120.2],[-225.773,115.518],[-225.774,51.466],[-139.137,14.417],[-85.853,4.253],[-12.612,-36.255]],"c":true}],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.1,4.15],[20.86,-4.436],[29.957,14.124],[-19.496,9.267],[-43.773,10.894],[-18.618,4.322],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.291,-4.742],[-20.86,4.436],[-29.96,-13.857],[31.15,-14.802],[13.47,-3.352],[35.36,-7.87],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.011,116.828],[-117.803,120.572],[-224.3,114.969],[-224.206,51.688],[-139.184,14.045],[-84.972,4.048],[-12.612,-36.255]],"c":true}],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.102,4.163],[20.859,-4.449],[29.93,13.909],[-19.507,9.184],[-43.769,10.931],[-18.618,4.326],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.292,-4.757],[-20.859,4.449],[-29.934,-13.645],[31.166,-14.67],[13.468,-3.364],[35.359,-7.876],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.555,116.873],[-117.757,120.94],[-222.839,114.425],[-222.65,51.908],[-139.23,13.675],[-84.098,3.845],[-12.612,-36.255]],"c":true}],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.103,4.174],[20.857,-4.46],[29.906,13.716],[-19.516,9.109],[-43.765,10.964],[-18.618,4.329],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.294,-4.77],[-20.857,4.46],[-29.91,-13.456],[31.181,-14.552],[13.467,-3.374],[35.358,-7.881],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.149,116.913],[-117.716,121.268],[-221.536,113.939],[-221.262,52.104],[-139.27,13.346],[-83.319,3.664],[-12.612,-36.255]],"c":true}],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.184],[20.856,-4.469],[29.887,13.561],[-19.523,9.049],[-43.761,10.991],[-18.617,4.331],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.78],[-20.856,4.469],[-29.891,-13.302],[31.193,-14.457],[13.466,-3.382],[35.358,-7.886],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.82,116.945],[-117.683,121.535],[-220.479,113.545],[-220.137,52.263],[-139.304,13.079],[-82.687,3.517],[-12.612,-36.255]],"c":true}],"t":212,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.191],[20.855,-4.476],[29.872,13.443],[-19.529,9.004],[-43.759,11.011],[-18.617,4.333],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.788],[-20.855,4.476],[-29.876,-13.186],[31.202,-14.385],[13.465,-3.388],[35.357,-7.889],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.571,116.97],[-117.658,121.736],[-219.68,113.247],[-219.285,52.383],[-139.329,12.877],[-82.208,3.406],[-12.612,-36.255]],"c":true}],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.196],[20.855,-4.481],[29.862,13.358],[-19.533,8.971],[-43.757,11.026],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.794],[-20.855,4.481],[-29.866,-13.102],[31.208,-14.333],[13.465,-3.393],[35.357,-7.891],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.392,116.987],[-117.64,121.881],[-219.104,113.033],[-218.672,52.47],[-139.347,12.731],[-81.864,3.326],[-12.612,-36.255]],"c":true}],"t":214,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.199],[20.854,-4.484],[29.855,13.299],[-19.536,8.949],[-43.756,11.035],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.798],[-20.854,4.484],[-29.859,-13.045],[31.213,-14.297],[13.464,-3.396],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.269,116.999],[-117.628,121.981],[-218.71,112.886],[-218.252,52.529],[-139.359,12.631],[-81.628,3.271],[-12.612,-36.255]],"c":true}],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[20.854,-4.486],[29.85,13.263],[-19.538,8.935],[-43.755,11.042],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-20.854,4.486],[-29.854,-13.008],[31.215,-14.274],[13.464,-3.398],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.191,117.007],[-117.62,122.044],[-218.46,112.793],[-217.987,52.567],[-139.367,12.568],[-81.479,3.237],[-12.612,-36.255]],"c":true}],"t":216,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.487],[29.848,13.243],[-19.539,8.927],[-43.755,11.045],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.487],[-29.852,-12.989],[31.217,-14.262],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.15,117.011],[-117.616,122.077],[-218.327,112.743],[-217.844,52.587],[-139.371,12.535],[-81.399,3.218],[-12.612,-36.255]],"c":true}],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.488],[29.847,13.237],[-19.539,8.925],[-43.754,11.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.488],[-29.851,-12.983],[31.217,-14.259],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.615,122.088],[-218.286,112.728],[-217.801,52.593],[-139.373,12.524],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":218,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.488],[29.847,13.237],[-19.539,8.925],[-43.754,11.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.488],[-29.851,-12.983],[31.217,-14.259],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.615,122.088],[-218.286,112.728],[-217.801,52.593],[-139.373,12.524],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":222,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.848,-4.513],[29.862,13.2],[-19.528,8.948],[-43.739,11.098],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.848,4.513],[-29.866,-12.947],[31.199,-14.296],[13.459,-3.415],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.548,122.1],[-218.226,112.862],[-217.814,52.729],[-139.437,12.567],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":223,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.823,-4.611],[29.919,13.057],[-19.482,9.039],[-43.68,11.304],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.823,4.611],[-29.922,-12.803],[31.126,-14.441],[13.441,-3.478],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.285,122.148],[-217.992,113.388],[-217.864,53.263],[-139.689,12.737],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":224,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.768,-4.829],[30.048,12.737],[-19.381,9.242],[-43.547,11.762],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.768,4.829],[-30.048,-12.483],[30.964,-14.766],[13.4,-3.619],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-116.699,122.256],[-217.467,114.563],[-217.975,54.455],[-140.253,13.115],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":225,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.687,-5.148],[30.236,12.27],[-19.233,9.538],[-43.353,12.429],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.687,5.148],[-30.232,-12.017],[30.728,-15.239],[13.34,-3.825],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.846,122.413],[-216.704,116.275],[-218.137,56.192],[-141.074,13.666],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":226,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.619,-5.421],[30.397,11.871],[-19.106,9.791],[-43.188,13.001],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.619,5.421],[-30.39,-11.617],[30.526,-15.644],[13.289,-4.001],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.114,122.548],[-216.049,117.741],[-218.276,57.679],[-141.777,14.138],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":227,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.572,-5.607],[30.507,11.597],[-19.019,9.965],[-43.074,13.392],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.572,5.607],[-30.497,-11.344],[30.387,-15.921],[13.255,-4.121],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.614,122.64],[-215.602,118.745],[-218.371,58.697],[-142.258,14.461],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":228,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.54,-5.733],[30.58,11.414],[-18.961,10.081],[-42.998,13.655],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.54,5.733],[-30.57,-11.16],[30.294,-16.107],[13.231,-4.202],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.278,122.702],[-215.301,119.418],[-218.435,59.38],[-142.581,14.678],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":229,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.519,-5.817],[30.63,11.29],[-18.922,10.16],[-42.947,13.832],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.519,5.817],[-30.618,-11.037],[30.232,-16.232],[13.215,-4.256],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.052,122.743],[-215.099,119.871],[-218.478,59.84],[-142.799,14.823],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":230,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.505,-5.873],[30.663,11.208],[-18.896,10.211],[-42.913,13.948],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.505,5.873],[-30.65,-10.955],[30.19,-16.315],[13.205,-4.292],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.166,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.903,122.771],[-214.966,120.17],[-218.506,60.143],[-142.942,14.92],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":231,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.496,-5.907],[30.683,11.158],[-18.88,10.244],[-42.892,14.021],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.496,5.907],[-30.67,-10.904],[30.165,-16.366],[13.198,-4.314],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.81,122.788],[-214.883,120.357],[-218.524,60.332],[-143.032,14.98],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":232,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.491,-5.926],[30.694,11.131],[-18.872,10.261],[-42.881,14.06],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.491,5.926],[-30.681,-10.877],[30.151,-16.393],[13.195,-4.326],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.761,122.797],[-214.838,120.456],[-218.533,60.433],[-143.079,15.012],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":233,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.491,-5.926],[30.694,11.13],[-18.871,10.261],[-42.88,14.06],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.491,5.926],[-30.681,-10.877],[30.15,-16.393],[13.195,-4.327],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.76,122.801],[-214.837,120.461],[-218.532,60.439],[-143.08,15.017],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":235,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.494,-5.909],[30.683,11.154],[-18.878,10.245],[-42.888,14.024],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.494,5.909],[-30.67,-10.901],[30.161,-16.368],[13.197,-4.315],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.807,122.805],[-214.874,120.382],[-218.52,60.362],[-143.036,15.005],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":236,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.5,-5.878],[30.662,11.198],[-18.891,10.215],[-42.903,13.959],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.5,5.878],[-30.649,-10.945],[30.181,-16.321],[13.202,-4.295],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.891,122.811],[-214.94,120.24],[-218.497,60.223],[-142.957,14.984],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":237,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.509,-5.831],[30.631,11.264],[-18.91,10.171],[-42.926,13.86],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.509,5.831],[-30.619,-11.011],[30.212,-16.25],[13.209,-4.265],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.018,122.822],[-215.041,120.025],[-218.463,60.011],[-142.837,14.951],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":238,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.522,-5.764],[30.587,11.358],[-18.937,10.109],[-42.957,13.721],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.522,5.764],[-30.575,-11.105],[30.255,-16.15],[13.219,-4.222],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.198,122.836],[-215.184,119.721],[-218.416,59.713],[-142.668,14.904],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":239,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.539,-5.674],[30.527,11.485],[-18.973,10.024],[-43.001,13.532],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.539,5.674],[-30.517,-11.232],[30.313,-16.015],[13.232,-4.164],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.441,122.855],[-215.377,119.309],[-218.351,59.31],[-142.439,14.841],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":240,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.562,-5.555],[30.448,11.653],[-19.021,9.911],[-43.058,13.281],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.562,5.555],[-30.439,-11.4],[30.39,-15.835],[13.249,-4.087],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-114.764,122.881],[-215.634,118.763],[-218.265,58.774],[-142.135,14.757],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":241,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.592,-5.398],[30.343,11.875],[-19.085,9.763],[-43.133,12.95],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.592,5.398],[-30.336,-11.622],[30.492,-15.598],[13.273,-3.985],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.19,122.915],[-215.972,118.042],[-218.152,58.067],[-141.734,14.646],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":242,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.632,-5.189],[30.204,12.169],[-19.169,9.566],[-43.233,12.512],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.632,5.189],[-30.2,-11.916],[30.627,-15.284],[13.303,-3.85],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-115.755,122.96],[-216.421,117.086],[-218.001,57.13],[-141.203,14.5],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":243,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.686,-4.908],[30.018,12.566],[-19.283,9.302],[-43.368,11.922],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.686,4.908],[-30.017,-12.313],[30.808,-14.861],[13.345,-3.669],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-116.515,123.021],[-217.025,115.8],[-217.799,55.869],[-140.488,14.302],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":244,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.76,-4.519],[29.759,13.113],[-19.44,8.935],[-43.554,11.106],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.76,4.519],[-29.763,-12.861],[31.059,-14.276],[13.402,-3.417],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.567,123.104],[-217.86,114.021],[-217.519,54.124],[-139.498,14.029],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":245,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.865,-3.972],[29.396,13.885],[-19.662,8.42],[-43.816,9.956],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.865,3.972],[-29.406,-13.633],[31.413,-13.452],[13.483,-3.064],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-119.049,123.222],[-219.037,111.514],[-217.125,51.666],[-138.104,13.644],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":246,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.997,-3.279],[28.935,14.862],[-19.942,7.767],[-44.148,8.501],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.997,3.279],[-28.954,-14.61],[31.861,-12.409],[13.585,-2.616],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-120.924,123.372],[-220.526,108.342],[-216.626,48.556],[-136.34,13.158],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":247,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.11,-2.69],[28.544,15.692],[-20.18,7.212],[-44.431,7.265],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.11,2.69],[-28.57,-15.44],[32.241,-11.522],[13.672,-2.235],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-122.517,123.499],[-221.791,105.647],[-216.202,45.913],[-134.841,12.744],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":248,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.177,-2.342],[28.313,16.183],[-20.321,6.884],[-44.597,6.533],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.177,2.342],[-28.343,-15.931],[32.466,-10.998],[13.723,-2.01],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-123.459,123.574],[-222.539,104.053],[-215.952,44.35],[-133.955,12.499],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":249,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.212,-2.159],[28.191,16.441],[-20.395,6.711],[-44.685,6.149],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.212,2.159],[-28.224,-16.189],[32.585,-10.723],[13.75,-1.892],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-123.954,123.613],[-222.933,103.215],[-215.82,43.528],[-133.488,12.371],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.228,-2.074],[28.135,16.561],[-20.429,6.631],[-44.726,5.97],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.228,2.074],[-28.168,-16.31],[32.64,-10.595],[13.763,-1.837],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.185,123.632],[-223.116,102.825],[-215.759,43.146],[-133.272,12.311],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.05],[28.119,16.594],[-20.439,6.609],[-44.737,5.921],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.05],[-28.153,-16.343],[32.655,-10.559],[13.766,-1.822],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.248,123.637],[-223.166,102.718],[-215.742,43.041],[-133.212,12.294],[-81.375,3.213],[-12.612,-36.255]],"c":true}],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.054],[28.123,16.592],[-20.437,6.615],[-44.735,5.929],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.054],[-28.156,-16.341],[32.652,-10.569],[13.766,-1.825],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.146,117.011],[-124.237,123.627],[-223.187,102.747],[-215.777,43.054],[-133.222,12.302],[-81.393,3.217],[-12.612,-36.255]],"c":true}],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.202],[21.23,-2.068],[28.135,16.587],[-20.431,6.634],[-44.73,5.957],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.801],[-21.23,2.068],[-28.168,-16.335],[32.642,-10.599],[13.764,-1.833],[35.357,-7.894],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.176,117.008],[-124.201,123.593],[-223.254,102.841],[-215.891,43.095],[-133.255,12.328],[-81.45,3.23],[-12.612,-36.255]],"c":true}],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.201],[21.226,-2.092],[28.156,16.577],[-20.42,6.669],[-44.72,6.008],[-18.617,4.336],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.799],[-21.226,2.092],[-28.189,-16.325],[32.625,-10.655],[13.761,-1.849],[35.357,-7.893],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.231,117.003],[-124.136,123.533],[-223.377,103.014],[-216.1,43.171],[-133.316,12.375],[-81.555,3.254],[-12.612,-36.255]],"c":true}],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.198],[21.22,-2.131],[28.19,16.561],[-20.403,6.723],[-44.705,6.086],[-18.617,4.335],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.797],[-21.22,2.131],[-28.223,-16.308],[32.598,-10.741],[13.756,-1.873],[35.357,-7.892],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.316,116.995],[-124.034,123.438],[-223.568,103.281],[-216.424,43.289],[-133.409,12.447],[-81.717,3.292],[-12.612,-36.255]],"c":true}],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.106,4.195],[21.211,-2.185],[28.238,16.539],[-20.379,6.8],[-44.682,6.198],[-18.617,4.334],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.297,-4.793],[-21.211,2.185],[-28.27,-16.285],[32.56,-10.864],[13.749,-1.907],[35.357,-7.891],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-41.437,116.983],[-123.889,123.303],[-223.841,103.664],[-216.887,43.457],[-133.544,12.551],[-81.95,3.346],[-12.612,-36.255]],"c":true}],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.19],[21.2,-2.26],[28.304,16.508],[-20.346,6.905],[-44.652,6.351],[-18.617,4.333],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.296,-4.787],[-21.2,2.26],[-28.335,-16.253],[32.507,-11.032],[13.74,-1.954],[35.357,-7.889],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.602,116.966],[-123.69,123.119],[-224.214,104.187],[-217.52,43.687],[-133.727,12.693],[-82.268,3.42],[-12.612,-36.255]],"c":true}],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.105,4.184],[21.184,-2.358],[28.391,16.468],[-20.303,7.044],[-44.612,6.552],[-18.617,4.331],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.295,-4.78],[-21.184,2.358],[-28.42,-16.211],[32.438,-11.253],[13.728,-2.016],[35.358,-7.886],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.82,116.945],[-123.428,122.877],[-224.705,104.876],[-218.353,43.99],[-133.968,12.88],[-82.687,3.517],[-12.612,-36.255]],"c":true}],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.104,4.176],[21.164,-2.483],[28.501,16.417],[-20.247,7.22],[-44.562,6.808],[-18.617,4.329],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.294,-4.771],[-21.164,2.483],[-28.528,-16.158],[32.35,-11.534],[13.712,-2.095],[35.358,-7.882],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.097,116.918],[-123.096,122.568],[-225.33,105.751],[-219.412,44.375],[-134.275,13.117],[-83.219,3.641],[-12.612,-36.255]],"c":true}],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.102,4.166],[21.141,-2.634],[28.634,16.355],[-20.18,7.434],[-44.501,7.118],[-18.618,4.327],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.293,-4.761],[-21.141,2.634],[-28.659,-16.094],[32.243,-11.875],[13.693,-2.19],[35.359,-7.877],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.433,116.885],[-122.694,122.195],[-226.085,106.81],[-220.694,44.841],[-134.646,13.404],[-83.863,3.79],[-12.612,-36.255]],"c":true}],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.101,4.156],[21.114,-2.805],[28.785,16.285],[-20.105,7.675],[-44.431,7.468],[-18.618,4.324],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.291,-4.748],[-21.114,2.805],[-28.808,-16.021],[32.122,-12.26],[13.672,-2.298],[35.359,-7.872],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-42.812,116.848],[-122.238,121.773],[-226.94,108.009],[-222.145,45.369],[-135.066,13.729],[-84.591,3.96],[-12.612,-36.255]],"c":true}],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.1,4.144],[21.086,-2.984],[28.943,16.212],[-20.026,7.928],[-44.359,7.835],[-18.619,4.321],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.29,-4.736],[-21.086,2.984],[-28.963,-15.945],[31.996,-12.664],[13.65,-2.411],[35.36,-7.867],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.21,116.809],[-121.761,121.331],[-227.835,109.264],[-223.663,45.921],[-135.506,14.07],[-85.354,4.137],[-12.612,-36.255]],"c":true}],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.098,4.133],[21.058,-3.158],[29.097,16.141],[-19.949,8.174],[-44.288,8.192],[-18.619,4.318],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.288,-4.723],[-21.058,3.158],[-29.114,-15.871],[31.873,-13.055],[13.628,-2.521],[35.361,-7.862],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.595,116.771],[-121.298,120.901],[-228.705,110.483],[-225.138,46.457],[-135.933,14.4],[-86.095,4.309],[-12.612,-36.255]],"c":true}],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.097,4.123],[21.033,-3.318],[29.238,16.075],[-19.878,8.4],[-44.224,8.52],[-18.619,4.315],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.287,-4.712],[-21.033,3.318],[-29.253,-15.803],[31.761,-13.416],[13.608,-2.622],[35.361,-7.857],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-43.951,116.736],[-120.872,120.506],[-229.505,111.605],[-226.495,46.95],[-136.326,14.705],[-86.777,4.468],[-12.612,-36.255]],"c":true}],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.096,4.114],[21.011,-3.46],[29.364,16.017],[-19.815,8.601],[-44.166,8.812],[-18.62,4.312],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.286,-4.701],[-21.011,3.46],[-29.377,-15.742],[31.66,-13.737],[13.59,-2.712],[35.362,-7.853],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.267,116.705],[-120.493,120.154],[-230.218,112.604],[-227.705,47.39],[-136.676,14.976],[-87.385,4.609],[-12.612,-36.255]],"c":true}],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.095,4.106],[20.991,-3.585],[29.474,15.966],[-19.759,8.778],[-44.115,9.069],[-18.62,4.31],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.284,-4.693],[-20.991,3.585],[-29.485,-15.689],[31.572,-14.019],[13.575,-2.791],[35.362,-7.849],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.545,116.677],[-120.159,119.845],[-230.844,113.481],[-228.766,47.776],[-136.984,15.214],[-87.918,4.733],[-12.612,-36.255]],"c":true}],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.094,4.1],[20.974,-3.694],[29.57,15.921],[-19.711,8.932],[-44.071,9.293],[-18.62,4.308],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.283,-4.685],[-20.974,3.694],[-29.58,-15.642],[31.495,-14.265],[13.561,-2.86],[35.363,-7.846],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.787,116.654],[-119.869,119.575],[-231.389,114.247],[-229.692,48.113],[-137.252,15.421],[-88.383,4.841],[-12.612,-36.255]],"c":true}],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.093,4.094],[20.959,-3.79],[29.654,15.882],[-19.669,9.067],[-44.032,9.488],[-18.62,4.307],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.283,-4.678],[-20.959,3.79],[-29.662,-15.602],[31.428,-14.479],[13.549,-2.92],[35.363,-7.843],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-44.998,116.633],[-119.615,119.34],[-231.865,114.913],[-230.499,48.406],[-137.485,15.602],[-88.788,4.935],[-12.612,-36.255]],"c":true}],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.093,4.088],[20.946,-3.872],[29.727,15.848],[-19.632,9.184],[-43.999,9.658],[-18.62,4.305],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.282,-4.672],[-20.946,3.872],[-29.734,-15.566],[31.369,-14.666],[13.539,-2.972],[35.363,-7.841],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.182,116.615],[-119.395,119.135],[-232.279,115.494],[-231.202,48.662],[-137.689,15.76],[-89.141,5.017],[-12.612,-36.255]],"c":true}],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.084],[20.935,-3.945],[29.791,15.819],[-19.6,9.286],[-43.969,9.806],[-18.621,4.304],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.667],[-20.935,3.945],[-29.797,-15.535],[31.318,-14.829],[13.53,-3.017],[35.364,-7.839],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.343,116.599],[-119.202,118.957],[-232.641,116.002],[-231.816,48.885],[-137.867,15.897],[-89.45,5.088],[-12.612,-36.255]],"c":true}],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.092,4.08],[20.925,-4.008],[29.847,15.793],[-19.572,9.375],[-43.944,9.935],[-18.621,4.303],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.281,-4.662],[-20.925,4.008],[-29.852,-15.509],[31.274,-14.972],[13.522,-3.057],[35.364,-7.837],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.483,116.585],[-119.034,118.801],[-232.957,116.445],[-232.352,49.08],[-138.022,16.017],[-89.719,5.151],[-12.612,-36.255]],"c":true}],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.076],[20.916,-4.063],[29.896,15.77],[-19.548,9.453],[-43.921,10.049],[-18.621,4.302],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.658],[-20.916,4.063],[-29.9,-15.485],[31.235,-15.096],[13.515,-3.092],[35.364,-7.835],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.605,116.573],[-118.887,118.664],[-233.233,116.832],[-232.82,49.25],[-138.158,16.122],[-89.954,5.206],[-12.612,-36.255]],"c":true}],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.073],[20.908,-4.111],[29.938,15.75],[-19.527,9.521],[-43.902,10.147],[-18.621,4.301],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.28,-4.655],[-20.908,4.111],[-29.942,-15.464],[31.201,-15.205],[13.509,-3.123],[35.364,-7.834],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.712,116.563],[-118.758,118.545],[-233.474,117.169],[-233.229,49.399],[-138.276,16.214],[-90.16,5.253],[-12.612,-36.255]],"c":true}],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.091,4.071],[20.902,-4.153],[29.975,15.733],[-19.508,9.581],[-43.885,10.234],[-18.621,4.301],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.652],[-20.902,4.153],[-29.978,-15.447],[31.171,-15.299],[13.504,-3.149],[35.364,-7.832],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.806,116.553],[-118.647,118.441],[-233.684,117.464],[-233.586,49.528],[-138.379,16.294],[-90.339,5.295],[-12.612,-36.255]],"c":true}],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.068],[20.896,-4.19],[30.008,15.718],[-19.492,9.632],[-43.87,10.308],[-18.621,4.3],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.649],[-20.896,4.19],[-30.01,-15.431],[31.145,-15.382],[13.499,-3.172],[35.365,-7.831],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.887,116.545],[-118.549,118.351],[-233.867,117.72],[-233.895,49.641],[-138.469,16.363],[-90.494,5.331],[-12.612,-36.255]],"c":true}],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.066],[20.891,-4.221],[30.035,15.705],[-19.478,9.677],[-43.857,10.373],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.647],[-20.891,4.221],[-30.037,-15.418],[31.123,-15.453],[13.495,-3.192],[35.365,-7.83],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-45.957,116.539],[-118.465,118.273],[-234.025,117.942],[-234.163,49.738],[-138.547,16.423],[-90.629,5.362],[-12.612,-36.255]],"c":true}],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.065],[20.887,-4.249],[30.059,15.694],[-19.466,9.715],[-43.846,10.429],[-18.621,4.299],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.279,-4.645],[-20.887,4.249],[-30.061,-15.406],[31.104,-15.514],[13.492,-3.209],[35.365,-7.83],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.017,116.533],[-118.393,118.206],[-234.161,118.132],[-234.394,49.822],[-138.613,16.475],[-90.745,5.389],[-12.612,-36.255]],"c":true}],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.09,4.063],[20.883,-4.272],[30.08,15.685],[-19.456,9.748],[-43.837,10.476],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.643],[-20.883,4.272],[-30.081,-15.396],[31.087,-15.566],[13.489,-3.224],[35.365,-7.829],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.069,116.528],[-118.331,118.149],[-234.277,118.295],[-234.59,49.893],[-138.67,16.519],[-90.844,5.412],[-12.612,-36.255]],"c":true}],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.062],[20.88,-4.291],[30.097,15.677],[-19.447,9.776],[-43.829,10.516],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.642],[-20.88,4.291],[-30.098,-15.388],[31.074,-15.61],[13.487,-3.236],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.112,116.523],[-118.279,118.101],[-234.374,118.431],[-234.756,49.954],[-138.718,16.556],[-90.927,5.432],[-12.612,-36.255]],"c":true}],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.061],[20.878,-4.307],[30.111,15.67],[-19.44,9.798],[-43.822,10.55],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.641],[-20.878,4.307],[-30.112,-15.381],[31.062,-15.647],[13.485,-3.246],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.148,116.52],[-118.236,118.061],[-234.455,118.545],[-234.894,50.004],[-138.758,16.587],[-90.996,5.448],[-12.612,-36.255]],"c":true}],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.06],[20.876,-4.321],[30.123,15.665],[-19.434,9.817],[-43.817,10.577],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.64],[-20.875,4.321],[-30.123,-15.375],[31.053,-15.676],[13.483,-3.255],[35.365,-7.828],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.177,116.517],[-118.201,118.028],[-234.521,118.637],[-235.005,50.044],[-138.79,16.612],[-91.052,5.461],[-12.612,-36.255]],"c":true}],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.874,-4.331],[30.132,15.66],[-19.429,9.832],[-43.813,10.598],[-18.621,4.298],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.639],[-20.874,4.331],[-30.132,-15.371],[31.046,-15.7],[13.482,-3.261],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.2,116.515],[-118.173,118.003],[-234.573,118.71],[-235.093,50.076],[-138.816,16.632],[-91.096,5.471],[-12.612,-36.255]],"c":true}],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.873,-4.339],[30.139,15.657],[-19.426,9.843],[-43.81,10.614],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.639],[-20.873,4.339],[-30.139,-15.368],[31.04,-15.717],[13.481,-3.266],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.217,116.513],[-118.153,117.984],[-234.611,118.764],[-235.158,50.1],[-138.835,16.646],[-91.129,5.479],[-12.612,-36.255]],"c":true}],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.059],[20.872,-4.344],[30.144,15.655],[-19.424,9.85],[-43.808,10.625],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.872,4.344],[-30.144,-15.365],[31.036,-15.729],[13.48,-3.269],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.229,116.512],[-118.139,117.97],[-234.638,118.801],[-235.204,50.116],[-138.848,16.656],[-91.152,5.484],[-12.612,-36.255]],"c":true}],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.694117665291,0.435294121504,0.345098048449,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":7.087,"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":"Thumb","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Nail - PATH","parent":5,"tt":1,"tp":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-215.854,53.1,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":59,"s":[{"i":[[0,0],[4.928,-11.595],[12.465,-0.87],[0,0],[-14.56,12.656],[0,0],[-8.406,-10.146]],"o":[[7.827,9.856],[-4.928,11.595],[0,0],[-20.722,-16.616],[0,0],[12.755,-3.189],[0,0]],"v":[[38.416,-22.549],[43.344,11.946],[14.936,32.527],[-32.966,35.719],[-32.314,-26.028],[3.631,-34.724],[38.126,-23.129]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.6,"y":0},"t":95,"s":[{"i":[[0,0],[4.852,-12.202],[12.469,-0.832],[0,0],[-10.995,10.445],[0,0],[-8.483,-10.765]],"o":[[7.901,10.455],[-4.852,12.202],[0,0],[-15.966,-14.079],[0,0],[12.744,-3.277],[0,0]],"v":[[40.886,-22.623],[46.055,13.814],[17.765,35.338],[-19.6,30.341],[-19.67,-21.264],[5.987,-35.71],[40.592,-23.237]],"c":true}]},{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":122,"s":[{"i":[[0,0],[4.232,-12.502],[12.921,-1.766],[0,0],[-10.742,11.216],[0,0],[-9.55,-10.068]],"o":[[8.923,9.803],[-4.232,12.502],[0,0],[-17.559,-12.801],[0,0],[13.042,-4.219],[0,0]],"v":[[43.524,-16.699],[51.346,19.151],[23.347,42.689],[-15.873,40.533],[-19.404,-10.788],[6.329,-27.088],[43.177,-17.287]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":140,"s":[{"i":[[0,0],[5.977,-11.693],[12.492,0.343],[0,0],[-11.927,9.366],[0,0],[-7.435,-11.514]],"o":[[6.885,11.15],[-5.977,11.693],[0,0],[-14.573,-15.516],[0,0],[12.995,-2.066],[0,0]],"v":[[41.831,-31.462],[43.556,5.299],[13.369,24.072],[-23.361,15.588],[-18.585,-35.795],[8.315,-47.769],[41.596,-32.101]],"c":true}]},{"t":175,"s":[{"i":[[0,0],[4.928,-11.595],[12.465,-0.87],[0,0],[-14.56,12.656],[0,0],[-8.406,-10.146]],"o":[[7.827,9.856],[-4.928,11.595],[0,0],[-20.722,-16.616],[0,0],[12.755,-3.189],[0,0]],"v":[[38.416,-22.549],[43.344,11.946],[14.936,32.527],[-32.966,35.719],[-32.314,-26.028],[3.631,-34.724],[38.126,-23.129]],"c":true}],"h":1},{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":188,"s":[{"i":[[0,0],[4.928,-11.595],[12.465,-0.87],[0,0],[-14.56,12.656],[0,0],[-8.406,-10.146]],"o":[[7.827,9.856],[-4.928,11.595],[0,0],[-20.722,-16.616],[0,0],[12.755,-3.189],[0,0]],"v":[[38.416,-22.549],[43.344,11.946],[14.936,32.527],[-32.966,35.719],[-32.314,-26.028],[3.631,-34.724],[38.126,-23.129]],"c":true}]},{"i":{"x":0.12,"y":1},"o":{"x":0.154,"y":1},"t":218,"s":[{"i":[[0,0],[4.852,-12.202],[12.469,-0.832],[0,0],[-10.995,10.445],[0,0],[-8.483,-10.765]],"o":[[7.901,10.455],[-4.852,12.202],[0,0],[-15.966,-14.079],[0,0],[12.744,-3.277],[0,0]],"v":[[40.886,-22.623],[46.055,13.814],[17.765,35.338],[-19.6,30.341],[-19.67,-21.264],[5.987,-35.71],[40.592,-23.237]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":222,"s":[{"i":[[0,0],[4.852,-12.202],[12.469,-0.832],[0,0],[-10.995,10.445],[0,0],[-8.483,-10.765]],"o":[[7.901,10.455],[-4.852,12.202],[0,0],[-15.966,-14.079],[0,0],[12.744,-3.277],[0,0]],"v":[[40.886,-22.623],[46.055,13.814],[17.765,35.338],[-19.6,30.341],[-19.67,-21.264],[5.987,-35.71],[40.592,-23.237]],"c":true}]},{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":234,"s":[{"i":[[0,0],[4.232,-12.502],[12.921,-1.766],[0,0],[-10.742,11.216],[0,0],[-9.55,-10.068]],"o":[[8.923,9.803],[-4.232,12.502],[0,0],[-17.559,-12.801],[0,0],[13.042,-4.219],[0,0]],"v":[[43.524,-16.699],[51.346,19.151],[23.347,42.689],[-15.873,40.533],[-19.404,-10.788],[6.329,-27.088],[43.177,-17.287]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":252,"s":[{"i":[[0,0],[5.977,-11.693],[12.492,0.343],[0,0],[-11.927,9.366],[0,0],[-7.435,-11.514]],"o":[[6.885,11.15],[-5.977,11.693],[0,0],[-14.573,-15.516],[0,0],[12.995,-2.066],[0,0]],"v":[[41.831,-31.462],[43.556,5.299],[13.369,24.072],[-23.361,15.588],[-18.585,-35.795],[8.315,-47.769],[41.596,-32.101]],"c":true}]},{"t":287,"s":[{"i":[[0,0],[4.928,-11.595],[12.465,-0.87],[0,0],[-14.56,12.656],[0,0],[-8.406,-10.146]],"o":[[7.827,9.856],[-4.928,11.595],[0,0],[-20.722,-16.616],[0,0],[12.755,-3.189],[0,0]],"v":[[38.416,-22.549],[43.344,11.946],[14.936,32.527],[-32.966,35.719],[-32.314,-26.028],[3.631,-34.724],[38.126,-23.129]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.75686275959,0.549019634724,0.474509805441,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":7.087,"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":"Nail","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Thumb - PATH","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":59,"s":[17.7]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":95,"s":[15.7]},{"i":{"x":[0.28],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":147,"s":[15.7]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.18],"y":[0]},"t":201,"s":[17.7]},{"i":{"x":[0.28],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":259,"s":[15.7]},{"t":313,"s":[17.7]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":122,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":0.6},"o":{"x":0.604,"y":0.604},"t":145,"s":[-20,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.28,"y":1},"o":{"x":0.2,"y":0},"t":147,"s":[-20,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.8,"y":0.8},"t":201,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":234,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":0.6},"o":{"x":0.604,"y":0.604},"t":257,"s":[-20,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.28,"y":1},"o":{"x":0.2,"y":0},"t":259,"s":[-20,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":313,"s":[0,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,49,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":25,"nm":"Elevation","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,0.25],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":63.75,"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":4,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":8,"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":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":59,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.058],[20.871,-4.348],[30.147,15.653],[-19.422,9.856],[-43.806,10.633],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.364],[31.033,-15.738],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.238,116.511],[-118.128,117.96],[-234.659,118.83],[-235.238,50.129],[-138.858,16.664],[-91.169,5.488],[-12.612,-36.255]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.6,"y":0},"t":95,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.488],[29.847,13.237],[-19.539,8.925],[-43.754,11.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.488],[-29.851,-12.983],[31.217,-14.259],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.615,122.088],[-218.286,112.728],[-217.801,52.593],[-139.373,12.524],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":122,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.49,-5.931],[30.698,11.123],[-18.869,10.266],[-42.877,14.071],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.49,5.931],[-30.684,-10.869],[30.147,-16.402],[13.194,-4.33],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.746,122.8],[-214.825,120.486],[-218.536,60.463],[-143.094,15.021],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":140,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.05],[28.119,16.594],[-20.439,6.609],[-44.737,5.921],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.05],[-28.153,-16.343],[32.655,-10.559],[13.766,-1.822],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.248,123.637],[-223.166,102.718],[-215.742,43.041],[-133.212,12.294],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"t":175,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.058],[20.871,-4.348],[30.147,15.653],[-19.422,9.856],[-43.806,10.633],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.364],[31.033,-15.738],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.238,116.511],[-118.128,117.96],[-234.659,118.83],[-235.238,50.129],[-138.858,16.664],[-91.169,5.488],[-12.612,-36.255]],"c":true}],"h":1},{"i":{"x":0.6,"y":1},"o":{"x":0.8,"y":0},"t":188,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.058],[20.871,-4.348],[30.147,15.653],[-19.422,9.856],[-43.806,10.633],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.364],[31.033,-15.738],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.238,116.511],[-118.128,117.96],[-234.659,118.83],[-235.238,50.129],[-138.858,16.664],[-91.169,5.488],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.12,"y":1},"o":{"x":0.154,"y":1},"t":218,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.488],[29.847,13.237],[-19.539,8.925],[-43.754,11.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.488],[-29.851,-12.983],[31.217,-14.259],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.615,122.088],[-218.286,112.728],[-217.801,52.593],[-139.373,12.524],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":222,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.854,-4.488],[29.847,13.237],[-19.539,8.925],[-43.754,11.046],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.854,4.488],[-29.851,-12.983],[31.217,-14.259],[13.464,-3.399],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-117.615,122.088],[-218.286,112.728],[-217.801,52.593],[-139.373,12.524],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.56,"y":1},"o":{"x":0.88,"y":0},"t":234,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[20.49,-5.931],[30.698,11.123],[-18.869,10.266],[-42.877,14.071],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-20.49,5.931],[-30.684,-10.869],[30.147,-16.402],[13.194,-4.33],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-113.746,122.8],[-214.825,120.486],[-218.536,60.463],[-143.094,15.021],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":252,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.218,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.107,4.203],[21.232,-2.05],[28.119,16.594],[-20.439,6.609],[-44.737,5.921],[-18.617,4.337],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.298,-4.802],[-21.232,2.05],[-28.153,-16.343],[32.655,-10.559],[13.766,-1.822],[35.357,-7.895],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.226,97.821],[115.466,195.08],[32.184,139.048],[-41.137,117.012],[-124.248,123.637],[-223.166,102.718],[-215.742,43.041],[-133.212,12.294],[-81.375,3.213],[-12.612,-36.255]],"c":true}]},{"t":287,"s":[{"i":[[-2.609,1.739],[-87.592,74.129],[-32.219,-40.908],[25.237,-53.227],[55.367,-3.479],[27.304,14.385],[26.089,4.058],[20.871,-4.348],[30.147,15.653],[-19.422,9.856],[-43.806,10.633],[-18.621,4.297],[-16.233,10.726]],"o":[[104.165,-73.861],[39.748,-33.639],[29.647,37.643],[-33.816,71.321],[-10.146,0.58],[-24.064,-12.677],[-29.278,-4.638],[-20.871,4.348],[-30.147,-15.364],[31.033,-15.738],[13.48,-3.272],[35.365,-7.827],[2.609,-2.029]],"v":[[-4.785,-41.762],[88.687,-303.495],[289.167,-149.936],[310.227,97.821],[115.466,195.08],[32.184,139.048],[-46.238,116.511],[-118.128,117.96],[-234.659,118.83],[-235.238,50.129],[-138.858,16.664],[-91.169,5.488],[-12.612,-36.255]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.694117665291,0.435294121504,0.345098048449,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":7.087,"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":"Thumb","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Gesture Flash","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":65,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":77,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":89,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":119,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":141,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":150,"s":[0]},{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":231,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":253,"s":[100]},{"t":262,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1429,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.8],"y":[1]},"o":{"x":[1],"y":[0]},"t":123,"s":[581]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.312],"y":[4.051]},"t":141,"s":[910]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":150,"s":[910]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":180,"s":[581]},{"i":{"x":[0.8],"y":[1]},"o":{"x":[1],"y":[0]},"t":235,"s":[581]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.312],"y":[4.051]},"t":253,"s":[910]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":262,"s":[910]},{"t":292,"s":[581]}],"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":123,"s":[90]},{"t":141,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":150,"s":[200]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":180,"s":[90]},{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":235,"s":[90]},{"t":253,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":262,"s":[200]},{"t":292,"s":[90]}],"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":123,"s":[90]},{"t":141,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":150,"s":[200]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":180,"s":[90]},{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":235,"s":[90]},{"t":253,"s":[200],"h":1},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.42],"y":[0]},"t":262,"s":[200]},{"t":292,"s":[90]}],"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.772,0],[0,0],[0,-49.772],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.772],[0,0],[49.772,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.167],[-116.817,-581.35],[116.817,-581.35],[207,-491.167],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.09,0],[0,0],[0,-50.09],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.09],[0,0],[50.09,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.689],[-116.241,-582.448],[116.241,-582.448],[207,-491.689],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.651,0],[0,0],[0,-50.651],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.651],[0,0],[50.651,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.605],[-115.225,-584.38],[115.225,-584.38],[207,-492.605],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.485,0],[0,0],[0,-51.485],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-51.485],[0,0],[51.485,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-493.959],[-113.713,-587.246],[113.713,-587.246],[207,-493.959],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-52.63,0],[0,0],[0,-52.63],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-52.63],[0,0],[52.63,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.808],[-111.638,-591.17],[111.638,-591.17],[207,-495.808],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.132,0],[0,0],[0,-54.133],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-54.133],[0,0],[54.133,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.219],[-108.916,-596.303],[108.916,-596.303],[207,-498.219],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.05,0],[0,0],[0,-56.05],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-56.05],[0,0],[56.05,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-501.281],[-105.442,-602.839],[105.442,-602.839],[207,-501.281],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.455,0],[0,0],[0,-58.455],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.455],[0,0],[58.455,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-505.109],[-101.083,-611.026],[101.083,-611.026],[207,-505.109],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.443,0],[0,0],[0,-61.443],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-61.443],[0,0],[61.443,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-509.862],[-95.67,-621.193],[95.669,-621.193],[207,-509.862],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-65.136,0],[0,0],[0,-65.136],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-65.136],[0,0],[65.136,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.772],[-88.979,-633.792],[88.979,-633.792],[207,-515.772],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.689,0],[0,0],[0,-69.689],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-69.689],[0,0],[69.689,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.201],[-80.73,-649.472],[80.73,-649.472],[207,-523.201],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-75.292,0],[0,0],[0,-75.292],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-75.292],[0,0],[75.292,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.789],[-70.578,-669.211],[70.578,-669.211],[207,-532.789],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-82.119,0],[0,0],[0,-82.119],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-82.119],[0,0],[82.119,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-545.809],[-58.206,-694.603],[58.206,-694.603],[207,-545.809],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.124,0],[0,0],[0,-90.124],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-90.124],[0,0],[90.124,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-565.184],[-43.703,-728.481],[43.703,-728.481],[207,-565.184],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-98.484,0],[0,0],[0,-98.484],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-98.484],[0,0],[98.484,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-597.873],[-28.555,-776.318],[28.555,-776.318],[207,-597.873],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.33,0],[0,0],[0,-105.33],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.33],[0,0],[105.33,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-653.5],[-16.151,-844.349],[16.151,-844.349],[207,-653.5],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.245,0],[0,0],[0,-109.245],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.245],[0,0],[109.245,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-700.008],[-9.056,-897.952],[9.056,-897.952],[207,-700.008],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.387],[-7,-911.387],[7,-911.387],[207,-711.387],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.036],[-7,-911.036],[7,-911.036],[207,-711.036],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.362],[-7,-910.362],[7,-910.362],[207,-710.362],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.251,0],[0,0],[0,-110.251],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.251],[0,0],[110.251,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-709.533],[-7.234,-909.299],[7.234,-909.299],[207,-709.533],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.855,0],[0,0],[0,-109.855],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.855],[0,0],[109.855,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-708.106],[-7.951,-907.155],[7.951,-907.155],[207,-708.106],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.183,0],[0,0],[0,-109.183],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.183],[0,0],[109.183,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-705.681],[-9.169,-903.511],[9.169,-903.511],[207,-705.681],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-108.224,0],[0,0],[0,-108.224],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-108.224],[0,0],[108.224,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-702.223],[-10.906,-898.317],[10.906,-898.317],[207,-702.223],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-106.972,0],[0,0],[0,-106.972],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-106.972],[0,0],[106.972,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-697.707],[-13.174,-891.533],[13.174,-891.533],[207,-697.707],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.423,0],[0,0],[0,-105.422],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.422],[0,0],[105.423,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-692.117],[-15.983,-883.134],[15.983,-883.134],[207,-692.117],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-103.574,0],[0,0],[0,-103.574],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-103.574],[0,0],[103.574,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-685.448],[-19.332,-873.116],[19.332,-873.116],[207,-685.448],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-101.431,0],[0,0],[0,-101.431],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-101.431],[0,0],[101.431,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-677.717],[-23.215,-861.502],[23.215,-861.502],[207,-677.717],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-99.003,0],[0,0],[0,-99.003],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-99.003],[0,0],[99.003,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-668.96],[-27.614,-848.347],[27.614,-848.347],[207,-668.96],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-96.309,0],[0,0],[0,-96.309],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-96.309],[0,0],[96.309,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-659.241],[-32.495,-833.746],[32.495,-833.746],[207,-659.241],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-93.374,0],[0,0],[0,-93.374],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-93.374],[0,0],[93.374,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-648.653],[-37.814,-817.839],[37.814,-817.839],[207,-648.653],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.232,0],[0,0],[0,-90.232],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-90.232],[0,0],[90.232,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-637.317],[-43.507,-800.81],[43.507,-800.81],[207,-637.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-86.925,0],[0,0],[0,-86.925],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-86.925],[0,0],[86.925,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-625.39],[-49.498,-782.892],[49.498,-782.892],[207,-625.39],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-83.505,0],[0,0],[0,-83.505],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-83.505],[0,0],[83.505,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-613.051],[-55.696,-764.355],[55.696,-764.355],[207,-613.051],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-76.546,0],[0,0],[0,-76.546],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-76.546],[0,0],[76.546,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-587.949],[-68.304,-726.645],[68.304,-726.645],[207,-587.949],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-73.126,0],[0,0],[0,-73.126],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-73.126],[0,0],[73.126,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-575.61],[-74.502,-708.108],[74.502,-708.108],[207,-575.61],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.819,0],[0,0],[0,-69.819],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-69.819],[0,0],[69.819,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-563.683],[-80.493,-690.19],[80.493,-690.19],[207,-563.683],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-66.677,0],[0,0],[0,-66.677],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-66.677],[0,0],[66.677,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-552.347],[-86.186,-673.161],[86.186,-673.161],[207,-552.347],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-63.742,0],[0,0],[0,-63.742],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-63.742],[0,0],[63.742,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-541.759],[-91.505,-657.254],[91.505,-657.254],[207,-541.759],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.048,0],[0,0],[0,-61.048],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-61.048],[0,0],[61.048,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.04],[-96.386,-642.653],[96.386,-642.653],[207,-532.04],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.62,0],[0,0],[0,-58.62],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.62],[0,0],[58.62,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.283],[-100.785,-629.498],[100.785,-629.498],[207,-523.283],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.477,0],[0,0],[0,-56.477],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-56.477],[0,0],[56.477,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.552],[-104.668,-617.884],[104.668,-617.884],[207,-515.552],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.628,0],[0,0],[0,-54.629],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-54.629],[0,0],[54.628,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-508.884],[-108.017,-607.866],[108.017,-607.866],[207,-508.884],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-53.079,0],[0,0],[0,-53.079],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-53.079],[0,0],[53.079,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-503.293],[-110.826,-599.467],[110.826,-599.467],[207,-503.293],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.827,0],[0,0],[0,-51.827],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-51.827],[0,0],[51.827,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.777],[-113.094,-592.683],[113.094,-592.683],[207,-498.777],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.868,0],[0,0],[0,-50.868],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.868],[0,0],[50.868,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.319],[-114.831,-587.489],[114.831,-587.489],[207,-495.319],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.196,0],[0,0],[0,-50.196],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.196],[0,0],[50.196,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.894],[-116.049,-583.845],[116.049,-583.845],[207,-492.894],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.8,0],[0,0],[0,-49.8],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.8],[0,0],[49.8,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.467],[-116.766,-581.701],[116.766,-581.701],[207,-491.467],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":235,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.772,0],[0,0],[0,-49.772],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.772],[0,0],[49.772,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.167],[-116.817,-581.35],[116.817,-581.35],[207,-491.167],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":236,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.09,0],[0,0],[0,-50.09],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.09],[0,0],[50.09,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.689],[-116.241,-582.448],[116.241,-582.448],[207,-491.689],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":237,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.651,0],[0,0],[0,-50.651],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.651],[0,0],[50.651,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.605],[-115.225,-584.38],[115.225,-584.38],[207,-492.605],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":238,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.485,0],[0,0],[0,-51.485],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-51.485],[0,0],[51.485,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-493.959],[-113.713,-587.246],[113.713,-587.246],[207,-493.959],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":239,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-52.63,0],[0,0],[0,-52.63],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-52.63],[0,0],[52.63,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.808],[-111.638,-591.17],[111.638,-591.17],[207,-495.808],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":240,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.132,0],[0,0],[0,-54.133],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-54.133],[0,0],[54.133,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.219],[-108.916,-596.303],[108.916,-596.303],[207,-498.219],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":241,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.05,0],[0,0],[0,-56.05],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-56.05],[0,0],[56.05,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-501.281],[-105.442,-602.839],[105.442,-602.839],[207,-501.281],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":242,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.455,0],[0,0],[0,-58.455],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.455],[0,0],[58.455,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-505.109],[-101.083,-611.026],[101.083,-611.026],[207,-505.109],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":243,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.443,0],[0,0],[0,-61.443],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-61.443],[0,0],[61.443,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-509.862],[-95.67,-621.193],[95.669,-621.193],[207,-509.862],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":244,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-65.136,0],[0,0],[0,-65.136],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-65.136],[0,0],[65.136,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.772],[-88.979,-633.792],[88.979,-633.792],[207,-515.772],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":245,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.689,0],[0,0],[0,-69.689],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-69.689],[0,0],[69.689,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.201],[-80.73,-649.472],[80.73,-649.472],[207,-523.201],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":246,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-75.292,0],[0,0],[0,-75.292],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-75.292],[0,0],[75.292,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.789],[-70.578,-669.211],[70.578,-669.211],[207,-532.789],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":247,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-82.119,0],[0,0],[0,-82.119],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-82.119],[0,0],[82.119,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-545.809],[-58.206,-694.603],[58.206,-694.603],[207,-545.809],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":248,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.124,0],[0,0],[0,-90.124],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-90.124],[0,0],[90.124,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-565.184],[-43.703,-728.481],[43.703,-728.481],[207,-565.184],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":249,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-98.484,0],[0,0],[0,-98.484],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-98.484],[0,0],[98.484,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-597.873],[-28.555,-776.318],[28.555,-776.318],[207,-597.873],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.33,0],[0,0],[0,-105.33],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.33],[0,0],[105.33,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-653.5],[-16.151,-844.349],[16.151,-844.349],[207,-653.5],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.245,0],[0,0],[0,-109.245],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.245],[0,0],[109.245,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-700.008],[-9.056,-897.952],[9.056,-897.952],[207,-700.008],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.387],[-7,-911.387],[7,-911.387],[207,-711.387],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-711.036],[-7,-911.036],[7,-911.036],[207,-711.036],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.362],[-7,-910.362],[7,-910.362],[207,-710.362],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710],[-7,-910],[7,-910],[207,-710],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.251,0],[0,0],[0,-110.251],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.251],[0,0],[110.251,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-709.533],[-7.234,-909.299],[7.234,-909.299],[207,-709.533],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.855,0],[0,0],[0,-109.855],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.855],[0,0],[109.855,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-708.106],[-7.951,-907.155],[7.951,-907.155],[207,-708.106],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-109.183,0],[0,0],[0,-109.183],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-109.183],[0,0],[109.183,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-705.681],[-9.169,-903.511],[9.169,-903.511],[207,-705.681],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-108.224,0],[0,0],[0,-108.224],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-108.224],[0,0],[108.224,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-702.223],[-10.906,-898.317],[10.906,-898.317],[207,-702.223],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-106.972,0],[0,0],[0,-106.972],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-106.972],[0,0],[106.972,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-697.707],[-13.174,-891.533],[13.174,-891.533],[207,-697.707],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-105.423,0],[0,0],[0,-105.422],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-105.422],[0,0],[105.423,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-692.117],[-15.983,-883.134],[15.983,-883.134],[207,-692.117],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-103.574,0],[0,0],[0,-103.574],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-103.574],[0,0],[103.574,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-685.448],[-19.332,-873.116],[19.332,-873.116],[207,-685.448],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-101.431,0],[0,0],[0,-101.431],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-101.431],[0,0],[101.431,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-677.717],[-23.215,-861.502],[23.215,-861.502],[207,-677.717],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-99.003,0],[0,0],[0,-99.003],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-99.003],[0,0],[99.003,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-668.96],[-27.614,-848.347],[27.614,-848.347],[207,-668.96],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-96.309,0],[0,0],[0,-96.309],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-96.309],[0,0],[96.309,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-659.241],[-32.495,-833.746],[32.495,-833.746],[207,-659.241],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-93.374,0],[0,0],[0,-93.374],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-93.374],[0,0],[93.374,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-648.653],[-37.814,-817.839],[37.814,-817.839],[207,-648.653],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-90.232,0],[0,0],[0,-90.232],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-90.232],[0,0],[90.232,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-637.317],[-43.507,-800.81],[43.507,-800.81],[207,-637.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-86.925,0],[0,0],[0,-86.925],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-86.925],[0,0],[86.925,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-625.39],[-49.498,-782.892],[49.498,-782.892],[207,-625.39],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-83.505,0],[0,0],[0,-83.505],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-83.505],[0,0],[83.505,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-613.051],[-55.696,-764.355],[55.696,-764.355],[207,-613.051],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-76.546,0],[0,0],[0,-76.546],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-76.546],[0,0],[76.546,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-587.949],[-68.304,-726.645],[68.304,-726.645],[207,-587.949],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-73.126,0],[0,0],[0,-73.126],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-73.126],[0,0],[73.126,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-575.61],[-74.502,-708.108],[74.502,-708.108],[207,-575.61],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-69.819,0],[0,0],[0,-69.819],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-69.819],[0,0],[69.819,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-563.683],[-80.493,-690.19],[80.493,-690.19],[207,-563.683],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-66.677,0],[0,0],[0,-66.677],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-66.677],[0,0],[66.677,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-552.347],[-86.186,-673.161],[86.186,-673.161],[207,-552.347],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-63.742,0],[0,0],[0,-63.742],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-63.742],[0,0],[63.742,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-541.759],[-91.505,-657.254],[91.505,-657.254],[207,-541.759],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-61.048,0],[0,0],[0,-61.048],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-61.048],[0,0],[61.048,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-532.04],[-96.386,-642.653],[96.386,-642.653],[207,-532.04],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-58.62,0],[0,0],[0,-58.62],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-58.62],[0,0],[58.62,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-523.283],[-100.785,-629.498],[100.785,-629.498],[207,-523.283],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-56.477,0],[0,0],[0,-56.477],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-56.477],[0,0],[56.477,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-515.552],[-104.668,-617.884],[104.668,-617.884],[207,-515.552],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-54.628,0],[0,0],[0,-54.629],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-54.629],[0,0],[54.628,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-508.884],[-108.017,-607.866],[108.017,-607.866],[207,-508.884],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":286,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-53.079,0],[0,0],[0,-53.079],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-53.079],[0,0],[53.079,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-503.293],[-110.826,-599.467],[110.826,-599.467],[207,-503.293],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":287,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-51.827,0],[0,0],[0,-51.827],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-51.827],[0,0],[51.827,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-498.777],[-113.094,-592.683],[113.094,-592.683],[207,-498.777],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":288,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.868,0],[0,0],[0,-50.868],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.868],[0,0],[50.868,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-495.319],[-114.831,-587.489],[114.831,-587.489],[207,-495.319],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":289,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-50.196,0],[0,0],[0,-50.196],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-50.196],[0,0],[50.196,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-492.894],[-116.049,-583.845],[116.049,-583.845],[207,-492.894],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":290,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.8,0],[0,0],[0,-49.8],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-49.8],[0,0],[49.8,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491.467],[-116.766,-581.701],[116.766,-581.701],[207,-491.467],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":291,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-49.671,0],[0,0],[0,-49.671],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-49.671],[0,0],[49.671,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-491],[-117,-581],[117,-581],[207,-491],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.341176470588,0.780392156863,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":1300,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Second Flash Gesture - COMMIT","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[95]},{"t":170,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":252,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[95]},{"t":282,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,1376,0],"ix":2,"l":2},"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":5,"nm":"Rectangle Independent Corners","np":19,"mn":"Pseudo/0.16410552199068107","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.16410552199068107-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":6,"nm":"Size","mn":"Pseudo/0.16410552199068107-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.16410552199068107-0003","ix":3,"v":{"a":0,"k":414,"ix":3}},{"ty":0,"nm":"h","mn":"Pseudo/0.16410552199068107-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.268]},"t":141,"s":[857]},{"t":179,"s":[1204],"h":1},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.268]},"t":253,"s":[857]},{"t":291,"s":[1204],"h":1}],"ix":4}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.16410552199068107-0006","ix":6,"v":0},{"ty":0,"nm":"tl","mn":"Pseudo/0.16410552199068107-0007","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":141,"s":[200]},{"t":253,"s":[200]}],"ix":7}},{"ty":0,"nm":"tr","mn":"Pseudo/0.16410552199068107-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":141,"s":[200]},{"t":253,"s":[200]}],"ix":8}},{"ty":0,"nm":"br","mn":"Pseudo/0.16410552199068107-0009","ix":9,"v":{"a":0,"k":135,"ix":9}},{"ty":0,"nm":"bl","mn":"Pseudo/0.16410552199068107-0010","ix":10,"v":{"a":0,"k":135,"ix":10}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0011","ix":11,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.16410552199068107-0012","ix":12,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.16410552199068107-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.16410552199068107-0014","ix":14,"v":{"a":0,"k":0,"ix":14}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.16410552199068107-0015","ix":15,"v":{"a":0,"k":0,"ix":15}},{"ty":0,"nm":"Y Position","mn":"Pseudo/0.16410552199068107-0016","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":6,"nm":"Rectangle Independent Corners","mn":"Pseudo/0.16410552199068107-0017","ix":17,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"k":[{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-657],[-7,-857],[7,-857],[207,-657],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.063],[-7,-910.063],[7,-910.063],[207,-710.063],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-753.007],[-7,-953.007],[7,-953.007],[207,-753.007],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-785.49],[-7,-985.49],[7,-985.49],[207,-785.49],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-811.374],[-7,-1011.374],[7,-1011.374],[207,-811.374],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-832.839],[-7,-1032.839],[7,-1032.839],[207,-832.839],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-851.125],[-7,-1051.125],[7,-1051.125],[207,-851.125],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-866.998],[-7,-1066.998],[7,-1066.998],[207,-866.998],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-880.965],[-7,-1080.965],[7,-1080.965],[207,-880.965],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-893.379],[-7,-1093.379],[7,-1093.379],[207,-893.379],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-904.497],[-7,-1104.497],[7,-1104.497],[207,-904.497],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-914.513],[-7,-1114.513],[7,-1114.513],[207,-914.513],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-923.578],[-7,-1123.578],[7,-1123.578],[207,-923.578],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-931.81],[-7,-1131.81],[7,-1131.81],[207,-931.81],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-939.307],[-7,-1139.307],[7,-1139.307],[207,-939.307],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-946.146],[-7,-1146.146],[7,-1146.146],[207,-946.146],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-952.394],[-7,-1152.394],[7,-1152.394],[207,-952.394],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-958.107],[-7,-1158.106],[7,-1158.106],[207,-958.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-963.331],[-7,-1163.331],[7,-1163.331],[207,-963.331],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-968.107],[-7,-1168.107],[7,-1168.107],[207,-968.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-972.472],[-7,-1172.472],[7,-1172.472],[207,-972.472],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-976.455],[-7,-1176.455],[7,-1176.455],[207,-976.455],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-980.085],[-7,-1180.085],[7,-1180.085],[207,-980.085],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-983.384],[-7,-1183.384],[7,-1183.384],[207,-983.384],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-986.375],[-7,-1186.375],[7,-1186.375],[207,-986.375],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-989.077],[-7,-1189.078],[7,-1189.078],[207,-989.077],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-991.508],[-7,-1191.508],[7,-1191.508],[207,-991.508],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-993.682],[-7,-1193.682],[7,-1193.682],[207,-993.682],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-995.614],[-7,-1195.614],[7,-1195.614],[207,-995.614],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-997.317],[-7,-1197.317],[7,-1197.317],[207,-997.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-998.803],[-7,-1198.803],[7,-1198.803],[207,-998.803],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1000.082],[-7,-1200.082],[7,-1200.082],[207,-1000.082],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1001.164],[-7,-1201.165],[7,-1201.165],[207,-1001.164],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.06],[-7,-1202.06],[7,-1202.06],[207,-1002.06],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.776],[-7,-1202.776],[7,-1202.776],[207,-1002.776],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1003.702],[-7,-1203.702],[7,-1203.702],[207,-1003.702],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1004],[-7,-1204],[7,-1204],[207,-1004],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-657],[-7,-857],[7,-857],[207,-657],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-710.063],[-7,-910.063],[7,-910.063],[207,-710.063],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-753.007],[-7,-953.007],[7,-953.007],[207,-753.007],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-785.49],[-7,-985.49],[7,-985.49],[207,-785.49],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-811.374],[-7,-1011.374],[7,-1011.374],[207,-811.374],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-832.839],[-7,-1032.839],[7,-1032.839],[207,-832.839],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-851.125],[-7,-1051.125],[7,-1051.125],[207,-851.125],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-866.998],[-7,-1066.998],[7,-1066.998],[207,-866.998],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-880.965],[-7,-1080.965],[7,-1080.965],[207,-880.965],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-893.379],[-7,-1093.379],[7,-1093.379],[207,-893.379],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-904.497],[-7,-1104.497],[7,-1104.497],[207,-904.497],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-914.513],[-7,-1114.513],[7,-1114.513],[207,-914.513],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-923.578],[-7,-1123.578],[7,-1123.578],[207,-923.578],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.507]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.507],[0,0],[-74.507,0],[0,0]],"v":[[-207,-931.81],[-7,-1131.81],[7,-1131.81],[207,-931.81],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-939.307],[-7,-1139.307],[7,-1139.307],[207,-939.307],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-946.146],[-7,-1146.146],[7,-1146.146],[207,-946.146],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-952.394],[-7,-1152.394],[7,-1152.394],[207,-952.394],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-958.107],[-7,-1158.106],[7,-1158.106],[207,-958.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-963.331],[-7,-1163.331],[7,-1163.331],[207,-963.331],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-968.107],[-7,-1168.107],[7,-1168.107],[207,-968.107],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-972.472],[-7,-1172.472],[7,-1172.472],[207,-972.472],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-976.455],[-7,-1176.455],[7,-1176.455],[207,-976.455],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-980.085],[-7,-1180.085],[7,-1180.085],[207,-980.085],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-983.384],[-7,-1183.384],[7,-1183.384],[207,-983.384],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-986.375],[-7,-1186.375],[7,-1186.375],[207,-986.375],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-989.077],[-7,-1189.078],[7,-1189.078],[207,-989.077],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-991.508],[-7,-1191.508],[7,-1191.508],[207,-991.508],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-993.682],[-7,-1193.682],[7,-1193.682],[207,-993.682],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-995.614],[-7,-1195.614],[7,-1195.614],[207,-995.614],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-997.317],[-7,-1197.317],[7,-1197.317],[207,-997.317],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-998.803],[-7,-1198.803],[7,-1198.803],[207,-998.803],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1000.082],[-7,-1200.082],[7,-1200.082],[207,-1000.082],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1001.164],[-7,-1201.165],[7,-1201.165],[207,-1001.164],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.06],[-7,-1202.06],[7,-1202.06],[207,-1002.06],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":286,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1002.776],[-7,-1202.776],[7,-1202.776],[207,-1002.776],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":287,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-110.38,0],[0,0],[0,-110.38],[0,0],[74.507,0],[0,0],[0,74.506]],"o":[[0,-110.38],[0,0],[110.38,0],[0,0],[0,74.506],[0,0],[-74.507,0],[0,0]],"v":[[-207,-1003.702],[-7,-1203.702],[7,-1203.702],[207,-1003.702],[207,-135],[72,0],[-72,0],[-207,-135]],"c":true}],"t":289,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.341176470588,0.780392156863,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":{"k":[{"s":[0,0],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":1300,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"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 11986","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":140,"op":321,"st":-40,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"solidBackground","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":206,"ix":3},"y":{"a":0,"k":446,"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,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[412,892],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.701960784314,0.6,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":"Volume","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1301,"st":-40,"ct":1,"bm":0}],"markers":[{"tm":0,"cm":"START","dr":0},{"tm":50,"cm":"BG","dr":0},{"tm":459,"cm":"BLANK","dr":0}]}
\ No newline at end of file
diff --git a/quickstep/res/raw/taskbar_edu_settings.json b/quickstep/res/raw/taskbar_edu_settings.json
new file mode 100644
index 0000000..bd34b73
--- /dev/null
+++ b/quickstep/res/raw/taskbar_edu_settings.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":256,"w":412,"h":300,"nm":"Taskbar_Transient_EDU_3","ddd":0,"assets":[{"id":"comp_0","nm":"Pre-comp_TaskBar_Transient","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[237.75,183,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ip":102,"op":255,"st":90,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"swipe up 2","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[100]},{"t":177,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":100,"s":[-45.3,33.917,0],"to":[5.5,9,0],"ti":[-12,-36,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.333,"y":0.333},"t":127,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[-99.967,45.186,0]},{"t":187,"s":[89.5,-76.7,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":127,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.333],"y":[0,0,0]},"t":137,"s":[80,80,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.333],"y":[0,0,0]},"t":167,"s":[80,80,100]},{"t":179,"s":[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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":240,"s":[56,56]},{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":262,"s":[56,98]},{"t":288,"s":[56,56]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[0,14],"to":[0,0],"ti":[0,0]},{"t":189,"s":[0,0]}],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":102,"op":234,"st":77,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey300","cl":"grey300","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-83.044,0.454,0],"ix":2,"l":2},"a":{"a":0,"k":[121.456,227.454,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,231.545],"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":"Layer 18","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,227.455],"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":"Layer 17","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,223.364],"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":"Layer 16","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,231.545],"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":"Layer 15","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,227.455],"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":"Layer 14","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,223.364],"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":"Layer 13","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,231.545],"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":"Layer 12","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,227.455],"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":"Layer 11","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,223.364],"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":"Layer 10","np":1,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"green circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":550,"s":[84.522,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":580,"s":[84.522,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"green circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":553,"s":[84.522,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":583,"s":[84.522,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".green100","cl":"green100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"blue circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":544,"s":[55.772,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":574,"s":[55.772,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"blue circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":547,"s":[55.772,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":577,"s":[55.772,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".blue100","cl":"blue100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529422283,0.890196084976,0.988235294819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":177,"s":[0]},{"t":187,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":947,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":957,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":967,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":177,"op":11577,"st":177,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[100]},{"t":177,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[27.135,0.001,0],"to":[0.728,-9.542,0],"ti":[-45.478,19.292,0]},{"t":187,"s":[78,-76.749,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".grey400","cl":"grey400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":944,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":954,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":964,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.756862745098,0.776470588235,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":137,"op":252,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".green400","cl":"green400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":941,"s":[-1.498,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":951,"s":[-1.498,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":961,"s":[-1.498,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".red400","cl":"red400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":938,"s":[-30.134,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":948,"s":[-30.134,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":958,"s":[-30.134,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":935,"s":[-58.771,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":945,"s":[-58.771,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":955,"s":[-58.771,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.5,227.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0.001,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,0],[0,-8.284],[0,0],[8.284,0],[0,0],[0,8.284],[0,0]],"o":[[0,0],[8.284,0],[0,0],[0,8.284],[0,0],[-8.284,0],[0,0],[0,-8.284]],"v":[[-86.5,-15],[86.5,-15],[101.5,0],[101.5,0],[86.5,15],[-86.5,15],[-101.5,0],[-101.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0}]},{"id":"comp_1","nm":"Pre-comp_Toggle","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".blue900","cl":"blue900","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":336,"s":[-12.5,0,0],"to":[3.75,0,0],"ti":[-3.75,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.7,"y":0.7},"t":356,"s":[10,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":467,"s":[10,0,0],"to":[-3.75,0,0],"ti":[3.75,0,0]},{"t":487,"s":[-12.5,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":336,"s":[{"i":[[-6.627,0],[0,0],[0,-6.627],[0,0],[6.627,0],[0,0],[0,6.627],[0,0]],"o":[[0,0],[6.627,0],[0,0],[0,6.627],[0,0],[-6.627,0],[0,0],[0,-6.627]],"v":[[0,-12],[0,-12],[12,0],[12,0],[0,12],[0,12],[-12,0],[-12,0]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.8,"y":0},"t":356,"s":[{"i":[[-7.732,0],[0,0],[0,-7.732],[0,0],[7.732,0],[0,0],[0,7.732],[0,0]],"o":[[0,0],[7.732,0],[0,0],[0,7.732],[0,0],[-7.732,0],[0,0],[0,-7.732]],"v":[[0,-14],[0,-14],[14,0],[14,0],[0,14],[0,14],[-14,0],[-14,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0},"t":467,"s":[{"i":[[-7.732,0],[0,0],[0,-7.732],[0,0],[7.732,0],[0,0],[0,7.732],[0,0]],"o":[[0,0],[7.732,0],[0,0],[0,7.732],[0,0],[-7.732,0],[0,0],[0,-7.732]],"v":[[0,-14],[0,-14],[14,0],[14,0],[0,14],[0,14],[-14,0],[-14,0]],"c":true}]},{"t":487,"s":[{"i":[[-6.627,0],[0,0],[0,-6.627],[0,0],[6.627,0],[0,0],[0,6.627],[0,0]],"o":[[0,0],[6.627,0],[0,0],[0,6.627],[0,0],[-6.627,0],[0,0],[0,-6.627]],"v":[[0,-12],[0,-12],[12,0],[12,0],[0,12],[0,12],[-12,0],[-12,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090196078431,0.305882352941,0.650980392157,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".blue200","cl":"blue200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[254.5,133.75,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.837,0],[0,0],[0,-8.837],[0,0],[8.837,0],[0,0],[0,8.837],[0,0]],"o":[[0,0],[8.837,0],[0,0],[0,8.837],[0,0],[-8.837,0],[0,0],[0,-8.837]],"v":[[-10,-16],[10,-16],[26,0],[26,0],[10,16],[-10,16],[-26,0],[-26,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.682352941176,0.796078431373,0.980392156863,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue100_T","cl":"blue100_T","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.784,0],[0,1.783],[1.783,0],[0,-1.783]],"o":[[1.783,0],[0,-1.783],[-1.784,0],[0,1.783]],"v":[[-43.755,-12.577],[-40.526,-15.806],[-43.755,-19.035],[-46.984,-15.806]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0.053]],"o":[[0,0.053],[0,0]],"v":[[-44.937,-23.822],[-44.937,-23.822]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0.054]],"o":[[0,0.054],[0,0]],"v":[[-49.458,-21.078],[-49.458,-21.078]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.431,0.269],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.215],[0,0.215],[0,0],[0,0],[0,0],[0,0],[0,0],[0.431,0.161],[0,0],[0,0],[0,0],[0,0],[0,0],[0.431,-0.269],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-0.216],[-0.054,-0.215],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.431,-0.162],[0,0]],"o":[[0,0],[0,0],[0,0],[0.431,-0.162],[0,0],[0,0],[0,0],[0,0],[0,0],[0.054,-0.215],[0,-0.269],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.377,-0.269],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.431,0.161],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.215],[0,0.215],[0,0],[0,0],[0,0],[0,0],[0,0],[0.377,0.323],[0,0],[0,0]],"v":[[-45.045,-8.215],[-42.515,-8.215],[-42.138,-10.529],[-41.654,-10.744],[-40.416,-11.444],[-39.986,-11.767],[-37.779,-10.906],[-36.487,-13.112],[-38.371,-14.565],[-38.317,-15.104],[-38.263,-15.803],[-38.317,-16.503],[-38.371,-17.041],[-36.487,-18.494],[-37.779,-20.701],[-39.986,-19.84],[-40.416,-20.163],[-41.654,-20.862],[-42.138,-21.078],[-42.461,-23.392],[-44.991,-23.392],[-45.314,-21.078],[-45.798,-20.862],[-47.036,-20.163],[-47.467,-19.84],[-49.673,-20.701],[-50.965,-18.494],[-49.081,-17.041],[-49.135,-16.503],[-49.189,-15.803],[-49.135,-15.104],[-49.081,-14.565],[-50.965,-13.112],[-49.673,-10.906],[-47.467,-11.767],[-47.036,-11.444],[-45.798,-10.744],[-45.368,-10.529]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0.054,0]],"o":[[0.054,0],[0,0]],"v":[[-44.991,-7.784],[-44.991,-7.784]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0.7,0],[0,0],[0.108,0.7],[0,0],[0.215,0.162],[0,0],[0.323,0.592],[0,0],[-0.484,0.376],[0,0],[0,0.161],[0,0.162],[0,0],[-0.376,0.593],[0,0],[-0.592,-0.215],[0,0],[-0.215,0.162],[0,0],[-0.7,0],[0,0],[-0.107,-0.7],[0,0],[-0.269,-0.162],[0,0],[-0.323,-0.592],[0,0],[0.484,-0.377],[0,0],[0,-0.162],[0,-0.161],[0,0],[0.323,-0.592],[0,0],[0.646,0.215],[0,0],[0.216,-0.162],[0,0]],"o":[[0,0],[-0.7,0],[0,0],[-0.269,-0.108],[0,0],[-0.646,0.215],[0,0],[-0.323,-0.592],[0,0],[0,-0.161],[0,-0.162],[0,0],[-0.538,-0.431],[0,0],[0.323,-0.592],[0,0],[0.215,-0.162],[0,0],[0.053,-0.646],[0,0],[0.699,0],[0,0],[0.269,0.108],[0,0],[0.646,-0.215],[0,0],[0.323,0.592],[0,0],[0,0.161],[0,0.161],[0,0],[0.538,0.431],[0,0],[-0.323,0.592],[0,0],[-0.215,0.161],[0,0],[0,0.538]],"v":[[-42.085,-6.385],[-45.475,-6.385],[-46.821,-7.569],[-47.09,-9.291],[-47.789,-9.722],[-49.458,-9.076],[-51.126,-9.668],[-52.795,-12.574],[-52.472,-14.296],[-51.072,-15.373],[-51.072,-15.803],[-51.072,-16.234],[-52.472,-17.31],[-52.795,-19.033],[-51.126,-21.939],[-49.512,-22.531],[-47.843,-21.831],[-47.144,-22.262],[-46.874,-24.038],[-45.529,-25.168],[-42.138,-25.168],[-40.793,-23.984],[-40.524,-22.262],[-39.77,-21.831],[-38.102,-22.477],[-36.433,-21.885],[-34.765,-18.979],[-35.088,-17.256],[-36.487,-16.18],[-36.487,-15.749],[-36.487,-15.319],[-35.088,-14.243],[-34.765,-12.52],[-36.487,-9.56],[-38.156,-8.968],[-39.824,-9.614],[-40.524,-9.183],[-40.793,-7.407]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 2","np":6,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-43.792,-15.776],"ix":2},"a":{"a":0,"k":[-43.792,-15.776],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,0],[0,-8.284],[0,0],[8.284,0],[0,0],[0,8.284],[0,0]],"o":[[0,0],[8.284,0],[0,0],[0,8.284],[0,0],[-8.284,0],[0,0],[0,-8.284]],"v":[[-54,-33],[60,-33],[75,-18],[75,-13],[60,2],[-54,2],[-69,-13],[-69,-18]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,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":"Group 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 5","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[120,120,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"press 2","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":146,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":156,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[100]},{"t":191,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[53.25,-16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":171,"s":[50,50,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":181,"s":[40,40,100]},{"t":191,"s":[50,50,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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"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":[56,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.186},"t":146,"s":[-37,67],"to":[15,-7],"ti":[7,20]},{"t":171,"s":[0,0],"h":1}],"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":"Touch","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":146,"op":202,"st":-59,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"press","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[100]},{"t":60,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[42,-16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":40,"s":[50,50,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":50,"s":[40,40,100]},{"t":60,"s":[50,50,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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"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":[56,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.186},"t":15,"s":[-37,67],"to":[15,-7],"ti":[7,20]},{"t":40,"s":[0,0],"h":1}],"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":"Touch","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":71,"st":-190,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"screen_matte","parent":1,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":11114,"st":-286,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Pre-comp_TaskBar_Transient","parent":1,"tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":-236,"s":[-1.5,94.501,0],"to":[0,-2.5,0],"ti":[0,2.5,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":-192,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":70,"s":[-1.5,79.501,0],"to":[0,1.333,0],"ti":[0,-1.333,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":100,"s":[-1.5,87.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":201,"s":[-1.5,87.501,0],"to":[0,-1.333,0],"ti":[0,1.333,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.3,"y":0.3},"t":231,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":463,"s":[-1.5,79.501,0],"to":[-42.083,-12.917,0],"ti":[42.083,12.917,0]},{"t":543,"s":[-254,2.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[206,227.625,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":-236,"s":[70,70,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":-192,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":463,"s":[100,100,100]},{"t":543,"s":[370,370,100]}],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":11114,"st":-286,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Pre-comp_Toggle","parent":1,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-30,"s":[0]},{"i":{"x":[0.316],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":463,"s":[100]},{"t":543,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":11114,"st":-286,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-37,"s":[0]},{"t":-17,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":70,"s":[320,204.01]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"t":100,"s":[320,173.01]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":201,"s":[320,173.01]},{"t":231,"s":[320,204.01]}],"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.823529411765,0.890196078431,0.988235294118,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":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":70,"s":[-81,0],"to":[0,-2.542],"ti":[0,2.542]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":100,"s":[-81,-15.25],"to":[0,0],"ti":[0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":201,"s":[-81,-15.25],"to":[0,2.542],"ti":[0,-2.542]},{"t":231,"s":[-81,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":11349,"st":-51,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".grey800","cl":"grey800","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":11114,"st":-286,"bm":0}],"markers":[{"tm":94,"cm":"","dr":0},{"tm":249,"cm":"","dr":0},{"tm":474,"cm":"","dr":0}]}
\ No newline at end of file
diff --git a/quickstep/res/raw/taskbar_edu_splitscreen.json b/quickstep/res/raw/taskbar_edu_splitscreen.json
new file mode 100644
index 0000000..09775b0
--- /dev/null
+++ b/quickstep/res/raw/taskbar_edu_splitscreen.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":240,"w":412,"h":300,"nm":"Taskbar_Transient_EDU_2","ddd":0,"assets":[{"id":"comp_0","nm":"Pre-comp_TaskBar_Transient_Step_2","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[237.75,183,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ip":102,"op":255,"st":90,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"swipe up 2","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":207,"s":[100]},{"t":217,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":100,"s":[-45.3,33.917,0],"to":[5.5,9,0],"ti":[-12,-36,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.333,"y":0.333},"t":127,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[0,0,0]},{"t":187,"s":[59.5,-26.7,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":127,"s":[100,100,100]},{"t":137,"s":[80,80,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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":240,"s":[56,56]},{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":262,"s":[56,98]},{"t":288,"s":[56,56]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[0,0],"to":[0,0],"ti":[0,0]},{"t":187,"s":[0,14]}],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":102,"op":234,"st":77,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey300","cl":"grey300","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-83.044,0.454,0],"ix":2,"l":2},"a":{"a":0,"k":[121.456,227.454,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,231.545],"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":"Layer 18","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,227.455],"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":"Layer 17","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,223.364],"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":"Layer 16","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,231.545],"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":"Layer 15","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,227.455],"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":"Layer 14","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,223.364],"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":"Layer 13","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,231.545],"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":"Layer 12","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,227.455],"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":"Layer 11","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,223.364],"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":"Layer 10","np":1,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"green circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":550,"s":[84.522,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":580,"s":[84.522,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"green circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":553,"s":[84.522,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":583,"s":[84.522,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".green100","cl":"green100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"blue circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":544,"s":[55.772,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":574,"s":[55.772,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"blue circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":547,"s":[55.772,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":577,"s":[55.772,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".blue100","cl":"blue100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529422283,0.890196084976,0.988235294819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":207,"s":[0]},{"t":217,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":977,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":987,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":997,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":207,"op":11607,"st":207,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":207,"s":[100]},{"t":217,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[27.135,0.001,0],"to":[0,0,0],"ti":[0,0,0]},{"t":187,"s":[63,-51.749,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".grey400","cl":"grey400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":944,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":954,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":964,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.756862745098,0.776470588235,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":137,"op":252,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".green400","cl":"green400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":941,"s":[-1.498,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":951,"s":[-1.498,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":961,"s":[-1.498,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".red400","cl":"red400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":938,"s":[-30.134,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":948,"s":[-30.134,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":958,"s":[-30.134,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":935,"s":[-58.771,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":945,"s":[-58.771,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":955,"s":[-58.771,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.5,227.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0.001,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,0],[0,-8.284],[0,0],[8.284,0],[0,0],[0,8.284],[0,0]],"o":[[0,0],[8.284,0],[0,0],[0,8.284],[0,0],[-8.284,0],[0,0],[0,-8.284]],"v":[[-86.5,-15],[86.5,-15],[101.5,0],[101.5,0],[86.5,15],[-86.5,15],[-101.5,0],[-101.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null_MasterScale","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[120,120,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"screen_matte","parent":1,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":11306,"st":-94,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Pre-comp_TaskBar_Transient_Step_2","parent":1,"tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":262,"s":[-1.5,79.501,0],"to":[0,1.333,0],"ti":[0,-1.333,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":292,"s":[-1.5,87.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":342,"s":[-1.5,87.501,0],"to":[0,-1.333,0],"ti":[0,1.333,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.3,"y":0.3},"t":372,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":380,"s":[-1.5,79.501,0],"to":[-42.083,-12.917,0],"ti":[42.083,12.917,0]},{"t":460,"s":[-254,2.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[206,227.625,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"t":460,"s":[370,370,100]}],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":11306,"st":-94,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-154.438,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":43,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":93,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":113,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":133,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":197,"s":[100,100,100]},{"t":217,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":43,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[13.125,-89.005],[13.125,89.005],[0.125,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[0.125,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":93,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[0,-89.005],[0,89.005],[-13,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-13,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":113,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[0,-89.005],[0,89.005],[-13,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-13,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0},"t":133,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[-2.561,-89.005],[-2.561,89.005],[-15.561,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-15.561,-102.005]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0},"t":197,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[-2.561,-89.005],[-2.561,89.005],[-15.561,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-15.561,-102.005]],"c":true}]},{"t":217,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[13.125,-89.005],[13.125,89.005],[0.125,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[0.125,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":[-81,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":491,"st":-94,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":43,"s":[100]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":93,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":113,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":123,"s":[100]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":207,"s":[100]},{"t":217,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-7.562,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":43,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":93,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":113,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":133,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":197,"s":[100,100,100]},{"t":217,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":43,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":93,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":113,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0},"t":133,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[15.561,102.005],[2.561,89.005],[2.561,-89.005],[15.561,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0},"t":197,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[15.561,102.005],[2.561,89.005],[2.561,-89.005],[15.561,-102.005],[147,-102.005]],"c":true}]},{"t":217,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":[-81,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":491,"st":-94,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".yellow100","cl":"yellow100","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-7.562,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":43,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":93,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":113,"s":[90,90,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":133,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":197,"s":[100,100,100]},{"t":217,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":43,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":93,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":113,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0},"t":133,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[15.561,102.005],[2.561,89.005],[2.561,-89.005],[15.561,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0},"t":197,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[15.561,102.005],[2.561,89.005],[2.561,-89.005],[15.561,-102.005],[147,-102.005]],"c":true}]},{"t":217,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431373,0.937254901961,0.764705882353,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":[-81,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":491,"st":-94,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".grey800","cl":"grey800","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":11306,"st":-94,"bm":0}],"markers":[{"tm":94,"cm":"","dr":0},{"tm":249,"cm":"","dr":0},{"tm":474,"cm":"","dr":0}]}
\ No newline at end of file
diff --git a/quickstep/res/raw/taskbar_edu_stashing.json b/quickstep/res/raw/taskbar_edu_stashing.json
new file mode 100644
index 0000000..5515a23
--- /dev/null
+++ b/quickstep/res/raw/taskbar_edu_stashing.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":212,"w":412,"h":300,"nm":"Taskbar_Transient_EDU_1","ddd":0,"assets":[{"id":"comp_0","nm":"Pre-comp_TaskBar_Transient_Step_1","fr":60,"layers":[{"ddd":0,"ind":3,"ty":4,"nm":".grey300","cl":"grey300","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-83.044,0.454,0],"ix":2,"l":2},"a":{"a":0,"k":[121.456,227.454,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,231.545],"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":"Layer 18","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,227.455],"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":"Layer 17","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,223.364],"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":"Layer 16","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,231.545],"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":"Layer 15","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,227.455],"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":"Layer 14","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,223.364],"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":"Layer 13","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,231.545],"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":"Layer 12","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,227.455],"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":"Layer 11","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,223.364],"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":"Layer 10","np":1,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"green circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":550,"s":[84.522,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":580,"s":[84.522,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"green circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":553,"s":[84.522,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":583,"s":[84.522,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".green100","cl":"green100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"blue circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":544,"s":[55.772,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":574,"s":[55.772,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"blue circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":547,"s":[55.772,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":577,"s":[55.772,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".blue100","cl":"blue100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529422283,0.890196084976,0.988235294819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":208,"s":[0]},{"t":218,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":947,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":957,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":967,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":208,"op":11577,"st":177,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[100]},{"t":208,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":168,"s":[27.135,0.001,0],"to":[0.728,-9.542,0],"ti":[-45.478,19.292,0]},{"t":218,"s":[78,-76.749,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".grey400","cl":"grey400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":944,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":954,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":964,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.756862745098,0.776470588235,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":168,"op":252,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".green400","cl":"green400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":941,"s":[-1.498,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":951,"s":[-1.498,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":961,"s":[-1.498,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".red400","cl":"red400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":938,"s":[-30.134,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":948,"s":[-30.134,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":958,"s":[-30.134,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":935,"s":[-58.771,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":945,"s":[-58.771,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":955,"s":[-58.771,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.5,227.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0.001,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,0],[0,-8.284],[0,0],[8.284,0],[0,0],[0,8.284],[0,0]],"o":[[0,0],[8.284,0],[0,0],[0,8.284],[0,0],[-8.284,0],[0,0],[0,-8.284]],"v":[[-86.5,-15],[86.5,-15],[101.5,0],[101.5,0],[86.5,15],[-86.5,15],[-101.5,0],[-101.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11400,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null_MasterScale","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[120,120,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,44,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ip":15,"op":73,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"swipe up","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"t":70,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":15,"s":[-48.3,37.417,0],"to":[5.5,9,0],"ti":[-12,-36,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":40,"s":[-15.3,91.417,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.45,"y":0},"t":50,"s":[-15.3,91.417,0],"to":[0,0,0],"ti":[0,0,0]},{"t":70,"s":[-15.3,10.917,0],"h":1}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":50,"s":[80,80,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":60,"s":[80,80,100]},{"t":70,"s":[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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":52,"s":[56,56]},{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":62,"s":[56,98]},{"t":72,"s":[56,56]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":52,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":62,"s":[0,-16],"to":[0,0],"ti":[0,0]},{"t":72,"s":[0,0]}],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":15,"op":73,"st":-10,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".grey800","cl":"grey800","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":168,"s":[-0.5,81.5,0],"to":[0,1.667,0],"ti":[0,-1.667,0]},{"t":212,"s":[-0.5,91.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,0],[0,-1.381],[0,0],[1.381,0],[0,0],[0,1.381],[0,0]],"o":[[0,0],[1.381,0],[0,0],[0,1.381],[0,0],[-1.381,0],[0,0],[0,-1.381]],"v":[[-42,-2.5],[42,-2.5],[44.5,0],[44.5,0],[42,2.5],[-42,2.5],[-44.5,0],[-44.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":186,"op":213,"st":89,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"screen_matte","parent":1,"td":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":168,"s":[100]},{"t":212,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":65,"op":186,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Pre-comp_TaskBar_Transient_Step_1","parent":1,"tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":50,"s":[-1.5,94.501,0],"to":[0,-2.5,0],"ti":[0,2.5,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":94,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":168,"s":[-1.5,79.501,0],"to":[0,2.5,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":212,"s":[-1.5,94.501,0],"to":[0,0,0],"ti":[0,1.167,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":356,"s":[-1.5,79.501,0],"to":[0,-1.167,0],"ti":[0,-1.333,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":386,"s":[-1.5,87.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":436,"s":[-1.5,87.501,0],"to":[0,-1.333,0],"ti":[0,1.333,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.3,"y":0.3},"t":466,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":474,"s":[-1.5,79.501,0],"to":[-42.083,-12.917,0],"ti":[42.083,12.917,0]},{"t":554,"s":[-254,2.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[206,227.625,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":50,"s":[70,70,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":94,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":168,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":212,"s":[70,70,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":474,"s":[100,100,100]},{"t":554,"s":[370,370,100]}],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":65,"op":186,"st":65,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".grey800","cl":"grey800","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.9,"y":0},"t":46,"s":[-0.5,91.5,0],"to":[0,-1.667,0],"ti":[0,1.667,0]},{"t":76,"s":[-0.5,81.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,0],[0,-1.381],[0,0],[1.381,0],[0,0],[0,1.381],[0,0]],"o":[[0,0],[1.381,0],[0,0],[0,1.381],[0,0],[-1.381,0],[0,0],[0,-1.381]],"v":[[-42,-2.5],[42,-2.5],[44.5,0],[44.5,0],[42,2.5],[-42,2.5],[-44.5,0],[-44.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":65,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-154.438,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":257,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":307,"s":[95,95,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":369,"s":[95,95,100]},{"t":389,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":257,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[13.125,-89.005],[13.125,89.005],[0.125,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[0.125,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":307,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[0,-89.005],[0,89.005],[-13,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-13,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":369,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[0,-89.005],[0,89.005],[-13,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[-13,-102.005]],"c":true}]},{"t":389,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[13.125,-89.005],[13.125,89.005],[0.125,102.005],[-147,102.005],[-160,89.005],[-160,-89.005],[-147,-102.005],[0.125,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":[-81,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":286,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":257,"s":[100]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":307,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":369,"s":[0]},{"t":379,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-7.562,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":257,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":307,"s":[95,95,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":369,"s":[95,95,100]},{"t":389,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":257,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":307,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":369,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"t":389,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":[-81,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":286,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".yellow100","cl":"yellow100","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[73.438,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-7.562,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":257,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":307,"s":[95,95,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.167],"y":[0,0,0]},"t":369,"s":[95,95,100]},{"t":389,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":257,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":307,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":369,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[13,102.005],[0,89.005],[0,-89.005],[13,-102.005],[147,-102.005]],"c":true}]},{"t":389,"s":[{"i":[[0,-7.18],[0,0],[7.18,0],[0,0],[0,7.18],[0,0],[-7.18,0],[0,0]],"o":[[0,0],[0,7.18],[0,0],[-7.18,0],[0,0],[0,-7.18],[0,0],[7.18,0]],"v":[[160,-89.005],[160,89.005],[147,102.005],[-0.125,102.005],[-13.125,89.005],[-13.125,-89.005],[-0.125,-102.005],[147,-102.005]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431373,0.937254901961,0.764705882353,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":[-81,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":286,"st":0,"bm":0}],"markers":[{"tm":94,"cm":"","dr":0},{"tm":249,"cm":"","dr":0},{"tm":474,"cm":"","dr":0}]}
\ No newline at end of file
diff --git a/quickstep/res/raw/taskbar_edu_suggestions.json b/quickstep/res/raw/taskbar_edu_suggestions.json
new file mode 100644
index 0000000..c8ba29c
--- /dev/null
+++ b/quickstep/res/raw/taskbar_edu_suggestions.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":120,"w":412,"h":300,"nm":"Taskbar_Transient_EDU_4","ddd":0,"assets":[{"id":"comp_0","nm":"Pre-comp_TaskBar_Transient","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[237.75,183,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ip":102,"op":255,"st":90,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"swipe up 2","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[100]},{"t":177,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":100,"s":[-45.3,33.917,0],"to":[5.5,9,0],"ti":[-12,-36,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.333,"y":0.333},"t":127,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[-12.3,87.917,0],"to":[0,0,0],"ti":[-99.967,45.186,0]},{"t":187,"s":[89.5,-76.7,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":127,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.333],"y":[0,0,0]},"t":137,"s":[80,80,100]},{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.333],"y":[0,0,0]},"t":167,"s":[80,80,100]},{"t":179,"s":[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":63.75,"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":8,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":30,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"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":10.2,"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":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":40,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":240,"s":[56,56]},{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":262,"s":[56,98]},{"t":288,"s":[56,56]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[0,14],"to":[0,0],"ti":[0,0]},{"t":189,"s":[0,0]}],"ix":3},"r":{"a":0,"k":67,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":102,"op":234,"st":77,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey300","cl":"grey300","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-83.044,0.454,0],"ix":2,"l":2},"a":{"a":0,"k":[121.456,227.454,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,231.545],"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":"Layer 18","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,227.455],"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":"Layer 17","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[125.547,223.364],"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":"Layer 16","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,231.545],"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":"Layer 15","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,227.455],"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":"Layer 14","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,223.364],"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":"Layer 13","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,231.545],"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":"Layer 12","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,227.455],"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":"Layer 11","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.753,0],[0,-0.753],[0.753,0],[0,0.753]],"o":[[0.753,0],[0,0.753],[-0.753,0],[0,-0.753]],"v":[[0,-1.364],[1.364,0],[0,1.364],[-1.364,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[117.364,223.364],"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":"Layer 10","np":1,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"green circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":550,"s":[84.522,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":580,"s":[84.522,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"green circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".green400","cl":"green400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":553,"s":[84.522,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":583,"s":[84.522,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".green100","cl":"green100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.409,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.917647058824,0.839215686275,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"blue circle matte 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":544,"s":[55.772,0.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":574,"s":[55.772,-19.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"blue circle matte","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.541175991881,0.705881993911,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":547,"s":[55.772,20.001,0],"to":[0,-3.333,0],"ti":[0,3.333,0]},{"t":577,"s":[55.772,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[80,80,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".blue100","cl":"blue100","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.772,0.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.443,0],[0,-4.443],[4.443,0],[0,4.443]],"o":[[4.443,0],[0,4.443],[-4.443,0],[0,-4.443]],"v":[[0,-8.045],[8.045,0],[0,8.045],[-8.045,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529422283,0.890196084976,0.988235294819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":177,"s":[0]},{"t":187,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":947,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":957,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":967,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":177,"op":11577,"st":177,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".yellow400","cl":"yellow400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[100]},{"t":177,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":137,"s":[27.135,0.001,0],"to":[0.728,-9.542,0],"ti":[-45.478,19.292,0]},{"t":187,"s":[78,-76.749,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".grey400","cl":"grey400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":944,"s":[27.135,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":954,"s":[27.135,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":964,"s":[27.135,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.756862745098,0.776470588235,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":137,"op":252,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".green400","cl":"green400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":941,"s":[-1.498,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":951,"s":[-1.498,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":961,"s":[-1.498,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".red400","cl":"red400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":938,"s":[-30.134,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":948,"s":[-30.134,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":958,"s":[-30.134,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":935,"s":[-58.771,0.001,0],"to":[0,-0.625,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":945,"s":[-58.771,-3.749,0],"to":[0,0,0],"ti":[0,-0.625,0]},{"t":955,"s":[-58.771,0.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.272,0],[0,-5.272],[5.272,0],[0,5.272]],"o":[[5.272,0],[0,5.272],[-5.272,0],[0,-5.272]],"v":[[0,-9.545],[9.545,0],[0,9.545],[-9.545,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.5,227.001,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0.001,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,0],[0,-8.284],[0,0],[8.284,0],[0,0],[0,8.284],[0,0]],"o":[[0,0],[8.284,0],[0,0],[0,8.284],[0,0],[-8.284,0],[0,0],[0,-8.284]],"v":[[-86.5,-15],[86.5,-15],[101.5,0],[101.5,0],[86.5,15],[-86.5,15],[-101.5,0],[-101.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":11400,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null_MasterScale","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[120,120,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"screen_matte","parent":1,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[320,204.01],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[-81,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":10878,"st":-522,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Pre-comp_TaskBar_Transient","parent":1,"tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.7,"y":0},"t":-472,"s":[-1.5,94.501,0],"to":[0,-2.5,0],"ti":[0,2.5,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":-428,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.3,"y":0.3},"t":-166,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.3,"y":0.3},"t":-136,"s":[-1.5,79.501,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.8,"y":0},"t":-128,"s":[-1.5,79.501,0],"to":[0,1.333,0],"ti":[42.083,12.917,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.3,"y":0},"t":-86,"s":[-1.5,87.501,0],"to":[-42.083,-12.917,0],"ti":[42.083,14.25,0]},{"t":-48,"s":[-254,2.001,0]}],"ix":2,"l":2},"a":{"a":0,"k":[206,227.625,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":-472,"s":[70,70,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":-428,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":-128,"s":[100,100,100]},{"t":-48,"s":[370,370,100]}],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":10878,"st":-522,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue100","cl":"blue100","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-273,"s":[0]},{"t":-253,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":-166,"s":[320,204.01]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"t":-136,"s":[320,173.01]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":-86,"s":[320,173.01]},{"t":-56,"s":[320,204.01]}],"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.823529411765,0.890196078431,0.988235294118,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":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":-166,"s":[-81,0],"to":[0,-2.542],"ti":[0,2.542]},{"i":{"x":0.1,"y":0.1},"o":{"x":0.167,"y":0.167},"t":-136,"s":[-81,-15.25],"to":[0,0],"ti":[0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":-86,"s":[-81,-15.25],"to":[0,2.542],"ti":[0,-2.542]},{"t":-56,"s":[-81,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":11113,"st":-287,"bm":0}],"markers":[{"tm":94,"cm":"","dr":0},{"tm":249,"cm":"","dr":0},{"tm":474,"cm":"","dr":0}]}
\ No newline at end of file
diff --git a/quickstep/res/values-af/strings.xml b/quickstep/res/values-af/strings.xml
index 1605c24..d1a5d5c 100644
--- a/quickstep/res/values-af/strings.xml
+++ b/quickstep/res/values-af/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taakbalkopvoeding"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taakbalkopvoeding het verskyn"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taakbalkopvoeding is toegemaak"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Sleep na die kant om 2 apps tegelyk te gebruik"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Sleep ’n app na die kant toe om 2 apps tegelyk te gebruik"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Kortswiep op om die taakbalk te wys"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Die taakbalk stel apps op grond van jou roetine voor"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Kry appvoorstelle op grond van jou roetine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Doen meer met die taakbalk"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Volgende"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Terug"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Maak toe"</string>
diff --git a/quickstep/res/values-am/strings.xml b/quickstep/res/values-am/strings.xml
index df9fe66..fad5d9e 100644
--- a/quickstep/res/values-am/strings.xml
+++ b/quickstep/res/values-am/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"የተግባር አሞሌ ትምህርት"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"የተግባር አሞሌ ትምህርት ይታያል"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"የተግባር አሞሌ ትምህርት ተዘግቷል"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"በአንድ ጊዜ 2 መተግበሪያዎችን ለመጠቀም ወደ ጎን ይጎትቱ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"በአንድ ጊዜ 2 መተግበሪያዎችን ለመጠቀም አንድ መተግበሪያን ወደ ጎን ይጎትቱ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"የተግባር አሞሌውን ለማሳየት አጭር ወደ ላይ ያንሸራትቱ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"የተግባር አሞሌው የዕለት ተዕለት ተግባርዎ ላይ በመመስረት መተግበሪያዎችን ይጠቁማል"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"በዕለት ተዕለት ተግባርዎ መሠረት የመተግበሪያ አስተያየቶችን ያግኙ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"በተግባር አሞሌው ተጨማሪ ነገር ያድርጉ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ቀጣይ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ተመለስ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ዝጋ"</string>
diff --git a/quickstep/res/values-ar/strings.xml b/quickstep/res/values-ar/strings.xml
index a6781ef..a98075b 100644
--- a/quickstep/res/values-ar/strings.xml
+++ b/quickstep/res/values-ar/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"التعريف بشريط التطبيقات"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ظهرت لوحة تعليم استخدام شريط المهام."</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"تم إغلاق لوحة تعليم استخدام شريط المهام."</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"اسحبه إلى جانب الشاشة لاستخدام تطبيقَين في آنٍ واحد."</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"اسحب تطبيقًا إلى جانب الشاشة لاستخدام تطبيقََين في آنٍ واحد."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"مرِّر سريعًا للأعلى تمريرة قصيرة لإظهار شريط التطبيقات."</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"يقترح شريط المهام تطبيقات بناءً على روتينك."</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"احصل على اقتراحات التطبيقات بناءً على سلسلة إجراءاتك."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"إنجاز المزيد باستخدام شريط التطبيقات"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"الشاشة التالية"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"رجوع"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"إغلاق"</string>
diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml
index 6e43c19..e327395 100644
--- a/quickstep/res/values-as/strings.xml
+++ b/quickstep/res/values-as/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"টাস্কবাৰৰ শিক্ষা"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"টাস্কবাৰৰ শিক্ষাৰ পেনেলটো প্ৰদর্শিত হৈছে"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"টাস্কবাৰৰ শিক্ষাৰ পেনেলটো বন্ধ হৈছে"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"এবাৰতে দুটা এপ্ ব্যৱহাৰ কৰিবলৈ কাষলৈ টানি আনি এৰক"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"এবাৰতে ২ টা এপ্ ব্যৱহাৰ কৰিবলৈ কোনো এপ্ কাষলৈ টানি আনি এৰক"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"টাস্কবাৰ দেখুৱাবলৈ সামান্য পৰিমাণে ওপৰলৈ ছোৱাইপ কৰক"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"টাস্কবাৰে আপোনাৰ ৰুটিনৰ ভিত্তিত এপৰ পৰামৰ্শ দিয়ে"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"আপোনাৰ ৰুটিনৰ ওপৰত আধাৰিত এপৰ পৰামৰ্শ পাওক"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"টাস্কবাৰৰ জৰিয়তে অধিক কাৰ্য সম্পাদন কৰক"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"পৰৱৰ্তী"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"উভতি যাওক"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"বন্ধ কৰক"</string>
diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml
index e844ec1..c538613 100644
--- a/quickstep/res/values-az/strings.xml
+++ b/quickstep/res/values-az/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Tapşırıq panelində təhsil"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Tapşırıq panelindəki təlim bölməsi görünür"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Tapşırıq panelindəki təlim bölməsi bağlanıb"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Eyni anda 2 tətbiqi istifadə etmək üçün yan tərəfə çəkin"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Eyni anda 2 tətbiqi istifadə etmək üçün bir tətbiqi yan tərəfə çəkin"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Tapşırıq panelini göstərmək üçün azca yuxarı sürüşdürün"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Tapşırıq paneli rejiminizə əsasən tətbiqlər təklif edir"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Rejiminizə əsasən tətbiq təklifləri alın"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Tapşırıq paneli ilə daha çox şey edin"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Sonra"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Geri"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Bağlayın"</string>
diff --git a/quickstep/res/values-b+sr+Latn/strings.xml b/quickstep/res/values-b+sr+Latn/strings.xml
index 2699c3e..1bd9d10 100644
--- a/quickstep/res/values-b+sr+Latn/strings.xml
+++ b/quickstep/res/values-b+sr+Latn/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Uputstva na traci zadataka"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Edukativno okno iz trake zadataka se pojavilo"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Edukativno okno iz trake zadataka je zatvoreno"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Prevucite na stranu da biste koristili 2 aplikacije odjednom"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Prevucite na stranu da biste koristili 2 aplikacije odjednom"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Nakratko prevucite nagore da biste prikazali traku zadataka"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Traka zadataka predlaže aplikacije na osnovu rutine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Dobijajte predloge aplikacija na osnovu rutine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Uradite više pomoću trake zadataka"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Dalje"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Nazad"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string>
diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml
index 0f38c75..0ff4aee 100644
--- a/quickstep/res/values-be/strings.xml
+++ b/quickstep/res/values-be/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Інфармацыя пра панэль задач"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"З\'явілася панэль навучання на панэлі задач"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Панэль навучання на панэлі задач закрыта"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Перацягніце ўбок, каб адначасова скарыстаць 2 праграмы"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Каб карыстацца 2 праграмамі, перацягніце адну з іх убок"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Хутка правядзіце пальцам уверх, каб убачыць панэль задач"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"На панэлі задач праграмы паказваюцца з улікам вашых дзеянняў"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Атрымлівайце прапановы праграм з улікам вашых дзеянняў"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Выкарыстоўвайце магчымасці панэлі задач"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Далей"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Закрыць"</string>
diff --git a/quickstep/res/values-bg/strings.xml b/quickstep/res/values-bg/strings.xml
index a284394..3e98fc8 100644
--- a/quickstep/res/values-bg/strings.xml
+++ b/quickstep/res/values-bg/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Урок за лентата на задачите"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Показва се урокът за лентата на задачите"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Урокът за лентата на задачите бе затворен"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Плъзнете встрани, за да използвате едновременно 2 приложения"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Плъзнете приложение встрани, за да използвате едновременно 2"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Прекарайте пръст нагоре, за да видите лентата на задачите"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Лентата на задачите предлага приложения според навиците ви"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Получавайте предложения за приложения според навиците си"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Правете повече неща с лентата на задачите"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Напред"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Затваряне"</string>
diff --git a/quickstep/res/values-bn/strings.xml b/quickstep/res/values-bn/strings.xml
index e769131..0bd38d1 100644
--- a/quickstep/res/values-bn/strings.xml
+++ b/quickstep/res/values-bn/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"টাস্কবার এডুকেশন"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"টাস্কবার এডুকেশন দেখানো হয়েছে"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"টাস্কবার এডুকেশন বন্ধ করা আছে"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"একসাথে ২টি অ্যাপ ব্যবহার করতে পাশে টেনে আনুন"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"একসাথে ২টি অ্যাপ ব্যবহার করতে একটি অ্যাপ পাশে টেনে আনুন"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"টাস্কবার দেখানোর জন্য শর্ট সোয়াইপ করুন"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"আপনার রুটিনের উপর নির্ভর করে টাস্কবার অ্যাপ সাজেস্ট করে"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"আপনার রুটিন অনুযায়ী অ্যাপ থেকে সাজেশন পান"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"\'টাস্কবার\' ফিচারের সাহায্যে আরও অনেক কিছু করুন"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"পরবর্তী"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ফিরুন"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"বন্ধ করুন"</string>
diff --git a/quickstep/res/values-bs/strings.xml b/quickstep/res/values-bs/strings.xml
index f0118a7..c51d74d 100644
--- a/quickstep/res/values-bs/strings.xml
+++ b/quickstep/res/values-bs/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Edukacija o traci zadataka"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Edukacija o programskoj traci je prikazana"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Edukacija o programskoj traci je zatvorena"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Prevucite u stranu da istovremeno koristite 2 aplikacije"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Prevucite aplikaciju ustranu da odjednom koristite 2 aplikacije"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Nakratko prevucite nagore da prikažete traku zadataka"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Traka zadataka predlaže aplikacije na osnovu vaše rutine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Dobijajte prijedloge aplikacija zasnovane na vašoj rutini"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Ostvarite više pomoću trake zadataka"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Naprijed"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Nazad"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string>
diff --git a/quickstep/res/values-ca/strings.xml b/quickstep/res/values-ca/strings.xml
index d1219ad..352e9cb 100644
--- a/quickstep/res/values-ca/strings.xml
+++ b/quickstep/res/values-ca/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informació sobre Barra de tasques"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Ha aparegut el tauler educatiu de la barra de tasques"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"S\'ha tancat el tauler educatiu de la barra de tasques"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Arrossega al costat per utilitzar 2 aplicacions alhora"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arrossega una app al costat per utilitzar 2 apps alhora"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Llisca una mica cap amunt per mostrar la barra de tasques"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"La barra de tasques suggereix apps basades en la teva rutina"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtén suggeriments d\'aplicacions basats en la teva rutina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Fes més coses amb la barra de tasques"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Següent"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Enrere"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Tanca"</string>
diff --git a/quickstep/res/values-cs/strings.xml b/quickstep/res/values-cs/strings.xml
index 868393d..392aae8 100644
--- a/quickstep/res/values-cs/strings.xml
+++ b/quickstep/res/values-cs/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informace o panelu aplikací"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Zobrazila se výuka k hlavnímu panelu"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Výuka k hlavnímu panelu byla zavřena"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Po přetažení na stranu lze používat dvě aplikace současně"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Pokud chcete používat 2 aplikace najednou, přetáhněte aplikaci na stranu"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Krátkým přejetím nahoru zobrazíte panel aplikací"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Panel aplikací navrhuje aplikace na základě vašeho používání"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Získejte návrhy aplikací na základě vašeho používání"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Pomocí panelu aplikací můžete dělat více věcí"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Další"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Zpět"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zavřít"</string>
diff --git a/quickstep/res/values-da/strings.xml b/quickstep/res/values-da/strings.xml
index ae2a00a..34b950b 100644
--- a/quickstep/res/values-da/strings.xml
+++ b/quickstep/res/values-da/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Oplysninger om proceslinjen"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Vejledningen om proceslinjen blev åbnet"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Vejledningen om proceslinjen blev lukket"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Træk til siden for at bruge 2 apps samtidig"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Træk en app til siden for at bruge 2 apps på én gang"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Stryg hurtigt opad for at se proceslinjen"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Proceslinjen foreslår apps baseret på din rutine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Få appforslag baseret på din rutine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Få mere fra hånden med proceslinjen"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Næste"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Tilbage"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Luk"</string>
diff --git a/quickstep/res/values-de/strings.xml b/quickstep/res/values-de/strings.xml
index c7664be..389486a 100644
--- a/quickstep/res/values-de/strings.xml
+++ b/quickstep/res/values-de/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informationen zur Taskleiste"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Anleitung für Taskleiste eingeblendet"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Anleitung für Taskleiste geschlossen"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Zur Seite ziehen, um zwei Apps gleichzeitig zu verwenden"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"App zur Seite ziehen, um zwei Apps gleichzeitig zu nutzen"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Kurz nach oben wischen, um die Taskleiste anzuzeigen"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Taskleiste empfiehlt Apps basierend auf deinen Gewohnheiten"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"App-Vorschläge auf Grundlage deiner Nutzung erhalten"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Mehr Möglichkeiten mit der Taskleiste"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Weiter"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Zurück"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Schließen"</string>
diff --git a/quickstep/res/values-el/strings.xml b/quickstep/res/values-el/strings.xml
index 807ce43..b21ef88 100644
--- a/quickstep/res/values-el/strings.xml
+++ b/quickstep/res/values-el/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Πληροφορίες χρήσης της Γραμμής εργαλείων"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Η εκπαίδευση για τη γραμμή εργασιών εμφανίστηκε"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Η εκπαίδευση για τη γραμμή εργασιών έκλεισε"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Σύρετε στο πλάι για ταυτόχρονη χρήση δύο εφαρμογών"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Σύρετε μια εφαρμ. στην άκρη για χρήση δύο εφαρμ. ταυτόχρονα"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Σύρετε σύντομα προς τα πάνω για εμφάνιση γραμμής εργαλείων"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Η γραμμή εργαλείων συνιστά εφαρμογές βάσει της ρουτίνας σας"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Λάβετε προτεινόμενες εφαρμογές με βάση τη ρουτίνα σας"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Κάντε περισσότερα με τη γραμμή εργαλείων"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Επόμενο"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Πίσω"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Κλείσιμο"</string>
diff --git a/quickstep/res/values-en-rAU/strings.xml b/quickstep/res/values-en-rAU/strings.xml
index 414593a..2daea5a 100644
--- a/quickstep/res/values-en-rAU/strings.xml
+++ b/quickstep/res/values-en-rAU/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taskbar education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taskbar education appeared"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taskbar education closed"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Drag to the side to use two apps at once"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Drag an app to the side to use two apps at once"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Short swipe up to show the taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"The taskbar suggests apps based on your routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Get app suggestions based on your routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Do more with the taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Next"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Back"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string>
diff --git a/quickstep/res/values-en-rCA/strings.xml b/quickstep/res/values-en-rCA/strings.xml
index 41fb803..14fc636 100644
--- a/quickstep/res/values-en-rCA/strings.xml
+++ b/quickstep/res/values-en-rCA/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taskbar education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taskbar education appeared"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taskbar education closed"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Drag to the side to use 2 apps at once"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Drag an app to the side to use 2 apps at once"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Short swipe up to show the taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"The taskbar suggests apps based on your routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Get app suggestions based on your routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Do more with the taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Next"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Back"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string>
diff --git a/quickstep/res/values-en-rGB/strings.xml b/quickstep/res/values-en-rGB/strings.xml
index 414593a..2daea5a 100644
--- a/quickstep/res/values-en-rGB/strings.xml
+++ b/quickstep/res/values-en-rGB/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taskbar education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taskbar education appeared"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taskbar education closed"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Drag to the side to use two apps at once"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Drag an app to the side to use two apps at once"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Short swipe up to show the taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"The taskbar suggests apps based on your routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Get app suggestions based on your routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Do more with the taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Next"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Back"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string>
diff --git a/quickstep/res/values-en-rIN/strings.xml b/quickstep/res/values-en-rIN/strings.xml
index 414593a..2daea5a 100644
--- a/quickstep/res/values-en-rIN/strings.xml
+++ b/quickstep/res/values-en-rIN/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taskbar education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taskbar education appeared"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taskbar education closed"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Drag to the side to use two apps at once"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Drag an app to the side to use two apps at once"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Short swipe up to show the taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"The taskbar suggests apps based on your routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Get app suggestions based on your routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Do more with the taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Next"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Back"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string>
diff --git a/quickstep/res/values-en-rXC/strings.xml b/quickstep/res/values-en-rXC/strings.xml
index 45ce0c1..4c92a72 100644
--- a/quickstep/res/values-en-rXC/strings.xml
+++ b/quickstep/res/values-en-rXC/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taskbar education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taskbar education appeared"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taskbar education closed"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Drag to the side to use 2 apps at once"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Drag an app to the side to use 2 apps at once"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Short swipe up to show the taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"The taskbar suggests apps based on your routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Get app suggestions based on your routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Do more with the taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Next"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Back"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string>
diff --git a/quickstep/res/values-es-rUS/strings.xml b/quickstep/res/values-es-rUS/strings.xml
index cb7f519..0f4143b 100644
--- a/quickstep/res/values-es-rUS/strings.xml
+++ b/quickstep/res/values-es-rUS/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Información sobre la barra de tareas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Se abrió la barra de herramientas Educación"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Se cerró la barra de herramientas Educación"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Arrastra a un lado para usar 2 apps a la vez"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arrastra una app a un lado para usar 2 apps a la vez"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Desliza un poco hacia arriba para mostrar la barra de tareas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"La barra de tareas sugiere apps según tu rutina"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Recibe sugerencias de aplicaciones basadas en tu rutina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Haz más con la barra de tareas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Siguiente"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atrás"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Cerrar"</string>
diff --git a/quickstep/res/values-es/strings.xml b/quickstep/res/values-es/strings.xml
index 09cd305..b1807f8 100644
--- a/quickstep/res/values-es/strings.xml
+++ b/quickstep/res/values-es/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Información sobre la barra de tareas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Ha aparecido una nota sobre la barra de tareas"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Nota sobre la barra de tareas cerrada"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Arrastra hacia un lado para usar 2 aplicaciones a la vez"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arrastra una aplicación hacia un lado para usar 2 a la vez"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Desliza un poco hacia arriba para ver la barra de tareas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"La barra de tareas sugiere aplicaciones según tus hábitos"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtén sugerencias de aplicaciones basadas en tu rutina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Sácale más partido a la barra de tareas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Siguiente"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atrás"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Cerrar"</string>
diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml
index 4160316..263aa44 100644
--- a/quickstep/res/values-et/strings.xml
+++ b/quickstep/res/values-et/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Tegumiriba tutvustus"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Tegumiriba juhised kuvati"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Tegumiriba juhised on suletud"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Kahe rakenduse korraga kasutamiseks lohistage külje poole"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"2 rakenduse korraga kasutamiseks lohistage rakendus kõrvale"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Tegumiriba kuvamiseks pühkige korraks"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Tegumiribal soovitatakse rakendusi teie rutiinide põhjal"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Hankige oma rutiini põhjal rakenduste soovitusi"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Tehke tegumiriba abil enamat"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Järgmine"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Tagasi"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Sule"</string>
diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml
index b302888..990ece2 100644
--- a/quickstep/res/values-eu/strings.xml
+++ b/quickstep/res/values-eu/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Zereginen barra erabiltzeko argibideak"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Agertu egin da zereginen barraren tutoriala"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Itxi egin da zereginen barraren tutoriala"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Bi aplikazio batera erabiltzeko, arrastatu hatza albo batera"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Bi aplikazio batera erabiltzeko, arrastatu bat albo batera"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Ataza-barra ikusteko, pasatu hatza bizkor gora"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Ataza-barran erabileran oinarritutako aplikazioak iradokitzen dira"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Jaso erabileran oinarritutako aplikazioen iradokizunak"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Egin gauza gehiago zereginen barrarekin"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Hurrengoa"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atzera"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Itxi"</string>
diff --git a/quickstep/res/values-fa/strings.xml b/quickstep/res/values-fa/strings.xml
index c922f80..0b9e557 100644
--- a/quickstep/res/values-fa/strings.xml
+++ b/quickstep/res/values-fa/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"آموزش نوار وظیفه"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"پانل آموزشی نوار وظیفه نمایان شد"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"پانل آموزشی نوار وظیفه بسته شد"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"برای استفاده همزمان از دو برنامه، آن را به کنار بکشید"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"برای استفاده همزمان از ۲ برنامه، برنامهای را بهکنار بکشید"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"برای نمایش نوار وظیفه، کمی به بالا بکشید"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"نوار وظیفه برنامهها را براساس روال شما پیشنهاد میدهد"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"دریافت «پیشنهادهای برنامه» براساس روال همیشگی"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"انجام کارهای بیشتر با نوار وظیفه"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"بعدی"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"برگشت"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"بستن"</string>
diff --git a/quickstep/res/values-fi/strings.xml b/quickstep/res/values-fi/strings.xml
index a07fdea..0ae7fd2 100644
--- a/quickstep/res/values-fi/strings.xml
+++ b/quickstep/res/values-fi/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Tehtäväpalkin ohje"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Tehtäväpalkin ohje näkyvissä"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Tehtäväpalkin ohje suljettu"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Vetämällä sivuun voit käyttää kahta sovellusta samaan aikaan"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Vedä sovellus sivuun, niin voit käyttää samalla 2 sellaista"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Näytä tehtäväpalkki pyyhkäisemällä ylös lyhyesti"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Tehtäväpalkki ehdottaa sovelluksia ohjelmasi perusteella"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Sovellussuosituksia käytön perusteella"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Vinkkejä tehtäväpalkin tehokkaampaan käyttöön"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Seuraava"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Takaisin"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Sulje"</string>
diff --git a/quickstep/res/values-fr-rCA/strings.xml b/quickstep/res/values-fr-rCA/strings.xml
index cf0fef5..1048ac6 100644
--- a/quickstep/res/values-fr-rCA/strings.xml
+++ b/quickstep/res/values-fr-rCA/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informations sur la barre des tâches"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"La barre des tâches éducatives s\'est affichée"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"La barre des tâches éducatives est fermée"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Faites glisser vers le côté pour utiliser 2 applis à la fois"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Pour utiliser deux applis, faites-les glisser vers le côté"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Faites glisser vers le haut pour afficher la barre de tâches"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"La barre des tâches suggère des applis selon votre routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtenez des suggestions d\'applis en fonction de vos routines"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Faites-en plus avec la barre des tâches"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Suivant"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Retour"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Fermer"</string>
diff --git a/quickstep/res/values-fr/strings.xml b/quickstep/res/values-fr/strings.xml
index a20fbc4..63d4cf8 100644
--- a/quickstep/res/values-fr/strings.xml
+++ b/quickstep/res/values-fr/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Fonctionnement de la barre des tâches"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Infos sur la barre des tâches affichées"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Infos sur la barre des tâches fermées"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Faites glisser sur le côté pour utiliser 2 applis à la fois"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Faites glisser une appli sur le côté pour utiliser 2 applis"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Balayez rapidement vers haut pour afficher barre des tâches"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"La barre des tâches suggère des applis selon vos habitudes"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtenez des suggestions d\'applis basées sur vos habitudes"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Exploitez les possibilités de la barre des tâches"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Suivant"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Retour"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Fermer"</string>
diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml
index 528dd0a..e78502b 100644
--- a/quickstep/res/values-gl/strings.xml
+++ b/quickstep/res/values-gl/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Información sobre a función Barra de tarefas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Panel de información de barra de tarefas aberto"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Panel de información de barra de tarefas pechado"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Para usar 2 aplicacións á vez, arrastra cara ao lado"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arrastra unha aplicación cara a un lado para usar dúas á vez"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Pasa o dedo un pouco cara arriba para ver a barra de tarefas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Na barra de tarefas suxírense apps segundo a túa rutina"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtén suxestións de aplicacións en función da túa rutina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Tira máis proveito da barra de tarefas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Seguinte"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atrás"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Pechar"</string>
diff --git a/quickstep/res/values-gu/strings.xml b/quickstep/res/values-gu/strings.xml
index 0ae9b03..f5cdbd0 100644
--- a/quickstep/res/values-gu/strings.xml
+++ b/quickstep/res/values-gu/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ટાસ્કબાર વિશે શિક્ષણ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ટાસ્કબારનું શિક્ષણ આપતી પૅનલ દેખાય છે"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ટાસ્કબારનું શિક્ષણ આપતી પૅનલ બંધ થઈ છે"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"એક જ સમયે 2 ઍપનો ઉપયોગ કરવા માટે, ખેંચીને બાજુ પર લઈ જાઓ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"એક સાથે 2 ઍપનો ઉપયોગ કરવા માટે, ઍપને ખેંચીને બાજુ પર લઈ જાઓ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ટાસ્કબાર બતાવવા માટે ઉપર થોડું સ્વાઇપ કરો"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ટાસ્કબાર તમારા રૂટિનના આધારે ઍપ સૂચવે છે"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"તમારા રૂટિનના આધારે ઍપના સુઝાવો મેળવો"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ટાસ્કબાર વડે બીજું ઘણું કરો"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"આગળ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"પાછળ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"બંધ કરો"</string>
diff --git a/quickstep/res/values-hi/strings.xml b/quickstep/res/values-hi/strings.xml
index c9f3930..937dcc6 100644
--- a/quickstep/res/values-hi/strings.xml
+++ b/quickstep/res/values-hi/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"टास्कबार का ट्यूटोरियल"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"टास्कबार ट्यूटोरियल दिखाया गया"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"टास्कबार ट्यूटोरियल बंद किया गया"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"एक साथ दो ऐप इस्तेमाल करने के लिए, उन्हें किनारे की ओर खींचें और छोड़ें"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"किसी ऐप को किनारे की ओर ड्रैग करके, दो ऐप एक साथ यूज़ करें"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"टास्कबार दिखाने के लिए, ऊपर की ओर थोड़ा स्वाइप करें"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"टास्कबार, डिवाइस के इस्तेमाल के आधार पर ऐप के सुझाव देता है"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"डिवाइस के इस्तेमाल के आधार पर ऐप्लिकेशन के सुझाव पाएं"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"टास्कबार की मदद से अन्य काम करें"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"आगे बढ़ें"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"वापस जाएं"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"बंद करें"</string>
diff --git a/quickstep/res/values-hr/strings.xml b/quickstep/res/values-hr/strings.xml
index dd7de8c..e9c6bab 100644
--- a/quickstep/res/values-hr/strings.xml
+++ b/quickstep/res/values-hr/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Upute za traku sa zadacima"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Upute za programsku traku su se pojavile"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Upute za programsku traku su zatvorene"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Povucite u stranu za istovremeno korištenje 2 aplikacije"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Povucite apl. u stranu radi istodobne upotrebe 2 aplikacije"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Kratki pokret prema gore za prikaz trake sa zadacima"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Traka sa zadacima predlaže aplikacije na temelju vaše rutine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Primajte prijedloge aplikacija na temelju svoje rutine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Učinite više uz pomoć trake sa zadacima"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Dalje"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Natrag"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string>
diff --git a/quickstep/res/values-hu/strings.xml b/quickstep/res/values-hu/strings.xml
index 4d01f69..33b781d 100644
--- a/quickstep/res/values-hu/strings.xml
+++ b/quickstep/res/values-hu/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Tálca használatának ismertetése"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Az eszköztár használatát ismertető panel megjelent"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Az eszköztár használatát ismertető panel bezárult"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Húzza oldalra, ha egyszerre két appot szeretne használni"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Húzzon egy appot oldalra, ha kettőt használna egyidejűleg"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Röviden csúsztasson fel a Feladatsáv megjelenítéséhez"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"A Feladatsávban a szokásai alapján javasolt appok láthatók"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Alkalmazásjavaslatokat kaphat a rutinja alapján"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Jobban kihasználhatja a feladatsávot"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Tovább"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Vissza"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Bezárás"</string>
diff --git a/quickstep/res/values-hy/strings.xml b/quickstep/res/values-hy/strings.xml
index 28f13a9..f6d0c3e 100644
--- a/quickstep/res/values-hy/strings.xml
+++ b/quickstep/res/values-hy/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Խնդրագոտու «Կրթություն» պատուհան"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Խնդրագոտու «Կրթություն» վահանակը բացվեց"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Խնդրագոտու «Կրթություն» վահանակը փակվեց"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Քաշեք մի կողմ՝ միաժամանակ 2 հավելված օգտագործելու համար"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Միաժամանակ օգտագործեք երկու հավելված՝ մեկը մի կողմ քաշելով"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Հավելվածների վահանակը բացելու համար մատն արագ սահեցրեք վերև"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Վահանակն առաջարկում է հավելվածներ ձեր գործողությունների հիման վրա"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Ստացեք առաջարկներ ձեր գործողությունների հիման վրա"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Օգտվեք հավելվածների վահանակի բոլոր հնարավորություններից"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Առաջ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Հետ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Փակել"</string>
diff --git a/quickstep/res/values-in/strings.xml b/quickstep/res/values-in/strings.xml
index 6d42c3d..689ade4 100644
--- a/quickstep/res/values-in/strings.xml
+++ b/quickstep/res/values-in/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Pengantar Taskbar"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Edukasi taskbar ditampilkan"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Edukasi taskbar ditutup"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Tarik ke samping untuk menggunakan 2 aplikasi sekaligus"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Tarik aplikasi ke samping untuk menggunakan 2 aplikasi sekaligus"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Geser sedikit ke atas untuk menampilkan taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Taskbar menyarankan aplikasi berdasarkan rutinitas Anda"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Dapatkan saran aplikasi berdasarkan rutinitas Anda"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Lakukan banyak hal dengan taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Berikutnya"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Kembali"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Tutup"</string>
diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml
index 1b4ea2b..0a9fa11 100644
--- a/quickstep/res/values-is/strings.xml
+++ b/quickstep/res/values-is/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Leiðsögn verkefnastiku"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Leiðsögn verkefnastiku sýnileg"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Leiðsögn verkefnastiku lokað"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Dragðu til hliðar til að nota 2 forrit í einu"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Dragðu forrit til hliðar til að nota 2 forrit í einu"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Stutt stroka upp til að sýna forritastiku"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Forritastikan mælir með forritum byggt á rútínunni þinni"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Fáðu forritatillögur sem byggjast á rútínunni þinni"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Nýttu forritastikuna betur"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Áfram"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Til baka"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Loka"</string>
diff --git a/quickstep/res/values-it/strings.xml b/quickstep/res/values-it/strings.xml
index 9a5cc98..0ab984f 100644
--- a/quickstep/res/values-it/strings.xml
+++ b/quickstep/res/values-it/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informazioni sulla barra delle applicazioni"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Riquadro Formazione barra delle applicazioni visualizzato"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Riquadro Formazione barra delle applicazioni chiuso"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Trascina di lato per usare 2 app contemporaneamente"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Trascina un\'app di lato per usare due app contemporaneamente"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Scorri verso l\'alto per mostrare la barra delle applicazioni"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Barra delle applicazioni suggerisce app in base alla routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Ottieni app suggerite in base alla tua routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Fai di più con la barra delle app"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Avanti"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Indietro"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Chiudi"</string>
diff --git a/quickstep/res/values-iw/strings.xml b/quickstep/res/values-iw/strings.xml
index 8722476..863707c 100644
--- a/quickstep/res/values-iw/strings.xml
+++ b/quickstep/res/values-iw/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"הסבר על סרגל האפליקציות"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"חלונית ההסברים על שורת המשימות מופיעה"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"חלונית ההסברים על שורת המשימות נסגרה"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"כדי להשתמש בשתי אפליקציות בו-זמנית, צריך לגרור לצד"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"כדי להשתמש בשתי אפליקציות בו-זמנית, צריך לגרור אפליקציה לצד"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"צריך להחליק מעט כדי להציג את סרגל האפליקציות"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"האפליקציות מוצעות בסרגל האפליקציות על סמך השימוש השגרתי שלך"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"קבלת הצעות לאפליקציות על סמך השימוש השגרתי שלך"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"פעולות נוספות שאפשר לעשות עם סרגל האפליקציות"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"הבא"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"חזרה"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"סגירה"</string>
diff --git a/quickstep/res/values-ja/strings.xml b/quickstep/res/values-ja/strings.xml
index 7bdb5ec..ea3d69b 100644
--- a/quickstep/res/values-ja/strings.xml
+++ b/quickstep/res/values-ja/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"タスクバーの説明"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"タスクバーの説明を開きました"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"タスクバーの説明を閉じました"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"2 個のアプリを同時に使用するには、横にドラッグします"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"アプリを横にドラッグして 2 個のアプリを同時に使用できます"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"タスクバーを表示するには、上に短くスワイプします"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ルーティンに基づくおすすめのアプリがタスクバーに表示されます"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"毎日の使用状況に基づいてアプリの候補が表示されます"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"タスクバーの各種機能"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"次へ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"戻る"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"閉じる"</string>
diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml
index 7259f04..b1b27df 100644
--- a/quickstep/res/values-ka/strings.xml
+++ b/quickstep/res/values-ka/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ამოცანათა ზოლი: განათლება"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ამოცანების ზოლის სასწავლო არე გამოჩნდა"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ამოცანების ზოლის სასწავლო არე დაიხურა"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"გადაათრიეთ კიდეზე 2 აპის ერთდროულად გამოსაყენებლად"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"2 აპის ერთდროულად გამოსაყენებლად გადაათრიეთ აპი კიდეზე"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"მოკლედ გადაფურცლეთ ზემოთ, რომ ამოცანათა ზოლი გამოაჩინოთ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ამოცანათა ზოლი გთავაზობთ აპებს თქვენი რუტინის მიხედვით"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"მიიღეთ აპის შეთავაზებები თქვენი რუტინის მიხედვით"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"გააკეთეთ მეტი ამოცანათა ზოლის მეშვეობით"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"შემდეგი"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"უკან"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"დახურვა"</string>
diff --git a/quickstep/res/values-kk/strings.xml b/quickstep/res/values-kk/strings.xml
index d0f6a9a..a5a367f 100644
--- a/quickstep/res/values-kk/strings.xml
+++ b/quickstep/res/values-kk/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Тапсырмалар жолағы: үйрену"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Тапсырмалар тақтасы бойынша нұсқаулық ашылды."</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Тапсырмалар тақтасы бойынша нұсқаулық жабылды."</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Екі қолданбаны бір уақытта пайдалану үшін шетке сүйреңіз."</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"2 қолданбаны бір мезгілде пайдалану үшін қолданбаны шетке сүйреңіз."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Тапсырмалар жолағын көру үшін жоғары қарай тез сырғытыңыз."</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Тапсырмалар жолағындағы ұсыныстар әдеттеріңізге негізделеді."</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Іс-әрекеттеріңізге негізделген қолданба ұсыныстарын алыңыз."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Тапсырмалар жолағы арқылы көп әрекетті орындаңыз"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Келесі"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Артқа"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Жабу"</string>
diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml
index f9a7209..6ee5bd7 100644
--- a/quickstep/res/values-km/strings.xml
+++ b/quickstep/res/values-km/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ការអប់រំលើរបារកិច្ចការ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ការបង្រៀនអំពីរបារកិច្ចការបានបង្ហាញ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ការបង្រៀនអំពីរបារកិច្ចការត្រូវបានបិទ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"អូសទៅចំហៀង ដើម្បីប្រើកម្មវិធី 2 ក្នុងពេលតែមួយ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"អូសកម្មវិធីទៅចំហៀង ដើម្បីប្រើកម្មវិធី 2 ក្នុងពេលតែមួយ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"អូសឡើងលើបន្តិច ដើម្បីបង្ហាញរបារកិច្ចការ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"របារកិច្ចការនេះណែនាំកម្មវិធីផ្អែកលើទម្លាប់របស់អ្នក"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ទទួលការណែនាំកម្មវិធីដោយផ្អែកលើទម្លាប់របស់អ្នក"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ធ្វើបានកាន់តែច្រើនដោយប្រើរបារកិច្ចការ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"បន្ទាប់"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ថយក្រោយ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"បិទ"</string>
diff --git a/quickstep/res/values-kn/strings.xml b/quickstep/res/values-kn/strings.xml
index b7c774a..0d7cc2e 100644
--- a/quickstep/res/values-kn/strings.xml
+++ b/quickstep/res/values-kn/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ಟಾಸ್ಕ್ಬಾರ್ ಶಿಕ್ಷಣ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ಟಾಸ್ಕ್ಬಾರ್ ಶಿಕ್ಷಣ ಕಾಣಿಸಿಕೊಂಡಿದೆ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ಟಾಸ್ಕ್ಬಾರ್ ಶಿಕ್ಷಣ ಮುಚ್ಚಿದೆ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ಏಕಕಾಲದಲ್ಲಿ 2 ಆ್ಯಪ್ಗಳನ್ನು ಬಳಸಲು ಬದಿಗೆ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ಒಂದೇ ಬಾರಿಗೆ 2 ಆ್ಯಪ್ಗಳನ್ನು ಬಳಸಲು ಆ್ಯಪ್ ಅನ್ನು ಬದಿಗೆ ಎಳೆಯಿರಿ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ಟಾಸ್ಕ್ಬಾರ್ ಅನ್ನು ತೋರಿಸಲು ಚಿಕ್ಕದಾಗಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ಟಾಸ್ಕ್ಬಾರ್ ನಿಮ್ಮ ದಿನಚರಿ ಆಧರಿಸಿ ಆ್ಯಪ್ಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ನಿಮ್ಮ ದಿನಚರಿಯ ಆಧಾರದ ಮೇಲೆ ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಿರಿ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ಟಾಸ್ಕ್ಬಾರ್ ಮೂಲಕ ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಿ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ಮುಂದೆ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ಹಿಂದೆ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ಮುಚ್ಚಿರಿ"</string>
diff --git a/quickstep/res/values-ko/strings.xml b/quickstep/res/values-ko/strings.xml
index 99309d2..2557e04 100644
--- a/quickstep/res/values-ko/strings.xml
+++ b/quickstep/res/values-ko/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"태스크 바 정보"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"작업 표시줄 튜토리얼 패널 표시됨"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"작업 표시줄 튜토리얼 패널 닫힘"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"옆으로 드래그하여 2개의 앱을 동시에 사용합니다."</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"앱을 옆으로 드래그하여 앱 2개를 동시에 사용합니다."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"위로 짧게 스와이프하여 태스크 바를 표시합니다."</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"태스크 바에서 루틴에 따라 앱을 제안합니다."</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"루틴에 따라 앱 제안을 받습니다."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"태스크 바로 더 많은 작업 하기"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"다음"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"뒤로"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"닫기"</string>
diff --git a/quickstep/res/values-ky/strings.xml b/quickstep/res/values-ky/strings.xml
index bb22c2f..f6177f9 100644
--- a/quickstep/res/values-ky/strings.xml
+++ b/quickstep/res/values-ky/strings.xml
@@ -22,7 +22,7 @@
<string name="recent_task_option_pin" msgid="7929860679018978258">"Кадап коюу"</string>
<string name="recent_task_option_freeform" msgid="48863056265284071">"Эркин форма режими"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Акыркы колдонмолор жок"</string>
- <string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Колдонмону пайдалануу жөндөөлөрү"</string>
+ <string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Колдонмону пайдалануу параметрлери"</string>
<string name="recents_clear_all" msgid="5328176793634888831">"Баарын тазалоо"</string>
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Акыркы колдонмолор"</string>
<string name="task_view_closed" msgid="9170038230110856166">"Тапшырма жабылды"</string>
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Тапшырмалар панели жөнүндө маалымат"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Тапшырмалар тактасынын окутуу панели көрсөтүлдү"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Тапшырмалар тактасынын окутуу панели жабылды"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"2 колдонмону бир убакта пайдалануу үчүн капталга сүйрөңүз"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"2 колдонмону бир убакта пайдалануу үчүн капталга сүйрөңүз"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Тапшырмалар тактасын көрүү үчүн экранды өйдө серпиңиз"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Тапшырмалар тактасы колдонмолорду аракеттериңизге жараша сунуштайт"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Программаңыздын негизинде сунушталган колдонмолорду алуу"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Тапшырмалар панели менен көбүрөөк нерселерди аткарыңыз"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Кийинки"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Артка"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Жабуу"</string>
diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml
index 4be7c8c..7115617 100644
--- a/quickstep/res/values-lo/strings.xml
+++ b/quickstep/res/values-lo/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ແຖບໜ້າວຽກ Education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ສະແດງການສຶກສາແຖບໜ້າວຽກແລ້ວ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ປິດການສຶກສາແຖບໜ້າວຽກແລ້ວ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ລາກໄປທາງຂ້າງເພື່ອໃຊ້ 2 ແອັບພ້ອມກັນ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ລາກແອັບໄປດ້ານຂ້າງເພື່ອໃຊ້ 2 ແອັບໃນເວລາດຽວກັນ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ປັດຂຶ້ນສັ້ນໆເພື່ອສະແດງແຖບໜ້າວຽກ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ແຖບໜ້າວຽກຈະແນະນຳແອັບໂດຍອີງຕາມສິ່ງທີ່ເຮັດປະຈຳຂອງທ່ານ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ຮັບການແນະນຳແອັບໂດຍອີງໃສ່ສິ່ງທີ່ເຮັດປະຈຳຂອງທ່ານ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ເຮັດໄດ້ຫຼາຍຂຶ້ນດ້ວຍແຖບໜ້າວຽກ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ຕໍ່ໄປ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ກັບຄືນ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ປິດ"</string>
diff --git a/quickstep/res/values-lt/strings.xml b/quickstep/res/values-lt/strings.xml
index 56a5d08..b94edb2 100644
--- a/quickstep/res/values-lt/strings.xml
+++ b/quickstep/res/values-lt/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Užduočių juostos mokomoji informacija"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Užduočių juostos patarimai rodomi"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Užduočių juostos patarimai uždaryti"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Nuvilkite į šoną, kad vienu metu naudotumėte dvi programas"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Nuvilkę programą į šoną vienu metu naudokite dvi programas"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Trumpai perbraukite, kad būtų rodoma užduočių juosta"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Užduočių juostoje siūlomos programos pagal jūsų veiklą"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Gaukite programų pasiūlymų pagal savo veiklą"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Atlikite daugiau naudodami užduočių juostą"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Kitas"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atgal"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Uždaryti"</string>
diff --git a/quickstep/res/values-lv/strings.xml b/quickstep/res/values-lv/strings.xml
index da911c1..7f6ba09 100644
--- a/quickstep/res/values-lv/strings.xml
+++ b/quickstep/res/values-lv/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informācija par uzdevumu joslu"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Tika atvērta uzdevumjoslas apmācība"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Tika aizvērta uzdevumjoslas apmācība"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Velciet uz malu, lai izmantotu divas lietotnes vienlaikus"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Velciet lietotni sānis, lai izmantotu 2 lietotnes vienlaikus"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Īsi velciet augšup, lai skatītu uzdevumu joslu"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Uzdevumu joslā tiek rādītas lietotnes, ņemot vērā lietojumu"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Skatiet ieteiktās lietotnes, balstoties uz jūsu ieradumiem"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Plašākas iespējas, izmantojot uzdevumu joslu"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Tālāk"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Atpakaļ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Aizvērt"</string>
diff --git a/quickstep/res/values-mk/strings.xml b/quickstep/res/values-mk/strings.xml
index 9deb0dc..85490c0 100644
--- a/quickstep/res/values-mk/strings.xml
+++ b/quickstep/res/values-mk/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Обука за лентата со задачи"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Се појави лентата за задачи за образование"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Затворена е лентата за задачи за образование"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Повлечете кон страната за да користите две апликации одеднаш"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Повлечете апликација настрана за да користите 2 апликации"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Кратко повлечете нагоре за да се прикаже лентата со задачи"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Лентата со задачи предложува апликации според вашата рутина"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Добивајте предлози за апликации според вашата рутина"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Правете повеќе со една лента со задачи"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Следно"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Затвори"</string>
diff --git a/quickstep/res/values-ml/strings.xml b/quickstep/res/values-ml/strings.xml
index bca7e35..3d6648b 100644
--- a/quickstep/res/values-ml/strings.xml
+++ b/quickstep/res/values-ml/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ടാസ്ക്ബാർ മാർഗ്ഗനിർദ്ദേശ വിൻഡോ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ടാസ്ക്ക്ബാർ വിവര പാനൽ ദൃശ്യമായി"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ടാസ്ക്ക്ബാർ വിവര പാനൽ അടച്ചു"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ഒരേ സമയം 2 ആപ്പുകൾ ഉപയോഗിക്കാൻ വശത്തേയ്ക്ക് വലിച്ചിടുക"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ഒരേ സമയം 2 ആപ്പുകൾ ഉപയോഗിക്കാൻ ഒരു ആപ്പ് വശത്തേക്ക് വലിച്ചിടൂ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ടാസ്ക്ബാർ ദൃശ്യമാക്കാൻ മുകളിലേക്ക് ചെറുതായി സ്വൈപ്പ് ചെയ്യൂ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ടാസ്ക്ബാർ നിങ്ങളുടെ ദിനചര്യ അനുസരിച്ച് ആപ്പുകൾ നിർദ്ദേശിക്കുന്നു"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"നിങ്ങളുടെ ദിനചര്യ അനുസരിച്ച് ആപ്പ് നിർദ്ദേശങ്ങൾ നേടുക"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ടാസ്ക്ബാർ ഉപയോഗിച്ച് കൂടുതൽ ചെയ്യുക"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"അടുത്തത്"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"മടങ്ങുക"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"അടയ്ക്കുക"</string>
diff --git a/quickstep/res/values-mn/strings.xml b/quickstep/res/values-mn/strings.xml
index 9ad53c2..4cd07f9 100644
--- a/quickstep/res/values-mn/strings.xml
+++ b/quickstep/res/values-mn/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Ажлын хэсгийн боловсрол"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Боловсролын ажлын талбар гарч ирсэн"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Боловсролын ажлын талбарыг хаасан"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"2 аппыг зэрэг ашиглахын тулд хажуу тийш чирнэ үү"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"2 аппыг зэрэг ашиглахын тулд аппыг хажуу тийш чирнэ үү"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Ажлын хэсгийг харуулахын тулд бага зэрэг дээш шударна уу"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Ажлын хэсэг таны хэвшилд тулгуурлан аппууд санал болгодог"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Таны хэвшилд тулгуурлан санал болгож буй аппуудыг аваарай"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Ажлын хэсгээр илүү ихийг хийгээрэй"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Дараах"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Буцах"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Хаах"</string>
diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml
index ab97cc9..fd79f03 100644
--- a/quickstep/res/values-mr/strings.xml
+++ b/quickstep/res/values-mr/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"टास्कबारशी संबंधित माहिती"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"टास्कबारशी संबंधित माहिती देणारे पॅनल उघडले आहे"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"टास्कबारशी संबंधित माहिती देणारे पॅनल बंद केले आहे"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"दोन ॲप्स एकत्र वापरण्यासाठी, ती बाजूला ड्रॅग करा"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"दोन ॲप्स एकत्र वापरण्यासाठी एक अॅप बाजूला ड्रॅग करा"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"टास्कबार दाखवण्यासाठी थोडे वरती स्वाइप करा"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"टास्कबार हे तुमच्या दिनक्रमानुसार अॅप्स सुचवते"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"तुमच्या दिनक्रमावर आधारित ॲप सूचना मिळवा"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"टास्कबारसह आणखी बरेच काही करा"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"पुढे"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"मागे जा"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"बंद करा"</string>
diff --git a/quickstep/res/values-ms/strings.xml b/quickstep/res/values-ms/strings.xml
index b7e82d0..7eda4d3 100644
--- a/quickstep/res/values-ms/strings.xml
+++ b/quickstep/res/values-ms/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Pendidikan bar tugas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Pendidikan bar tugas muncul"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Pendidikan bar tugas ditutup"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Seret ke tepi untuk menggunakan 2 apl serentak"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Seret apl ke tepi untuk menggunakan 2 apl serentak"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Leret pendek ke atas untuk menunjukkan bar tugas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Bar tugas mencadangkan apl berdasarkan rutin anda"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Dapatkan cadangan apl berdasarkan rutin anda"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Lakukan lebih banyak perkara dengan bar tugas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Seterusnya"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Kembali"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Tutup"</string>
diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml
index a5100f1..0a3dd86 100644
--- a/quickstep/res/values-my/strings.xml
+++ b/quickstep/res/values-my/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"လုပ်ဆောင်စရာဘား ပညာပေး"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ပညာရေး လုပ်ဆောင်စရာဘား ပြထားသည်"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ပညာရေး လုပ်ဆောင်စရာဘား ပိတ်ထားသည်"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"အက်ပ် ၂ ခု တစ်ပြိုင်တည်းသုံးရန် ဘေးဖက်သို့ ဖိဆွဲပါ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"အက်ပ် ၂ ခုကို တစ်ပြိုက်တည်းသုံးရန် အက်ပ်ကို ဘေးသို့ ဖိဆွဲပါ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"လုပ်ဆောင်စရာဘားပြရန် အမြန် အပေါ်ပွတ်ဆွဲပါ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ပုံမှန်အစီအစဉ်ပေါ် အခြေခံ၍ လုပ်ဆောင်စရာဘားက အက်ပ်အကြံပြုသည်"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ပုံမှန်အစီအစဉ်ပေါ် အခြေခံ၍ အက်ပ်အကြံပြုချက်များကို ရယူပါ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"လုပ်ဆောင်စရာဘားဖြင့် ပိုမိုလုပ်ဆောင်နိုင်ခြင်း"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ရှေ့သို့"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"နောက်သို့"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ပိတ်ရန်"</string>
diff --git a/quickstep/res/values-nb/strings.xml b/quickstep/res/values-nb/strings.xml
index ce7634b..bb592b2 100644
--- a/quickstep/res/values-nb/strings.xml
+++ b/quickstep/res/values-nb/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Veiledning for oppgavelinjen"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Opplæringen for oppgavelinjen vises"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Opplæringen for oppgavelinjen er lukket"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Dra til siden for å bruke to apper samtidig"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Dra en app til siden for å bruke 2 apper samtidig"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Kort sveip opp for å vise oppgavelinjen"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Oppgavelinjen foreslår apper basert på rutinene dine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Få appforslag som er basert på rutinene dine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Gjør mer med oppgavelinjen"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Neste"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Tilbake"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Lukk"</string>
diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml
index b984de8..ac782e8 100644
--- a/quickstep/res/values-ne/strings.xml
+++ b/quickstep/res/values-ne/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"टास्कबार एजुकेसन"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"टास्कबार एजुकेसन देखिएको छ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"टास्कबार एजुकेसन बन्द गरिएको छ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"टास्कबार छेउतिर ड्र्याग गरेर एकै पटक २ वटा एप चलाउनुहोस्"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"एपलाई छेउतिर ड्र्याग गरेर एकै पटक २ वटा एप चलाउनुहोस्"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"टास्कबार देखाउन माथितिर थोरै स्वाइप गर्नुहोस्"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"टास्कबारले तपाईंको रुटिनका आधारमा एपसम्बन्धी सुझाव देखाउँछ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"आफ्नो रुटिनका आधारमा एपसम्बन्धी सुझावहरू प्राप्त गर्नुहोस्"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"टास्कबार प्रयोग गरेर अझ धेरै कार्य गर्नुहोस्"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"अर्को"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"पछाडि"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"बन्द गर्नुहोस्"</string>
diff --git a/quickstep/res/values-nl/strings.xml b/quickstep/res/values-nl/strings.xml
index ad207c0..952b7f1 100644
--- a/quickstep/res/values-nl/strings.xml
+++ b/quickstep/res/values-nl/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Taakbalk Onderwijs"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Uitleg van taakbalk geopend"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Uitleg van taakbalk gesloten"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Sleep naar de zijkant om 2 apps tegelijk te gebruiken"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Sleep een app naar de zijkant om 2 apps tegelijk te gebruiken"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Swipe kort omhoog om de taakbalk te bekijken"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"De taakbalk stelt apps voor op basis van je routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Krijg app-suggesties op basis van je routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Doe meer met de taakbalk"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Volgende"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Terug"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Sluiten"</string>
diff --git a/quickstep/res/values-or/strings.xml b/quickstep/res/values-or/strings.xml
index 2f0614c..9102860 100644
--- a/quickstep/res/values-or/strings.xml
+++ b/quickstep/res/values-or/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ଟାସ୍କବାର ଶିକ୍ଷା"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ଟାସ୍କବାର୍ ଶିକ୍ଷା ଦେଖାଯାଇଛି"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ଟାସ୍କବାର୍ ଶିକ୍ଷା ବନ୍ଦ ହୋଇଯାଇଛି"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ଥରକେ 2ଟି ଆପ୍ସ ବ୍ୟବହାର କରିବା ପାଇଁ ପାର୍ଶ୍ୱକୁ ଡ୍ରାଗ କରନ୍ତୁ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ଥରକେ 2ଟି ଆପ୍ସ ବ୍ୟବହାର କରିବା ପାଇଁ ଏକ ଆପକୁ ପାର୍ଶ୍ୱକୁ ଡ୍ରାଗ କର"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ଟାସ୍କବାର ଦେଖାଇବା ପାଇଁ ଉପରକୁ ଅଳ୍ପ ସମୟ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ଟାସ୍କବାର ଆପଣଙ୍କ ରୁଟିନ ଆଧାରରେ ଆପ୍ସ ପରାମର୍ଶ ଦିଏ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ଆପଣଙ୍କ ରୁଟିନ ଆଧାରରେ ଆପ ପରାମର୍ଶଗୁଡ଼ିକୁ ପାଆନ୍ତୁ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ଟାସ୍କବାର ମାଧ୍ୟମରେ ଆହୁରି ଅନେକ କିଛି କରନ୍ତୁ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ପରବର୍ତ୍ତୀ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ପଛକୁ ଫେରନ୍ତୁ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ବନ୍ଦ କରନ୍ତୁ"</string>
diff --git a/quickstep/res/values-pa/strings.xml b/quickstep/res/values-pa/strings.xml
index dc9d78e..8ca7173 100644
--- a/quickstep/res/values-pa/strings.xml
+++ b/quickstep/res/values-pa/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ਟਾਸਕਬਾਰ ਸਿੱਖਿਆ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ਟਾਸਕਵਾਰ ਸਿੱਖਿਆ ਪੈਨਲ ਦਿਖਾਇਆ ਗਿਆ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ਟਾਸਕਵਾਰ ਸਿੱਖਿਆ ਪੈਨਲ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ਇੱਕ ਵਾਰ ਵਿੱਚ 2 ਐਪਾਂ ਵਰਤਣ ਲਈ ਉਨ੍ਹਾਂ ਨੂੰ ਸਾਈਡ ਵੱਲ ਘਸੀਟੋ"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ਇੱਕ ਵਾਰ ਵਿੱਚ 2 ਐਪਾਂ ਵਰਤਣ ਲਈ, ਐਪ ਨੂੰ ਪਾਸੇ ਵੱਲ ਘਸੀਟੋ"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ਟਾਸਕਬਾਰ ਦਿਖਾਉਣ ਲਈ ਥੋੜ੍ਹਾ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ਟਾਸਕਬਾਰ ਤੁਹਾਡੇ ਨਿਯਮਬੱਧ ਕੰਮ ਮੁਤਾਬਕ ਐਪਾਂ ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ਤੁਹਾਡੇ ਨਿਯਮਬੱਧ ਕੰਮ ਦੇ ਆਧਾਰ \'ਤੇ ਐਪ ਸੁਝਾਅ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ਟਾਸਕਬਾਰ ਦਾ ਹੋਰ ਲਾਹਾ ਲਓ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ਅੱਗੇ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ਪਿੱਛੇ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ਬੰਦ ਕਰੋ"</string>
diff --git a/quickstep/res/values-pl/strings.xml b/quickstep/res/values-pl/strings.xml
index 08fc4e2..c67078f 100644
--- a/quickstep/res/values-pl/strings.xml
+++ b/quickstep/res/values-pl/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informacje o pasku aplikacji"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Wskazówki na temat paska zadań zostały wyświetlone"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Wskazówki na temat paska zadań zostały zamknięte"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Przeciągnij w bok, aby używać 2 aplikacji jednocześnie"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Przeciągnij aplikację w bok, aby używać 2 aplikacji naraz"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Przesuń palcem krótko w górę, aby wyświetlić pasek aplikacji"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Aplikacje na pasku są dobierane na podstawie Twojej rutyny"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Otrzymuj sugestie aplikacji na podstawie rutyny"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Wykorzystaj potencjał paska aplikacji"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Dalej"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Wstecz"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zamknij"</string>
diff --git a/quickstep/res/values-pt-rPT/strings.xml b/quickstep/res/values-pt-rPT/strings.xml
index b663528..b9bee0c 100644
--- a/quickstep/res/values-pt-rPT/strings.xml
+++ b/quickstep/res/values-pt-rPT/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Educação da Barra de tarefas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Informação da barra de tarefas apresentada"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Informação da barra de tarefas fechada"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Arraste para o lado para usar duas apps em simultâneo"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arraste uma app para o lado para usar 2 apps em simultâneo"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Deslize rápido curto para cima para ver a barra de tarefas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"A barra de tarefas sugere apps baseadas na sua rotina"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Obtenha sugestões de apps baseadas na sua rotina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Faça mais com a Barra de tarefas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Seguinte"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Anterior"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Fechar"</string>
diff --git a/quickstep/res/values-pt/strings.xml b/quickstep/res/values-pt/strings.xml
index fbd5b78..77d2079 100644
--- a/quickstep/res/values-pt/strings.xml
+++ b/quickstep/res/values-pt/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informações sobre a barra de tarefas"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"As dicas sobre a barra de tarefas foram abertas"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"As dicas sobre a barra de tarefas foram fechadas"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Arraste para o lado para usar dois apps ao mesmo tempo"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Arraste um app para o lado e use dois apps ao mesmo tempo"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Deslize para cima para mostrar a barra de tarefas"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"A barra de tarefas sugere apps com base na sua rotina"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Receba sugestões de apps com base na sua rotina"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Aproveite ainda mais a barra de tarefas"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Próxima"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Voltar"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Fechar"</string>
diff --git a/quickstep/res/values-ro/strings.xml b/quickstep/res/values-ro/strings.xml
index a324d4a..375d431 100644
--- a/quickstep/res/values-ro/strings.xml
+++ b/quickstep/res/values-ro/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Informații despre bara de activități"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Panoul cu informații despre bara de activități s-a afișat"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Panoul cu informații despre bara de activități s-a închis"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Trage în lateral ca să folosești două aplicații deodată"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Trage în lateral o aplicație ca să folosești 2 aplicații deodată"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Glisează scurt în sus pentru a afișa bara de activități"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Bara de activități sugerează aplicații în funcție de rutina ta"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Primește sugestii de aplicații în funcție de rutina ta"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Fă mai multe din bara de activități"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Înainte"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Înapoi"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Închide"</string>
diff --git a/quickstep/res/values-ru/strings.xml b/quickstep/res/values-ru/strings.xml
index d1c2e8d..f9f38c1 100644
--- a/quickstep/res/values-ru/strings.xml
+++ b/quickstep/res/values-ru/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Обучение по работе с панелью задач"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Обучение по работе с панелью задач показано"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Обучение по работе с панелью задач скрыто"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Перетащите в сторону, чтобы использовать 2 приложения сразу."</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Используйте два приложения сразу, перетащив одно в сторону."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Чтобы открыть панель задач, быстро проведите снизу вверх."</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Панель задач предлагает приложения, учитывая ваши действия."</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Получайте рекомендации, основанные на ваших действиях."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Используйте все возможности панели задач"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Далее"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Закрыть"</string>
diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml
index e2f0944..eb55925 100644
--- a/quickstep/res/values-si/strings.xml
+++ b/quickstep/res/values-si/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"කාර්ය තීරු අධ්යාපනය"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"කාර්ය තීරු අධ්යාපනය දිස් විය"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"කාර්ය තීරු අධ්යාපනය වසා ඇත"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"එකවර යෙදුම් 2 ක් භාවිත කිරීමට පැත්තට අදින්න"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"එකවර යෙදුම් 2ක් භාවිතා කිරීමට යෙදුමක් පැත්තට අදින්න"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"කාර්ය තීරුව පෙන්වීමට ඉහළට කෙටි ස්වයිප් කරන්න"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"කාර්ය තීරුව ඔබේ දිනචරියාව මත පදනම්ව යෙදුම් යෝජනා කරයි"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"ඔබේ දිනචරියාව මත පදනම්ව යෙදුම් යෝජනා ලබා ගන්න"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"කාර්ය තීරුව සමග තවත් කරන්න"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ඊළඟ"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"ආපසු"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"වසන්න"</string>
diff --git a/quickstep/res/values-sk/strings.xml b/quickstep/res/values-sk/strings.xml
index 573c17b..13b175c 100644
--- a/quickstep/res/values-sk/strings.xml
+++ b/quickstep/res/values-sk/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Panel vzdelávacích aplikácií"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Zobrazila sa výuka k hlavnému panelu"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Výuka k hlavnému panelu bola zatvorená"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Po presunutí na stranu je možné používať dve aplikácie naraz"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Ak chcete použ. dve aplikácie naraz, presuňte aplik. nabok"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Krátkym potiahnutím nahor zobrazíte panel aplikácií"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Panel aplikácií navrhuje aplikácie na základe vašich zvykov"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Získavajte návrhy aplikácií na základe svojich zvykov"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Panel aplikácií vám ponúka ďalšie možnosti"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Ďalej"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Späť"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zavrieť"</string>
diff --git a/quickstep/res/values-sl/strings.xml b/quickstep/res/values-sl/strings.xml
index 491b13d..0d948cc 100644
--- a/quickstep/res/values-sl/strings.xml
+++ b/quickstep/res/values-sl/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Poučni nasveti o opravilni vrstici"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Poučni nasveti o opravilni vrstici so prikazani."</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Poučni nasveti o opravilni vrstici so zaprti."</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Povlecite vstran za uporabo dveh aplikacij hkrati."</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Povlecite aplikacijo vstran za uporabo 2 aplikacij hkrati."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Na kratko povlecite navzgor za prikaz opravilne vrstice."</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Opravilna vrstica predlaga aplikacije na podlagi vaših navad."</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Prejemajte predloge aplikacij na podlagi svojih navad."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Naredite več z opravilno vrstico"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Naprej"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Nazaj"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Zapri"</string>
diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml
index d73aa48..0e600dd 100644
--- a/quickstep/res/values-sq/strings.xml
+++ b/quickstep/res/values-sq/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Edukimi për shiritin e detyrave"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Edukimi i shiritit të detyrave u shfaq"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Edukimi nga shiriti i detyrave u mbyll"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Zvarrit në anë për të përdorur 2 aplikacione njëherësh"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Zvarrit një aplikacion në anë për të përdorur 2 aplikacione njëherësh"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Kryej një rrëshqitje të shkurtër lart për të shfaqur shiritin e detyrave"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Shiriti i detyrave sugjeron aplikacione bazuar në rutinën tënde"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Merr sugjerime për aplikacion bazuar në rutinën tënde"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Bëj më shumë me shiritin e detyrave"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Para"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Pas"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Mbyll"</string>
diff --git a/quickstep/res/values-sr/strings.xml b/quickstep/res/values-sr/strings.xml
index 6e819ab..5c43c01 100644
--- a/quickstep/res/values-sr/strings.xml
+++ b/quickstep/res/values-sr/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Упутства на траци задатака"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Едукативно окно из траке задатака се појавило"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Едукативно окно из траке задатака је затворено"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Превуците на страну да бисте користили 2 апликације одједном"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Превуците на страну да бисте користили 2 апликације одједном"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Накратко превуците нагоре да бисте приказали траку задатака"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Трака задатака предлаже апликације на основу рутине"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Добијајте предлоге апликација на основу рутине"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Урадите више помоћу траке задатака"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Даље"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Затвори"</string>
diff --git a/quickstep/res/values-sv/strings.xml b/quickstep/res/values-sv/strings.xml
index bab1952..51cbc9c 100644
--- a/quickstep/res/values-sv/strings.xml
+++ b/quickstep/res/values-sv/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Aktivitetsfältsutbildning"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Information om aktivitetsfältet visades"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Information om aktivitetsfältet stängdes"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Dra till sidan om du vill använda två appar samtidigt"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Dra en app till sidan om du vill använda två appar samtidigt"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Svep en kort bit uppåt för att visa aktivitetsfältet"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"I aktivitetsfältet visas förslag på appar utifrån din rutin"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Få appförslag utifrån dina rutiner"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Gör mer med aktivitetsfältet"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Nästa"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Tillbaka"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Stäng"</string>
diff --git a/quickstep/res/values-sw/strings.xml b/quickstep/res/values-sw/strings.xml
index f0990b3..e61f4a9 100644
--- a/quickstep/res/values-sw/strings.xml
+++ b/quickstep/res/values-sw/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Elimu ya Upauzana"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Paneli ya elimu kwenye upau wa shughuli inaonyeshwa"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Paneli ya elimu kwenye upau wa shughuli imefungwa"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Buruta pembeni ili utumie programu 2 kwa wakati mmoja"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Buruta programu pembeni ili utumie programu 2 kwa wakati mmoja"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Telezesha kidole juu ili uonyeshe upauzana"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Upauzana hupendekeza programu kulingana na ratiba yako"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Pata mapendekezo ya programu kulingana na ratiba yako"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Kamilisha mengi kwa kutumia upauzana huu"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Endelea"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Nyuma"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Funga"</string>
diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml
index 1db0fab..51aaed1 100644
--- a/quickstep/res/values-ta/strings.xml
+++ b/quickstep/res/values-ta/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"செயல் பட்டியைப் பயன்படுத்தும் விதம்"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"பணிப்பட்டியை எவ்வாறு பயன்படுத்துவது என்பது பற்றிய பலகம் காட்டப்படுகிறது"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"பணிப்பட்டியை எவ்வாறு பயன்படுத்துவது என்பது பற்றிய பலகம் மூடப்பட்டது"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ஒரே நேரத்தில் 2 ஆப்ஸை உபயோகிக்க பக்கவாட்டிற்கு இழுக்கவும்"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ஒரே நேரத்தில் 2 ஆப்ஸைப் பயன்படுத்தப் பக்கவாட்டில் இழுக்கவும்"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"செயல் பட்டியைக் காட்டுவதற்கு மேலே சிறிது ஸ்வைப் செய்யவும்"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"உங்கள் வழக்கத்திற்கேற்ப ஆப்ஸை செயல் பட்டி பரிந்துரைக்கும்"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"உங்கள் வழக்கத்திற்கேற்ப ஆப்ஸ் பரிந்துரைகளைப் பெறுவீர்கள்"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"செயல் பட்டி மூலம் மேலும் பலவற்றைச் செய்யலாம்"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"அடுத்து"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"பின்செல்"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"மூடுக"</string>
diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml
index c5564dd..e68fbec 100644
--- a/quickstep/res/values-te/strings.xml
+++ b/quickstep/res/values-te/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"టాస్క్బార్ ఎడ్యుకేషన్"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"టాస్క్బార్ శిక్షణకు సంబంధించిన ప్యానెల్ కనిపించింది"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"టాస్క్బార్ శిక్షణకు సంబంధించిన ప్యానెల్ మూసివేయబడింది"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ఒకేసారి 2 యాప్లను ఉపయోగించడానికి పక్కకు లాగండి"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ఒకేసారి 2 యాప్లను ఉపయోగించడానికి యాప్ను పక్కకు లాగండి"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"టాస్క్బార్ను చూపడానికి చిన్నగా పైకి స్వైప్ చేయండి"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"మీ రొటీన్ ఆధారంగా టాస్క్బార్ యాప్లను సూచిస్తుంది"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"మీ రొటీన్ ఆధారంగా యాప్ సూచనలను పొందండి"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"టాస్క్బార్తో మరిన్ని చేయండి"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"తర్వాత"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"వెనుకకు"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"మూసివేయండి"</string>
diff --git a/quickstep/res/values-th/strings.xml b/quickstep/res/values-th/strings.xml
index 7c7f44d..2fa2a34 100644
--- a/quickstep/res/values-th/strings.xml
+++ b/quickstep/res/values-th/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"แถบงาน Education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"แถบงาน Education ปรากฎขึ้น"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ปิดแถบงาน Education แล้ว"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ลากไปด้านข้างเพื่อใช้ 2 แอปพร้อมกัน"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ลากแอปไปด้านข้างเพื่อใช้ 2 แอปพร้อมกัน"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ปัดขึ้นสั้นๆ เพื่อแสดงแถบงาน"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"แถบงานจะแนะนำแอปโดยอิงตามกิจวัตรของคุณ"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"รับคำแนะนำเกี่ยวกับแอปตามกิจวัตรของคุณ"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ทำสิ่งต่างๆ ได้มากขึ้นด้วยแถบงาน"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"ถัดไป"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"กลับ"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"ปิด"</string>
diff --git a/quickstep/res/values-tl/strings.xml b/quickstep/res/values-tl/strings.xml
index 7dcae6b..4c2d5ec 100644
--- a/quickstep/res/values-tl/strings.xml
+++ b/quickstep/res/values-tl/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Impormasyon sa taskbar"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Lumabas ang edukasyon sa taskbar"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Sarado ang edukasyon sa taskbar"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"I-drag sa gilid para makagamit ng 2 app nang sabay"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Mag-drag ng app sa gilid para makagamit ng 2 app nang sabay"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Mag-swipe nang bahagya pataas para ipakita ang taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Nagmumungkahi ang taskbar ng mga app batay sa iyong routine"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Makakuha ng mga iminumungkahing app batay sa iyong routine"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Gumawa ng higit pa sa taskbar"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Susunod"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Bumalik"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Isara"</string>
diff --git a/quickstep/res/values-tr/strings.xml b/quickstep/res/values-tr/strings.xml
index ea3fb5e..d79d8f0 100644
--- a/quickstep/res/values-tr/strings.xml
+++ b/quickstep/res/values-tr/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Görev çubuğu eğitimi"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Görev çubuğu eğitimi görüntülendi"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Görev çubuğu eğitimi kapatıldı"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Tek seferde iki uygulamayı kullanmak için yana sürükleyin"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Aynı anda iki uygulama kullanmak için birini yana sürükleyin"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Görev çubuğunu göstermek için yukarı doğru kısa kaydırın"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Görev çubuğu, rutininize dayalı olarak uygulamalar önerir"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Rutininize göre uygulama önerileri alın"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Görev çubuğuyla daha fazla şey yapın"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"İleri"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Geri"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Kapat"</string>
diff --git a/quickstep/res/values-uk/strings.xml b/quickstep/res/values-uk/strings.xml
index b426c8b..2f9a424 100644
--- a/quickstep/res/values-uk/strings.xml
+++ b/quickstep/res/values-uk/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Панель завдань Education"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Панель завдань Education відкрито"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Панель завдань Education закрито"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Перетягніть убік, щоб використовувати 2 додатки одночасно"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Перетягніть убік, щоб використовувати 2 додатки одночасно"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Швидко проведіть пальцем угору, щоб відкрити панель завдань"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Панель завдань пропонує додатки на основі вашої програми"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Отримуйте рекомендації додатків залежно від їх використання"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Більше можливостей завдяки панелі завдань"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Далі"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Назад"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Закрити"</string>
diff --git a/quickstep/res/values-ur/strings.xml b/quickstep/res/values-ur/strings.xml
index 576386a..4ddcb3b 100644
--- a/quickstep/res/values-ur/strings.xml
+++ b/quickstep/res/values-ur/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"ٹاسک بار کی تعلیم"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"ٹاکس بار کا تعلیمی پینل ظاہر ہو گیا"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"ٹاسک بار کا تعلیمی پینل بند ہو گیا"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"ایک وقت میں 2 ایپس استعمال کرنے کے لیے سائیڈ پر گھسیٹیں"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"ایک وقت میں 2 ایپس استعمال کرنے کیلئے ایپ سائیڈ پر گھسیٹیں"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"ٹاسک بار دکھانے کے لیے تھوڑا اوپر سوائپ کریں"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"ٹاسک بار آپ کی روٹین کی بنیاد پر ایپس تجویز کرتا ہے"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"اپنی روٹین پر مبنی ایپس کی تجاویز حاصل کریں"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"ٹاسک بار سے بہت کچھ کریں"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"آگے"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"پیچھے"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"بند کریں"</string>
diff --git a/quickstep/res/values-uz/strings.xml b/quickstep/res/values-uz/strings.xml
index 65197a4..f188000 100644
--- a/quickstep/res/values-uz/strings.xml
+++ b/quickstep/res/values-uz/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Vazifalar paneli qoʻllanmasi"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Taʼlim vazifalar paneli chiqdi"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Taʼlim vazifalar paneli yopildi"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Bir vaqtda 2 ta ilova ochish uchun birini yoniga torting"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Bitta ilovani yon tomonga sudrab, bir vaqtda 2 ta ilovadan foydalaning."</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Vazifalar panelini koʻrsatish uchun tepaga qisqa suring"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Vazifalar paneli harakatlaringiz asosida ilova taklif qiladi"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Harakatlaringiz asosida tavsiyalar oling."</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Vazifalar panelidan maksimal darajada foydalaning"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Keyingisi"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Orqaga"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Yopish"</string>
diff --git a/quickstep/res/values-vi/strings.xml b/quickstep/res/values-vi/strings.xml
index b0a6dab..cfba7ba 100644
--- a/quickstep/res/values-vi/strings.xml
+++ b/quickstep/res/values-vi/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Cách sử dụng thanh tác vụ"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Đã hiện bảng hướng dẫn trên thanh tác vụ"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Đã đóng bảng hướng dẫn trên thanh tác vụ"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Kéo sang bên để dùng 2 ứng dụng cùng một lúc"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Kéo một ứng dụng sang bên để dùng 2 ứng dụng cùng lúc"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Vuốt lên một chút để hiển thị thanh tác vụ"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"Thanh tác vụ đề xuất các ứng dụng dựa trên thói quen của bạn"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Nhận ứng dụng đề xuất dựa trên quy trình của bạn"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Làm nhiều việc hơn bằng thanh tác vụ"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Tiếp theo"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Quay lại"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Đóng"</string>
diff --git a/quickstep/res/values-zh-rCN/strings.xml b/quickstep/res/values-zh-rCN/strings.xml
index 6b8f3e3..05cf3f4 100644
--- a/quickstep/res/values-zh-rCN/strings.xml
+++ b/quickstep/res/values-zh-rCN/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"任务栏教程"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"任务栏教程已显示"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"任务栏教程已关闭"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"拖动到一侧,即可一次使用两个应用"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"将一个应用拖动到一侧,即可一次使用两个应用"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"稍微向上滑动即可显示任务栏"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"任务栏会根据您的日常安排向您推荐应用"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"根据您的日常安排获取应用建议"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"体验任务栏的更多功能"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"继续"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"返回"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"关闭"</string>
diff --git a/quickstep/res/values-zh-rHK/strings.xml b/quickstep/res/values-zh-rHK/strings.xml
index 5a9e0a1..cefea7a 100644
--- a/quickstep/res/values-zh-rHK/strings.xml
+++ b/quickstep/res/values-zh-rHK/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"工作列教學"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"顯示咗工作列教學"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"閂咗工作列教學"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"拖曳到一邊即可同時使用 2 個應用程式"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"將應用程式拖曳到一邊,即可同時使用 2 個應用程式"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"輕輕向上滑動即可顯示工作列"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"工作列會根據您的日常安排提供應用程式建議"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"根據您的日常安排提供應用程式建議"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"工作列助您事半功倍"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"繼續"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"返回"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"關閉"</string>
diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml
index 30ea100..1cf77e8 100644
--- a/quickstep/res/values-zh-rTW/strings.xml
+++ b/quickstep/res/values-zh-rTW/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"工作列教學課程"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"工作列教學課程已顯示"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"工作列教學課程已關閉"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"拖曳到一邊即可同時使用 2 個應用程式"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"將應用程式拖曳到一邊即可同時使用 2 個應用程式"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"稍微向上滑動即可讓工作列顯示在畫面上"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"工作列會根據你的日常習慣提供應用程式建議"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"根據你的日常安排建議應用程式"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"充分發揮工作列的功用"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"繼續"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"返回"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"關閉"</string>
diff --git a/quickstep/res/values-zu/strings.xml b/quickstep/res/values-zu/strings.xml
index 0a7e418..a27f78e 100644
--- a/quickstep/res/values-zu/strings.xml
+++ b/quickstep/res/values-zu/strings.xml
@@ -95,9 +95,10 @@
<string name="taskbar_edu_a11y_title" msgid="5417986057866415355">"Imfundo ye-taskbar"</string>
<string name="taskbar_edu_opened" msgid="3950252793551919129">"Imfuno yebha yomsebenzi ivelile"</string>
<string name="taskbar_edu_closed" msgid="126643734478892862">"Imfundo yebha yomsebenzi ivaliwe"</string>
- <string name="taskbar_edu_splitscreen" msgid="5563823414110661454">"Hudula ngaseceleni ukuze usebenzise ama-app angu-2 ngesikhathi esisodwa"</string>
+ <string name="taskbar_edu_splitscreen" msgid="5605512479258053350">"Hudula i-app ukusebenzisa ama-app ama-2 ngesikhathi esisodwa"</string>
<string name="taskbar_edu_stashing" msgid="2805035263048176462">"Swayiphela phezulu okufushane ukuze ubonise i-taskbar"</string>
- <string name="taskbar_edu_suggestions" msgid="1416699696825090402">"I-taskbar iphakamisa ama-app ezisuselwe kumjikelezo wakho"</string>
+ <string name="taskbar_edu_suggestions" msgid="8215044496435527982">"Thola iziphakamiso ze-app ngokusekelwe kumjikelezo wakho"</string>
+ <string name="taskbar_edu_features" msgid="2338325667726857642">"Yenza okwengeziwe ngebha yomsebenzi"</string>
<string name="taskbar_edu_next" msgid="4007618274426775841">"Okulandelayo"</string>
<string name="taskbar_edu_previous" msgid="459202320127201702">"Emuva"</string>
<string name="taskbar_edu_close" msgid="887022990168191073">"Vala"</string>
diff --git a/quickstep/res/values/colors.xml b/quickstep/res/values/colors.xml
index f63997b..55df38f 100644
--- a/quickstep/res/values/colors.xml
+++ b/quickstep/res/values/colors.xml
@@ -40,13 +40,17 @@
<color name="gesture_tutorial_fake_task_view_color">#6DA1FF</color> <!-- Light Blue -->
<!-- Must contrast gesture_tutorial_fake_wallpaper_color -->
<color name="gesture_tutorial_fake_previous_task_view_color">#3C4043</color> <!-- Gray -->
- <color name="gesture_tutorial_taskbar_color">#202124</color>
+ <color name="gesture_tutorial_taskbar_color">#E8EAED</color>
+
+ <!-- Redesigned gesture navigation tutorial -->
+ <color name="gesture_home_tutorial_background">#FFB399</color>
+ <color name="gesture_home_tutorial_swipe_up_rect">#3857C7</color>
+ <color name="gesture_back_tutorial_background">#F3A5B9</color>
+ <color name="gesture_back_tutorial_swipe_rect">#217500</color>
+ <color name="gesture_overview_tutorial_swipe_rect">#7E44AD</color>
<!-- Mock hotseat -->
- <color name="mock_app_icon_1">#8AB4F8</color>
- <color name="mock_app_icon_2">#F28B82</color>
- <color name="mock_app_icon_3">#FDD663</color>
- <color name="mock_app_icon_4">#81C995</color>
+ <color name="mock_app_icon">#BDC1C6</color>
<color name="mock_search_bar">#3C4043</color>
<!-- Mock conversation -->
@@ -79,4 +83,16 @@
<!-- Recents overview -->
<color name="recents_filter_icon">#333333</color>
+ <!-- Lottie light theme colors. -->
+ <color name="lottie_blue400">#669df6</color>
+ <color name="lottie_blue600">#1a73e8</color>
+ <color name="lottie_green400">#5bb974</color>
+ <color name="lottie_green600">#1e8e3e</color>
+ <color name="lottie_grey200">#e8eaed</color>
+ <color name="lottie_grey600">#80868b</color>
+ <color name="lottie_grey700">#5f6368</color>
+ <color name="lottie_red600">#d93025</color>
+ <color name="lottie_yellow400">#fcc934</color>
+ <color name="lottie_yellow600">#f9ab00</color>
+
</resources>
\ No newline at end of file
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index 2eb4abc..0d8391b 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -196,9 +196,13 @@
<integer name="gesture_tutorial_webpage_extra_lines_visibility">0</integer> <!-- VISIBLE -->
<!-- Gesture Tutorial mock taskbar -->
- <dimen name="gesture_tutorial_taskbar_icon_size">44dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_icon_size">52dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_all_apps_mini_size">7dp</dimen>
<dimen name="gesture_tutorial_taskbar_icon_corner_radius">100dp</dimen>
- <dimen name="gesture_tutorial_taskbar_padding_start_end">52dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_corner_radius">100dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_padding">12dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_icon_spacing">24dp</dimen>
+ <dimen name="gesture_tutorial_taskbar_margin_bottom">24dp</dimen>
<!-- All Set page -->
<dimen name="allset_page_margin_horizontal">40dp</dimen>
@@ -300,7 +304,7 @@
<dimen name="taskbar_nav_threshold_v2">30dp</dimen>
<dimen name="taskbar_app_window_threshold_v2">100dp</dimen>
- <dimen name="taskbar_home_overview_threshold_v2">200dp</dimen>
+ <dimen name="taskbar_home_overview_threshold_v2">180dp</dimen>
<!-- Taskbar 3 button spacing -->
<dimen name="taskbar_button_space_inbetween">24dp</dimen>
@@ -309,6 +313,18 @@
<dimen name="taskbar_button_margin_6_5">75dp</dimen>
<dimen name="taskbar_button_margin_default">48dp</dimen>
+ <!-- Taskbar education tooltip -->
+ <dimen name="taskbar_edu_tooltip_elevation">14dp</dimen>
+ <dimen name="taskbar_edu_tooltip_horizontal_margin">32dp</dimen>
+ <dimen name="taskbar_edu_tooltip_vertical_margin">24dp</dimen>
+ <dimen name="taskbar_edu_tooltip_enter_y_delta">20dp</dimen>
+ <dimen name="taskbar_edu_tooltip_exit_y_delta">-10dp</dimen>
+ <dimen name="taskbar_edu_swipe_lottie_width">348dp</dimen>
+ <dimen name="taskbar_edu_swipe_lottie_height">217dp</dimen>
+ <dimen name="taskbar_edu_features_lottie_width">170dp</dimen>
+ <dimen name="taskbar_edu_features_lottie_height">106dp</dimen>
+ <dimen name="taskbar_edu_features_horizontal_spacing">24dp</dimen>
+
<!-- Recents overview -->
<dimen name="recents_filter_icon_size">30dp</dimen>
diff --git a/quickstep/res/values/strings.xml b/quickstep/res/values/strings.xml
index e691522..a82fee8 100644
--- a/quickstep/res/values/strings.xml
+++ b/quickstep/res/values/strings.xml
@@ -133,6 +133,10 @@
<string name="home_gesture_intro_subtitle">Swipe up from the bottom of your screen. This gesture always takes you to the Home screen.</string>
<!-- Introduction subtitle for the Home gesture tutorial that will be spoken by screen readers. [CHAR LIMIT=100] -->
<string name="home_gesture_spoken_intro_subtitle">Swipe up with 2 fingers from the bottom of the screen. This gesture always takes you to the Home screen.</string>
+ <!-- Title of the gesture tutorial section educating users on how to go to the home screen. [CHAR LIMIT=100] -->
+ <string name="home_gesture_tutorial_title">Go home</string>
+ <!-- Subtitle of the gesture tutorial section educating users on how to go to the home screen [CHAR LIMIT=100] -->
+ <string name="home_gesture_tutorial_subtitle">To go to your home screen at any time, swipe up from the bottom of your screen</string>
<!-- Feedback shown during interactive parts of Overview gesture tutorial when the gesture is started too far from the edge. [CHAR LIMIT=100] -->
<string name="overview_gesture_feedback_swipe_too_far_from_edge">Make sure you swipe up from the bottom edge of the screen.</string>
@@ -211,7 +215,7 @@
<!-- Label for a button that enters split screen selection mode. [CHAR_LIMIT=20] -->
<string name="action_split">Split</string>
<!-- Label for toast with instructions for split screen selection mode. [CHAR_LIMIT=50] -->
- <string name="toast_split_select_app">Tap another app to use splitscreen</string>
+ <string name="toast_split_select_app">Tap another app to use split screen</string>
<!-- Label for toast when app selected for split isn't supported. [CHAR_LIMIT=50] -->
<string name="toast_split_app_unsupported">Choose another app to use split screen</string>
<!-- Message shown when an action is blocked by a policy enforced by the app or the organization managing the device. [CHAR_LIMIT=NONE] -->
@@ -231,18 +235,22 @@
<string name="accessibility_rotate_button">Rotate screen</string>
<!-- ******* Taskbar Edu ******* -->
- <!-- Accessibility title for the taskbar education window. [CHAR_LIMIT=NONE] -->
+ <!-- Accessibility title for the Taskbar education window. [CHAR_LIMIT=NONE] -->
<string name="taskbar_edu_a11y_title">Taskbar education</string>
- <!-- Accessibility text spoken when the taskbar education panel appears [CHAR_LIMIT=NONE] -->
+ <!-- Accessibility text spoken when the Taskbar education panel appears [CHAR_LIMIT=NONE] -->
<string name="taskbar_edu_opened">Taskbar education appeared</string>
- <!-- Accessibility text spoken when the taskbar education panel disappears [CHAR_LIMIT=NONE] -->
+ <!-- Accessibility text spoken when the Taskbar education panel disappears [CHAR_LIMIT=NONE] -->
<string name="taskbar_edu_closed">Taskbar education closed</string>
- <!-- Text in dialog that lets a user know how they can use the taskbar to use multiple apps at once on their device. [CHAR_LIMIT=60] -->
- <string name="taskbar_edu_splitscreen">Drag to the side to use 2 apps at once</string>
- <!-- Text in dialog that lets a user know how they can show the taskbar on their device. [CHAR_LIMIT=60] -->
- <string name="taskbar_edu_stashing">Short swipe up to show the taskbar</string>
- <!-- Text in dialog that lets a user know how the taskbar suggests apps based on their usage. [CHAR_LIMIT=60] -->
- <string name="taskbar_edu_suggestions">The taskbar suggests apps based on your routine</string>
+ <!-- Text in dialog that lets a user know how they can use the Taskbar to use multiple apps at once on their device. [CHAR_LIMIT=60] -->
+ <string name="taskbar_edu_splitscreen">Drag an app to the side to use 2 apps at once</string>
+ <!-- Text in dialog that lets a user know how they can show the Taskbar on their device. [CHAR_LIMIT=60] -->
+ <string name="taskbar_edu_stashing">Slow-swipe up to show the Taskbar</string>
+ <!-- Text in dialog that lets a user know how the Taskbar suggests apps based on their usage. [CHAR_LIMIT=60] -->
+ <string name="taskbar_edu_suggestions">Get app suggestions based on your routine</string>
+ <!-- Text in dialog that lets a user know that Taskbar will auto-hide, if the user switches to gesture navigation in system settings. [CHAR_LIMIT=90] -->
+ <string name="taskbar_edu_settings_persistent">Turn on gesture navigation in Settings to auto-hide the Taskbar</string>
+ <!-- Title in dialog that shows a user what they can do with the Taskbar. [CHAR_LIMIT=60] -->
+ <string name="taskbar_edu_features">Do more with the Taskbar</string>
<!-- Text on button to go to the next screen of a tutorial [CHAR_LIMIT=16] -->
<string name="taskbar_edu_next">Next</string>
<!-- Text on button to go to the previous screen of a tutorial [CHAR_LIMIT=16] -->
@@ -265,13 +273,13 @@
<string name="taskbar_button_notifications">Notifications</string>
<!-- Content description for quick settings button [CHAR_LIMIT=16] -->
<string name="taskbar_button_quick_settings">Quick Settings</string>
- <!-- Accessibility title for the taskbar window. [CHAR_LIMIT=NONE] -->
+ <!-- Accessibility title for the Taskbar window. [CHAR_LIMIT=NONE] -->
<string name="taskbar_a11y_title">Taskbar</string>
- <!-- Accessibility title for the taskbar window on phones. [CHAR_LIMIT=NONE] -->
+ <!-- Accessibility title for the Taskbar window on phones. [CHAR_LIMIT=NONE] -->
<string name="taskbar_phone_a11y_title">Navigation bar</string>
- <!-- Label for moving drop target to the top or left side of the screen, depending on orientation (from the taskbar only). -->
+ <!-- Label for moving drop target to the top or left side of the screen, depending on orientation (from the Taskbar only). -->
<string name="move_drop_target_top_or_left">Move to top/left</string>
- <!-- Label for moving drop target to the bottom or right side of the screen, depending on orientation (from the taskbar only). -->
+ <!-- Label for moving drop target to the bottom or right side of the screen, depending on orientation (from the Taskbar only). -->
<string name="move_drop_target_bottom_or_right">Move to bottom/right</string>
</resources>
diff --git a/quickstep/res/values/styles.xml b/quickstep/res/values/styles.xml
index eb75084..6119eb6 100644
--- a/quickstep/res/values/styles.xml
+++ b/quickstep/res/values/styles.xml
@@ -124,6 +124,31 @@
<item name="android:textSize">14sp</item>
</style>
+ <style name="TextAppearance.GestureTutorial.MainTitle"
+ parent="TextAppearance.GestureTutorial">
+ <item name="android:textSize">36sp</item>
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:fontFamily">google-sans</item>
+ </style>
+
+ <style name="TextAppearance.GestureTutorial.MainSubtitle"
+ parent="TextAppearance.GestureTutorial.Subtitle">
+ <item name="android:textSize">16sp</item>
+ <item name="android:letterSpacing">0.02</item>
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:fontFamily">google-sans-text</item>
+ </style>
+
+ <style name="TextAppearance.GestureTutorial.SuccessTitle"
+ parent="TextAppearance.GestureTutorial.MainTitle">
+ <item name="android:textColor">@android:color/white</item>
+ </style>
+
+ <style name="TextAppearance.GestureTutorial.SuccessSubtitle"
+ parent="TextAppearance.GestureTutorial.MainSubtitle">
+ <item name="android:textColor">@android:color/white</item>
+ </style>
+
<style name="AllSetTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
@@ -186,4 +211,16 @@
<item name="android:textSize">24sp</item>
<item name="android:lines">2</item>
</style>
+
+ <style name="TextAppearance.TaskbarEduTooltip.Title" parent="@android:style/TextAppearance.DeviceDefault.DialogWindowTitle">
+ <item name="android:gravity">center_horizontal</item>
+ <item name="android:fontFamily">google-sans</item>
+ <item name="android:textSize">24sp</item>
+ </style>
+
+ <style name="TextAppearance.TaskbarEduTooltip.Subtext" parent="android:TextAppearance.Material.Body1">
+ <item name="android:layout_marginTop">16dp</item>
+ <item name="android:fontFamily">google-sans-text</item>
+ <item name="android:textSize">14sp</item>
+ </style>
</resources>
\ No newline at end of file
diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
index aa9e272..b880a7e 100644
--- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
+++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
@@ -89,6 +89,7 @@
import android.util.Pair;
import android.util.Size;
import android.view.CrossWindowBlurListeners;
+import android.view.IRemoteAnimationFinishedCallback;
import android.view.RemoteAnimationAdapter;
import android.view.RemoteAnimationDefinition;
import android.view.RemoteAnimationTarget;
@@ -114,6 +115,7 @@
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.icons.FastBitmapDrawable;
+import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.shortcuts.DeepShortcutView;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.taskbar.LauncherTaskbarUIController;
@@ -143,6 +145,9 @@
import com.android.quickstep.util.WorkspaceRevealAnim;
import com.android.quickstep.views.FloatingWidgetView;
import com.android.quickstep.views.RecentsView;
+import com.android.systemui.animation.ActivityLaunchAnimator;
+import com.android.systemui.animation.DelegateLaunchAnimatorController;
+import com.android.systemui.animation.RemoteAnimationDelegate;
import com.android.systemui.shared.system.BlurUtils;
import com.android.systemui.shared.system.InteractionJankMonitorWrapper;
import com.android.systemui.shared.system.QuickStepContract;
@@ -222,7 +227,6 @@
private RemoteAnimationProvider mRemoteAnimationProvider;
// Strong refs to runners which are cleared when the launcher activity is destroyed
private RemoteAnimationFactory mWallpaperOpenRunner;
- private RemoteAnimationFactory mAppLaunchRunner;
private RemoteAnimationFactory mKeyguardGoingAwayRunner;
private RemoteAnimationFactory mWallpaperOpenTransitionRunner;
@@ -291,9 +295,18 @@
public ActivityOptionsWrapper getActivityLaunchOptions(View v) {
boolean fromRecents = isLaunchingFromRecents(v, null /* targets */);
RunnableList onEndCallback = new RunnableList();
- mAppLaunchRunner = new AppLaunchAnimationRunner(v, onEndCallback);
+
+ RemoteAnimationFactory delegateRunner = new AppLaunchAnimationRunner(v, onEndCallback);
+ ItemInfo tag = (ItemInfo) v.getTag();
+ if (tag != null && tag.shouldUseBackgroundAnimation()) {
+ ContainerAnimationRunner containerAnimationRunner =
+ ContainerAnimationRunner.from(v, mStartingWindowListener);
+ if (containerAnimationRunner != null) {
+ delegateRunner = containerAnimationRunner;
+ }
+ }
RemoteAnimationRunnerCompat runner = new LauncherAnimationRunner(
- mHandler, mAppLaunchRunner, true /* startAtFrontOfQueue */);
+ mHandler, delegateRunner, true /* startAtFrontOfQueue */);
// Note that this duration is a guess as we do not know if the animation will be a
// recents launch or not for sure until we know the opening app targets.
@@ -699,7 +712,7 @@
@Override
public void onAnimationStart(Animator animation) {
LauncherTaskbarUIController taskbarController = mLauncher.getTaskbarUIController();
- if (taskbarController != null && taskbarController.shouldShowEdu()) {
+ if (taskbarController != null && taskbarController.shouldShowEduOnAppLaunch()) {
// LAUNCHER_TASKBAR_EDUCATION_SHOWING is set to true here, when the education
// flow is about to start, to avoid a race condition with other components
// that would show something else to the user as soon as the app is opened.
@@ -715,7 +728,7 @@
}
LauncherTaskbarUIController taskbarController = mLauncher.getTaskbarUIController();
if (taskbarController != null) {
- taskbarController.showEdu();
+ taskbarController.showEduOnAppLaunch();
}
openingTargets.release();
}
@@ -1160,7 +1173,6 @@
// Also clear strong references to the runners registered with the remote animation
// definition so we don't have to wait for the system gc
mWallpaperOpenRunner = null;
- mAppLaunchRunner = null;
mKeyguardGoingAwayRunner = null;
}
}
@@ -1754,6 +1766,79 @@
}
}
+ /** Remote animation runner to launch an app using System UI's animation library. */
+ private static class ContainerAnimationRunner implements RemoteAnimationFactory {
+
+ /** The delegate runner that handles the actual animation. */
+ private final RemoteAnimationDelegate<IRemoteAnimationFinishedCallback> mDelegate;
+
+ private ContainerAnimationRunner(
+ RemoteAnimationDelegate<IRemoteAnimationFinishedCallback> delegate) {
+ mDelegate = delegate;
+ }
+
+ @Nullable
+ private static ContainerAnimationRunner from(
+ View v, StartingWindowListener startingWindowListener) {
+ View viewToUse = findViewWithBackground(v);
+ if (viewToUse == null) {
+ viewToUse = v;
+ }
+
+ // TODO(b/265134143): create a CUJ type for interaction jank monitoring.
+ ActivityLaunchAnimator.Controller controllerDelegate =
+ ActivityLaunchAnimator.Controller.fromView(viewToUse, null /* cujType */);
+
+ if (controllerDelegate == null) {
+ return null;
+ }
+
+ // This wrapper allows us to override the default value, telling the controller that the
+ // current window is below the animating window.
+ ActivityLaunchAnimator.Controller controller =
+ new DelegateLaunchAnimatorController(controllerDelegate) {
+ @Override
+ public boolean isBelowAnimatingWindow() {
+ return true;
+ }
+ };
+
+ ActivityLaunchAnimator.Callback callback = task -> ColorUtils.setAlphaComponent(
+ startingWindowListener.getBackgroundColor(), 255);
+
+ return new ContainerAnimationRunner(
+ new ActivityLaunchAnimator.AnimationDelegate(controller, callback));
+ }
+
+ /** Finds the closest parent of [view] (inclusive) with a background drawable. */
+ @Nullable
+ private static View findViewWithBackground(View view) {
+ View current = view;
+ while (current.getBackground() == null) {
+ if (!(current.getParent() instanceof View)) {
+ return null;
+ }
+
+ current = (View) view.getParent();
+ }
+
+ return current;
+ }
+
+ @Override
+ public void onAnimationStart(int transit, RemoteAnimationTarget[] appTargets,
+ RemoteAnimationTarget[] wallpaperTargets, RemoteAnimationTarget[] nonAppTargets,
+ LauncherAnimationRunner.AnimationResult result) {
+ mDelegate.onAnimationStart(
+ transit, appTargets, wallpaperTargets, nonAppTargets, result);
+ }
+
+ @Override
+ public void onAnimationCancelled(boolean isKeyguardOccluded) {
+ mDelegate.onAnimationCancelled(isKeyguardOccluded);
+ }
+ }
+
/**
* Class that holds all the variables for the app open animation.
*/
@@ -1822,8 +1907,9 @@
}
}
- private static class StartingWindowListener extends IStartingWindowListener.Stub {
+ private class StartingWindowListener extends IStartingWindowListener.Stub {
private QuickstepTransitionManager mTransitionManager;
+ private int mBackgroundColor;
public void setTransitionManager(QuickstepTransitionManager transitionManager) {
mTransitionManager = transitionManager;
@@ -1832,6 +1918,13 @@
@Override
public void onTaskLaunching(int taskId, int supportedType, int color) {
mTransitionManager.mTaskStartParams.put(taskId, Pair.create(supportedType, color));
+ mBackgroundColor = color;
+ }
+
+ public int getBackgroundColor() {
+ return mBackgroundColor == Color.TRANSPARENT
+ ? mLauncher.getScrimView().getBackgroundColor()
+ : mBackgroundColor;
}
}
diff --git a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
index ba412c9..80bdb6f 100644
--- a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
+++ b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
@@ -193,7 +193,7 @@
icon.setEnabled(false);
icon.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
icon.verifyHighRes();
- CellLayoutLayoutParams lp = new CellLayoutLayoutParams(i, 0, 1, 1, -1);
+ CellLayoutLayoutParams lp = new CellLayoutLayoutParams(i, 0, 1, 1);
mSampleHotseat.addViewToCellLayout(icon, i, info.getViewId(), lp, true);
}
}
diff --git a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
index 118cfc6..ad6ce7d 100644
--- a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
+++ b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
@@ -306,6 +306,7 @@
}
private void registerPredictor(PredictorState state, AppPredictor predictor) {
+ state.setTargets(Collections.emptyList());
state.predictor = predictor;
state.predictor.registerPredictionUpdates(
MODEL_EXECUTOR, t -> handleUpdate(state, t));
diff --git a/quickstep/src/com/android/launcher3/model/WellbeingModel.java b/quickstep/src/com/android/launcher3/model/WellbeingModel.java
index fb2d0dc..d8fd51a 100644
--- a/quickstep/src/com/android/launcher3/model/WellbeingModel.java
+++ b/quickstep/src/com/android/launcher3/model/WellbeingModel.java
@@ -18,6 +18,8 @@
import static android.content.ContentResolver.SCHEME_CONTENT;
+import static com.android.launcher3.util.SimpleBroadcastReceiver.getPackageFilter;
+
import android.annotation.TargetApi;
import android.app.RemoteAction;
import android.content.ContentProviderClient;
@@ -55,7 +57,6 @@
import com.android.launcher3.popup.SystemShortcut;
import com.android.launcher3.util.BgObjectWithLooper;
import com.android.launcher3.util.MainThreadInitializedObject;
-import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.SimpleBroadcastReceiver;
@@ -117,7 +118,7 @@
if (!TextUtils.isEmpty(mWellbeingProviderPkg)) {
mContext.registerReceiver(
new SimpleBroadcastReceiver(t -> restartObserver()),
- PackageManagerHelper.getPackageFilter(mWellbeingProviderPkg,
+ getPackageFilter(mWellbeingProviderPkg,
Intent.ACTION_PACKAGE_ADDED, Intent.ACTION_PACKAGE_CHANGED,
Intent.ACTION_PACKAGE_REMOVED, Intent.ACTION_PACKAGE_DATA_CLEARED,
Intent.ACTION_PACKAGE_RESTARTED),
diff --git a/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java b/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
index 45d1b11..184ea71 100644
--- a/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
+++ b/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
@@ -15,38 +15,14 @@
*/
package com.android.launcher3.popup;
-import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE;
-import static com.android.launcher3.util.SplitConfigurationOptions.getLogEventForPosition;
-import static com.android.quickstep.util.SplitAnimationTimings.TABLET_HOME_TO_SPLIT;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.util.Log;
import android.view.View;
-import androidx.annotation.Nullable;
-
-import com.android.launcher3.AbstractFloatingView;
-import com.android.launcher3.R;
-import com.android.launcher3.anim.PendingAnimation;
-import com.android.launcher3.logging.StatsLogManager;
import com.android.launcher3.model.data.ItemInfo;
-import com.android.launcher3.model.data.WorkspaceItemInfo;
+import com.android.launcher3.splitscreen.SplitShortcut;
import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
-import com.android.quickstep.util.SplitSelectStateController;
-import com.android.quickstep.views.FloatingTaskView;
-import com.android.quickstep.views.RecentsView;
-import com.android.systemui.shared.recents.model.Task;
-import java.util.function.Consumer;
-
+/** {@link SystemShortcut.Factory} implementation to create workspace split shortcuts */
public interface QuickstepSystemShortcut {
String TAG = QuickstepSystemShortcut.class.getSimpleName();
@@ -58,116 +34,12 @@
originalView, position);
}
- class SplitSelectSystemShortcut extends SystemShortcut<QuickstepLauncher> {
-
- private final int mSplitPlaceholderSize;
- private final int mSplitPlaceholderInset;
-
- private final Rect mTempRect = new Rect();
- private final SplitPositionOption mPosition;
+ class SplitSelectSystemShortcut extends SplitShortcut<QuickstepLauncher> {
public SplitSelectSystemShortcut(QuickstepLauncher launcher, ItemInfo itemInfo,
View originalView, SplitPositionOption position) {
- super(position.iconResId, position.textResId, launcher, itemInfo, originalView);
-
- mPosition = position;
-
- mSplitPlaceholderSize = launcher.getResources().getDimensionPixelSize(
- R.dimen.split_placeholder_size);
- mSplitPlaceholderInset = launcher.getResources().getDimensionPixelSize(
- R.dimen.split_placeholder_inset);
- }
-
- @Override
- public void onClick(View view) {
- // Initiate splitscreen from the Home screen or Home All Apps
- Bitmap bitmap;
- Intent intent;
- if (mItemInfo instanceof WorkspaceItemInfo) {
- final WorkspaceItemInfo workspaceItemInfo = (WorkspaceItemInfo) mItemInfo;
- bitmap = workspaceItemInfo.bitmap.icon;
- intent = workspaceItemInfo.intent;
- } else if (mItemInfo instanceof com.android.launcher3.model.data.AppInfo) {
- final com.android.launcher3.model.data.AppInfo appInfo =
- (com.android.launcher3.model.data.AppInfo) mItemInfo;
- bitmap = appInfo.bitmap.icon;
- intent = appInfo.intent;
- } else {
- Log.e(TAG, "unknown item type");
- return;
- }
-
- StatsLogManager.EventEnum splitEvent = getLogEventForPosition(mPosition.stagePosition);
- RecentsView recentsView = mTarget.getOverviewPanel();
- // Check if there is already an instance of this app running, if so, initiate the split
- // using that.
- recentsView.findLastActiveTaskAndRunCallback(
- intent.getComponent(),
- (Consumer<Task>) foundTask -> {
- SplitSelectSource source = new SplitSelectSource(mOriginalView,
- new BitmapDrawable(bitmap), intent, mPosition, mItemInfo,
- splitEvent, foundTask);
- if (ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE.get()) {
- startSplitToHome(source);
- } else {
- recentsView.initiateSplitSelect(source);
- }
- }
- );
- }
-
- private void startSplitToHome(SplitSelectSource source) {
- AbstractFloatingView.closeAllOpenViews(mTarget);
-
- SplitSelectStateController controller = mTarget.getSplitSelectStateController();
- controller.setInitialTaskSelect(source.intent, source.position.stagePosition,
- source.itemInfo, source.splitEvent, source.alreadyRunningTask);
-
- RecentsView recentsView = mTarget.getOverviewPanel();
- recentsView.getPagedOrientationHandler().getInitialSplitPlaceholderBounds(
- mSplitPlaceholderSize, mSplitPlaceholderInset, mTarget.getDeviceProfile(),
- controller.getActiveSplitStagePosition(), mTempRect);
-
- PendingAnimation anim = new PendingAnimation(TABLET_HOME_TO_SPLIT.getDuration());
- RectF startingTaskRect = new RectF();
- final FloatingTaskView floatingTaskView = FloatingTaskView.getFloatingTaskView(mTarget,
- source.view, null /* thumbnail */, source.drawable, startingTaskRect);
- floatingTaskView.setAlpha(1);
- floatingTaskView.addStagingAnimation(anim, startingTaskRect, mTempRect,
- false /* fadeWithThumbnail */, true /* isStagedTask */);
- controller.setFirstFloatingTaskView(floatingTaskView);
- anim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationCancel(Animator animation) {
- mTarget.getDragLayer().removeView(floatingTaskView);
- controller.resetState();
- }
- });
- anim.buildAnim().start();
- }
- }
-
- class SplitSelectSource {
-
- public final View view;
- public final Drawable drawable;
- public final Intent intent;
- public final SplitPositionOption position;
- public final ItemInfo itemInfo;
- public final StatsLogManager.EventEnum splitEvent;
- @Nullable
- public final Task alreadyRunningTask;
-
- public SplitSelectSource(View view, Drawable drawable, Intent intent,
- SplitPositionOption position, ItemInfo itemInfo,
- StatsLogManager.EventEnum splitEvent, @Nullable Task foundTask) {
- this.view = view;
- this.drawable = drawable;
- this.intent = intent;
- this.position = position;
- this.itemInfo = itemInfo;
- this.splitEvent = splitEvent;
- this.alreadyRunningTask = foundTask;
+ super(position.iconResId, position.textResId, launcher, itemInfo, originalView,
+ position);
}
}
}
diff --git a/quickstep/src/com/android/launcher3/splitscreen/SplitShortcut.kt b/quickstep/src/com/android/launcher3/splitscreen/SplitShortcut.kt
new file mode 100644
index 0000000..20c8c44
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/splitscreen/SplitShortcut.kt
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.splitscreen
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.Bitmap
+import android.graphics.drawable.BitmapDrawable
+import android.util.Log
+import android.view.View
+import com.android.launcher3.model.data.ItemInfo
+import com.android.launcher3.model.data.WorkspaceItemInfo
+import com.android.launcher3.popup.QuickstepSystemShortcut
+import com.android.launcher3.popup.SystemShortcut
+import com.android.launcher3.util.SplitConfigurationOptions
+import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource
+import com.android.launcher3.views.ActivityContext
+
+/**
+ * Shortcut to allow starting split. Default interaction for [onClick] is to launch
+ * split selection mode
+ */
+abstract class SplitShortcut<T>(
+ iconResId: Int,
+ labelResId: Int,
+ target: T,
+ itemInfo: ItemInfo?,
+ originalView: View?,
+ protected val position: SplitPositionOption
+) : SystemShortcut<T>(iconResId, labelResId, target, itemInfo, originalView) where
+T : Context?,
+T : ActivityContext? {
+ private val TAG = SystemShortcut::class.java.simpleName
+
+ // Initiate splitscreen from the Home screen or Home All Apps
+ protected val splitSelectSource: SplitSelectSource?
+ get() {
+ // Initiate splitscreen from the Home screen or Home All Apps
+ val bitmap: Bitmap
+ val intent: Intent
+ when (mItemInfo) {
+ is WorkspaceItemInfo -> {
+ val workspaceItemInfo = mItemInfo
+ bitmap = workspaceItemInfo.bitmap.icon
+ intent = workspaceItemInfo.intent
+ }
+ is com.android.launcher3.model.data.AppInfo -> {
+ val appInfo = mItemInfo
+ bitmap = appInfo.bitmap.icon
+ intent = appInfo.intent
+ }
+ else -> {
+ Log.e(TAG, "unknown item type")
+ return null
+ }
+ }
+ val splitEvent =
+ SplitConfigurationOptions.getLogEventForPosition(position.stagePosition)
+ return SplitSelectSource(
+ mOriginalView,
+ BitmapDrawable(bitmap),
+ intent,
+ position,
+ mItemInfo,
+ splitEvent
+ )
+ }
+
+ /** Starts split selection on the provided [mTarget] */
+ override fun onClick(view: View?) {
+ val splitSelectSource = splitSelectSource
+ if (splitSelectSource == null) {
+ Log.w(QuickstepSystemShortcut.TAG, "no split selection source")
+ return
+ }
+ mTarget!!.startSplitSelection(splitSelectSource)
+ }
+}
diff --git a/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java b/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java
index 82d1830..48352a2 100644
--- a/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java
@@ -20,6 +20,8 @@
import android.view.LayoutInflater;
import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener;
+import com.android.launcher3.LauncherPrefs;
+import com.android.launcher3.util.OnboardingPrefs;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ActivityContext;
@@ -32,10 +34,12 @@
protected final LayoutInflater mLayoutInflater;
private final List<OnDeviceProfileChangeListener> mDPChangeListeners = new ArrayList<>();
+ private final OnboardingPrefs<BaseTaskbarContext> mOnboardingPrefs;
public BaseTaskbarContext(Context windowContext) {
super(windowContext, Themes.getActivityThemeRes(windowContext));
mLayoutInflater = LayoutInflater.from(this).cloneInContext(this);
+ mOnboardingPrefs = new OnboardingPrefs<>(this, LauncherPrefs.getPrefs(this));
}
@Override
@@ -48,6 +52,11 @@
return mDPChangeListeners;
}
+ @Override
+ public OnboardingPrefs<BaseTaskbarContext> getOnboardingPrefs() {
+ return mOnboardingPrefs;
+ }
+
/** Callback invoked when a drag is initiated within this context. */
public abstract void onDragStart();
diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
index 237661e..335482c 100644
--- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
@@ -18,6 +18,8 @@
import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR;
import static com.android.launcher3.QuickstepTransitionManager.TRANSIENT_TASKBAR_TRANSITION_DURATION;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_EDU_TOOLTIP;
+import static com.android.launcher3.taskbar.TaskbarEduTooltipControllerKt.TOOLTIP_STEP_FEATURES;
import static com.android.launcher3.taskbar.TaskbarLauncherStateController.FLAG_RESUMED;
import static com.android.quickstep.TaskAnimationManager.ENABLE_SHELL_TRANSITIONS;
@@ -259,23 +261,51 @@
}
/**
- * Starts the taskbar education flow, if the user hasn't seen it yet.
+ * Starts a Taskbar EDU flow, if the user should see one upon launching an application.
*/
- public void showEdu() {
- if (!shouldShowEdu()) {
+ public void showEduOnAppLaunch() {
+ if (!shouldShowEduOnAppLaunch()) {
return;
}
- mLauncher.getOnboardingPrefs().markChecked(OnboardingPrefs.TASKBAR_EDU_SEEN);
- mControllers.taskbarEduController.showEdu();
+ // Transient and persistent bottom sheet.
+ if (!ENABLE_TASKBAR_EDU_TOOLTIP.get()) {
+ mLauncher.getOnboardingPrefs().markChecked(OnboardingPrefs.TASKBAR_EDU_SEEN);
+ mControllers.taskbarEduController.showEdu();
+ return;
+ }
+
+ // Persistent features EDU tooltip.
+ if (!DisplayController.isTransientTaskbar(mLauncher)) {
+ mControllers.taskbarEduTooltipController.maybeShowFeaturesEdu();
+ return;
+ }
+
+ // Transient swipe EDU tooltip.
+ mControllers.taskbarEduTooltipController.maybeShowSwipeEdu();
}
/**
- * Whether the taskbar education should be shown.
+ * Returns {@code true} if a Taskbar education should be shown on application launch.
*/
- public boolean shouldShowEdu() {
- return !Utilities.IS_RUNNING_IN_TEST_HARNESS
- && !mLauncher.getOnboardingPrefs().getBoolean(OnboardingPrefs.TASKBAR_EDU_SEEN);
+ public boolean shouldShowEduOnAppLaunch() {
+ if (Utilities.IS_RUNNING_IN_TEST_HARNESS) {
+ return false;
+ }
+
+ // Transient and persistent bottom sheet.
+ if (!ENABLE_TASKBAR_EDU_TOOLTIP.get()) {
+ return !mLauncher.getOnboardingPrefs().getBoolean(OnboardingPrefs.TASKBAR_EDU_SEEN);
+ }
+
+ // Persistent features EDU tooltip.
+ if (!DisplayController.isTransientTaskbar(mLauncher)) {
+ return !mLauncher.getOnboardingPrefs().hasReachedMaxCount(
+ OnboardingPrefs.TASKBAR_EDU_TOOLTIP_STEP);
+ }
+
+ // Transient swipe EDU tooltip.
+ return mControllers.taskbarEduTooltipController.getTooltipStep() < TOOLTIP_STEP_FEATURES;
}
@Override
diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
index 2b976df..9cec881 100644
--- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
@@ -18,6 +18,7 @@
import static android.view.View.AccessibilityDelegate;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION;
+import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X;
import static com.android.launcher3.Utilities.getDescendantCoordRelativeToAncestor;
@@ -299,7 +300,8 @@
R.dimen.floating_rotation_button_taskbar_left_margin,
R.dimen.floating_rotation_button_taskbar_bottom_margin,
R.dimen.floating_rotation_button_diameter,
- R.dimen.key_button_ripple_max_width);
+ R.dimen.key_button_ripple_max_width,
+ R.bool.floating_rotation_button_position_left);
mControllers.rotationButtonController.setRotationButton(mFloatingRotationButton,
mRotationButtonListener);
@@ -486,13 +488,6 @@
}
/**
- * Returns true if IME switcher is visible
- */
- public boolean isImeSwitcherVisible() {
- return (mState & FLAG_SWITCHER_SHOWING) != 0;
- }
-
- /**
* Returns true if the home button is disabled
*/
public boolean isHomeDisabled() {
@@ -870,8 +865,8 @@
mAreNavButtonsInSeparateWindow = true;
mContext.getDragLayer().removeView(mNavButtonsView);
mSeparateWindowParent.addView(mNavButtonsView);
- WindowManager.LayoutParams windowLayoutParams = mContext.createDefaultWindowLayoutParams();
- windowLayoutParams.setTitle(NAV_BUTTONS_SEPARATE_WINDOW_TITLE);
+ WindowManager.LayoutParams windowLayoutParams = mContext.createDefaultWindowLayoutParams(
+ TYPE_NAVIGATION_BAR_PANEL, NAV_BUTTONS_SEPARATE_WINDOW_TITLE);
mContext.addWindowView(mSeparateWindowParent, windowLayoutParams);
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index 5a81b2f..c6d8fce 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -15,6 +15,7 @@
*/
package com.android.launcher3.taskbar;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.content.pm.PackageManager.FEATURE_PC;
import static android.os.Trace.TRACE_TAG_APP;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
@@ -92,6 +93,7 @@
import com.android.launcher3.util.NavigationMode;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.SettingsCache;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.launcher3.util.TraceHelper;
import com.android.launcher3.util.ViewCache;
import com.android.launcher3.views.ActivityContext;
@@ -233,12 +235,14 @@
new TaskbarTranslationController(this),
isDesktopMode
? new DesktopTaskbarRecentAppsController(this)
- : TaskbarRecentAppsController.DEFAULT);
+ : TaskbarRecentAppsController.DEFAULT,
+ new TaskbarEduTooltipController(this));
}
public void init(@NonNull TaskbarSharedState sharedState) {
mLastRequestedNonFullscreenHeight = getDefaultTaskbarWindowHeight();
- mWindowLayoutParams = createDefaultWindowLayoutParams();
+ mWindowLayoutParams =
+ createDefaultWindowLayoutParams(TYPE_NAVIGATION_BAR_PANEL, WINDOW_TITLE);
// Initialize controllers after all are constructed.
mControllers.init(sharedState);
@@ -282,22 +286,20 @@
* the icon size
*/
private void matchDeviceProfile(DeviceProfile originDeviceProfile, Resources resources) {
- mDeviceProfile = originDeviceProfile.copy(this);
- // Taskbar should match the number of icons of hotseat
- mDeviceProfile.numShownHotseatIcons = originDeviceProfile.numShownHotseatIcons;
- // Same QSB width to have a smooth animation
- mDeviceProfile.hotseatQsbWidth = originDeviceProfile.hotseatQsbWidth;
- // Update the size of the icons
- updateIconSize(resources);
- }
+ mDeviceProfile = originDeviceProfile.toBuilder(this)
+ .withDimensionsOverride(deviceProfile -> {
+ // Taskbar should match the number of icons of hotseat
+ deviceProfile.numShownHotseatIcons = originDeviceProfile.numShownHotseatIcons;
+ // Same QSB width to have a smooth animation
+ deviceProfile.hotseatQsbWidth = originDeviceProfile.hotseatQsbWidth;
-
- private void updateIconSize(Resources resources) {
- mDeviceProfile.iconSizePx = resources.getDimensionPixelSize(
- DisplayController.isTransientTaskbar(this)
- ? R.dimen.transient_taskbar_icon_size
- : R.dimen.taskbar_icon_size);
- mDeviceProfile.updateIconSize(1f, resources);
+ // Update icon size
+ deviceProfile.iconSizePx = resources.getDimensionPixelSize(
+ DisplayController.isTransientTaskbar(TaskbarActivityContext.this)
+ ? R.dimen.transient_taskbar_icon_size
+ : R.dimen.taskbar_icon_size);
+ deviceProfile.updateIconSize(1f, resources);
+ }).build();
}
/**
@@ -314,16 +316,12 @@
return super.getStatsLogManager();
}
- /** @see #createDefaultWindowLayoutParams(int) */
- public WindowManager.LayoutParams createDefaultWindowLayoutParams() {
- return createDefaultWindowLayoutParams(TYPE_NAVIGATION_BAR_PANEL);
- }
-
/**
* Creates LayoutParams for adding a view directly to WindowManager as a new window.
* @param type The window type to pass to the created WindowManager.LayoutParams.
+ * @param title The window title to pass to the created WindowManager.LayoutParams.
*/
- public WindowManager.LayoutParams createDefaultWindowLayoutParams(int type) {
+ public WindowManager.LayoutParams createDefaultWindowLayoutParams(int type, String title) {
DeviceProfile deviceProfile = getDeviceProfile();
// Taskbar is on the logical bottom of the screen
boolean isVerticalBarLayout = TaskbarManager.isPhoneMode(deviceProfile) &&
@@ -343,7 +341,7 @@
type,
windowFlags,
PixelFormat.TRANSLUCENT);
- windowLayoutParams.setTitle(WINDOW_TITLE);
+ windowLayoutParams.setTitle(title);
windowLayoutParams.packageName = getPackageName();
windowLayoutParams.gravity = !isVerticalBarLayout ?
Gravity.BOTTOM :
@@ -549,13 +547,15 @@
}
}
+ public boolean isDestroyed() {
+ return mIsDestroyed;
+ }
+
public void updateSysuiStateFlags(int systemUiStateFlags, boolean fromInit) {
mControllers.navbarButtonsViewController.updateStateForSysuiFlags(systemUiStateFlags,
fromInit);
mControllers.taskbarViewController.setImeIsVisible(
mControllers.navbarButtonsViewController.isImeVisible());
- mControllers.taskbarViewController.setIsImeSwitcherVisible(
- mControllers.navbarButtonsViewController.isImeSwitcherVisible());
int shadeExpandedFlags = SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED
| SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
onNotificationShadeExpandChanged((systemUiStateFlags & shadeExpandedFlags) != 0, fromInit);
@@ -753,6 +753,11 @@
}
}
+ @Override
+ public void startSplitSelection(SplitSelectSource splitSelectSource) {
+ mControllers.uiController.startSplitSelection(splitSelectSource);
+ }
+
protected void onTaskbarIconClicked(View view) {
Object tag = view.getTag();
if (tag instanceof Task) {
@@ -915,6 +920,7 @@
*/
public void onSwipeToUnstashTaskbar() {
mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(false);
+ mControllers.taskbarEduTooltipController.hide();
}
/** Returns {@code true} if taskbar All Apps is open. */
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java
index 4350e9c..2bfc7dd 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java
@@ -39,11 +39,14 @@
public static final int FLAG_AUTOHIDE_SUSPEND_DRAGGING = 1 << 1;
// User has touched down but has not lifted finger.
public static final int FLAG_AUTOHIDE_SUSPEND_TOUCHING = 1 << 2;
+ // Taskbar EDU overlay is open above the Taskbar. */
+ public static final int FLAG_AUTOHIDE_SUSPEND_EDU_OPEN = 1 << 3;
@IntDef(flag = true, value = {
FLAG_AUTOHIDE_SUSPEND_FULLSCREEN,
FLAG_AUTOHIDE_SUSPEND_DRAGGING,
FLAG_AUTOHIDE_SUSPEND_TOUCHING,
+ FLAG_AUTOHIDE_SUSPEND_EDU_OPEN,
})
@Retention(RetentionPolicy.SOURCE)
public @interface AutohideSuspendFlag {}
@@ -102,6 +105,7 @@
"FLAG_AUTOHIDE_SUSPEND_FULLSCREEN");
appendFlag(str, flags, FLAG_AUTOHIDE_SUSPEND_DRAGGING, "FLAG_AUTOHIDE_SUSPEND_DRAGGING");
appendFlag(str, flags, FLAG_AUTOHIDE_SUSPEND_TOUCHING, "FLAG_AUTOHIDE_SUSPEND_TOUCHING");
+ appendFlag(str, flags, FLAG_AUTOHIDE_SUSPEND_EDU_OPEN, "FLAG_AUTOHIDE_SUSPEND_EDU_OPEN");
return str.toString();
}
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt
index cf3af08..82f27ae 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt
@@ -113,7 +113,7 @@
// Approximates the stash/unstash animation to transform the background.
val scaleFactor = backgroundHeight / maxBackgroundHeight
val width = transientBackgroundBounds.width()
- val widthScale = mapToRange(scaleFactor, 0f, 1f, 0.4f, 1f, Interpolators.LINEAR)
+ val widthScale = mapToRange(scaleFactor, 0f, 1f, 0.2f, 1f, Interpolators.LINEAR)
val newWidth = widthScale * width
val delta = width - newWidth
canvas.translate(0f, bottomMargin * ((1f - scaleFactor) / 2f))
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java
index 260876b..ea70de4 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java
@@ -58,6 +58,7 @@
public final TaskbarRecentAppsController taskbarRecentAppsController;
public final TaskbarTranslationController taskbarTranslationController;
public final TaskbarOverlayController taskbarOverlayController;
+ public final TaskbarEduTooltipController taskbarEduTooltipController;
@Nullable private LoggableTaskbarController[] mControllersToLog = null;
@Nullable private BackgroundRendererController[] mBackgroundRendererControllers = null;
@@ -101,7 +102,8 @@
TaskbarInsetsController taskbarInsetsController,
VoiceInteractionWindowController voiceInteractionWindowController,
TaskbarTranslationController taskbarTranslationController,
- TaskbarRecentAppsController taskbarRecentAppsController) {
+ TaskbarRecentAppsController taskbarRecentAppsController,
+ TaskbarEduTooltipController taskbarEduTooltipController) {
this.taskbarActivityContext = taskbarActivityContext;
this.taskbarDragController = taskbarDragController;
this.navButtonController = navButtonController;
@@ -124,6 +126,7 @@
this.voiceInteractionWindowController = voiceInteractionWindowController;
this.taskbarTranslationController = taskbarTranslationController;
this.taskbarRecentAppsController = taskbarRecentAppsController;
+ this.taskbarEduTooltipController = taskbarEduTooltipController;
}
/**
@@ -155,6 +158,7 @@
voiceInteractionWindowController.init(this);
taskbarRecentAppsController.init(this);
taskbarTranslationController.init(this);
+ taskbarEduTooltipController.init(this);
mControllersToLog = new LoggableTaskbarController[] {
taskbarDragController, navButtonController, navbarButtonsViewController,
@@ -162,7 +166,8 @@
taskbarUnfoldAnimationController, taskbarKeyguardController,
stashedHandleViewController, taskbarStashController, taskbarEduController,
taskbarAutohideSuspendController, taskbarPopupController, taskbarInsetsController,
- voiceInteractionWindowController, taskbarTranslationController
+ voiceInteractionWindowController, taskbarTranslationController,
+ taskbarEduTooltipController
};
mBackgroundRendererControllers = new BackgroundRendererController[] {
taskbarDragLayerController, taskbarScrimViewController,
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
index d0059f7..7114849 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
@@ -194,7 +194,8 @@
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == ACTION_UP && event.getKeyCode() == KEYCODE_BACK) {
AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(mActivity);
- if (topView != null && topView.onBackPressed()) {
+ if (topView != null && topView.canHandleBack()) {
+ topView.onBackInvoked();
// Handled by the floating view.
return true;
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java
index cd27a46..267bee1 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java
@@ -49,6 +49,8 @@
private final AnimatedFloat mNotificationShadeBgTaskbar = new AnimatedFloat(
this::updateBackgroundAlpha);
private final AnimatedFloat mImeBgTaskbar = new AnimatedFloat(this::updateBackgroundAlpha);
+ private final AnimatedFloat mAssistantBgTaskbar = new AnimatedFloat(
+ this::updateBackgroundAlpha);
// Used to hide our background color when someone else (e.g. ScrimView) is handling it.
private final AnimatedFloat mBgOverride = new AnimatedFloat(this::updateBackgroundAlpha);
@@ -60,6 +62,7 @@
private AnimatedFloat mNavButtonDarkIntensityMultiplier;
private float mLastSetBackgroundAlpha;
+ private boolean mIsBackgroundDrawnElsewhere;
public TaskbarDragLayerController(TaskbarActivityContext activity,
TaskbarDragLayer taskbarDragLayer) {
@@ -81,6 +84,7 @@
mKeyguardBgTaskbar.value = 1;
mNotificationShadeBgTaskbar.value = 1;
mImeBgTaskbar.value = 1;
+ mAssistantBgTaskbar.value = 1;
mBgOverride.value = 1;
updateBackgroundAlpha();
}
@@ -119,6 +123,10 @@
return mImeBgTaskbar;
}
+ public AnimatedFloat getAssistantBgTaskbar() {
+ return mAssistantBgTaskbar;
+ }
+
public AnimatedFloat getOverrideBackgroundAlpha() {
return mBgOverride;
}
@@ -143,7 +151,8 @@
private void updateBackgroundAlpha() {
final float bgNavbar = mBgNavbar.value;
final float bgTaskbar = mBgTaskbar.value * mKeyguardBgTaskbar.value
- * mNotificationShadeBgTaskbar.value * mImeBgTaskbar.value;
+ * mNotificationShadeBgTaskbar.value * mImeBgTaskbar.value
+ * mAssistantBgTaskbar.value;
mLastSetBackgroundAlpha = mBgOverride.value * Math.max(bgNavbar, bgTaskbar);
mTaskbarDragLayer.setTaskbarBackgroundAlpha(mLastSetBackgroundAlpha);
@@ -168,9 +177,23 @@
mTaskbarDragLayer.setCornerRoundness(cornerRoundness);
}
+ /**
+ * Set if another controller is temporarily handling background drawing. In this case we:
+ * - Override our background alpha to be 0.
+ * - Keep the nav bar dark intensity assuming taskbar background is at full alpha.
+ */
+ public void setIsBackgroundDrawnElsewhere(boolean isBackgroundDrawnElsewhere) {
+ mIsBackgroundDrawnElsewhere = isBackgroundDrawnElsewhere;
+ mBgOverride.updateValue(mIsBackgroundDrawnElsewhere ? 0 : 1);
+ updateNavBarDarkIntensityMultiplier();
+ }
+
private void updateNavBarDarkIntensityMultiplier() {
// Zero out the app-requested dark intensity when we're drawing our own background.
float effectiveBgAlpha = mLastSetBackgroundAlpha * (1 - mBgOffset.value);
+ if (mIsBackgroundDrawnElsewhere) {
+ effectiveBgAlpha = 1;
+ }
mNavButtonDarkIntensityMultiplier.updateValue(1 - effectiveBgAlpha);
}
@@ -181,6 +204,13 @@
pw.println(prefix + "\tmBgOffset=" + mBgOffset.value);
pw.println(prefix + "\tmFolderMargin=" + mFolderMargin);
pw.println(prefix + "\tmLastSetBackgroundAlpha=" + mLastSetBackgroundAlpha);
+ pw.println(prefix + "\t\tmBgOverride=" + mBgOverride.value);
+ pw.println(prefix + "\t\tmBgNavbar=" + mBgNavbar.value);
+ pw.println(prefix + "\t\tmBgTaskbar=" + mBgTaskbar.value);
+ pw.println(prefix + "\t\tmKeyguardBgTaskbar=" + mKeyguardBgTaskbar.value);
+ pw.println(prefix + "\t\tmNotificationShadeBgTaskbar=" + mNotificationShadeBgTaskbar.value);
+ pw.println(prefix + "\t\tmImeBgTaskbar=" + mImeBgTaskbar.value);
+ pw.println(prefix + "\t\tmAssistantBgTaskbar=" + mAssistantBgTaskbar.value);
}
/**
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltip.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltip.kt
new file mode 100644
index 0000000..7dda73f
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltip.kt
@@ -0,0 +1,187 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.taskbar
+
+import android.animation.AnimatorSet
+import android.animation.ValueAnimator
+import android.content.Context
+import android.provider.Settings
+import android.provider.Settings.Secure.LAUNCHER_TASKBAR_EDUCATION_SHOWING
+import android.util.AttributeSet
+import android.view.MotionEvent
+import android.view.MotionEvent.ACTION_DOWN
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.Interpolator
+import com.android.launcher3.AbstractFloatingView
+import com.android.launcher3.R
+import com.android.launcher3.anim.AnimatorListeners
+import com.android.launcher3.popup.RoundedArrowDrawable
+import com.android.launcher3.util.Themes
+import com.android.launcher3.views.ActivityContext
+import com.android.systemui.animation.Interpolators.EMPHASIZED_ACCELERATE
+import com.android.systemui.animation.Interpolators.EMPHASIZED_DECELERATE
+import com.android.systemui.animation.Interpolators.STANDARD
+
+private const val ENTER_DURATION_MS = 300L
+private const val EXIT_DURATION_MS = 150L
+
+/** Floating tooltip for Taskbar education. */
+class TaskbarEduTooltip
+@JvmOverloads
+constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : AbstractFloatingView(context, attrs, defStyleAttr) {
+
+ private val activityContext: ActivityContext = ActivityContext.lookupContext(context)
+
+ private val backgroundColor =
+ Themes.getAttrColor(context, com.android.internal.R.attr.colorSurface)
+
+ private val tooltipCornerRadius = Themes.getDialogCornerRadius(context)
+ private val arrowWidth = resources.getDimension(R.dimen.popup_arrow_width)
+ private val arrowHeight = resources.getDimension(R.dimen.popup_arrow_height)
+ private val arrowPointRadius = resources.getDimension(R.dimen.popup_arrow_corner_radius)
+
+ private val enterYDelta = resources.getDimension(R.dimen.taskbar_edu_tooltip_enter_y_delta)
+ private val exitYDelta = resources.getDimension(R.dimen.taskbar_edu_tooltip_exit_y_delta)
+
+ /** Container where the tooltip's body should be inflated. */
+ lateinit var content: ViewGroup
+ private set
+ private lateinit var arrow: View
+
+ /** Callback invoked when the tooltip is being closed. */
+ var onCloseCallback: () -> Unit = {}
+ private var openCloseAnimator: AnimatorSet? = null
+
+ /** Animates the tooltip into view. */
+ fun show() {
+ if (isOpen) {
+ return
+ }
+ mIsOpen = true
+ activityContext.dragLayer.addView(this)
+ openCloseAnimator = createOpenCloseAnimator(isOpening = true).apply { start() }
+ }
+
+ override fun onFinishInflate() {
+ super.onFinishInflate()
+
+ content = findViewById(R.id.content)
+ arrow = findViewById(R.id.arrow)
+ arrow.background =
+ RoundedArrowDrawable(
+ arrowWidth,
+ arrowHeight,
+ arrowPointRadius,
+ tooltipCornerRadius,
+ measuredWidth.toFloat(),
+ measuredHeight.toFloat(),
+ (measuredWidth - arrowWidth) / 2, // arrowOffsetX
+ 0f, // arrowOffsetY
+ false, // isPointingUp
+ true, // leftAligned
+ backgroundColor,
+ )
+ }
+
+ override fun handleClose(animate: Boolean) {
+ if (!isOpen) {
+ return
+ }
+
+ onCloseCallback()
+ if (!animate) {
+ return closeComplete()
+ }
+
+ openCloseAnimator?.cancel()
+ openCloseAnimator = createOpenCloseAnimator(isOpening = false)
+ openCloseAnimator?.addListener(AnimatorListeners.forEndCallback(this::closeComplete))
+ openCloseAnimator?.start()
+ }
+
+ override fun isOfType(type: Int): Boolean = type and TYPE_TASKBAR_EDUCATION_DIALOG != 0
+
+ override fun onControllerInterceptTouchEvent(ev: MotionEvent?): Boolean {
+ if (ev?.action == ACTION_DOWN && !activityContext.dragLayer.isEventOverView(this, ev)) {
+ close(true)
+ }
+ return false
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ Settings.Secure.putInt(mContext.contentResolver, LAUNCHER_TASKBAR_EDUCATION_SHOWING, 0)
+ }
+
+ private fun closeComplete() {
+ openCloseAnimator?.cancel()
+ openCloseAnimator = null
+ mIsOpen = false
+ activityContext.dragLayer.removeView(this)
+ }
+
+ private fun createOpenCloseAnimator(isOpening: Boolean): AnimatorSet {
+ val duration: Long
+ val alphaValues: FloatArray
+ val translateYValues: FloatArray
+ val fadeInterpolator: Interpolator
+ val translateYInterpolator: Interpolator
+
+ if (isOpening) {
+ duration = ENTER_DURATION_MS
+ alphaValues = floatArrayOf(0f, 1f)
+ translateYValues = floatArrayOf(enterYDelta, 0f)
+ fadeInterpolator = STANDARD
+ translateYInterpolator = EMPHASIZED_DECELERATE
+ } else {
+ duration = EXIT_DURATION_MS
+ alphaValues = floatArrayOf(1f, 0f)
+ translateYValues = floatArrayOf(0f, exitYDelta)
+ fadeInterpolator = EMPHASIZED_ACCELERATE
+ translateYInterpolator = EMPHASIZED_ACCELERATE
+ }
+
+ val fade =
+ ValueAnimator.ofFloat(*alphaValues).apply {
+ interpolator = fadeInterpolator
+ addUpdateListener {
+ val alpha = it.animatedValue as Float
+ content.alpha = alpha
+ arrow.alpha = alpha
+ }
+ }
+
+ val translateY =
+ ValueAnimator.ofFloat(*translateYValues).apply {
+ interpolator = translateYInterpolator
+ addUpdateListener {
+ val translationY = it.animatedValue as Float
+ content.translationY = translationY
+ arrow.translationY = translationY
+ }
+ }
+
+ return AnimatorSet().apply {
+ this.duration = duration
+ playTogether(fade, translateY)
+ }
+ }
+}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt
new file mode 100644
index 0000000..9de6ea8
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.taskbar
+
+import android.graphics.PorterDuff.Mode.SRC_ATOP
+import android.graphics.PorterDuffColorFilter
+import android.view.View
+import android.view.View.GONE
+import android.view.View.VISIBLE
+import android.view.ViewGroup
+import androidx.annotation.IntDef
+import androidx.annotation.LayoutRes
+import com.airbnb.lottie.LottieAnimationView
+import com.airbnb.lottie.LottieProperty.COLOR_FILTER
+import com.airbnb.lottie.model.KeyPath
+import com.android.launcher3.R
+import com.android.launcher3.Utilities
+import com.android.launcher3.Utilities.IS_RUNNING_IN_TEST_HARNESS
+import com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_EDU_TOOLTIP
+import com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_EDU_OPEN
+import com.android.launcher3.taskbar.TaskbarControllers.LoggableTaskbarController
+import com.android.launcher3.util.DisplayController
+import com.android.launcher3.util.OnboardingPrefs.TASKBAR_EDU_TOOLTIP_STEP
+import java.io.PrintWriter
+
+/** First EDU step for swiping up to show transient Taskbar. */
+const val TOOLTIP_STEP_SWIPE = 0
+/** Second EDU step for explaining Taskbar functionality when unstashed. */
+const val TOOLTIP_STEP_FEATURES = 1
+/**
+ * EDU is completed.
+ *
+ * This value should match the maximum count for [TASKBAR_EDU_TOOLTIP_STEP].
+ */
+const val TOOLTIP_STEP_NONE = 2
+
+/** Current step in the tooltip EDU flow. */
+@Retention(AnnotationRetention.SOURCE)
+@IntDef(TOOLTIP_STEP_SWIPE, TOOLTIP_STEP_FEATURES, TOOLTIP_STEP_NONE)
+annotation class TaskbarEduTooltipStep
+
+/** Controls stepping through the Taskbar tooltip EDU. */
+class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) :
+ LoggableTaskbarController {
+
+ private val isTooltipEnabled = !IS_RUNNING_IN_TEST_HARNESS && ENABLE_TASKBAR_EDU_TOOLTIP.get()
+ private val isOpen: Boolean
+ get() = tooltip?.isOpen ?: false
+
+ private lateinit var controllers: TaskbarControllers
+
+ @TaskbarEduTooltipStep
+ var tooltipStep: Int
+ get() {
+ return activityContext.onboardingPrefs?.getCount(TASKBAR_EDU_TOOLTIP_STEP)
+ ?: TOOLTIP_STEP_NONE
+ }
+ private set(step) {
+ activityContext.onboardingPrefs?.setEventCount(step, TASKBAR_EDU_TOOLTIP_STEP)
+ }
+
+ private var tooltip: TaskbarEduTooltip? = null
+
+ fun init(controllers: TaskbarControllers) {
+ this.controllers = controllers
+ }
+
+ /** Shows swipe EDU tooltip if it is the current [tooltipStep]. */
+ fun maybeShowSwipeEdu() {
+ if (
+ !isTooltipEnabled ||
+ !DisplayController.isTransientTaskbar(activityContext) ||
+ tooltipStep > TOOLTIP_STEP_SWIPE
+ ) {
+ return
+ }
+
+ tooltipStep = TOOLTIP_STEP_FEATURES
+ inflateTooltip(R.layout.taskbar_edu_swipe)
+ tooltip?.run {
+ findViewById<LottieAnimationView>(R.id.swipe_animation).supportLightTheme()
+ show()
+ }
+ }
+
+ /**
+ * Shows feature EDU tooltip if this step has not been seen.
+ *
+ * If [TOOLTIP_STEP_SWIPE] has not been seen at this point, the first step is skipped because a
+ * swipe up is necessary to show this step.
+ */
+ fun maybeShowFeaturesEdu() {
+ if (!isTooltipEnabled || tooltipStep > TOOLTIP_STEP_FEATURES) {
+ return
+ }
+
+ tooltipStep = TOOLTIP_STEP_NONE
+ inflateTooltip(R.layout.taskbar_edu_features)
+ tooltip?.run {
+ findViewById<LottieAnimationView>(R.id.splitscreen_animation).supportLightTheme()
+ findViewById<LottieAnimationView>(R.id.suggestions_animation).supportLightTheme()
+ findViewById<LottieAnimationView>(R.id.settings_animation).supportLightTheme()
+ findViewById<View>(R.id.settings_edu).visibility =
+ if (DisplayController.isTransientTaskbar(activityContext)) GONE else VISIBLE
+
+ findViewById<View>(R.id.done_button)?.setOnClickListener { hide() }
+ if (DisplayController.isTransientTaskbar(activityContext)) {
+ (layoutParams as ViewGroup.MarginLayoutParams).bottomMargin +=
+ activityContext.deviceProfile.taskbarSize
+ }
+ show()
+ }
+ }
+
+ /** Closes the current [tooltip]. */
+ fun hide() = tooltip?.close(true)
+
+ /** Initializes [tooltip] with content from [contentResId]. */
+ private fun inflateTooltip(@LayoutRes contentResId: Int) {
+ val overlayContext = controllers.taskbarOverlayController.requestWindow()
+ val tooltip =
+ overlayContext.layoutInflater.inflate(
+ R.layout.taskbar_edu_tooltip,
+ overlayContext.dragLayer,
+ false
+ ) as TaskbarEduTooltip
+
+ controllers.taskbarAutohideSuspendController.updateFlag(
+ FLAG_AUTOHIDE_SUSPEND_EDU_OPEN,
+ true
+ )
+ tooltip.onCloseCallback = {
+ this.tooltip = null
+ controllers.taskbarAutohideSuspendController.updateFlag(
+ FLAG_AUTOHIDE_SUSPEND_EDU_OPEN,
+ false
+ )
+ controllers.taskbarStashController.updateAndAnimateTransientTaskbar(true)
+ }
+
+ overlayContext.layoutInflater.inflate(contentResId, tooltip.content, true)
+ this.tooltip = tooltip
+ }
+
+ override fun dumpLogs(prefix: String?, pw: PrintWriter?) {
+ pw?.println(prefix + "TaskbarEduTooltipController:")
+ pw?.println("$prefix\tisTooltipEnabled=$isTooltipEnabled")
+ pw?.println("$prefix\tisOpen=$isOpen")
+ pw?.println("$prefix\ttooltipStep=$tooltipStep")
+ }
+}
+
+/**
+ * Maps colors in the dark-themed Lottie assets to their light-themed equivalents.
+ *
+ * For instance, `".blue100" to R.color.lottie_blue400` means objects that are material blue100 in
+ * dark theme should be changed to material blue400 in light theme.
+ */
+private val DARK_TO_LIGHT_COLORS =
+ mapOf(
+ ".blue100" to R.color.lottie_blue400,
+ ".blue400" to R.color.lottie_blue600,
+ ".green100" to R.color.lottie_green400,
+ ".green400" to R.color.lottie_green600,
+ ".grey300" to R.color.lottie_grey600,
+ ".grey400" to R.color.lottie_grey700,
+ ".grey800" to R.color.lottie_grey200,
+ ".red400" to R.color.lottie_red600,
+ ".yellow100" to R.color.lottie_yellow400,
+ ".yellow400" to R.color.lottie_yellow600,
+ )
+
+private fun LottieAnimationView.supportLightTheme() {
+ if (Utilities.isDarkTheme(context)) {
+ return
+ }
+
+ addLottieOnCompositionLoadedListener {
+ DARK_TO_LIGHT_COLORS.forEach { (key, color) ->
+ addValueCallback(KeyPath("**", key, "**"), COLOR_FILTER) {
+ PorterDuffColorFilter(context.getColor(color), SRC_ATOP)
+ }
+ }
+ }
+}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java
index 0808fab..93ba4eb 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java
@@ -10,12 +10,10 @@
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
import android.app.KeyguardManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import com.android.launcher3.AbstractFloatingView;
+import com.android.launcher3.util.ScreenOnTracker;
+import com.android.launcher3.util.ScreenOnTracker.ScreenOnListener;
import com.android.systemui.shared.system.QuickStepContract;
import java.io.PrintWriter;
@@ -30,6 +28,7 @@
SYSUI_STATE_OVERVIEW_DISABLED | SYSUI_STATE_HOME_DISABLED |
SYSUI_STATE_BACK_DISABLED | SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
+ private final ScreenOnListener mScreenOnListener;
private final TaskbarActivityContext mContext;
private int mKeyguardSysuiFlags;
private boolean mBouncerShowing;
@@ -37,22 +36,20 @@
private final KeyguardManager mKeyguardManager;
private boolean mIsScreenOff;
- private final BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- mIsScreenOff = true;
- AbstractFloatingView.closeOpenViews(mContext, false, TYPE_ALL);
- }
- };
-
public TaskbarKeyguardController(TaskbarActivityContext context) {
mContext = context;
+ mScreenOnListener = isOn -> {
+ if (!isOn) {
+ mIsScreenOff = true;
+ AbstractFloatingView.closeOpenViews(mContext, false, TYPE_ALL);
+ }
+ };
mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
}
public void init(NavbarButtonsViewController navbarButtonUIController) {
mNavbarButtonsViewController = navbarButtonUIController;
- mContext.registerReceiver(mScreenOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
+ ScreenOnTracker.INSTANCE.get(mContext).addListener(mScreenOnListener);
}
public void updateStateForSysuiFlags(int systemUiStateFlags) {
@@ -93,18 +90,13 @@
*/
private void updateIconsForBouncer() {
boolean disableBack = (mKeyguardSysuiFlags & SYSUI_STATE_BACK_DISABLED) != 0;
- boolean disableRecent = (mKeyguardSysuiFlags & SYSUI_STATE_OVERVIEW_DISABLED) != 0;
- boolean disableHome = (mKeyguardSysuiFlags & SYSUI_STATE_HOME_DISABLED) != 0;
- boolean onlyBackEnabled = !disableBack && disableRecent && disableHome;
-
- boolean showBackForBouncer = onlyBackEnabled &&
- mKeyguardManager.isDeviceSecure() &&
- mBouncerShowing;
+ boolean showBackForBouncer =
+ !disableBack && mKeyguardManager.isDeviceSecure() && mBouncerShowing;
mNavbarButtonsViewController.setBackForBouncer(showBackForBouncer);
}
public void onDestroy() {
- mContext.unregisterReceiver(mScreenOffReceiver);
+ ScreenOnTracker.INSTANCE.get(mContext).removeListener(mScreenOnListener);
}
@Override
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
index d9773d4..63e1b4a 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
@@ -125,7 +125,8 @@
mControllers.taskbarDragController.setDisallowLongClick(disallowLongClick);
mControllers.taskbarAllAppsController.setDisallowGlobalDrag(disallowGlobalDrag);
mControllers.taskbarAllAppsController.setDisallowLongClick(disallowLongClick);
- mControllers.taskbarPopupController.setHideSplitOptions(disallowGlobalDrag);
+ mControllers.taskbarPopupController.setAllowInitialSplitSelection(
+ disallowGlobalDrag);
}
};
@@ -160,6 +161,7 @@
mIconAlignment.finishAnimation();
+ Log.d("b/260135164", "onDestroy - updateIconAlphaForHome(1)");
mLauncher.getHotseat().setIconsAlpha(1f);
mLauncher.getStateManager().removeStateListener(mStateListener);
@@ -247,6 +249,9 @@
}
public Animator applyState(long duration, boolean start) {
+ if (mControllers.taskbarActivityContext.isDestroyed()) {
+ return null;
+ }
Animator animator = null;
if (mPrevState == null || mPrevState != mState) {
// If this is our initial state, treat all flags as changed.
@@ -410,6 +415,8 @@
public void onAnimationEnd(Animator animation) {
if (isInStashedState && committed) {
// Reset hotseat alpha to default
+ Log.d("b/260135164",
+ "playStateTransitionAnim#onAnimationEnd - setIconsAlpha(1)");
mLauncher.getHotseat().setIconsAlpha(1);
}
}
@@ -458,6 +465,9 @@
* Hide Launcher Hotseat icons when Taskbar icons have opacity. Both icon sets
* should not be visible at the same time.
*/
+ Log.d("b/260135164",
+ "updateIconAlphaForHome - setIconsAlpha(" + (hotseatVisible ? 1 : 0)
+ + "), isTaskbarPresent: " + mLauncher.getDeviceProfile().isTaskbarPresent);
mLauncher.getHotseat().setIconsAlpha(hotseatVisible ? 1 : 0);
mLauncher.getHotseat().setQsbAlpha(
mLauncher.getDeviceProfile().isQsbInline && !hotseatVisible ? 0 : 1);
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
index 98c45d5..a58906f 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
@@ -156,10 +156,14 @@
} else {
// Config change might be handled without re-creating the taskbar
if (mTaskbarActivityContext != null) {
- if (dp != null && isTaskbarPresent(dp)) {
- mTaskbarActivityContext.updateDeviceProfile(dp, mNavMode);
+ if (dp != null && !isTaskbarPresent(dp)) {
+ destroyExistingTaskbar();
+ } else {
+ if (dp != null && isTaskbarPresent(dp)) {
+ mTaskbarActivityContext.updateDeviceProfile(dp, mNavMode);
+ }
+ mTaskbarActivityContext.onConfigurationChanged(configDiff);
}
- mTaskbarActivityContext.onConfigurationChanged(configDiff);
}
}
mOldConfig = newConfig;
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java
index 9b27c9d..30d6eb4 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java
@@ -17,11 +17,9 @@
import static com.android.launcher3.util.SplitConfigurationOptions.getLogEventForPosition;
-import android.content.ClipDescription;
import android.content.Intent;
import android.content.pm.LauncherApps;
import android.graphics.Point;
-import android.os.Bundle;
import android.util.Pair;
import android.view.MotionEvent;
import android.view.View;
@@ -46,6 +44,7 @@
import com.android.launcher3.popup.PopupLiveUpdateHandler;
import com.android.launcher3.popup.SystemShortcut;
import com.android.launcher3.shortcuts.DeepShortcutView;
+import com.android.launcher3.splitscreen.SplitShortcut;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.LauncherBindableItemsContainer;
import com.android.launcher3.util.PackageUserKey;
@@ -75,7 +74,7 @@
// Initialized in init.
private TaskbarControllers mControllers;
- private boolean mHideSplitOptions;
+ private boolean mAllowInitialSplitSelection;
public TaskbarPopupController(TaskbarActivityContext context) {
mContext = context;
@@ -101,8 +100,8 @@
mPopupDataProvider.setDeepShortcutMap(deepShortcutMapCopy);
}
- public void setHideSplitOptions(boolean hideSplitOptions) {
- mHideSplitOptions = hideSplitOptions;
+ public void setAllowInitialSplitSelection(boolean allowInitialSplitSelection) {
+ mAllowInitialSplitSelection = allowInitialSplitSelection;
}
private void updateNotificationDots(Predicate<PackageUserKey> updatedDots) {
@@ -188,13 +187,9 @@
}
// Create a Stream of all applicable system shortcuts
- // TODO(b/227800345): Add "Split bottom" option when tablet is in portrait mode.
private Stream<SystemShortcut.Factory> getSystemShortcuts() {
// concat a Stream of split options with a Stream of APP_INFO
Stream<SystemShortcut.Factory> appInfo = Stream.of(APP_INFO);
- if (mHideSplitOptions) {
- return appInfo;
- }
return Stream.concat(
Utilities.getSplitPositionOptions(mContext.getDeviceProfile())
@@ -261,7 +256,7 @@
private SystemShortcut.Factory<BaseTaskbarContext> createSplitShortcutFactory(
SplitPositionOption position) {
return (context, itemInfo, originalView) -> new TaskbarSplitShortcut(context, itemInfo,
- originalView, position);
+ originalView, position, mAllowInitialSplitSelection);
}
/**
@@ -269,32 +264,43 @@
* from the taskbar, as if the user performed a drag and drop split.
* Includes an onClick method that initiates the actual split.
*/
- private static class TaskbarSplitShortcut extends SystemShortcut<BaseTaskbarContext> {
- private final SplitPositionOption mPosition;
+ private static class TaskbarSplitShortcut extends
+ SplitShortcut<BaseTaskbarContext> {
+ /**
+ * If {@code true}, clicking this shortcut will not attempt to start a split app directly,
+ * but be the first app in split selection mode
+ */
+ private final boolean mAllowInitialSplitSelection;
- TaskbarSplitShortcut(BaseTaskbarContext context, ItemInfo itemInfo, View originalView,
- SplitPositionOption position) {
- super(position.iconResId, position.textResId, context, itemInfo, originalView);
- mPosition = position;
- }
+ TaskbarSplitShortcut(BaseTaskbarContext context, ItemInfo itemInfo, View originalView,
+ SplitPositionOption position, boolean allowInitialSplitSelection) {
+ super(position.iconResId, position.textResId, context, itemInfo, originalView,
+ position);
+ mAllowInitialSplitSelection = allowInitialSplitSelection;
+ }
@Override
public void onClick(View view) {
+ AbstractFloatingView.closeAllOpenViews(mTarget);
+ if (mAllowInitialSplitSelection) {
+ super.onClick(view);
+ return;
+ }
+
// Initiate splitscreen from the in-app Taskbar or Taskbar All Apps
Pair<InstanceId, com.android.launcher3.logging.InstanceId> instanceIds =
LogUtils.getShellShareableInstanceId();
mTarget.getStatsLogManager().logger()
.withItemInfo(mItemInfo)
.withInstanceId(instanceIds.second)
- .log(getLogEventForPosition(mPosition.stagePosition));
+ .log(getLogEventForPosition(getPosition().stagePosition));
- AbstractFloatingView.closeAllOpenViews(mTarget);
if (mItemInfo.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
WorkspaceItemInfo workspaceItemInfo = (WorkspaceItemInfo) mItemInfo;
SystemUiProxy.INSTANCE.get(mTarget).startShortcut(
workspaceItemInfo.getIntent().getPackage(),
workspaceItemInfo.getDeepShortcutId(),
- mPosition.stagePosition,
+ getPosition().stagePosition,
null,
workspaceItemInfo.user,
instanceIds.first);
@@ -305,7 +311,7 @@
null,
mItemInfo.user),
new Intent(),
- mPosition.stagePosition,
+ getPosition().stagePosition,
null,
instanceIds.first);
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java
index 88767dd..5ea00cf 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java
@@ -67,7 +67,8 @@
final boolean manageMenuExpanded =
(stateFlags & SYSUI_STATE_BUBBLES_MANAGE_MENU_EXPANDED) != 0;
final boolean showScrim = !mControllers.navbarButtonsViewController.isImeVisible()
- && bubblesExpanded && mControllers.taskbarStashController.isInAppAndNotStashed();
+ && bubblesExpanded
+ && mControllers.taskbarStashController.isTaskbarVisibleAndNotStashing();
final float scrimAlpha = manageMenuExpanded
// When manage menu shows there's the first scrim and second scrim so figure out
// what the total transparency would be.
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
index 61d169f..ba7a910 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -35,8 +35,6 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
-import android.animation.ValueAnimator;
-import android.annotation.Nullable;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.util.Log;
@@ -45,6 +43,7 @@
import android.view.ViewConfiguration;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.internal.jank.InteractionJankMonitor;
@@ -115,7 +114,7 @@
/**
* The scale TaskbarView animates to when being stashed.
*/
- private static final float STASHED_TASKBAR_SCALE = 0.5f;
+ private static final float STASHED_TASKBAR_SCALE = 0.3f;
/**
* How long the hint animation plays, starting on motion down.
@@ -349,10 +348,10 @@
/**
- * Returns whether the taskbar is currently visible and in an app.
+ * Returns whether the taskbar is currently visible and not in the process of being stashed.
*/
- public boolean isInAppAndNotStashed() {
- return !mIsStashed && isInApp();
+ public boolean isTaskbarVisibleAndNotStashing() {
+ return !mIsStashed && mControllers.taskbarViewController.areIconsVisible();
}
public boolean isInApp() {
@@ -426,6 +425,11 @@
return;
}
+ if (stash && mControllers.taskbarAutohideSuspendController.isSuspended()) {
+ // Avoid stashing if autohide is currently suspended.
+ return;
+ }
+
if (hasAnyFlag(FLAG_STASHED_IN_APP_AUTO) != stash) {
updateStateForFlag(FLAG_STASHED_IN_APP_AUTO, stash);
applyState();
@@ -511,8 +515,7 @@
}
mAnimator = new AnimatorSet();
addJankMonitorListener(mAnimator, /* appearing= */ !mIsStashed);
- final float stashTranslation = isPhoneMode() ? 0 :
- (mUnstashedHeight - mStashedHeight) / 2f;
+ final float stashTranslation = isPhoneMode() ? 0 : (mUnstashedHeight - mStashedHeight);
if (!supportsVisualStashing()) {
// Just hide/show the icons and background instead of stashing into a handle.
@@ -691,15 +694,26 @@
}
public void applyState(long duration) {
- createApplyStateAnimator(duration).start();
+ Animator animator = createApplyStateAnimator(duration);
+ if (animator != null) {
+ animator.start();
+ }
}
public void applyState(long duration, long startDelay) {
Animator animator = createApplyStateAnimator(duration);
- animator.setStartDelay(startDelay);
- animator.start();
+ if (animator != null) {
+ animator.setStartDelay(startDelay);
+ animator.start();
+ }
}
+
+ /**
+ * Returns an animator which applies the latest state if mIsStashed is changed, or {@code null}
+ * otherwise.
+ */
+ @Nullable
public Animator createApplyStateAnimator(long duration) {
return mStatePropertyHolder.createSetStateAnimator(mState, duration);
}
@@ -940,9 +954,9 @@
* creating a new animation (stored in mAnimator).
* @param flags The latest flags to apply (see the top of this file).
* @param duration The length of the animation.
- * @return mAnimator if mIsStashed changed or an empty animator.
+ * @return mAnimator if mIsStashed changed, or {@code null} otherwise.
*/
- @NonNull
+ @Nullable
public Animator createSetStateAnimator(int flags, long duration) {
int changedFlags = mPrevFlags ^ flags;
if (mPrevFlags != flags) {
@@ -971,7 +985,7 @@
createAnimToIsStashed(mIsStashed, duration, /* animateBg= */ true, changedFlags);
return mAnimator;
}
- return ValueAnimator.ofFloat(0, 1).setDuration(duration);
+ return null;
}
}
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarTranslationController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarTranslationController.java
index 5dba444..80f030f 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarTranslationController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarTranslationController.java
@@ -109,8 +109,12 @@
.setStiffness(SpringForce.STIFFNESS_LOW)
.build(mTranslationYForSwipe, VALUE);
mSpringBounce.addListener(forEndCallback(() -> {
- if (mGestureEnded) {
- reset();
+ if (!mGestureEnded) {
+ return;
+ }
+ reset();
+ if (mControllers.taskbarStashController.isTaskbarVisibleAndNotStashing()) {
+ mControllers.taskbarEduTooltipController.maybeShowFeaturesEdu();
}
}));
mSpringBounce.start();
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
index ebb37a8..87fa6f3 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
@@ -15,6 +15,8 @@
*/
package com.android.launcher3.taskbar;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+
import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.view.MotionEvent;
@@ -26,8 +28,10 @@
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;
import com.android.launcher3.util.DisplayController;
+import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
+import com.android.quickstep.views.TaskView.TaskIdAttributeContainer;
import com.android.systemui.shared.recents.model.Task;
import java.io.PrintWriter;
@@ -165,6 +169,23 @@
return null;
}
+ public void startSplitSelection(SplitConfigurationOptions.SplitSelectSource splitSelectSource) {
+ RecentsView recentsView = getRecentsView();
+ if (recentsView == null) {
+ return;
+ }
+ recentsView.findLastActiveTaskAndRunCallback(
+ splitSelectSource.intent.getComponent(),
+ (Consumer<Task>) foundTask -> {
+ splitSelectSource.alreadyRunningTaskId = foundTask == null
+ ? INVALID_TASK_ID
+ : foundTask.key.id;
+ splitSelectSource.animateCurrentTaskDismissal = foundTask != null;
+ recentsView.initiateSplitSelect(splitSelectSource);
+ }
+ );
+ }
+
/**
* Uses the clicked Taskbar icon to launch a second app for splitscreen.
*/
@@ -175,24 +196,36 @@
(Consumer<Task>) foundTask -> {
if (foundTask != null) {
TaskView foundTaskView = recents.getTaskViewByTaskId(foundTask.key.id);
- // There is already a running app of this type, use that as second app.
- recents.confirmSplitSelect(
- foundTaskView,
- foundTaskView.getTask(),
- foundTaskView.getIconView().getDrawable(),
- foundTaskView.getThumbnail(),
- foundTaskView.getThumbnail().getThumbnail(),
- null /* intent */);
- } else {
- // No running app of that type, create a new instance as second app.
- recents.confirmSplitSelect(
- null /* containerTaskView */,
- null /* task */,
- new BitmapDrawable(info.bitmap.icon),
- startingView,
- null /* thumbnail */,
- intent);
+ // TODO (b/266482558): This additional null check is needed because there
+ // are times when our Tasks list doesn't match our TaskViews list (like when
+ // a tile is removed during {@link RecentsView#applyLoadPlan()}. A clearer
+ // state management system is in the works so that we don't need to rely on
+ // null checks as much. See comments at ag/21152798.
+ if (foundTaskView != null) {
+ // There is already a running app of this type, use that as second app.
+ // Get index of task (0 or 1), in case it's a GroupedTaskView
+ int indexOfTask = foundTaskView.getIndexOfTask(foundTask.key.id);
+ TaskIdAttributeContainer taskAttributes =
+ foundTaskView.getTaskIdAttributeContainers()[indexOfTask];
+ recents.confirmSplitSelect(
+ foundTaskView,
+ taskAttributes.getTask(),
+ taskAttributes.getIconView().getDrawable(),
+ taskAttributes.getThumbnailView(),
+ taskAttributes.getThumbnailView().getThumbnail(),
+ null /* intent */);
+ return;
+ }
}
+
+ // No running app of that type, create a new instance as second app.
+ recents.confirmSplitSelect(
+ null /* containerTaskView */,
+ null /* task */,
+ new BitmapDrawable(info.bitmap.icon),
+ startingView,
+ null /* thumbnail */,
+ intent);
}
);
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
index 2fcd64b..38351a9 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
@@ -15,8 +15,9 @@
*/
package com.android.launcher3.taskbar;
+import static android.content.pm.PackageManager.FEATURE_PC;
+
import android.content.Context;
-import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -46,6 +47,7 @@
import com.android.launcher3.util.LauncherBindableItemsContainer;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.DoubleShadowBubbleTextView;
+import com.android.launcher3.views.IconButtonView;
import java.util.function.Predicate;
@@ -79,7 +81,10 @@
private @Nullable FolderIcon mLeaveBehindFolderIcon;
// Only non-null when device supports having an All Apps button.
- private @Nullable View mAllAppsButton;
+ private @Nullable IconButtonView mAllAppsButton;
+
+ // Only non-null when device supports having an All Apps button.
+ private @Nullable View mTaskbarDivider;
private View mQsb;
@@ -119,13 +124,20 @@
mThemeIconsBackground = calculateThemeIconsBackground();
- if (FeatureFlags.ENABLE_ALL_APPS_IN_TASKBAR.get()) {
- mAllAppsButton = LayoutInflater.from(context)
+ if (FeatureFlags.ENABLE_ALL_APPS_IN_TASKBAR.get()
+ && !mActivityContext.getPackageManager().hasSystemFeature(FEATURE_PC)) {
+ mAllAppsButton = (IconButtonView) LayoutInflater.from(context)
.inflate(R.layout.taskbar_all_apps_button, this, false);
mAllAppsButton.setPadding(mItemPadding, mItemPadding, mItemPadding, mItemPadding);
mAllAppsButton.setScaleX(mIsRtl ? -1 : 1);
- if (mActivityContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_PC)) {
- mAllAppsButton.setVisibility(GONE);
+ mAllAppsButton.setForegroundTint(mActivityContext.getColor(
+ DisplayController.isTransientTaskbar(mActivityContext)
+ ? R.color.all_apps_button_color
+ : R.color.all_apps_button_color_dark));
+
+ if (FeatureFlags.ENABLE_TASKBAR_PINNING.get()) {
+ mTaskbarDivider = LayoutInflater.from(context).inflate(R.layout.taskbar_divider,
+ this, false);
}
}
@@ -159,6 +171,9 @@
if (mAllAppsButton != null) {
mAllAppsButton.setOnClickListener(mControllerCallbacks.getAllAppsButtonClickListener());
}
+ if (mTaskbarDivider != null) {
+ //TODO(b/265434705): set long press listener
+ }
}
private void removeAndRecycle(View view) {
@@ -180,6 +195,10 @@
if (mAllAppsButton != null) {
removeView(mAllAppsButton);
+
+ if (mTaskbarDivider != null) {
+ removeView(mTaskbarDivider);
+ }
}
removeView(mQsb);
@@ -256,8 +275,11 @@
}
if (mAllAppsButton != null) {
- int index = mIsRtl ? getChildCount() : 0;
- addView(mAllAppsButton, index);
+ addView(mAllAppsButton, mIsRtl ? getChildCount() : 0);
+
+ if (mTaskbarDivider != null) {
+ addView(mTaskbarDivider, mIsRtl ? (getChildCount() - 1) : 1);
+ }
}
if (mActivityContext.getDeviceProfile().isQsbInline) {
addView(mQsb, mIsRtl ? getChildCount() : 0);
@@ -328,6 +350,11 @@
int qsbTop = (bottom - top - deviceProfile.hotseatQsbHeight) / 2;
int qsbBottom = qsbTop + deviceProfile.hotseatQsbHeight;
child.layout(qsbStart, qsbTop, qsbEnd, qsbBottom);
+ } else if (child == mTaskbarDivider) {
+ iconEnd += mItemMarginLeftRight;
+ int iconStart = iconEnd - mIconTouchSize;
+ child.layout(iconStart, mIconLayoutBounds.top, iconEnd, mIconLayoutBounds.bottom);
+ iconEnd = iconStart + mItemMarginLeftRight;
} else {
iconEnd -= mItemMarginLeftRight;
int iconStart = iconEnd - mIconTouchSize;
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
index 168c353..69f79ba 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
@@ -79,9 +79,8 @@
public static final int ALPHA_INDEX_RECENTS_DISABLED = 3;
public static final int ALPHA_INDEX_NOTIFICATION_EXPANDED = 4;
public static final int ALPHA_INDEX_ASSISTANT_INVOKED = 5;
- public static final int ALPHA_INDEX_IME_BUTTON_NAV = 6;
- public static final int ALPHA_INDEX_SMALL_SCREEN = 7;
- private static final int NUM_ALPHA_CHANNELS = 8;
+ public static final int ALPHA_INDEX_SMALL_SCREEN = 6;
+ private static final int NUM_ALPHA_CHANNELS = 7;
private final TaskbarActivityContext mActivity;
private final TaskbarView mTaskbarView;
@@ -201,14 +200,6 @@
}
/**
- * Should be called when the IME switcher visibility changes.
- */
- public void setIsImeSwitcherVisible(boolean isImeSwitcherVisible) {
- mTaskbarIconAlpha.get(ALPHA_INDEX_IME_BUTTON_NAV).setValue(
- isImeSwitcherVisible ? 0 : 1);
- }
-
- /**
* Should be called when the recents button is disabled, so we can hide taskbar icons as well.
*/
public void setRecentsButtonDisabled(boolean isDisabled) {
diff --git a/quickstep/src/com/android/launcher3/taskbar/VoiceInteractionWindowController.kt b/quickstep/src/com/android/launcher3/taskbar/VoiceInteractionWindowController.kt
index be34fb1..7a5deb7 100644
--- a/quickstep/src/com/android/launcher3/taskbar/VoiceInteractionWindowController.kt
+++ b/quickstep/src/com/android/launcher3/taskbar/VoiceInteractionWindowController.kt
@@ -1,31 +1,70 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.launcher3.taskbar
+import android.animation.AnimatorSet
import android.graphics.Canvas
+import android.view.View
+import android.view.ViewTreeObserver
+import android.view.ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION
import android.view.WindowManager
import android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
+import com.android.launcher3.util.DisplayController
import com.android.launcher3.views.BaseDragLayer
import com.android.systemui.animation.ViewRootSync
import java.io.PrintWriter
private const val TASKBAR_ICONS_FADE_DURATION = 300L
private const val STASHED_HANDLE_FADE_DURATION = 180L
+private const val TEMP_BACKGROUND_WINDOW_TITLE = "VoiceInteractionTaskbarBackground"
-/** Controls Taskbar behavior while Voice Interaction Window (assistant) is showing. */
+/**
+ * Controls Taskbar behavior while Voice Interaction Window (assistant) is showing. Specifically:
+ * - We always hide the taskbar icons or stashed handle, whichever is currently showing.
+ * - For persistent taskbar, we also move the taskbar background to a new window/layer
+ * (TYPE_APPLICATION_OVERLAY) which is behind the assistant.
+ * - For transient taskbar, we hide the real taskbar background (if it's showing).
+ */
class VoiceInteractionWindowController(val context: TaskbarActivityContext) :
TaskbarControllers.LoggableTaskbarController, TaskbarControllers.BackgroundRendererController {
+ private val isSeparateBackgroundEnabled = !DisplayController.isTransientTaskbar(context)
private val taskbarBackgroundRenderer = TaskbarBackgroundRenderer(context)
+ private val nonTouchableInsetsComputer =
+ ViewTreeObserver.OnComputeInternalInsetsListener {
+ it.touchableRegion.setEmpty()
+ it.setTouchableInsets(TOUCHABLE_INSETS_REGION)
+ }
// Initialized in init.
private lateinit var controllers: TaskbarControllers
- private lateinit var separateWindowForTaskbarBackground: BaseDragLayer<TaskbarActivityContext>
- private lateinit var separateWindowLayoutParams: WindowManager.LayoutParams
+ // Only initialized if isSeparateBackgroundEnabled
+ private var separateWindowForTaskbarBackground: BaseDragLayer<TaskbarActivityContext>? = null
+ private var separateWindowLayoutParams: WindowManager.LayoutParams? = null
private var isVoiceInteractionWindowVisible: Boolean = false
+ private var pendingAttachedToWindowListener: View.OnAttachStateChangeListener? = null
fun init(controllers: TaskbarControllers) {
this.controllers = controllers
+ if (!isSeparateBackgroundEnabled) {
+ return
+ }
+
separateWindowForTaskbarBackground =
object : BaseDragLayer<TaskbarActivityContext>(context, null, 0) {
override fun recreateControllers() {
@@ -34,24 +73,39 @@
override fun draw(canvas: Canvas) {
super.draw(canvas)
- if (
- this@VoiceInteractionWindowController.context.isGestureNav &&
- controllers.taskbarStashController.isInAppAndNotStashed
- ) {
+ if (controllers.taskbarStashController.isTaskbarVisibleAndNotStashing) {
taskbarBackgroundRenderer.draw(canvas)
}
}
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ viewTreeObserver.addOnComputeInternalInsetsListener(nonTouchableInsetsComputer)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ viewTreeObserver.removeOnComputeInternalInsetsListener(
+ nonTouchableInsetsComputer
+ )
+ }
}
- separateWindowForTaskbarBackground.recreateControllers()
- separateWindowForTaskbarBackground.setWillNotDraw(false)
+ separateWindowForTaskbarBackground?.recreateControllers()
+ separateWindowForTaskbarBackground?.setWillNotDraw(false)
separateWindowLayoutParams =
- context.createDefaultWindowLayoutParams(TYPE_APPLICATION_OVERLAY)
- separateWindowLayoutParams.isSystemApplicationOverlay = true
+ context.createDefaultWindowLayoutParams(
+ TYPE_APPLICATION_OVERLAY,
+ TEMP_BACKGROUND_WINDOW_TITLE
+ )
+ separateWindowLayoutParams?.isSystemApplicationOverlay = true
}
fun onDestroy() {
setIsVoiceInteractionWindowVisible(visible = false, skipAnim = true)
+ separateWindowForTaskbarBackground?.removeOnAttachStateChangeListener(
+ pendingAttachedToWindowListener
+ )
}
fun setIsVoiceInteractionWindowVisible(visible: Boolean, skipAnim: Boolean) {
@@ -72,14 +126,24 @@
.get(StashedHandleViewController.ALPHA_INDEX_ASSISTANT_INVOKED)
.animateToValue(taskbarIconAlpha)
.setDuration(STASHED_HANDLE_FADE_DURATION)
- fadeTaskbarIcons.start()
- fadeStashedHandle.start()
+ val animSet = AnimatorSet()
+ animSet.play(fadeTaskbarIcons)
+ animSet.play(fadeStashedHandle)
+ if (!isSeparateBackgroundEnabled) {
+ val fadeTaskbarBackground =
+ controllers.taskbarDragLayerController.assistantBgTaskbar
+ .animateToValue(taskbarIconAlpha)
+ .setDuration(TASKBAR_ICONS_FADE_DURATION)
+ animSet.play(fadeTaskbarBackground)
+ }
+ animSet.start()
if (skipAnim) {
- fadeTaskbarIcons.end()
- fadeStashedHandle.end()
+ animSet.end()
}
- moveTaskbarBackgroundToAppropriateLayer(skipAnim)
+ if (isSeparateBackgroundEnabled) {
+ moveTaskbarBackgroundToAppropriateLayer(skipAnim)
+ }
}
/**
@@ -92,8 +156,6 @@
* Removes the temporary window and show the TaskbarDragLayer background again.
*/
private fun moveTaskbarBackgroundToAppropriateLayer(skipAnim: Boolean) {
- val taskbarBackgroundOverride =
- controllers.taskbarDragLayerController.overrideBackgroundAlpha
val moveToLowerLayer = isVoiceInteractionWindowVisible
val onWindowsSynchronized =
if (moveToLowerLayer) {
@@ -102,31 +164,60 @@
separateWindowForTaskbarBackground,
separateWindowLayoutParams
);
- { taskbarBackgroundOverride.updateValue(0f) }
+ { controllers.taskbarDragLayerController.setIsBackgroundDrawnElsewhere(true) }
} else {
// First reapply the original taskbar background, then remove the temporary window.
- taskbarBackgroundOverride.updateValue(1f);
+ controllers.taskbarDragLayerController.setIsBackgroundDrawnElsewhere(false);
{ context.removeWindowView(separateWindowForTaskbarBackground) }
}
if (skipAnim) {
onWindowsSynchronized()
} else {
- ViewRootSync.synchronizeNextDraw(
- separateWindowForTaskbarBackground,
- context.dragLayer,
- onWindowsSynchronized
- )
+ separateWindowForTaskbarBackground?.runWhenAttachedToWindow {
+ ViewRootSync.synchronizeNextDraw(
+ separateWindowForTaskbarBackground!!,
+ context.dragLayer,
+ onWindowsSynchronized
+ )
+ }
}
}
+ private fun View.runWhenAttachedToWindow(onAttachedToWindow: () -> Unit) {
+ if (isAttachedToWindow) {
+ onAttachedToWindow()
+ return
+ }
+ removeOnAttachStateChangeListener(pendingAttachedToWindowListener)
+ pendingAttachedToWindowListener =
+ object : View.OnAttachStateChangeListener {
+ override fun onViewAttachedToWindow(v: View?) {
+ onAttachedToWindow()
+ removeOnAttachStateChangeListener(this)
+ pendingAttachedToWindowListener = null
+ }
+
+ override fun onViewDetachedFromWindow(v: View?) {}
+ }
+ addOnAttachStateChangeListener(pendingAttachedToWindowListener)
+ }
+
override fun setCornerRoundness(cornerRoundness: Float) {
+ if (!isSeparateBackgroundEnabled) {
+ return
+ }
taskbarBackgroundRenderer.setCornerRoundness(cornerRoundness)
- separateWindowForTaskbarBackground.invalidate()
+ separateWindowForTaskbarBackground?.invalidate()
}
override fun dumpLogs(prefix: String, pw: PrintWriter) {
pw.println(prefix + "VoiceInteractionWindowController:")
+ pw.println("$prefix\tisSeparateBackgroundEnabled=$isSeparateBackgroundEnabled")
pw.println("$prefix\tisVoiceInteractionWindowVisible=$isVoiceInteractionWindowVisible")
+ pw.println(
+ "$prefix\tisSeparateTaskbarBackgroundAttachedToWindow=" +
+ "${separateWindowForTaskbarBackground?.isAttachedToWindow}"
+ )
}
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayContext.java b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayContext.java
index 38b6dfd..3edb375 100644
--- a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayContext.java
@@ -15,11 +15,12 @@
*/
package com.android.launcher3.taskbar.overlay;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+
import android.content.Context;
import android.view.View;
import com.android.launcher3.DeviceProfile;
-import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.R;
import com.android.launcher3.dot.DotInfo;
import com.android.launcher3.model.data.ItemInfo;
@@ -29,8 +30,13 @@
import com.android.launcher3.taskbar.TaskbarControllers;
import com.android.launcher3.taskbar.TaskbarDragController;
import com.android.launcher3.taskbar.TaskbarStashController;
+import com.android.launcher3.taskbar.TaskbarUIController;
import com.android.launcher3.taskbar.allapps.TaskbarAllAppsContainerView;
-import com.android.launcher3.util.OnboardingPrefs;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
+import com.android.quickstep.views.RecentsView;
+import com.android.systemui.shared.recents.model.Task;
+
+import java.util.function.Consumer;
/**
* Window context for the taskbar overlays such as All Apps and EDU.
@@ -40,7 +46,6 @@
*/
public class TaskbarOverlayContext extends BaseTaskbarContext {
private final TaskbarActivityContext mTaskbarContext;
- private final OnboardingPrefs<TaskbarOverlayContext> mOnboardingPrefs;
private final TaskbarOverlayController mOverlayController;
private final TaskbarDragController mDragController;
@@ -49,6 +54,7 @@
// We automatically stash taskbar when All Apps is opened in gesture navigation mode.
private final boolean mWillTaskbarBeVisuallyStashed;
private final int mStashedTaskbarHeight;
+ private final TaskbarUIController mUiController;
public TaskbarOverlayContext(
Context windowContext,
@@ -59,12 +65,13 @@
mOverlayController = controllers.taskbarOverlayController;
mDragController = new TaskbarDragController(this);
mDragController.init(controllers);
- mOnboardingPrefs = new OnboardingPrefs<>(this, LauncherPrefs.getPrefs(this));
mDragLayer = new TaskbarOverlayDragLayer(this);
TaskbarStashController taskbarStashController = controllers.taskbarStashController;
mWillTaskbarBeVisuallyStashed = taskbarStashController.supportsVisualStashing();
mStashedTaskbarHeight = taskbarStashController.getStashedHeight();
+
+ mUiController = controllers.uiController;
}
boolean willTaskbarBeVisuallyStashed() {
@@ -100,11 +107,6 @@
}
@Override
- public OnboardingPrefs<TaskbarOverlayContext> getOnboardingPrefs() {
- return mOnboardingPrefs;
- }
-
- @Override
public boolean isBindingItems() {
return mTaskbarContext.isBindingItems();
}
@@ -120,6 +122,11 @@
}
@Override
+ public void startSplitSelection(SplitSelectSource splitSelectSource) {
+ mUiController.startSplitSelection(splitSelectSource);
+ }
+
+ @Override
public DotInfo getDotInfoForItem(ItemInfo info) {
return mTaskbarContext.getDotInfoForItem(info);
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayDragLayer.java b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayDragLayer.java
index 044afd6..d91b650 100644
--- a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayDragLayer.java
+++ b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayDragLayer.java
@@ -71,7 +71,8 @@
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == ACTION_UP && event.getKeyCode() == KEYCODE_BACK) {
AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(mActivity);
- if (topView != null && topView.onBackPressed()) {
+ if (topView != null && topView.canHandleBack()) {
+ topView.onBackInvoked();
return true;
}
}
diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
index 078865f..5537878 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
@@ -15,6 +15,7 @@
*/
package com.android.launcher3.uioverrides;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.os.Trace.TRACE_TAG_APP;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPTIMIZE_MEASURE;
import static android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED;
@@ -32,6 +33,7 @@
import static com.android.launcher3.anim.Interpolators.EMPHASIZED;
import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent;
import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE;
import static com.android.launcher3.config.FeatureFlags.ENABLE_WIDGET_PICKER_DEPTH;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_LAUNCH_TAP;
import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID;
@@ -46,8 +48,11 @@
import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN;
import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
+import static com.android.quickstep.util.SplitAnimationTimings.TABLET_HOME_TO_SPLIT;
import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_HOME_KEY;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.app.ActivityManager;
@@ -57,6 +62,8 @@
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.graphics.RectF;
import android.hardware.SensorManager;
import android.hardware.devicestate.DeviceStateManager;
import android.media.permission.SafeCloseable;
@@ -79,11 +86,13 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.android.app.viewcapture.ViewCapture;
+import com.android.app.viewcapture.SettingsAwareViewCapture;
+import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.LauncherState;
+import com.android.launcher3.OnBackPressedHandler;
import com.android.launcher3.QuickstepAccessibilityDelegate;
import com.android.launcher3.QuickstepTransitionManager;
import com.android.launcher3.R;
@@ -91,6 +100,7 @@
import com.android.launcher3.Workspace;
import com.android.launcher3.accessibility.LauncherAccessibilityDelegate;
import com.android.launcher3.anim.AnimatorPlaybackController;
+import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.appprediction.PredictionRowView;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DragOptions;
@@ -132,6 +142,7 @@
import com.android.launcher3.util.PendingSplitSelectInfo;
import com.android.launcher3.util.RunnableList;
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.launcher3.util.TouchController;
import com.android.launcher3.widget.LauncherWidgetHolder;
import com.android.quickstep.OverviewCommandHelper;
@@ -149,9 +160,11 @@
import com.android.quickstep.util.SplitWithKeyboardShortcutController;
import com.android.quickstep.util.TISBindHelper;
import com.android.quickstep.views.DesktopTaskView;
+import com.android.quickstep.views.FloatingTaskView;
import com.android.quickstep.views.OverviewActionsView;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
+import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.unfold.UnfoldSharedComponent;
import com.android.systemui.unfold.UnfoldTransitionFactory;
@@ -167,6 +180,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Stream;
@@ -361,7 +375,7 @@
Stream<SystemShortcut.Factory> base = Stream.of(WellbeingModel.SHORTCUT_FACTORY);
if (ENABLE_SPLIT_FROM_WORKSPACE.get() && mDeviceProfile.isTablet) {
RecentsView recentsView = getOverviewPanel();
- // TODO: Pull it out of PagedOrentationHandler for split from workspace.
+ // TODO(b/266482558): Pull it out of PagedOrentationHandler for split from workspace.
List<SplitPositionOption> positions =
recentsView.getPagedOrientationHandler().getSplitPositionOptions(
mDeviceProfile);
@@ -542,12 +556,70 @@
addMultiWindowModeChangedListener(mDepthController);
initUnfoldTransitionProgressProvider();
if (FeatureFlags.CONTINUOUS_VIEW_TREE_CAPTURE.get()) {
- mViewCapture = ViewCapture.getInstance().startCapture(getWindow());
+ mViewCapture = SettingsAwareViewCapture.getInstance(this).startCapture(getWindow());
}
getWindow().addPrivateFlags(PRIVATE_FLAG_OPTIMIZE_MEASURE);
}
@Override
+ public void startSplitSelection(SplitSelectSource splitSelectSource) {
+ RecentsView recentsView = getOverviewPanel();
+ // Check if there is already an instance of this app running, if so, initiate the split
+ // using that.
+ recentsView.findLastActiveTaskAndRunCallback(
+ splitSelectSource.intent.getComponent(),
+ (Consumer<Task>) foundTask -> {
+ splitSelectSource.alreadyRunningTaskId = foundTask == null
+ ? INVALID_TASK_ID
+ : foundTask.key.id;
+ if (ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE.get()) {
+ startSplitToHome(splitSelectSource);
+ } else {
+ recentsView.initiateSplitSelect(splitSelectSource);
+ }
+ }
+ );
+ }
+
+ /** TODO(b/266482558) Migrate into SplitSelectStateController or someplace split specific. */
+ private void startSplitToHome(
+ SplitSelectSource source) {
+ AbstractFloatingView.closeAllOpenViews(this);
+ int splitPlaceholderSize = getResources().getDimensionPixelSize(
+ R.dimen.split_placeholder_size);
+ int splitPlaceholderInset = getResources().getDimensionPixelSize(
+ R.dimen.split_placeholder_inset);
+ Rect tempRect = new Rect();
+
+ SplitSelectStateController controller = getSplitSelectStateController();
+ controller.setInitialTaskSelect(source.intent, source.position.stagePosition,
+ source.itemInfo, source.splitEvent, source.alreadyRunningTaskId);
+
+ RecentsView recentsView = getOverviewPanel();
+ recentsView.getPagedOrientationHandler().getInitialSplitPlaceholderBounds(
+ splitPlaceholderSize, splitPlaceholderInset, getDeviceProfile(),
+ controller.getActiveSplitStagePosition(), tempRect);
+
+ PendingAnimation anim = new PendingAnimation(TABLET_HOME_TO_SPLIT.getDuration());
+ RectF startingTaskRect = new RectF();
+ final FloatingTaskView floatingTaskView = FloatingTaskView.getFloatingTaskView(this,
+ source.view, null /* thumbnail */, source.drawable, startingTaskRect);
+ floatingTaskView.setAlpha(1);
+ floatingTaskView.addStagingAnimation(anim, startingTaskRect, tempRect,
+ false /* fadeWithThumbnail */, true /* isStagedTask */);
+ controller.setFirstFloatingTaskView(floatingTaskView);
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ getDragLayer().removeView(floatingTaskView);
+ controller.resetState();
+ }
+ });
+ anim.buildAnim().start();
+ }
+
+
+ @Override
protected void onResume() {
super.onResume();
@@ -609,10 +681,12 @@
}
@Override
- protected void onScreenOff() {
- super.onScreenOff();
- RecentsView recentsView = getOverviewPanel();
- recentsView.finishRecentsAnimation(true /* toRecents */, null);
+ protected void onScreenOnChanged(boolean isOn) {
+ super.onScreenOnChanged(isOn);
+ if (!isOn) {
+ RecentsView recentsView = getOverviewPanel();
+ recentsView.finishRecentsAnimation(true /* toRecents */, null);
+ }
}
@Override
@@ -636,20 +710,49 @@
getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
OnBackInvokedDispatcher.PRIORITY_DEFAULT,
new OnBackAnimationCallback() {
+
+ @Nullable OnBackPressedHandler mActiveOnBackPressedHandler;
+
+ @Override
+ public void onBackStarted(@NonNull BackEvent backEvent) {
+ if (mActiveOnBackPressedHandler != null) {
+ mActiveOnBackPressedHandler.onBackCancelled();
+ }
+ mActiveOnBackPressedHandler = getOnBackPressedHandler();
+ mActiveOnBackPressedHandler.onBackStarted();
+ }
+
@Override
public void onBackInvoked() {
- onBackPressed();
+ // Recreate mActiveOnBackPressedHandler if necessary to avoid NPE because:
+ // 1. b/260636433: In 3-button-navigation mode, onBackStarted() is not
+ // called on ACTION_DOWN before onBackInvoked() is called in ACTION_UP.
+ // 2. Launcher#onBackPressed() will call onBackInvoked() without calling
+ // onBackInvoked() beforehand.
+ if (mActiveOnBackPressedHandler == null) {
+ mActiveOnBackPressedHandler = getOnBackPressedHandler();
+ }
+ mActiveOnBackPressedHandler.onBackInvoked();
+ mActiveOnBackPressedHandler = null;
TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "onBackInvoked");
}
@Override
public void onBackProgressed(@NonNull BackEvent backEvent) {
- QuickstepLauncher.this.onBackProgressed(backEvent.getProgress());
+ if (!FeatureFlags.IS_STUDIO_BUILD && mActiveOnBackPressedHandler == null) {
+ return;
+ }
+ mActiveOnBackPressedHandler
+ .onBackProgressed(backEvent.getProgress());
}
@Override
public void onBackCancelled() {
- QuickstepLauncher.this.onBackCancelled();
+ if (!FeatureFlags.IS_STUDIO_BUILD && mActiveOnBackPressedHandler == null) {
+ return;
+ }
+ mActiveOnBackPressedHandler.onBackCancelled();
+ mActiveOnBackPressedHandler = null;
}
});
}
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 14b01fe..1b29a83 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -127,6 +127,7 @@
import com.android.quickstep.util.SurfaceTransactionApplier;
import com.android.quickstep.util.SwipePipToHomeAnimator;
import com.android.quickstep.util.TaskViewSimulator;
+import com.android.quickstep.views.DesktopTaskView;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.Task;
@@ -878,7 +879,11 @@
public void onRecentsAnimationStart(RecentsAnimationController controller,
RecentsAnimationTargets targets) {
super.onRecentsAnimationStart(controller, targets);
- mRemoteTargetHandles = mTargetGluer.assignTargetsForSplitScreen(mContext, targets);
+ if (DesktopTaskView.DESKTOP_MODE_SUPPORTED && targets.hasDesktopTasks()) {
+ mRemoteTargetHandles = mTargetGluer.assignTargetsForDesktop(targets);
+ } else {
+ mRemoteTargetHandles = mTargetGluer.assignTargetsForSplitScreen(mContext, targets);
+ }
mRecentsAnimationController = controller;
mRecentsAnimationTargets = targets;
mSwipePipToHomeReleaseCheck = new RemoteAnimationTargets.ReleaseCheck();
@@ -1278,6 +1283,9 @@
if (mRecentsAnimationController != null) {
mRecentsAnimationController.detachNavigationBarFromApp(true);
}
+ if (mIsTransientTaskbar) {
+ setDividerShown(false /* shown */, true /* immediate */);
+ }
} else if (endTarget == RECENTS) {
if (mRecentsView != null) {
int nearestPage = mRecentsView.getDestinationPage();
diff --git a/quickstep/src/com/android/quickstep/LauncherActivityInterface.java b/quickstep/src/com/android/quickstep/LauncherActivityInterface.java
index 9ff9416..710de8c 100644
--- a/quickstep/src/com/android/quickstep/LauncherActivityInterface.java
+++ b/quickstep/src/com/android/quickstep/LauncherActivityInterface.java
@@ -346,8 +346,9 @@
case RECENTS:
return OVERVIEW;
case NEW_TASK:
- case LAST_TASK:
return QUICK_SWITCH;
+ case LAST_TASK:
+ return BACKGROUND_APP;
case HOME:
default:
return NORMAL;
diff --git a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
index 83f2a0a..589459f 100644
--- a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
+++ b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
@@ -21,15 +21,12 @@
import static android.content.Intent.ACTION_PACKAGE_REMOVED;
import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVITY;
-import static com.android.launcher3.util.PackageManagerHelper.getPackageFilter;
import static com.android.systemui.shared.system.PackageManagerWrapper.ACTION_PREFERRED_ACTIVITY_CHANGED;
import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -57,9 +54,9 @@
public final class OverviewComponentObserver {
private static final String TAG = "OverviewComponentObserver";
- private final BroadcastReceiver mUserPreferenceChangeReceiver =
+ private final SimpleBroadcastReceiver mUserPreferenceChangeReceiver =
new SimpleBroadcastReceiver(this::updateOverviewTargets);
- private final BroadcastReceiver mOtherHomeAppUpdateReceiver =
+ private final SimpleBroadcastReceiver mOtherHomeAppUpdateReceiver =
new SimpleBroadcastReceiver(this::updateOverviewTargets);
private final Context mContext;
@@ -102,8 +99,7 @@
mConfigChangesMap.append(fallbackComponent.hashCode(), fallbackInfo.configChanges);
} catch (PackageManager.NameNotFoundException ignored) { /* Impossible */ }
- mContext.registerReceiver(mUserPreferenceChangeReceiver,
- new IntentFilter(ACTION_PREFERRED_ACTIVITY_CHANGED));
+ mUserPreferenceChangeReceiver.register(mContext, ACTION_PREFERRED_ACTIVITY_CHANGED);
updateOverviewTargets();
}
@@ -181,9 +177,8 @@
unregisterOtherHomeAppUpdateReceiver();
mUpdateRegisteredPackage = defaultHome.getPackageName();
- mContext.registerReceiver(mOtherHomeAppUpdateReceiver, getPackageFilter(
- mUpdateRegisteredPackage, ACTION_PACKAGE_ADDED, ACTION_PACKAGE_CHANGED,
- ACTION_PACKAGE_REMOVED));
+ mOtherHomeAppUpdateReceiver.registerPkgActions(mContext, mUpdateRegisteredPackage,
+ ACTION_PACKAGE_ADDED, ACTION_PACKAGE_CHANGED, ACTION_PACKAGE_REMOVED);
}
}
mOverviewChangeListener.accept(mIsHomeAndOverviewSame);
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
index f1c0f3e..1f522c1 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
@@ -32,6 +32,7 @@
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_ASSIST_GESTURE_CONSTRAINED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED;
+import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DREAMING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DIALOG_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SHOWING;
@@ -42,6 +43,7 @@
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING;
+import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
import android.app.ActivityTaskManager;
@@ -334,10 +336,12 @@
|| mRotationTouchHelper.isTaskListFrozen();
return canStartWithNavHidden
&& (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0
+ && (mSystemUiStateFlags & SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING) == 0
&& (mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0
&& (mSystemUiStateFlags & SYSUI_STATE_MAGNIFICATION_OVERLAP) == 0
&& ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0
- || (mSystemUiStateFlags & SYSUI_STATE_OVERVIEW_DISABLED) == 0);
+ || (mSystemUiStateFlags & SYSUI_STATE_OVERVIEW_DISABLED) == 0)
+ && (mSystemUiStateFlags & SYSUI_STATE_DEVICE_DREAMING) == 0;
}
/**
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationTargets.java b/quickstep/src/com/android/quickstep/RecentsAnimationTargets.java
index 388e125..15e1365 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationTargets.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationTargets.java
@@ -15,11 +15,15 @@
*/
package com.android.quickstep;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
+import android.app.WindowConfiguration;
import android.graphics.Rect;
import android.view.RemoteAnimationTarget;
+import com.android.quickstep.views.DesktopTaskView;
+
/**
* Extension of {@link RemoteAnimationTargets} with additional information about swipe
* up animation
@@ -40,4 +44,22 @@
public boolean hasTargets() {
return unfilteredApps.length != 0;
}
+
+ /**
+ * Check if target apps contain desktop tasks which have windowing mode set to {@link
+ * WindowConfiguration#WINDOWING_MODE_FREEFORM}
+ *
+ * @return {@code true} if at least one target app is a desktop task
+ */
+ public boolean hasDesktopTasks() {
+ if (!DesktopTaskView.DESKTOP_MODE_SUPPORTED) {
+ return false;
+ }
+ for (RemoteAnimationTarget target : apps) {
+ if (target.windowConfiguration.getWindowingMode() == WINDOWING_MODE_FREEFORM) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/quickstep/src/com/android/quickstep/RemoteTargetGluer.java b/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
index 4c41bef..9b00dcf 100644
--- a/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
+++ b/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
@@ -26,6 +26,7 @@
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.TaskViewSimulator;
import com.android.quickstep.util.TransformParams;
+import com.android.quickstep.views.DesktopTaskView;
import java.util.ArrayList;
@@ -41,8 +42,8 @@
* Use this constructor if remote targets are split-screen independent
*/
public RemoteTargetGluer(Context context, BaseActivityInterface sizingStrategy,
- RemoteAnimationTargets targets) {
- mRemoteTargetHandles = createHandles(context, sizingStrategy, targets.apps.length);
+ RemoteAnimationTargets targets, boolean forDesktop) {
+ init(context, sizingStrategy, targets.apps.length, forDesktop);
}
/**
@@ -50,15 +51,31 @@
* running tasks
*/
public RemoteTargetGluer(Context context, BaseActivityInterface sizingStrategy) {
+ if (DesktopTaskView.DESKTOP_MODE_SUPPORTED) {
+ // TODO: binder call, only for prototyping. Creating the gluer should be postponed so
+ // we can create it when we have the remote animation targets ready.
+ int desktopTasks = SystemUiProxy.INSTANCE.get(context).getVisibleDesktopTaskCount();
+ if (desktopTasks > 0) {
+ init(context, sizingStrategy, desktopTasks, true /* forDesktop */);
+ return;
+ }
+ }
+
int[] splitIds = TopTaskTracker.INSTANCE.get(context).getRunningSplitTaskIds();
- mRemoteTargetHandles = createHandles(context, sizingStrategy, splitIds.length == 2 ? 2 : 1);
+ init(context, sizingStrategy, splitIds.length == 2 ? 2 : 1, false /* forDesktop */);
+ }
+
+ private void init(Context context, BaseActivityInterface sizingStrategy, int numHandles,
+ boolean forDesktop) {
+ mRemoteTargetHandles = createHandles(context, sizingStrategy, numHandles, forDesktop);
}
private RemoteTargetHandle[] createHandles(Context context,
- BaseActivityInterface sizingStrategy, int numHandles) {
+ BaseActivityInterface sizingStrategy, int numHandles, boolean forDesktop) {
RemoteTargetHandle[] handles = new RemoteTargetHandle[numHandles];
for (int i = 0; i < numHandles; i++) {
TaskViewSimulator tvs = new TaskViewSimulator(context, sizingStrategy);
+ tvs.setIsDesktopTask(forDesktop);
TransformParams transformParams = new TransformParams();
handles[i] = new RemoteTargetHandle(tvs, transformParams);
}
@@ -135,6 +152,20 @@
return mRemoteTargetHandles;
}
+ /**
+ * Similar to {@link #assignTargets(RemoteAnimationTargets)}, except this creates distinct
+ * transform params per app in {@code targets.apps} list.
+ */
+ public RemoteTargetHandle[] assignTargetsForDesktop(RemoteAnimationTargets targets) {
+ for (int i = 0; i < mRemoteTargetHandles.length; i++) {
+ RemoteAnimationTarget primaryTaskTarget = targets.apps[i];
+ mRemoteTargetHandles[i].mTransformParams.setTargetSet(
+ createRemoteAnimationTargetsForTaskId(targets, primaryTaskTarget.taskId));
+ mRemoteTargetHandles[i].mTaskViewSimulator.setPreview(primaryTaskTarget, null);
+ }
+ return mRemoteTargetHandles;
+ }
+
private Rect getStartBounds(RemoteAnimationTarget target) {
return target.startBounds == null ? target.screenSpaceBounds : target.startBounds;
}
@@ -172,6 +203,33 @@
filteredApps, targets.wallpapers, targets.nonApps, targets.targetMode);
}
+ /**
+ * Ensures that we only animate one specific app target. Includes ancillary targets such as
+ * home/recents
+ *
+ * @param targets remote animation targets to filter
+ * @param taskId id for a task that we want this remote animation to apply to
+ * @return {@link RemoteAnimationTargets} where app target only includes the app that has the
+ * {@code taskId} that was passed in
+ */
+ private RemoteAnimationTargets createRemoteAnimationTargetsForTaskId(
+ RemoteAnimationTargets targets, int taskId) {
+ RemoteAnimationTarget[] targetApp = null;
+ for (RemoteAnimationTarget targetCompat : targets.unfilteredApps) {
+ if (targetCompat.taskId == taskId) {
+ targetApp = new RemoteAnimationTarget[]{targetCompat};
+ break;
+ }
+ }
+
+ if (targetApp == null) {
+ targetApp = new RemoteAnimationTarget[0];
+ }
+
+ return new RemoteAnimationTargets(targetApp, targets.wallpapers, targets.nonApps,
+ targets.targetMode);
+ }
+
public RemoteTargetHandle[] getRemoteTargetHandles() {
return mRemoteTargetHandles;
}
diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java
index 00fb7ec..2200b35 100644
--- a/quickstep/src/com/android/quickstep/SystemUiProxy.java
+++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java
@@ -949,4 +949,16 @@
}
}
}
+
+ /** Call shell to get number of visible freeform tasks */
+ public int getVisibleDesktopTaskCount() {
+ if (mDesktopMode != null) {
+ try {
+ return mDesktopMode.getVisibleTaskCount();
+ } catch (RemoteException e) {
+ Log.w(TAG, "Failed call getVisibleDesktopTaskCount", e);
+ }
+ }
+ return 0;
+ }
}
diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
index d40f2ae..0dcd723 100644
--- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
+++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
@@ -36,6 +36,7 @@
import com.android.launcher3.BaseActivity;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
+import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.popup.SystemShortcut;
@@ -77,9 +78,11 @@
RecentsOrientedState orientedState = taskView.getRecentsView().getPagedViewOrientedState();
boolean canLauncherRotate = orientedState.isRecentsActivityRotationAllowed();
boolean isInLandscape = orientedState.getTouchRotation() != ROTATION_0;
+ boolean isTablet = activity.getDeviceProfile().isTablet;
// Add overview actions to the menu when in in-place rotate landscape mode.
- if (!canLauncherRotate && isInLandscape) {
+ if ((!canLauncherRotate && isInLandscape)
+ || (isTablet && FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW.get())) {
// Add screenshot action to task menu.
List<SystemShortcut> screenshotShortcuts = TaskShortcutFactory.SCREENSHOT
.getShortcuts(activity, taskContainer);
diff --git a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java
index 663525d..e58845a 100644
--- a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java
+++ b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java
@@ -296,7 +296,8 @@
return null;
}
- return Collections.singletonList(new FreeformSystemShortcut(R.drawable.ic_split_screen,
+ return Collections.singletonList(new FreeformSystemShortcut(
+ R.drawable.ic_caption_desktop_button_foreground,
R.string.recent_task_option_freeform, activity, taskContainer,
LAUNCHER_SYSTEM_SHORTCUT_FREE_FORM_TAP));
}
diff --git a/quickstep/src/com/android/quickstep/TaskViewUtils.java b/quickstep/src/com/android/quickstep/TaskViewUtils.java
index 67de4b1..1a72e3f 100644
--- a/quickstep/src/com/android/quickstep/TaskViewUtils.java
+++ b/quickstep/src/com/android/quickstep/TaskViewUtils.java
@@ -39,6 +39,7 @@
import static com.android.launcher3.anim.Interpolators.TOUCH_RESPONSE_INTERPOLATOR;
import static com.android.launcher3.anim.Interpolators.clampToProgress;
import static com.android.launcher3.util.MultiPropertyFactory.MULTI_PROPERTY_VALUE;
+import static com.android.quickstep.views.DesktopTaskView.DESKTOP_MODE_SUPPORTED;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -78,6 +79,7 @@
import com.android.quickstep.util.SurfaceTransactionApplier;
import com.android.quickstep.util.TaskViewSimulator;
import com.android.quickstep.util.TransformParams;
+import com.android.quickstep.views.DesktopTaskView;
import com.android.quickstep.views.GroupedTaskView;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskThumbnailView;
@@ -182,9 +184,12 @@
// Re-use existing handles
remoteTargetHandles = recentsViewHandles;
} else {
+ boolean forDesktop = DESKTOP_MODE_SUPPORTED && v instanceof DesktopTaskView;
RemoteTargetGluer gluer = new RemoteTargetGluer(v.getContext(),
- recentsView.getSizeStrategy(), targets);
- if (v.containsMultipleTasks()) {
+ recentsView.getSizeStrategy(), targets, forDesktop);
+ if (forDesktop) {
+ remoteTargetHandles = gluer.assignTargetsForDesktop(targets);
+ } else if (v.containsMultipleTasks()) {
remoteTargetHandles = gluer.assignTargetsForSplitScreen(targets, v.getTaskIds());
} else {
remoteTargetHandles = gluer.assignTargets(targets);
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index d19f124..687ed36 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -68,7 +68,7 @@
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
-import com.android.app.viewcapture.ViewCapture;
+import com.android.app.viewcapture.SettingsAwareViewCapture;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.R;
@@ -1208,7 +1208,7 @@
mTaskbarManager.dumpLogs("", pw);
if (FeatureFlags.CONTINUOUS_VIEW_TREE_CAPTURE.get()) {
- ViewCapture.getInstance().dump(pw, fd, this);
+ SettingsAwareViewCapture.getInstance(this).dump(pw, fd, this);
}
}
}
diff --git a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
index bcaae99..db6d56b 100644
--- a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
+++ b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
@@ -34,9 +34,9 @@
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.logging.StatsLogManager;
-import com.android.launcher3.popup.QuickstepSystemShortcut;
import com.android.launcher3.statemanager.StateManager.StateListener;
import com.android.launcher3.util.SplitConfigurationOptions;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.quickstep.FallbackActivityInterface;
import com.android.quickstep.GestureState;
import com.android.quickstep.RecentsActivity;
@@ -269,7 +269,7 @@
}
@Override
- public void initiateSplitSelect(QuickstepSystemShortcut.SplitSelectSource splitSelectSource) {
+ public void initiateSplitSelect(SplitSelectSource splitSelectSource) {
super.initiateSplitSelect(splitSelectSource);
mActivity.getStateManager().goToState(OVERVIEW_SPLIT_SELECT);
}
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/ProgressDelegateInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/ProgressDelegateInputConsumer.java
index 45ffa1c..ab70272 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/ProgressDelegateInputConsumer.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/ProgressDelegateInputConsumer.java
@@ -20,6 +20,7 @@
import static com.android.launcher3.touch.SingleAxisSwipeDetector.DIRECTION_POSITIVE;
import static com.android.launcher3.touch.SingleAxisSwipeDetector.VERTICAL;
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
+import static com.android.quickstep.OverviewComponentObserver.startHomeIntentSafely;
import static com.android.quickstep.util.ActiveGestureLog.INTENT_EXTRA_LOG_TRACE_ID;
import android.animation.ObjectAnimator;
@@ -102,8 +103,7 @@
mStateCallback = new MultiStateCallback(STATE_NAMES);
mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_HANDLER_INVALIDATED,
this::endRemoteAnimation);
- mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_FLING_FINISHED,
- this::onFlingFinished);
+ mStateCallback.runOnceAtState(STATE_FLING_FINISHED, this::onFlingFinished);
mSwipeDetector = new SingleAxisSwipeDetector(mContext, this, VERTICAL);
mSwipeDetector.setDetectableScrollConditions(DIRECTION_POSITIVE, false);
@@ -159,10 +159,12 @@
}
private void onFlingFinished() {
+ boolean endToRecents = mFlingEndsOnHome == null ? true : mFlingEndsOnHome;
if (mRecentsAnimationController != null) {
- boolean endToRecents = mFlingEndsOnHome == null ? true : mFlingEndsOnHome;
mRecentsAnimationController.finishController(endToRecents /* toRecents */,
null /* callback */, false /* sendUserLeaveHint */);
+ } else if (endToRecents) {
+ startHomeIntentSafely(mContext, null);
}
}
diff --git a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
index e0262d0..0389d07 100644
--- a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
+++ b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
@@ -240,6 +240,7 @@
maybeResumeOrPauseBackgroundAnimation();
if (mSwipeProgress.value >= 1) {
finishAndRemoveTask();
+ dispatchLauncherAnimStartEnd();
}
}
@@ -251,6 +252,18 @@
}
}
+ /**
+ * Should be called when we have successfully reached Launcher, so we dispatch to animation
+ * listeners to ensure the state matches the visual animation that just occurred.
+ */
+ private void dispatchLauncherAnimStartEnd() {
+ if (mLauncherStartAnim != null) {
+ mLauncherStartAnim.dispatchOnStart();
+ mLauncherStartAnim.dispatchOnEnd();
+ mLauncherStartAnim = null;
+ }
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
@@ -259,6 +272,7 @@
if (mBackgroundAnimatorListener != null) {
mAnimatedBackground.removeAnimatorListener(mBackgroundAnimatorListener);
}
+ dispatchLauncherAnimStartEnd();
}
private AnimatedFloat createSwipeUpProxy(GestureState state) {
diff --git a/quickstep/src/com/android/quickstep/interaction/AnimatedTaskbarView.java b/quickstep/src/com/android/quickstep/interaction/AnimatedTaskbarView.java
index e8cc45b..d706711 100644
--- a/quickstep/src/com/android/quickstep/interaction/AnimatedTaskbarView.java
+++ b/quickstep/src/com/android/quickstep/interaction/AnimatedTaskbarView.java
@@ -43,12 +43,12 @@
private View mBackground;
private View mIconContainer;
+ private View mAllAppsButton;
private View mIcon1;
private View mIcon2;
private View mIcon3;
private View mIcon4;
private View mIcon5;
- private View mIcon6;
@Nullable private Animator mRunningAnimator;
@@ -78,12 +78,12 @@
mBackground = findViewById(R.id.taskbar_background);
mIconContainer = findViewById(R.id.icon_container);
+ mAllAppsButton = findViewById(R.id.taskbar_all_apps);
mIcon1 = findViewById(R.id.taskbar_icon_1);
mIcon2 = findViewById(R.id.taskbar_icon_2);
mIcon3 = findViewById(R.id.taskbar_icon_3);
mIcon4 = findViewById(R.id.taskbar_icon_4);
mIcon5 = findViewById(R.id.taskbar_icon_5);
- mIcon6 = findViewById(R.id.taskbar_icon_6);
}
/**
@@ -92,22 +92,20 @@
public void animateDisappearanceToHotseat(ViewGroup hotseat) {
ArrayList<Animator> animators = new ArrayList<>();
int hotseatTop = hotseat.getTop();
+ int hotseatLeft = hotseat.getLeft();
- animators.add(ObjectAnimator.ofFloat(
- mBackground, View.TRANSLATION_Y, 0, mBackground.getHeight()));
animators.add(ObjectAnimator.ofFloat(mBackground, View.ALPHA, 1f, 0f));
+ animators.add(ObjectAnimator.ofFloat(mAllAppsButton, View.ALPHA, 1f, 0f));
animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon1, hotseat.findViewById(R.id.hotseat_icon_1), hotseatTop));
+ mIcon1, hotseat.findViewById(R.id.hotseat_icon_1), hotseatTop, hotseatLeft));
animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon2, hotseat.findViewById(R.id.hotseat_icon_2), hotseatTop));
+ mIcon2, hotseat.findViewById(R.id.hotseat_icon_2), hotseatTop, hotseatLeft));
animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon3, hotseat.findViewById(R.id.hotseat_icon_3), hotseatTop));
+ mIcon3, hotseat.findViewById(R.id.hotseat_icon_3), hotseatTop, hotseatLeft));
animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon4, hotseat.findViewById(R.id.hotseat_icon_4), hotseatTop));
+ mIcon4, hotseat.findViewById(R.id.hotseat_icon_4), hotseatTop, hotseatLeft));
animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon5, hotseat.findViewById(R.id.hotseat_icon_5), hotseatTop));
- animators.add(createIconDisappearanceToHotseatAnimator(
- mIcon6, hotseat.findViewById(R.id.hotseat_icon_6), hotseatTop));
+ mIcon5, hotseat.findViewById(R.id.hotseat_icon_5), hotseatTop, hotseatLeft));
AnimatorSet animatorSet = new AnimatorSet();
@@ -135,22 +133,20 @@
public void animateAppearanceFromHotseat(ViewGroup hotseat) {
ArrayList<Animator> animators = new ArrayList<>();
int hotseatTop = hotseat.getTop();
+ int hotseatLeft = hotseat.getLeft();
- animators.add(ObjectAnimator.ofFloat(
- mBackground, View.TRANSLATION_Y, mBackground.getHeight(), 0));
animators.add(ObjectAnimator.ofFloat(mBackground, View.ALPHA, 0f, 1f));
+ animators.add(ObjectAnimator.ofFloat(mAllAppsButton, View.ALPHA, 0f, 1f));
animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon1, hotseat.findViewById(R.id.hotseat_icon_1), hotseatTop));
+ mIcon1, hotseat.findViewById(R.id.hotseat_icon_1), hotseatTop, hotseatLeft));
animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon2, hotseat.findViewById(R.id.hotseat_icon_2), hotseatTop));
+ mIcon2, hotseat.findViewById(R.id.hotseat_icon_2), hotseatTop, hotseatLeft));
animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon3, hotseat.findViewById(R.id.hotseat_icon_3), hotseatTop));
+ mIcon3, hotseat.findViewById(R.id.hotseat_icon_3), hotseatTop, hotseatLeft));
animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon4, hotseat.findViewById(R.id.hotseat_icon_4), hotseatTop));
+ mIcon4, hotseat.findViewById(R.id.hotseat_icon_4), hotseatTop, hotseatLeft));
animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon5, hotseat.findViewById(R.id.hotseat_icon_5), hotseatTop));
- animators.add(createIconAppearanceFromHotseatAnimator(
- mIcon6, hotseat.findViewById(R.id.hotseat_icon_6), hotseatTop));
+ mIcon5, hotseat.findViewById(R.id.hotseat_icon_5), hotseatTop, hotseatLeft));
AnimatorSet animatorSet = new AnimatorSet();
@@ -166,98 +162,6 @@
start(animatorSet);
}
- /**
- * Animates this fake taskbar's disappearance to the bottom of the screen.
- */
- public void animateDisappearanceToBottom() {
- ArrayList<Animator> animators = new ArrayList<>();
-
- animators.add(ObjectAnimator.ofFloat(
- mBackground, View.TRANSLATION_Y, 0, mBackground.getHeight()));
- animators.add(ObjectAnimator.ofFloat(mBackground, View.ALPHA, 1f, 0f));
- animators.add(ObjectAnimator.ofFloat(mIconContainer, View.SCALE_X, 1f, 0f));
- animators.add(ObjectAnimator.ofFloat(mIconContainer, View.SCALE_Y, 1f, 0f));
-
- initializeIconContainerPivot();
-
- AnimatorSet animatorSet = new AnimatorSet();
-
- animatorSet.playTogether(animators);
- animatorSet.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- setVisibility(INVISIBLE);
- resetIconContainerPivot();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- super.onAnimationCancel(animation);
- resetIconContainerPivot();
- }
-
- @Override
- public void onAnimationStart(Animator animation) {
- super.onAnimationStart(animation);
- setVisibility(VISIBLE);
- }
- });
-
- start(animatorSet);
- }
-
- /**
- * Animates this fake taskbar's appearance from the bottom of the screen.
- */
- public void animateAppearanceFromBottom() {
- ArrayList<Animator> animators = new ArrayList<>();
-
- animators.add(ObjectAnimator.ofFloat(
- mBackground, View.TRANSLATION_Y, mBackground.getHeight(), 0));
- animators.add(ObjectAnimator.ofFloat(mBackground, View.ALPHA, 0f, 1f));
- animators.add(ObjectAnimator.ofFloat(mIconContainer, View.SCALE_X, 0f, 1f));
- animators.add(ObjectAnimator.ofFloat(mIconContainer, View.SCALE_Y, 0f, 1f));
-
- initializeIconContainerPivot();
-
- AnimatorSet animatorSet = new AnimatorSet();
-
- animatorSet.playTogether(animators);
- animatorSet.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animation) {
- super.onAnimationStart(animation);
- setVisibility(VISIBLE);
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- resetIconContainerPivot();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- super.onAnimationCancel(animation);
- resetIconContainerPivot();
- }
- });
-
- start(animatorSet);
- }
-
- private void initializeIconContainerPivot() {
- mIconContainer.setPivotX(getWidth() / 2f);
- mIconContainer.setPivotY(getHeight() * 0.8f);
- }
-
- private void resetIconContainerPivot() {
- mIconContainer.resetPivot();
- mIconContainer.setScaleX(1f);
- mIconContainer.setScaleY(1f);
- }
-
private void start(Animator animator) {
if (mRunningAnimator != null) {
mRunningAnimator.cancel();
@@ -287,7 +191,7 @@
}
private Animator createIconDisappearanceToHotseatAnimator(
- View taskbarIcon, View hotseatIcon, int hotseatTop) {
+ View taskbarIcon, View hotseatIcon, int hotseatTop, int hotseatLeft) {
ArrayList<Animator> animators = new ArrayList<>();
animators.add(ObjectAnimator.ofFloat(
@@ -296,7 +200,10 @@
0,
(hotseatTop + hotseatIcon.getTop()) - (getTop() + taskbarIcon.getTop())));
animators.add(ObjectAnimator.ofFloat(
- taskbarIcon, View.TRANSLATION_X, 0, hotseatIcon.getLeft() - taskbarIcon.getLeft()));
+ taskbarIcon,
+ View.TRANSLATION_X,
+ 0,
+ (hotseatLeft + hotseatIcon.getLeft()) - (getLeft() + taskbarIcon.getLeft())));
animators.add(ObjectAnimator.ofFloat(
taskbarIcon,
View.SCALE_X,
@@ -330,7 +237,7 @@
}
private Animator createIconAppearanceFromHotseatAnimator(
- View taskbarIcon, View hotseatIcon, int hotseatTop) {
+ View taskbarIcon, View hotseatIcon, int hotseatTop, int hotseatLeft) {
ArrayList<Animator> animators = new ArrayList<>();
animators.add(ObjectAnimator.ofFloat(
@@ -339,7 +246,10 @@
(hotseatTop + hotseatIcon.getTop()) - (getTop() + taskbarIcon.getTop()),
0));
animators.add(ObjectAnimator.ofFloat(
- taskbarIcon, View.TRANSLATION_X, hotseatIcon.getLeft() - taskbarIcon.getLeft(), 0));
+ taskbarIcon,
+ View.TRANSLATION_X,
+ (hotseatLeft + hotseatIcon.getLeft()) - (getLeft() + taskbarIcon.getLeft()),
+ 0));
animators.add(ObjectAnimator.ofFloat(
taskbarIcon,
View.SCALE_X,
diff --git a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java
index 35d9f22..1c8cd9c 100644
--- a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java
+++ b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java
@@ -59,6 +59,12 @@
return getMockAppTaskCurrentPageLayoutResId();
}
+ @Override
+ protected int getGestureLottieAnimationId() {
+ // TODO(b/253521922): Change to correct LottieAnimationView
+ return R.raw.home_gesture_tutorial_animation;
+ }
+
@LayoutRes
int getMockAppTaskCurrentPageLayoutResId() {
return mTutorialFragment.isLargeScreen()
@@ -74,6 +80,11 @@
}
@Override
+ protected int getSwipeActionColorResId() {
+ return R.color.gesture_back_tutorial_swipe_rect;
+ }
+
+ @Override
public void onBackGestureAttempted(BackGestureResult result) {
if (isGestureCompleted()) {
return;
diff --git a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java
index f519d50..c89d4b6 100644
--- a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java
+++ b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java
@@ -15,6 +15,8 @@
*/
package com.android.quickstep.interaction;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_NEW_GESTURE_NAV_TUTORIAL;
+
import android.annotation.TargetApi;
import android.graphics.PointF;
import android.os.Build;
@@ -33,12 +35,16 @@
@Override
public int getIntroductionTitle() {
- return R.string.home_gesture_intro_title;
+ return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.string.home_gesture_tutorial_title
+ : R.string.home_gesture_intro_title;
}
@Override
public int getIntroductionSubtitle() {
- return R.string.home_gesture_intro_subtitle;
+ return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.string.home_gesture_tutorial_subtitle
+ : R.string.home_gesture_intro_subtitle;
}
@Override
@@ -57,7 +63,19 @@
protected int getMockAppTaskLayoutResId() {
return mTutorialFragment.isLargeScreen()
? R.layout.gesture_tutorial_tablet_mock_webpage
- : R.layout.gesture_tutorial_mock_webpage;
+ : ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.layout.swipe_up_gesture_tutorial_shape
+ : R.layout.gesture_tutorial_mock_webpage;
+ }
+
+ @Override
+ protected int getGestureLottieAnimationId() {
+ return R.raw.home_gesture_tutorial_animation;
+ }
+
+ @Override
+ protected int getSwipeActionColorResId() {
+ return R.color.gesture_home_tutorial_swipe_up_rect;
}
@Override
diff --git a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java
index 05b246b..d52e4cd 100644
--- a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java
+++ b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java
@@ -71,6 +71,17 @@
}
@Override
+ protected int getGestureLottieAnimationId() {
+ // TODO(b/253521660): Change to correct LottieAnimationView
+ return R.raw.home_gesture_tutorial_animation;
+ }
+
+ @Override
+ protected int getSwipeActionColorResId() {
+ return R.color.gesture_overview_tutorial_swipe_rect;
+ }
+
+ @Override
public void onBackGestureAttempted(BackGestureResult result) {
if (isGestureCompleted()) {
return;
@@ -154,7 +165,6 @@
AnimatorSet animset = new AnimatorSet();
animset.playTogether(animators);
- hideFakeTaskbar(/* animateToHotseat= */ false);
animset.start();
mRunningWindowAnim = SwipeUpAnimationLogic.RunningWindowAnim.wrap(animset);
}
diff --git a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java
index 4e1521f..1e8b48d0 100644
--- a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java
+++ b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java
@@ -76,7 +76,7 @@
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
- controller.resetFakeTaskView(false);
+ controller.resetFakeTaskViewFromOverview();
}
});
ArrayList<Animator> animators = new ArrayList<>();
diff --git a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java
index 670ee9b..de93818 100644
--- a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java
+++ b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java
@@ -203,7 +203,15 @@
mRunningWindowAnim = RunningWindowAnim.wrap(animset);
}
+ void resetFakeTaskViewFromOverview() {
+ resetFakeTaskView(false, false);
+ }
+
void resetFakeTaskView(boolean animateFromHome) {
+ resetFakeTaskView(animateFromHome, true);
+ }
+
+ void resetFakeTaskView(boolean animateFromHome, boolean animateTaskbar) {
mFakeTaskView.setVisibility(View.VISIBLE);
PendingAnimation anim = new PendingAnimation(300);
anim.setFloat(mTaskViewSwipeUpAnimation
@@ -211,7 +219,9 @@
anim.setViewAlpha(mFakeTaskView, 1, ACCEL);
anim.addListener(mResetTaskView);
AnimatorSet animset = anim.buildAnim();
- showFakeTaskbar(animateFromHome);
+ if (animateTaskbar) {
+ showFakeTaskbar(animateFromHome);
+ }
animset.start();
mRunningWindowAnim = RunningWindowAnim.wrap(animset);
}
diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialController.java b/quickstep/src/com/android/quickstep/interaction/TutorialController.java
index fa7d848..ccdb266 100644
--- a/quickstep/src/com/android/quickstep/interaction/TutorialController.java
+++ b/quickstep/src/com/android/quickstep/interaction/TutorialController.java
@@ -19,12 +19,15 @@
import static android.view.View.NO_ID;
import static android.view.View.inflate;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_NEW_GESTURE_NAV_TUTORIAL;
+
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.ColorRes;
+import android.annotation.RawRes;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.drawable.AnimatedVectorDrawable;
@@ -57,6 +60,8 @@
import com.android.quickstep.interaction.EdgeBackGestureHandler.BackGestureAttemptCallback;
import com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureAttemptCallback;
+import com.airbnb.lottie.LottieAnimationView;
+
import java.util.ArrayList;
abstract class TutorialController implements BackGestureAttemptCallback,
@@ -85,6 +90,7 @@
final Button mDoneButton;
final ViewGroup mFeedbackView;
final TextView mFeedbackTitleView;
+ final TextView mFeedbackSubtitleView;
final ImageView mEdgeGestureVideoView;
final RelativeLayout mFakeLauncherView;
final FrameLayout mFakeHotseatView;
@@ -100,6 +106,8 @@
private final AlertDialog mSkipTutorialDialog;
private boolean mGestureCompleted = false;
+ private LottieAnimationView mAnimatedGestureDemonstration;
+ private RelativeLayout mFullGestureDemonstration;
// These runnables should be used when posting callbacks to their views and cleared from their
// views before posting new callbacks.
@@ -120,6 +128,8 @@
mFeedbackView = rootView.findViewById(R.id.gesture_tutorial_fragment_feedback_view);
mFeedbackTitleView = mFeedbackView.findViewById(
R.id.gesture_tutorial_fragment_feedback_title);
+ mFeedbackSubtitleView = mFeedbackView.findViewById(
+ R.id.gesture_tutorial_fragment_feedback_subtitle);
mEdgeGestureVideoView = rootView.findViewById(R.id.gesture_tutorial_edge_gesture_video);
mFakeLauncherView = rootView.findViewById(R.id.gesture_tutorial_fake_launcher_view);
mFakeHotseatView = rootView.findViewById(R.id.gesture_tutorial_fake_hotseat_view);
@@ -136,6 +146,17 @@
mFingerDotView = rootView.findViewById(R.id.gesture_tutorial_finger_dot);
mSkipTutorialDialog = createSkipTutorialDialog();
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ mAnimatedGestureDemonstration = mTutorialFragment.getRootView().findViewById(
+ R.id.gesture_demonstration_animations);
+ mFullGestureDemonstration = mTutorialFragment.getRootView().findViewById(
+ R.id.full_gesture_demonstration);
+
+ mFeedbackTitleView.setText(getIntroductionTitle());
+ mFeedbackSubtitleView.setText(getIntroductionSubtitle());
+ mSkipButton.setVisibility(GONE);
+ }
+
mTitleViewCallback = () -> mFeedbackTitleView.sendAccessibilityEvent(
AccessibilityEvent.TYPE_VIEW_FOCUSED);
mShowFeedbackRunnable = () -> {
@@ -189,12 +210,19 @@
? (mTutorialFragment.isFoldable()
? R.layout.gesture_tutorial_foldable_mock_hotseat
: R.layout.gesture_tutorial_tablet_mock_hotseat)
- : R.layout.gesture_tutorial_mock_hotseat;
+ : (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.layout.redesigned_gesture_tutorial_mock_hotseat
+ : R.layout.gesture_tutorial_mock_hotseat);
}
@LayoutRes
protected int getMockAppTaskLayoutResId() {
- return View.NO_ID;
+ return NO_ID;
+ }
+
+ @RawRes
+ protected int getGestureLottieAnimationId() {
+ return NO_ID;
}
@ColorRes
@@ -202,9 +230,16 @@
return R.color.gesture_tutorial_fake_previous_task_view_color;
}
+ @ColorRes
+ protected int getSwipeActionColorResId() {
+ return NO_ID;
+ }
+
@DrawableRes
public int getMockAppIconResId() {
- return R.drawable.default_sandbox_app_icon;
+ return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.drawable.redesigned_default_sandbox_app_icon
+ : R.drawable.default_sandbox_app_icon;
}
@DrawableRes
@@ -301,9 +336,7 @@
}
mFeedbackTitleView.setText(titleResId);
- TextView subtitle =
- mFeedbackView.findViewById(R.id.gesture_tutorial_fragment_feedback_subtitle);
- subtitle.setText(spokenSubtitleResId == NO_ID
+ mFeedbackSubtitleView.setText(spokenSubtitleResId == NO_ID
? mContext.getText(subtitleResId)
: Utilities.wrapForTts(
mContext.getText(subtitleResId), mContext.getString(spokenSubtitleResId)));
@@ -316,6 +349,10 @@
mFakeTaskView.removeCallbacks(mFakeTaskViewCallback);
mFakeTaskViewCallback = null;
}
+
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ showSuccessPage();
+ }
}
mGestureCompleted = isGestureSuccessful;
@@ -336,6 +373,16 @@
mFeedbackView.post(mFeedbackViewCallback);
}
+ private void showSuccessPage() {
+ mFeedbackView.findViewById(
+ R.id.gesture_tutorial_checkbox_bg).setVisibility(View.VISIBLE);
+ mFeedbackView.findViewById(
+ R.id.gesture_tutorial_checkbox).setVisibility(View.VISIBLE);
+ mFeedbackTitleView.setTextAppearance(R.style.TextAppearance_GestureTutorial_SuccessTitle);
+ mFeedbackSubtitleView.setTextAppearance(
+ R.style.TextAppearance_GestureTutorial_SuccessSubtitle);
+ }
+
public boolean isGestureCompleted() {
return mGestureCompleted;
}
@@ -371,6 +418,14 @@
@NonNull Runnable onStartRunnable,
boolean useGestureAnimationDelay) {
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ mFeedbackView.setVisibility(View.VISIBLE);
+ mAnimatedGestureDemonstration.setVisibility(View.VISIBLE);
+ mFullGestureDemonstration.setVisibility(View.VISIBLE);
+ mAnimatedGestureDemonstration.playAnimation();
+ return;
+ }
+
if (gestureAnimation.isRunning()) {
gestureAnimation.cancel();
}
@@ -436,19 +491,29 @@
@CallSuper
void transitToController() {
- hideFeedback();
- hideActionButton();
updateCloseButton();
updateSubtext();
updateDrawables();
updateLayout();
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ startGestureAnimation();
+ } else {
+ hideFeedback();
+ hideActionButton();
+ }
+
mGestureCompleted = false;
if (mFakeHotseatView != null) {
mFakeHotseatView.setVisibility(View.INVISIBLE);
}
}
+ private void startGestureAnimation() {
+ mAnimatedGestureDemonstration.setAnimation(getGestureLottieAnimationId());
+ mAnimatedGestureDemonstration.playAnimation();
+ }
+
void updateCloseButton() {
mSkipButton.setTextAppearance(Utilities.isDarkTheme(mContext)
? R.style.TextAppearance_GestureTutorial_Feedback_Subtext
@@ -478,8 +543,6 @@
if (animateToHotseat) {
mFakeTaskbarViewCallback = () ->
mFakeTaskbarView.animateDisappearanceToHotseat(mFakeHotseatView);
- } else {
- mFakeTaskbarViewCallback = mFakeTaskbarView::animateDisappearanceToBottom;
}
mFakeTaskbarView.post(mFakeTaskbarViewCallback);
}
@@ -494,8 +557,6 @@
if (animateFromHotseat) {
mFakeTaskbarViewCallback = () ->
mFakeTaskbarView.animateAppearanceFromHotseat(mFakeHotseatView);
- } else {
- mFakeTaskbarViewCallback = mFakeTaskbarView::animateAppearanceFromBottom;
}
mFakeTaskbarView.post(mFakeTaskbarViewCallback);
}
@@ -516,8 +577,10 @@
}
private void updateSubtext() {
- mTutorialStepView.setTutorialProgress(
- mTutorialFragment.getCurrentStep(), mTutorialFragment.getNumSteps());
+ if (!ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ mTutorialStepView.setTutorialProgress(
+ mTutorialFragment.getCurrentStep(), mTutorialFragment.getNumSteps());
+ }
}
private void updateDrawables() {
@@ -536,6 +599,11 @@
getMockPreviousAppTaskThumbnailColorResId()));
mFakeIconView.setBackground(AppCompatResources.getDrawable(
mContext, getMockAppIconResId()));
+
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ mFakeLauncherView.setBackgroundColor(
+ mContext.getColor(getSwipeActionColorResId()));
+ }
}
}
@@ -690,6 +758,12 @@
return ValueAnimator.ofFloat(0f, 1f).setDuration(GESTURE_ANIMATION_PAUSE_DURATION_MILLIS);
}
+ void pauseAndHideLottieAnimation() {
+ mAnimatedGestureDemonstration.pauseAnimation();
+ mAnimatedGestureDemonstration.setVisibility(View.INVISIBLE);
+ mFullGestureDemonstration.setVisibility(View.INVISIBLE);
+ }
+
/** Denotes the type of the tutorial. */
enum TutorialType {
BACK_NAVIGATION,
diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
index 1599c8c..59ae979 100644
--- a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
+++ b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
@@ -17,6 +17,8 @@
import static android.view.View.NO_ID;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_NEW_GESTURE_NAV_TUTORIAL;
+
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.app.Activity;
@@ -184,7 +186,12 @@
super.onCreateView(inflater, container, savedInstanceState);
mRootView = (RootSandboxLayout) inflater.inflate(
- R.layout.gesture_tutorial_fragment, container, false);
+ ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
+ ? R.layout.redesigned_gesture_tutorial_fragment
+ : R.layout.gesture_tutorial_fragment,
+ container,
+ false);
+
mRootView.setOnApplyWindowInsetsListener((view, insets) -> {
Insets systemInsets = insets.getInsets(WindowInsets.Type.systemBars());
mEdgeBackGestureHandler.setInsets(systemInsets.left, systemInsets.right);
@@ -333,6 +340,11 @@
if (mTutorialController != null && !isGestureComplete()) {
mTutorialController.hideFeedback();
}
+
+ if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
+ mTutorialController.pauseAndHideLottieAnimation();
+ }
+
// Note: Using logical-or to ensure both functions get called.
return mEdgeBackGestureHandler.onTouch(view, motionEvent)
| mNavBarGestureHandler.onTouch(view, motionEvent);
diff --git a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
index 170c622..fdbb119 100644
--- a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
+++ b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
@@ -20,6 +20,7 @@
import static com.android.launcher3.LauncherAnimUtils.WORKSPACE_SCALE_PROPERTY_FACTORY;
import android.annotation.Nullable;
+import android.os.Trace;
import android.util.FloatProperty;
import android.util.MathUtils;
import android.view.WindowManager;
@@ -55,6 +56,9 @@
private final UnfoldMoveFromCenterHotseatAnimator mUnfoldMoveFromCenterHotseatAnimator;
private final UnfoldMoveFromCenterWorkspaceAnimator mUnfoldMoveFromCenterWorkspaceAnimator;
+ private static final String TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION =
+ "waitingOneFrameBeforeHandlingUnfoldAnimation";
+
@Nullable
private HorizontalInsettableView mQsbInsettable;
@@ -92,8 +96,18 @@
mQsbInsettable = (HorizontalInsettableView) hotseat.getQsb();
}
+ handleTransitionOnNextFrame();
+ }
+
+ private void handleTransitionOnNextFrame() {
+ Trace.asyncTraceBegin(Trace.TRACE_TAG_APP,
+ TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
OneShotPreDrawListener.add(mLauncher.getWorkspace(),
- () -> mProgressProvider.setReadyToHandleTransition(true));
+ () -> {
+ Trace.asyncTraceEnd(Trace.TRACE_TAG_APP,
+ TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
+ mProgressProvider.setReadyToHandleTransition(true);
+ });
}
/**
diff --git a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
index db8c7f2..6722f3d 100644
--- a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
+++ b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
@@ -22,7 +22,7 @@
import static android.view.Surface.ROTATION_270;
import static android.view.Surface.ROTATION_90;
-import static com.android.launcher3.states.RotationHelper.ALLOW_ROTATION_PREFERENCE_KEY;
+import static com.android.launcher3.LauncherPrefs.ALLOW_ROTATION;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import static com.android.launcher3.util.SettingsCache.ROTATION_SETTING_URI;
import static com.android.quickstep.BaseActivityInterface.getTaskDimension;
@@ -116,7 +116,6 @@
| FLAG_SWIPE_UP_NOT_RUNNING;
private final Context mContext;
- private final SharedPreferences mSharedPrefs;
private final OrientationEventListener mOrientationListener;
private final SettingsCache mSettingsCache;
private final SettingsCache.OnChangeListener mRotationChangeListener =
@@ -139,7 +138,6 @@
public RecentsOrientedState(Context context, BaseActivityInterface sizeStrategy,
IntConsumer rotationChangeListener) {
mContext = context;
- mSharedPrefs = LauncherPrefs.getPrefs(context);
mOrientationListener = new OrientationEventListener(context) {
@Override
public void onOrientationChanged(int degrees) {
@@ -278,7 +276,7 @@
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
- if (ALLOW_ROTATION_PREFERENCE_KEY.equals(s)) {
+ if (LauncherPrefs.ALLOW_ROTATION.getSharedPrefKey().equals(s)) {
updateHomeRotationSetting();
}
}
@@ -289,7 +287,7 @@
}
private void updateHomeRotationSetting() {
- boolean homeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false);
+ boolean homeRotationEnabled = LauncherPrefs.get(mContext).get(ALLOW_ROTATION);
setFlag(FLAG_HOME_ROTATION_ALLOWED_IN_PREFS, homeRotationEnabled);
SystemUiProxy.INSTANCE.get(mContext).setHomeRotationEnabled(homeRotationEnabled);
}
@@ -303,13 +301,13 @@
}
private void initMultipleOrientationListeners() {
- mSharedPrefs.registerOnSharedPreferenceChangeListener(this);
+ LauncherPrefs.get(mContext).addListener(this, ALLOW_ROTATION);
mSettingsCache.register(ROTATION_SETTING_URI, mRotationChangeListener);
updateAutoRotateSetting();
}
private void destroyMultipleOrientationListeners() {
- mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this);
+ LauncherPrefs.get(mContext).removeListener(this, ALLOW_ROTATION);
mSettingsCache.unregister(ROTATION_SETTING_URI, mRotationChangeListener);
}
diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
index 681f068..e5d54d7 100644
--- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
+++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
@@ -90,6 +90,8 @@
private Intent mSecondTaskIntent;
private int mSecondTaskId = INVALID_TASK_ID;
private boolean mRecentsAnimationRunning;
+ /** If {@code true}, animates the existing task view split placeholder view */
+ private boolean mAnimateCurrentTaskDismissal;
@Nullable
private UserHandle mUser;
/** If not null, this is the TaskView we want to launch from */
@@ -111,22 +113,15 @@
}
/**
- * To be called after first task selected in Overview.
+ * @param alreadyRunningTask if set to {@link android.app.ActivityTaskManager#INVALID_TASK_ID}
+ * then @param intent will be used to launch the initial task
+ * @param intent will be ignored if @param alreadyRunningTask is set
*/
- public void setInitialTaskSelect(Task task, @StagePosition int stagePosition,
- StatsLogManager.EventEnum splitEvent, ItemInfo itemInfo) {
- mInitialTaskId = task.key.id;
- setInitialData(stagePosition, splitEvent, itemInfo);
- }
-
- /**
- * To be called after first task selected from home or all apps.
- */
- public void setInitialTaskSelect(Intent intent, @StagePosition int stagePosition,
+ public void setInitialTaskSelect(@Nullable Intent intent, @StagePosition int stagePosition,
@NonNull ItemInfo itemInfo, StatsLogManager.EventEnum splitEvent,
- @Nullable Task alreadyRunningTask) {
- if (alreadyRunningTask != null) {
- mInitialTaskId = alreadyRunningTask.key.id;
+ int alreadyRunningTask) {
+ if (alreadyRunningTask != INVALID_TASK_ID) {
+ mInitialTaskId = alreadyRunningTask;
} else {
mInitialTaskIntent = intent;
mUser = itemInfo.user;
@@ -348,6 +343,14 @@
return null;
}
+ public boolean isAnimateCurrentTaskDismissal() {
+ return mAnimateCurrentTaskDismissal;
+ }
+
+ public void setAnimateCurrentTaskDismissal(boolean animateCurrentTaskDismissal) {
+ mAnimateCurrentTaskDismissal = animateCurrentTaskDismissal;
+ }
+
/**
* Requires Shell Transitions
*/
@@ -454,6 +457,7 @@
mLaunchingTaskView = null;
mItemInfo = null;
mSplitEvent = null;
+ mAnimateCurrentTaskDismissal = false;
}
/**
diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
index 74e4acc..ca4365f 100644
--- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
+++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
@@ -22,27 +22,23 @@
import android.animation.RectEvaluator;
import android.content.ComponentName;
import android.content.Context;
-import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceControl;
-import android.view.SurfaceSession;
import android.view.View;
import android.window.PictureInPictureSurfaceTransaction;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimationSuccessListener;
-import com.android.launcher3.anim.Interpolators;
-import com.android.launcher3.util.Themes;
import com.android.quickstep.TaskAnimationManager;
import com.android.systemui.shared.pip.PipSurfaceTransactionHelper;
import com.android.systemui.shared.system.InteractionJankMonitorWrapper;
+import com.android.wm.shell.pip.PipContentOverlay;
/**
* Subclass of {@link RectFSpringAnim} that animates an Activity to PiP (picture-in-picture) window
@@ -65,7 +61,10 @@
private final Rect mDestinationBounds = new Rect();
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
- /** for calculating transform in {@link #onAnimationUpdate(AppCloseConfig, RectF, float)} */
+ /**
+ * For calculating transform in
+ * {@link #onAnimationUpdate(SurfaceControl.Transaction, RectF, float)}
+ */
private final RectEvaluator mInsetsEvaluator = new RectEvaluator(new Rect());
private final Rect mSourceHintRectInsets;
private final Rect mSourceInsets = new Rect();
@@ -144,31 +143,17 @@
mSourceRectHint.setEmpty();
mSourceHintRectInsets = null;
- // Create a new overlay layer
- SurfaceSession session = new SurfaceSession();
- mContentOverlay = new SurfaceControl.Builder(session)
- .setCallsite("SwipePipToHomeAnimator")
- .setName("PipContentOverlay")
- .setColorLayer()
- .build();
- SurfaceControl.Transaction t = new SurfaceControl.Transaction();
- t.show(mContentOverlay);
- t.setLayer(mContentOverlay, Integer.MAX_VALUE);
- int color = Themes.getColorBackground(view.getContext());
- float[] bgColor = new float[] {Color.red(color) / 255f, Color.green(color) / 255f,
- Color.blue(color) / 255f};
- t.setColor(mContentOverlay, bgColor);
- t.setAlpha(mContentOverlay, 0f);
- t.reparent(mContentOverlay, mLeash);
- t.apply();
-
+ // Create a new overlay layer. We do not call detach on this instance, it's propagated
+ // to other classes like PipTaskOrganizer / RecentsAnimationController to complete
+ // the cleanup.
+ final PipContentOverlay.PipColorOverlay overlay =
+ new PipContentOverlay.PipColorOverlay(view.getContext());
+ final SurfaceControl.Transaction tx = new SurfaceControl.Transaction();
+ mContentOverlay = overlay.getLeash();
+ overlay.attach(tx, mLeash);
addOnUpdateListener((currentRect, progress) -> {
- float alpha = progress < 0.5f
- ? 0
- : Utilities.mapToRange(Math.min(progress, 1f), 0.5f, 1f,
- 0f, 1f, Interpolators.FAST_OUT_SLOW_IN);
- t.setAlpha(mContentOverlay, alpha);
- t.apply();
+ overlay.onAnimationUpdate(tx, progress);
+ tx.apply();
});
} else {
mSourceRectHint.set(sourceRectHint);
diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
index 04af19f..69f9ce3 100644
--- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
+++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
@@ -104,6 +104,7 @@
private SplitBounds mSplitBounds;
private Boolean mDrawsBelowRecents = null;
private boolean mIsGridTask;
+ private boolean mIsDesktopTask;
private int mTaskRectTranslationX;
private int mTaskRectTranslationY;
@@ -145,6 +146,13 @@
if (mDp == null) {
return 1;
}
+
+ if (mIsDesktopTask) {
+ mTaskRect.set(mThumbnailPosition);
+ mPivot.set(mTaskRect.centerX(), mTaskRect.centerY());
+ return 1;
+ }
+
if (mIsGridTask) {
mSizeStrategy.calculateGridTaskSize(mContext, mDp, mTaskRect,
mOrientationState.getOrientationHandler());
@@ -228,6 +236,13 @@
}
/**
+ * Sets whether this task is part of desktop tasks in overview.
+ */
+ public void setIsDesktopTask(boolean desktop) {
+ mIsDesktopTask = desktop;
+ }
+
+ /**
* Apply translations on TaskRect's starting location.
*/
public void setTaskRectTranslation(int taskRectTranslationX, int taskRectTranslationY) {
diff --git a/quickstep/src/com/android/quickstep/views/AllAppsEduView.java b/quickstep/src/com/android/quickstep/views/AllAppsEduView.java
index d79b318..716d389 100644
--- a/quickstep/src/com/android/quickstep/views/AllAppsEduView.java
+++ b/quickstep/src/com/android/quickstep/views/AllAppsEduView.java
@@ -112,11 +112,6 @@
}
@Override
- public boolean onBackPressed() {
- return true;
- }
-
- @Override
public boolean canInterceptEventsInSystemGestureRegion() {
return true;
}
diff --git a/quickstep/src/com/android/quickstep/views/DesktopTaskView.java b/quickstep/src/com/android/quickstep/views/DesktopTaskView.java
index 858f6ab..44aa41a 100644
--- a/quickstep/src/com/android/quickstep/views/DesktopTaskView.java
+++ b/quickstep/src/com/android/quickstep/views/DesktopTaskView.java
@@ -18,6 +18,7 @@
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_UNDEFINED;
import android.content.Context;
@@ -35,6 +36,7 @@
import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
+import com.android.launcher3.Launcher;
import com.android.launcher3.Utilities;
import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.launcher3.util.RunnableList;
@@ -295,7 +297,7 @@
@Override
public RunnableList launchTasks() {
SystemUiProxy.INSTANCE.get(getContext()).showDesktopApps();
- getRecentsView().startHome();
+ Launcher.getLauncher(mActivity).getStateManager().goToState(NORMAL, false /* animated */);
return null;
}
diff --git a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
index cf033a6..886fc80 100644
--- a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
@@ -34,13 +34,13 @@
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.LauncherState;
import com.android.launcher3.logging.StatsLogManager;
-import com.android.launcher3.popup.QuickstepSystemShortcut;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statehandlers.DesktopVisibilityController;
import com.android.launcher3.statemanager.StateManager.StateListener;
import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.launcher3.util.PendingSplitSelectInfo;
import com.android.launcher3.util.SplitConfigurationOptions;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.quickstep.LauncherActivityInterface;
import com.android.quickstep.RotationTouchHelper;
import com.android.quickstep.util.SplitSelectStateController;
@@ -199,7 +199,7 @@
}
@Override
- public void initiateSplitSelect(QuickstepSystemShortcut.SplitSelectSource splitSelectSource) {
+ public void initiateSplitSelect(SplitSelectSource splitSelectSource) {
super.initiateSplitSelect(splitSelectSource);
mActivity.getStateManager().goToState(LauncherState.OVERVIEW_SPLIT_SELECT);
}
diff --git a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
index eeabdc8..0d21e60 100644
--- a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
+++ b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
@@ -55,7 +55,8 @@
HIDDEN_NO_TASKS,
HIDDEN_NO_RECENTS,
HIDDEN_SPLIT_SCREEN,
- HIDDEN_SPLIT_SELECT_ACTIVE
+ HIDDEN_SPLIT_SELECT_ACTIVE,
+ HIDDEN_ACTIONS_IN_MENU
})
@Retention(RetentionPolicy.SOURCE)
public @interface ActionsHiddenFlags { }
@@ -65,6 +66,7 @@
public static final int HIDDEN_NO_RECENTS = 1 << 2;
public static final int HIDDEN_SPLIT_SCREEN = 1 << 3;
public static final int HIDDEN_SPLIT_SELECT_ACTIVE = 1 << 4;
+ public static final int HIDDEN_ACTIONS_IN_MENU = 1 << 5;
@IntDef(flag = true, value = {
DISABLED_SCROLLING,
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 5fa2a5c..61d6179 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -16,6 +16,7 @@
package com.android.quickstep.views;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.view.Surface.ROTATION_0;
import static android.view.View.MeasureSpec.EXACTLY;
import static android.view.View.MeasureSpec.makeMeasureSpec;
@@ -41,6 +42,7 @@
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.anim.Interpolators.OVERSHOOT_0_75;
import static com.android.launcher3.anim.Interpolators.clampToProgress;
+import static com.android.launcher3.config.FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW;
import static com.android.launcher3.config.FeatureFlags.ENABLE_LAUNCH_FROM_STAGED_APP;
import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_OVERVIEW_ACTIONS_SPLIT;
@@ -59,6 +61,7 @@
import static com.android.quickstep.views.DesktopTaskView.DESKTOP_MODE_SUPPORTED;
import static com.android.quickstep.views.OverviewActionsView.FLAG_IS_NOT_TABLET;
import static com.android.quickstep.views.OverviewActionsView.FLAG_SINGLE_TASK;
+import static com.android.quickstep.views.OverviewActionsView.HIDDEN_ACTIONS_IN_MENU;
import static com.android.quickstep.views.OverviewActionsView.HIDDEN_NON_ZERO_ROTATION;
import static com.android.quickstep.views.OverviewActionsView.HIDDEN_NO_RECENTS;
import static com.android.quickstep.views.OverviewActionsView.HIDDEN_NO_TASKS;
@@ -144,7 +147,6 @@
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.icons.cache.HandlerRunnable;
import com.android.launcher3.logging.StatsLogManager;
-import com.android.launcher3.popup.QuickstepSystemShortcut;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statemanager.BaseState;
import com.android.launcher3.statemanager.StatefulActivity;
@@ -156,6 +158,7 @@
import com.android.launcher3.util.ResourceBasedOverride.Overrides;
import com.android.launcher3.util.RunnableList;
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
+import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.TranslateEdgeEffect;
@@ -677,7 +680,7 @@
private SplitInstructionsView mSplitInstructionsView;
@Nullable
- private QuickstepSystemShortcut.SplitSelectSource mSplitSelectSource;
+ private SplitSelectSource mSplitSelectSource;
/**
* Keeps track of the index of the TaskView that split screen was initialized with so we know
@@ -1351,8 +1354,10 @@
if (!mActivity.getDeviceProfile().isTablet) {
mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING, true);
}
- InteractionJankMonitorWrapper.begin(/* view= */ this,
- InteractionJankMonitorWrapper.CUJ_RECENTS_SCROLLING);
+ if (mOverviewStateEnabled) { // only when in overview
+ InteractionJankMonitorWrapper.begin(/* view= */ this,
+ InteractionJankMonitorWrapper.CUJ_RECENTS_SCROLLING);
+ }
}
@Override
@@ -1605,8 +1610,9 @@
// If we are entering Overview as a result of initiating a split from somewhere else
// (e.g. split from Home), we need to make sure the staged app is not drawn as a thumbnail.
- Task stagedTaskToBeRemovedFromGrid =
- mSplitSelectSource != null ? mSplitSelectSource.alreadyRunningTask : null;
+ int stagedTaskIdToBeRemovedFromGrid = mSplitSelectSource != null
+ ? mSplitSelectSource.alreadyRunningTaskId
+ : INVALID_TASK_ID;
// update the map of instance counts
mFilterState.updateInstanceCountMap(taskGroups);
@@ -1615,8 +1621,8 @@
// taskGroups backwards populates the thumbnail grid from least recent to most recent.
for (int i = taskGroups.size() - 1; i >= 0; i--) {
GroupTask groupTask = taskGroups.get(i);
- boolean isRemovalNeeded = stagedTaskToBeRemovedFromGrid != null
- && groupTask.containsTask(stagedTaskToBeRemovedFromGrid.key.id);
+ boolean isRemovalNeeded = stagedTaskIdToBeRemovedFromGrid != INVALID_TASK_ID
+ && groupTask.containsTask(stagedTaskIdToBeRemovedFromGrid);
TaskView taskView;
if (isRemovalNeeded && groupTask.hasMultipleTasks()) {
@@ -1630,7 +1636,7 @@
addView(taskView);
if (isRemovalNeeded && groupTask.hasMultipleTasks()) {
- if (groupTask.task1.equals(stagedTaskToBeRemovedFromGrid)) {
+ if (groupTask.task1.key.id == stagedTaskIdToBeRemovedFromGrid) {
taskView.bind(groupTask.task2, mOrientationState);
} else {
taskView.bind(groupTask.task1, mOrientationState);
@@ -1860,6 +1866,9 @@
DeviceProfile dp = mActivity.getDeviceProfile();
setOverviewGridEnabled(
mActivity.getStateManager().getState().displayOverviewTasksAsGrid(dp));
+ if (ENABLE_GRID_ONLY_OVERVIEW.get()) {
+ mActionsView.updateHiddenFlags(HIDDEN_ACTIONS_IN_MENU, dp.isTablet);
+ }
setPageSpacing(dp.overviewPageSpacing);
// Propagate DeviceProfile change event.
@@ -3017,7 +3026,7 @@
RectF startingTaskRect = new RectF();
safeRemoveDragLayerView(mFirstFloatingTaskView);
- if (mSplitHiddenTaskView != null) {
+ if (mSplitSelectStateController.isAnimateCurrentTaskDismissal()) {
// Create the split select animation from Overview
mSplitHiddenTaskView.setThumbnailVisibility(INVISIBLE);
anim.setViewAlpha(mSplitHiddenTaskView.getIconView(), 0, clampToProgress(LINEAR,
@@ -4391,29 +4400,38 @@
initiateSplitSelect(taskView, defaultSplitPosition, LAUNCHER_OVERVIEW_ACTIONS_SPLIT);
}
+ /** TODO(b/266477929): Consolidate this call w/ the one below */
public void initiateSplitSelect(TaskView taskView, @StagePosition int stagePosition,
StatsLogManager.EventEnum splitEvent) {
mSplitHiddenTaskView = taskView;
- mSplitSelectStateController.setInitialTaskSelect(taskView.getTask(),
- stagePosition, splitEvent, taskView.getItemInfo());
+ mSplitSelectStateController.setInitialTaskSelect(null /*intent*/,
+ stagePosition, taskView.getItemInfo(), splitEvent, taskView.mTask.key.id);
+ mSplitSelectStateController.setAnimateCurrentTaskDismissal(
+ true /*animateCurrentTaskDismissal*/);
mSplitHiddenTaskViewIndex = indexOfChild(taskView);
}
/**
- * Called when staging a split from Home/AllApps, using the icon long-press menu.
+ * Called when staging a split from Home/AllApps/Overview (Taskbar),
+ * using the icon long-press menu.
+ * Attempts to initiate split with an existing taskView, if one exists
*/
- public void initiateSplitSelect(QuickstepSystemShortcut.SplitSelectSource splitSelectSource) {
+ public void initiateSplitSelect(SplitSelectSource splitSelectSource) {
mSplitSelectSource = splitSelectSource;
+ mSplitHiddenTaskView = getTaskViewByTaskId(splitSelectSource.alreadyRunningTaskId);
+ mSplitHiddenTaskViewIndex = indexOfChild(mSplitHiddenTaskView);
+ mSplitSelectStateController
+ .setAnimateCurrentTaskDismissal(splitSelectSource.animateCurrentTaskDismissal);
mSplitSelectStateController.setInitialTaskSelect(splitSelectSource.intent,
splitSelectSource.position.stagePosition, splitSelectSource.itemInfo,
- splitSelectSource.splitEvent, splitSelectSource.alreadyRunningTask);
+ splitSelectSource.splitEvent, splitSelectSource.alreadyRunningTaskId);
}
/**
* Modifies a PendingAnimation with the animations for entering split staging
*/
public void createSplitSelectInitAnimation(PendingAnimation builder, int duration) {
- if (mSplitHiddenTaskView != null) {
+ if (mSplitSelectStateController.isAnimateCurrentTaskDismissal()) {
// Splitting from Overview
createTaskDismissAnimation(builder, mSplitHiddenTaskView, true, false, duration,
true /* dismissingForSplitSelection*/);
@@ -4909,9 +4927,16 @@
return;
}
- RemoteTargetGluer gluer = new RemoteTargetGluer(getContext(), getSizeStrategy());
- mRemoteTargetHandles = gluer.assignTargetsForSplitScreen(
- getContext(), recentsAnimationTargets);
+ RemoteTargetGluer gluer;
+ if (DESKTOP_MODE_SUPPORTED && recentsAnimationTargets.hasDesktopTasks()) {
+ gluer = new RemoteTargetGluer(getContext(), getSizeStrategy(), recentsAnimationTargets,
+ true /* forDesktop */);
+ mRemoteTargetHandles = gluer.assignTargetsForDesktop(recentsAnimationTargets);
+ } else {
+ gluer = new RemoteTargetGluer(getContext(), getSizeStrategy());
+ mRemoteTargetHandles = gluer.assignTargetsForSplitScreen(
+ getContext(), recentsAnimationTargets);
+ }
mSplitBoundsConfig = gluer.getSplitBounds();
// Add release check to the targets from the RemoteTargetGluer and not the targets
// passed in because in the event we're in split screen, we use the passed in targets
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
index 54b58b9..0da70a9 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
@@ -46,7 +46,7 @@
fun showForTask(
taskContainer: TaskIdAttributeContainer,
- alignSecondRow: Boolean = false
+ alignedOptionIndex: Int = 0
): Boolean {
val activity =
BaseDraggingActivity.fromContext<BaseDraggingActivity>(
@@ -59,7 +59,7 @@
false
) as TaskMenuViewWithArrow<*>
- return taskMenuViewWithArrow.populateAndShowForTask(taskContainer, alignSecondRow)
+ return taskMenuViewWithArrow.populateAndShowForTask(taskContainer, alignedOptionIndex)
}
}
@@ -82,9 +82,9 @@
CLOSE_FADE_DURATION = CLOSE_CHILD_FADE_DURATION
}
- private var alignSecondRow: Boolean = false
- private val extraSpaceForSecondRowAlignment: Int
- get() = if (alignSecondRow) optionMeasuredHeight else 0
+ private var alignedOptionIndex: Int = 0
+ private val extraSpaceForRowAlignment: Int
+ get() = optionMeasuredHeight * alignedOptionIndex
private val menuWidth = context.resources.getDimensionPixelSize(R.dimen.task_menu_width_grid)
private lateinit var taskView: TaskView
@@ -125,7 +125,7 @@
private fun populateAndShowForTask(
taskContainer: TaskIdAttributeContainer,
- alignSecondRow: Boolean
+ alignedOptionIndex: Int
): Boolean {
if (isAttachedToWindow) {
return false
@@ -133,7 +133,7 @@
taskView = taskContainer.taskView
this.taskContainer = taskContainer
- this.alignSecondRow = alignSecondRow
+ this.alignedOptionIndex = alignedOptionIndex
if (!populateMenu()) return false
addScrim()
show()
@@ -257,8 +257,7 @@
}
/**
- * Orients this container to the left or right of the given icon, aligning with the first option
- * or second.
+ * Orients this container to the left or right of the given icon, aligning with the desired row.
*
* These are the preferred orientations, in order (RTL prefers right-aligned over left):
* - Right and first option aligned
@@ -298,7 +297,7 @@
// Offset y so that the arrow and row are center-aligned with the original icon.
val iconHeight = mTempRect.height()
val yOffset = (optionMeasuredHeight - iconHeight) / 2
- var menuStartY = mTempRect.top - yOffset - extraSpaceForSecondRowAlignment
+ var menuStartY = mTempRect.top - yOffset - extraSpaceForRowAlignment
// Insets are added later, so subtract them now.
menuStartX -= insets.left
@@ -316,8 +315,7 @@
override fun addArrow() {
popupContainer.addView(mArrow)
mArrow.x = getArrowX()
- mArrow.y =
- y + (optionMeasuredHeight / 2) - (mArrowHeight / 2) + extraSpaceForSecondRowAlignment
+ mArrow.y = y + (optionMeasuredHeight / 2) - (mArrowHeight / 2) + extraSpaceForRowAlignment
updateArrowColor()
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index aa37fdd..8c8c2ba 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -71,6 +71,7 @@
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.Interpolators;
+import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.popup.SystemShortcut;
import com.android.launcher3.statemanager.StatefulActivity;
@@ -600,6 +601,19 @@
return mTaskIdContainer[1] != -1;
}
+ /**
+ * Finds the index of a given taskId within this TaskView, or -1 if the TaskView does not
+ * contain it. For grouped tasks (of two), this is 0 or 1; for solo tasks, it is 0.
+ */
+ public int getIndexOfTask(int taskId) {
+ for (int i = 0; i < mTaskIdContainer.length; i++) {
+ if (mTaskIdContainer[i] == taskId) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
public TaskThumbnailView getThumbnail() {
return mSnapshotView;
}
@@ -940,10 +954,20 @@
protected boolean showTaskMenuWithContainer(IconView iconView) {
TaskIdAttributeContainer menuContainer =
mTaskIdAttributeContainer[iconView == mIconView ? 0 : 1];
- if (mActivity.getDeviceProfile().isTablet) {
- boolean alignSecondRow = getRecentsView().isOnGridBottomRow(menuContainer.getTaskView())
- && mActivity.getDeviceProfile().isLandscape;
- return TaskMenuViewWithArrow.Companion.showForTask(menuContainer, alignSecondRow);
+ DeviceProfile dp = mActivity.getDeviceProfile();
+ if (dp.isTablet) {
+ int alignedOptionIndex = 0;
+ if (getRecentsView().isOnGridBottomRow(menuContainer.getTaskView()) && dp.isLandscape) {
+ if (FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW.get()) {
+ // With no focused task, there is less available space below the tasks, so align
+ // the arrow to the third option in the menu.
+ alignedOptionIndex = 2;
+ } else {
+ // Bottom row of landscape grid aligns arrow to second option to avoid clipping
+ alignedOptionIndex = 1;
+ }
+ }
+ return TaskMenuViewWithArrow.Companion.showForTask(menuContainer, alignedOptionIndex);
} else {
return TaskMenuView.showForTask(menuContainer);
}
diff --git a/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarBaseTestCase.kt b/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarBaseTestCase.kt
index e8a575e..8a78d8c 100644
--- a/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarBaseTestCase.kt
+++ b/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarBaseTestCase.kt
@@ -23,55 +23,35 @@
import org.mockito.MockitoAnnotations
/**
- * Helper class to extend to get access to all controllers.
- * Gotta be careful of your relationship with this class though, it can be quite... controlling.
+ * Helper class to extend to get access to all controllers. Gotta be careful of your relationship
+ * with this class though, it can be quite... controlling.
*/
abstract class TaskbarBaseTestCase {
- @Mock
- lateinit var taskbarActivityContext: TaskbarActivityContext
- @Mock
- lateinit var taskbarDragController: TaskbarDragController
- @Mock
- lateinit var navButtonController: TaskbarNavButtonController
- @Mock
- lateinit var navbarButtonsViewController: NavbarButtonsViewController
- @Mock
- lateinit var rotationButtonController: RotationButtonController
- @Mock
- lateinit var taskbarDragLayerController: TaskbarDragLayerController
- @Mock
- lateinit var taskbarScrimViewController: TaskbarScrimViewController
- @Mock
- lateinit var taskbarViewController: TaskbarViewController
- @Mock
- lateinit var taskbarUnfoldAnimationController: TaskbarUnfoldAnimationController
- @Mock
- lateinit var taskbarKeyguardController: TaskbarKeyguardController
- @Mock
- lateinit var stashedHandleViewController: StashedHandleViewController
- @Mock
- lateinit var taskbarStashController: TaskbarStashController
- @Mock
- lateinit var taskbarEduController: TaskbarEduController
- @Mock
- lateinit var taskbarAutohideSuspendController: TaskbarAutohideSuspendController
- @Mock
- lateinit var taskbarPopupController: TaskbarPopupController
+ @Mock lateinit var taskbarActivityContext: TaskbarActivityContext
+ @Mock lateinit var taskbarDragController: TaskbarDragController
+ @Mock lateinit var navButtonController: TaskbarNavButtonController
+ @Mock lateinit var navbarButtonsViewController: NavbarButtonsViewController
+ @Mock lateinit var rotationButtonController: RotationButtonController
+ @Mock lateinit var taskbarDragLayerController: TaskbarDragLayerController
+ @Mock lateinit var taskbarScrimViewController: TaskbarScrimViewController
+ @Mock lateinit var taskbarViewController: TaskbarViewController
+ @Mock lateinit var taskbarUnfoldAnimationController: TaskbarUnfoldAnimationController
+ @Mock lateinit var taskbarKeyguardController: TaskbarKeyguardController
+ @Mock lateinit var stashedHandleViewController: StashedHandleViewController
+ @Mock lateinit var taskbarStashController: TaskbarStashController
+ @Mock lateinit var taskbarEduController: TaskbarEduController
+ @Mock lateinit var taskbarAutohideSuspendController: TaskbarAutohideSuspendController
+ @Mock lateinit var taskbarPopupController: TaskbarPopupController
@Mock
lateinit var taskbarForceVisibleImmersiveController: TaskbarForceVisibleImmersiveController
- @Mock
- lateinit var taskbarAllAppsController: TaskbarAllAppsController
- @Mock
- lateinit var taskbarInsetsController: TaskbarInsetsController
- @Mock
- lateinit var voiceInteractionWindowController: VoiceInteractionWindowController
- @Mock
- lateinit var taskbarRecentAppsController: TaskbarRecentAppsController
- @Mock
- lateinit var taskbarTranslationController: TaskbarTranslationController
- @Mock
- lateinit var taskbarOverlayController: TaskbarOverlayController
+ @Mock lateinit var taskbarAllAppsController: TaskbarAllAppsController
+ @Mock lateinit var taskbarInsetsController: TaskbarInsetsController
+ @Mock lateinit var voiceInteractionWindowController: VoiceInteractionWindowController
+ @Mock lateinit var taskbarRecentAppsController: TaskbarRecentAppsController
+ @Mock lateinit var taskbarTranslationController: TaskbarTranslationController
+ @Mock lateinit var taskbarOverlayController: TaskbarOverlayController
+ @Mock lateinit var taskbarEduTooltipController: TaskbarEduTooltipController
lateinit var mTaskbarControllers: TaskbarControllers
@@ -85,16 +65,31 @@
* includes that method to allow mocking it.
*/
MockitoAnnotations.initMocks(this)
- mTaskbarControllers = TaskbarControllers(
- taskbarActivityContext, taskbarDragController, navButtonController,
- navbarButtonsViewController, rotationButtonController, taskbarDragLayerController,
- taskbarViewController, taskbarScrimViewController, taskbarUnfoldAnimationController,
- taskbarKeyguardController, stashedHandleViewController, taskbarStashController,
- taskbarEduController, taskbarAutohideSuspendController, taskbarPopupController,
- taskbarForceVisibleImmersiveController, taskbarOverlayController,
- taskbarAllAppsController, taskbarInsetsController,
- voiceInteractionWindowController, taskbarTranslationController,
- taskbarRecentAppsController
- )
+ mTaskbarControllers =
+ TaskbarControllers(
+ taskbarActivityContext,
+ taskbarDragController,
+ navButtonController,
+ navbarButtonsViewController,
+ rotationButtonController,
+ taskbarDragLayerController,
+ taskbarViewController,
+ taskbarScrimViewController,
+ taskbarUnfoldAnimationController,
+ taskbarKeyguardController,
+ stashedHandleViewController,
+ taskbarStashController,
+ taskbarEduController,
+ taskbarAutohideSuspendController,
+ taskbarPopupController,
+ taskbarForceVisibleImmersiveController,
+ taskbarOverlayController,
+ taskbarAllAppsController,
+ taskbarInsetsController,
+ voiceInteractionWindowController,
+ taskbarTranslationController,
+ taskbarRecentAppsController,
+ taskbarEduTooltipController,
+ )
}
-}
\ No newline at end of file
+}
diff --git a/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarKeyguardControllerTest.kt b/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarKeyguardControllerTest.kt
index 59db8c8..148e36c 100644
--- a/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarKeyguardControllerTest.kt
+++ b/quickstep/tests/src/com/android/launcher3/taskbar/TaskbarKeyguardControllerTest.kt
@@ -19,8 +19,6 @@
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING
-import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED
-import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED
import org.junit.Before
@@ -34,16 +32,14 @@
class TaskbarKeyguardControllerTest : TaskbarBaseTestCase() {
- @Mock
- lateinit var baseDragLayer: TaskbarDragLayer
- @Mock
- lateinit var keyguardManager: KeyguardManager
+ @Mock lateinit var baseDragLayer: TaskbarDragLayer
+ @Mock lateinit var keyguardManager: KeyguardManager
@Before
override fun setup() {
super.setup()
whenever(taskbarActivityContext.getSystemService(KeyguardManager::class.java))
- .thenReturn(keyguardManager)
+ .thenReturn(keyguardManager)
whenever(baseDragLayer.childCount).thenReturn(0)
whenever(taskbarActivityContext.dragLayer).thenReturn(baseDragLayer)
@@ -60,41 +56,35 @@
@Test
fun keyguardShowing() {
setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING)
- verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
- true /*isKeyguardVisible*/,
- false /*isKeyguardOccluded*/)
+ verify(navbarButtonsViewController, times(1))
+ .setKeyguardVisible(true /*isKeyguardVisible*/, false /*isKeyguardOccluded*/)
}
@Test
fun dozingShowing() {
setFlags(SYSUI_STATE_DEVICE_DOZING)
- verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
- true /*isKeyguardVisible*/,
- false /*isKeyguardOccluded*/)
+ verify(navbarButtonsViewController, times(1))
+ .setKeyguardVisible(true /*isKeyguardVisible*/, false /*isKeyguardOccluded*/)
}
@Test
fun keyguardOccluded() {
setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED)
- verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
- false /*isKeyguardVisible*/,
- true /*isKeyguardOccluded*/)
+ verify(navbarButtonsViewController, times(1))
+ .setKeyguardVisible(false /*isKeyguardVisible*/, true /*isKeyguardOccluded*/)
}
@Test
fun keyguardOccludedAndDozing() {
setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED.or(SYSUI_STATE_DEVICE_DOZING))
- verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
- true /*isKeyguardVisible*/,
- true /*isKeyguardOccluded*/)
+ verify(navbarButtonsViewController, times(1))
+ .setKeyguardVisible(true /*isKeyguardVisible*/, true /*isKeyguardOccluded*/)
}
@Test
fun deviceInsecure_hideBackForBouncer() {
whenever(keyguardManager.isDeviceSecure).thenReturn(false)
- setFlags(SYSUI_STATE_OVERVIEW_DISABLED
- .or(SYSUI_STATE_HOME_DISABLED)
- .or(SYSUI_STATE_BOUNCER_SHOWING))
+ setFlags(SYSUI_STATE_BOUNCER_SHOWING)
verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
}
@@ -102,49 +92,20 @@
@Test
fun deviceSecure_showBackForBouncer() {
whenever(keyguardManager.isDeviceSecure).thenReturn(true)
- setFlags(SYSUI_STATE_OVERVIEW_DISABLED
- .or(SYSUI_STATE_HOME_DISABLED)
- .or(SYSUI_STATE_BOUNCER_SHOWING))
+ setFlags(SYSUI_STATE_BOUNCER_SHOWING)
verify(navbarButtonsViewController, times(1)).setBackForBouncer(true)
}
@Test
- fun homeShowing_hideBackForBouncer() {
- whenever(keyguardManager.isDeviceSecure).thenReturn(true)
- setFlags(SYSUI_STATE_OVERVIEW_DISABLED
- .or(SYSUI_STATE_BOUNCER_SHOWING))
-
- verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
- }
-
- @Test
- fun overviewShowing_hideBackForBouncer() {
- whenever(keyguardManager.isDeviceSecure).thenReturn(true)
- setFlags(SYSUI_STATE_HOME_DISABLED
- .or(SYSUI_STATE_BOUNCER_SHOWING))
-
- verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
- }
-
- @Test
fun backDisabled_hideBackForBouncer() {
whenever(keyguardManager.isDeviceSecure).thenReturn(true)
- setFlags(SYSUI_STATE_BACK_DISABLED
- .or(SYSUI_STATE_BOUNCER_SHOWING))
+ setFlags(SYSUI_STATE_BACK_DISABLED.or(SYSUI_STATE_BOUNCER_SHOWING))
verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
-
- // back disabled along with home and overview
- setFlags(SYSUI_STATE_BACK_DISABLED
- .or(SYSUI_STATE_HOME_DISABLED)
- .or(SYSUI_STATE_OVERVIEW_DISABLED)
- .or(SYSUI_STATE_BOUNCER_SHOWING))
-
- verify(navbarButtonsViewController, times(2)).setBackForBouncer(false)
}
private fun setFlags(flags: Int) {
taskbarKeyguardController.updateStateForSysuiFlags(flags)
}
-}
\ No newline at end of file
+}
diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
index 47bef7b..62d46d3 100644
--- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
+++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
@@ -32,6 +32,8 @@
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import static com.android.launcher3.util.rule.ShellCommandRule.disableHeadsUpNotification;
import static com.android.launcher3.util.rule.ShellCommandRule.getLauncherCommand;
+import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL;
+import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -59,6 +61,7 @@
import com.android.launcher3.util.rule.FailureWatcher;
import com.android.launcher3.util.rule.SamplerRule;
import com.android.launcher3.util.rule.ScreenRecordRule;
+import com.android.launcher3.util.rule.TestStabilityRule;
import com.android.quickstep.views.RecentsView;
import org.junit.After;
@@ -168,7 +171,7 @@
// b/143488140
//@NavigationModeSwitch
- @Ignore
+ @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/266606727
@Test
public void goToOverviewFromHome() {
mDevice.pressHome();
@@ -216,7 +219,7 @@
// b/143488140
//@NavigationModeSwitch
- @Ignore
+ @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/266606727
@Test
public void testOverview() {
startAppFast(getAppPackageName());
diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java b/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
index 0b8bc10..aed26d3 100644
--- a/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
+++ b/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
@@ -18,6 +18,7 @@
import static androidx.test.InstrumentationRegistry.getInstrumentation;
import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
+import static com.android.quickstep.TaskbarModeSwitchRule.Mode.TRANSIENT;
import static junit.framework.TestCase.assertEquals;
@@ -82,19 +83,31 @@
}
@Test
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchApp() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
}
@Test
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchApp() throws Exception {
+ getTaskbar().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
+ }
+
+ @Test
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testOpenMenu() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).openMenu();
}
@Test
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientOpenMenu() throws Exception {
+ getTaskbar().getAppIcon(TEST_APP_NAME).openMenu();
+ }
+
+ @Test
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchShortcut() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME)
.openDeepShortcutMenu()
@@ -103,9 +116,18 @@
}
@Test
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchShortcut() throws Exception {
+ getTaskbar().getAppIcon(TEST_APP_NAME)
+ .openDeepShortcutMenu()
+ .getMenuItem("Shortcut 1")
+ .launch(TEST_APP_PACKAGE);
+ }
+
+ @Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchAppInSplitscreen() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).dragToSplitscreen(
TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
@@ -114,7 +136,16 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchAppInSplitscreen() throws Exception {
+ getTaskbar().getAppIcon(TEST_APP_NAME).dragToSplitscreen(
+ TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
+ }
+
+ @Test
+ @ScreenRecord // b/231615831
+ @PortraitLandscape
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchShortcutInSplitscreen() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME)
.openDeepShortcutMenu()
@@ -123,19 +154,42 @@
}
@Test
- @TaskbarModeSwitch
+ @ScreenRecord // b/231615831
+ @PortraitLandscape
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchShortcutInSplitscreen() throws Exception {
+ getTaskbar().getAppIcon(TEST_APP_NAME)
+ .openDeepShortcutMenu()
+ .getMenuItem("Shortcut 1")
+ .dragToSplitscreen(TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
+ }
+
+ @Test
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchApp_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
}
@Test
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchApp_FromTaskbarAllApps() throws Exception {
+ getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
+ }
+
+ @Test
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testOpenMenu_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).openMenu();
}
@Test
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientOpenMenu_FromTaskbarAllApps() throws Exception {
+ getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).openMenu();
+ }
+
+ @Test
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchShortcut_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
@@ -145,9 +199,19 @@
}
@Test
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchShortcut_FromTaskbarAllApps() throws Exception {
+ getTaskbar().openAllApps()
+ .getAppIcon(TEST_APP_NAME)
+ .openDeepShortcutMenu()
+ .getMenuItem("Shortcut 1")
+ .launch(TEST_APP_PACKAGE);
+ }
+
+ @Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchAppInSplitscreen_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
@@ -157,7 +221,17 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchAppInSplitscreen_FromTaskbarAllApps() throws Exception {
+ getTaskbar().openAllApps()
+ .getAppIcon(TEST_APP_NAME)
+ .dragToSplitscreen(TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
+ }
+
+ @Test
+ @ScreenRecord // b/231615831
+ @PortraitLandscape
+ @TaskbarModeSwitch(mode = PERSISTENT)
public void testLaunchShortcutInSplitscreen_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
@@ -166,6 +240,18 @@
.dragToSplitscreen(TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
}
+ @Test
+ @ScreenRecord // b/231615831
+ @PortraitLandscape
+ @TaskbarModeSwitch(mode = TRANSIENT)
+ public void testTransientLaunchShortcutInSplitscreen_FromTaskbarAllApps() throws Exception {
+ getTaskbar().openAllApps()
+ .getAppIcon(TEST_APP_NAME)
+ .openDeepShortcutMenu()
+ .getMenuItem("Shortcut 1")
+ .dragToSplitscreen(TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
+ }
+
private Taskbar getTaskbar() {
Taskbar taskbar = mLauncher.getLaunchedAppState().getTaskbar();
List<String> taskbarIconNames = taskbar.getIconNames();
diff --git a/res/drawable/ic_caption_desktop_button_foreground.xml b/res/drawable/ic_caption_desktop_button_foreground.xml
new file mode 100644
index 0000000..f185436
--- /dev/null
+++ b/res/drawable/ic_caption_desktop_button_foreground.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group android:scaleX="3.375"
+ android:scaleY="3.375">
+ <group android:scaleX="0.5"
+ android:scaleY="0.5"
+ android:translateX="6.0"
+ android:translateY="6.0">
+ <path
+ android:fillColor="@android:color/black"
+ android:pathData="M5.958,37.708Q4.458,37.708 3.354,36.604Q2.25,35.5 2.25,34V18.292Q2.25,16.792 3.354,15.688Q4.458,14.583 5.958,14.583H9.5V5.958Q9.5,4.458 10.625,3.354Q11.75,2.25 13.208,2.25H34Q35.542,2.25 36.646,3.354Q37.75,4.458 37.75,5.958V21.667Q37.75,23.167 36.646,24.271Q35.542,25.375 34,25.375H30.5V34Q30.5,35.5 29.396,36.604Q28.292,37.708 26.792,37.708ZM5.958,34H26.792Q26.792,34 26.792,34Q26.792,34 26.792,34V21.542H5.958V34Q5.958,34 5.958,34Q5.958,34 5.958,34ZM30.5,21.667H34Q34,21.667 34,21.667Q34,21.667 34,21.667V9.208H13.208V14.583H26.833Q28.375,14.583 29.438,15.667Q30.5,16.75 30.5,18.25Z"/>
+ </group>
+ </group>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_split_left.xml b/res/drawable/ic_split_left.xml
deleted file mode 100644
index fc9f699..0000000
--- a/res/drawable/ic_split_left.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="20dp"
- android:height="16dp"
- android:viewportWidth="20"
- android:viewportHeight="16">
- <path
- android:pathData="M-0,2L-0,14C-0,15.1 0.9,16 2,16L7,16C8.1,16 9,15.1 9,14L9,2C9,0.9 8.1,-0 7,-0L2,-0C0.9,-0 -0,0.9 -0,2ZM13,2L18,2L18,14L13,14L13,2ZM11,2L11,14C11,15.1 11.9,16 13,16L18,16C19.1,16 20,15.1 20,14L20,2C20,0.9 19.1,-0 18,-0L13,-0C11.9,-0 11,0.9 11,2Z"
- android:fillColor="#000000"/>
-</vector>
diff --git a/res/drawable/ic_split_right.xml b/res/drawable/ic_split_right.xml
deleted file mode 100644
index cc15622..0000000
--- a/res/drawable/ic_split_right.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="20dp"
- android:height="16dp"
- android:viewportWidth="20"
- android:viewportHeight="16">
- <path
- android:pathData="M20,14L20,2C20,0.9 19.1,-0 18,-0L13,-0C11.9,-0 11,0.9 11,2L11,14C11,15.1 11.9,16 13,16L18,16C19.1,16 20,15.1 20,14ZM7,14L2,14L2,2L7,2L7,14ZM9,14L9,2C9,0.9 8.1,-0 7,-0L2,-0C0.9,-0 -0,0.9 -0,2L-0,14C-0,15.1 0.9,16 2,16L7,16C8.1,16 9,15.1 9,14Z"
- android:fillColor="#000000"/>
-</vector>
diff --git a/res/drawable/ic_split_screen.xml b/res/drawable/ic_split_screen.xml
deleted file mode 100644
index 1080069..0000000
--- a/res/drawable/ic_split_screen.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24"
- android:tint="?android:attr/textColorPrimary">
-
- <path
- android:fillColor="@android:color/white"
- android:pathData="M18,4v5H6V4H18 M18,2H6C4.9,2,4,2.9,4,4v5c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2L18,2z" />
- <path
- android:fillColor="@android:color/white"
- android:pathData="M18,15v5H6v-5H18 M18,13H6c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-5C20,13.9,19.1,13,18,13L18,13z" />
-</vector>
diff --git a/res/drawable/ic_split_top.xml b/res/drawable/ic_split_top.xml
deleted file mode 100644
index f8c15bd..0000000
--- a/res/drawable/ic_split_top.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="16dp"
- android:height="20dp"
- android:viewportWidth="16"
- android:viewportHeight="20">
- <path
- android:pathData="M14,0H2C0.9,0 0,0.9 0,2V7C0,8.1 0.9,9 2,9H14C15.1,9 16,8.1 16,7V2C16,0.9 15.1,0 14,0ZM14,13V18H2V13H14ZM14,11H2C0.9,11 0,11.9 0,13V18C0,19.1 0.9,20 2,20H14C15.1,20 16,19.1 16,18V13C16,11.9 15.1,11 14,11Z"
- android:fillColor="#000000"/>
-</vector>
diff --git a/res/layout/all_apps_tabs.xml b/res/layout/all_apps_tabs.xml
index 6dcae21..9710557 100644
--- a/res/layout/all_apps_tabs.xml
+++ b/res/layout/all_apps_tabs.xml
@@ -23,6 +23,7 @@
android:layout_gravity="center_horizontal|top"
android:layout_marginTop="@dimen/all_apps_header_pill_height"
android:clipChildren="true"
+ android:clipToOutline="true"
android:clipToPadding="false"
android:descendantFocusability="afterDescendants"
android:paddingTop="@dimen/all_apps_paged_view_top_padding"
diff --git a/res/layout/taskbar_divider.xml b/res/layout/taskbar_divider.xml
new file mode 100644
index 0000000..e25e7a3
--- /dev/null
+++ b/res/layout/taskbar_divider.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/taskbar_divider_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <View
+ android:id="@+id/taskbar_divider_bar"
+ android:layout_height="32dp"
+ android:layout_width="2dp"
+ android:layout_gravity="center"
+ android:background="@drawable/bg_rounded_corner_bottom_sheet_handle" />
+ <!-- TODO(b/265347148): Create separate drawable -->
+</FrameLayout>
diff --git a/res/layout/widget_cell_content.xml b/res/layout/widget_cell_content.xml
index feebfe1..3f61aaa 100644
--- a/res/layout/widget_cell_content.xml
+++ b/res/layout/widget_cell_content.xml
@@ -23,6 +23,7 @@
android:layout_height="0dp"
android:layout_weight="1"
android:importantForAccessibility="noHideDescendants"
+ android:hapticFeedbackEnabled="false"
android:layout_marginVertical="8dp">
<!-- The image of the widget. This view does not support padding. Any placement adjustment
should be done using margins. Width & height are set at runtime after scaling the
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3a58b85..46358cd 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -53,9 +53,9 @@
<string name="widget_category_conversations" msgid="8894438636213590446">"Сүйлөшүүлөр"</string>
<string name="widget_education_header" msgid="4874760613775913787">"Керектүү маалымат манжаңыздын учунда"</string>
<string name="widget_education_content" msgid="1731667670753497052">"Бир нерсе билүү үчүн колдонмолорду улам ачып убара болбостон, башкы экранга виджеттерди кошуп коюңуз."</string>
- <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Виджеттин жөндөөлөрүн өзгөртүү үчүн таптап коюңуз"</string>
+ <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Виджеттин параметрлерин өзгөртүү үчүн таптап коюңуз"</string>
<string name="widget_education_close_button" msgid="8676165703104836580">"Түшүндүм"</string>
- <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Виджеттин жөндөөлөрүн өзгөртүү"</string>
+ <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Виджеттин параметрлерин өзгөртүү"</string>
<string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Колдонмолорду издөө"</string>
<string name="all_apps_loading_message" msgid="5813968043155271636">"Колдонмолор жүктөлүүдө…"</string>
<string name="all_apps_no_search_results" msgid="3200346862396363786">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" сурамына дал келген колдонмолор табылган жок"</string>
@@ -78,13 +78,13 @@
<string name="pin_prediction" msgid="4196423321649756498">"Божомолдонгон колдонмону кадап коюу"</string>
<string name="permlab_install_shortcut" msgid="5632423390354674437">"тез чакырмаларды орнотуу"</string>
<string name="permdesc_install_shortcut" msgid="923466509822011139">"Колдонмого колдонуучуга кайрылбастан тез чакырма кошууга уруксат берет."</string>
- <string name="permlab_read_settings" msgid="5136500343007704955">"үйдүн жөндөөлөрүн жана ыкчам баскычтарын окуу"</string>
- <string name="permdesc_read_settings" msgid="4208061150510996676">"Колдонмого үйдүн жөндөөлөрүн жана ыкчам баскычтарын окууга уруксат берет."</string>
- <string name="permlab_write_settings" msgid="4820028712156303762">"үйдүн жөндөөлөрүн жана ыкчам баскычтарын жазуу"</string>
- <string name="permdesc_write_settings" msgid="726859348127868466">"Колдонмого үйдүн жөндөөлөрүн жана ыкчам баскычтарын өзгөртүүгө уруксат берет."</string>
+ <string name="permlab_read_settings" msgid="5136500343007704955">"үйдүн параметрлерин жана ыкчам баскычтарын окуу"</string>
+ <string name="permdesc_read_settings" msgid="4208061150510996676">"Колдонмого үйдүн параметрлерин жана ыкчам баскычтарын окууга уруксат берет."</string>
+ <string name="permlab_write_settings" msgid="4820028712156303762">"үйдүн параметрлерин жана ыкчам баскычтарын жазуу"</string>
+ <string name="permdesc_write_settings" msgid="726859348127868466">"Колдонмого үйдүн параметрлерин жана ыкчам баскычтарын өзгөртүүгө уруксат берет."</string>
<string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> телефон чалууларды аткарууга уруксаты жок"</string>
<string name="gadget_error_text" msgid="740356548025791839">"Виджет жүктөлбөй жатат"</string>
- <string name="gadget_setup_text" msgid="8348374825537681407">"Виджеттин жөндөөлөрү"</string>
+ <string name="gadget_setup_text" msgid="8348374825537681407">"Виджеттин параметрлери"</string>
<string name="gadget_complete_setup_text" msgid="309040266978007925">"Аягына чейин тууралоо үчүн басып коюңуз"</string>
<string name="uninstall_system_app_text" msgid="4172046090762920660">"Бул системдик колдонмо жана аны чечкенге болбойт."</string>
<string name="folder_hint_text" msgid="5174843001373488816">"Аталышын түзөтүү"</string>
@@ -102,7 +102,7 @@
<string name="folder_name_format_overflow" msgid="4270108890534995199">"<xliff:g id="NAME">%1$s</xliff:g> папкасындагы объекттер: <xliff:g id="SIZE">%2$d</xliff:g> же андан көбүрөөк"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"Тушкагаздар"</string>
<string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Тушкагаз жана стиль"</string>
- <string name="settings_button_text" msgid="8873672322605444408">"Башкы бет жөндөөлөрү"</string>
+ <string name="settings_button_text" msgid="8873672322605444408">"Башкы бет параметрлери"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Администраторуңуз өчүрүп койгон"</string>
<string name="allow_rotation_title" msgid="7222049633713050106">"Башкы экранды бурууга уруксат берүү"</string>
<string name="allow_rotation_desc" msgid="8662546029078692509">"Телефон бурулганда"</string>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
new file mode 100644
index 0000000..52474da
--- /dev/null
+++ b/res/values-land/styles.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources>
+ <style name="CellStyleDefault">
+ <item name="iconDrawablePadding">4dp</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/res/values-night-v31/colors.xml b/res/values-night-v31/colors.xml
index 54d6d88..2c1bc90 100644
--- a/res/values-night-v31/colors.xml
+++ b/res/values-night-v31/colors.xml
@@ -24,6 +24,4 @@
<color name="home_settings_thumb_off_color">@android:color/system_neutral2_300</color>
<color name="home_settings_track_on_color">@android:color/system_accent2_700</color>
<color name="home_settings_track_off_color">@android:color/system_neutral1_700</color>
-
- <color name="all_apps_button_color">?android:attr/textColorSecondary</color>
</resources>
\ No newline at end of file
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index 17fe419..4ba77fa 100644
--- a/res/values-night/colors.xml
+++ b/res/values-night/colors.xml
@@ -17,5 +17,5 @@
-->
<resources>
- <color name="all_apps_button_color">#BFC8CC</color>
+ <color name="all_apps_button_color">@color/all_apps_button_color_dark</color>
</resources>
\ No newline at end of file
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index bb1fb36..4dda225 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -162,7 +162,7 @@
<string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de trabalho"</string>
<string name="work_profile_edu_work_apps" msgid="7895468576497746520">"As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI"</string>
<string name="work_profile_edu_accept" msgid="6069788082535149071">"OK"</string>
- <string name="work_apps_paused_title" msgid="3040901117349444598">"As apps de trabalho estão em pausa"</string>
+ <string name="work_apps_paused_title" msgid="3040901117349444598">"As apps de trabalho estão suspensas."</string>
<string name="work_apps_paused_body" msgid="261634750995824906">"As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização"</string>
<string name="work_apps_paused_content_description" msgid="5149623040804051095">"As apps de trabalho estão desativadas. As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização"</string>
<string name="work_apps_paused_edu_banner" msgid="8872412121608402058">"As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI"</string>
diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml
index cf4f000..63a5454 100644
--- a/res/values-v31/colors.xml
+++ b/res/values-v31/colors.xml
@@ -62,5 +62,6 @@
<color name="preload_icon_accent_color_dark">@android:color/system_accent1_300</color>
<color name="preload_icon_background_color_dark">@android:color/system_neutral2_700</color>
- <color name="all_apps_button_color">?android:attr/textColorSecondary</color>
+ <color name="all_apps_button_color_light">@android:color/system_neutral2_700</color>
+ <color name="all_apps_button_color_dark">@android:color/system_neutral2_200</color>
</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 08561d5..e6f285c 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -142,9 +142,13 @@
<!-- numSearchContainerColumns defaults to numColumns, if not specified -->
<attr name="numSearchContainerColumns" format="integer" />
+ <!-- Support attributes in CellStyle. defaults to CellStyleDefault -->
+ <attr name="cellStyle" format="reference" />
+
<!-- numFolderRows & numFolderColumns defaults to numRows & numColumns, if not specified -->
<attr name="numFolderRows" format="integer" />
<attr name="numFolderColumns" format="integer" />
+ <!-- Support attributes in FolderStyle -->
<attr name="folderStyle" format="reference" />
<!-- numAllAppsColumns defaults to numColumns, if not specified -->
@@ -387,7 +391,7 @@
</declare-styleable>
- <declare-styleable name="FolderDisplayStyle">
+ <declare-styleable name="FolderStyle">
<!-- defaults to minCellHeight if not specified
when GridDisplayOption#isScalable is true. -->
<attr name="folderCellHeight" format="dimension" />
@@ -402,7 +406,6 @@
<attr name="folderTopPadding" format="dimension" />
</declare-styleable>
-
<declare-styleable name="CellLayout">
<attr name="containerType" format="integer">
<enum name="workspace" value="0" />
@@ -411,6 +414,10 @@
</attr>
</declare-styleable>
+ <declare-styleable name="CellStyle">
+ <attr name="iconDrawablePadding" format="dimension" />
+ </declare-styleable>
+
<declare-styleable name="ShadowDrawable">
<attr name="android:src" />
<attr name="android:shadowColor" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 9d6927b..ef7bf91 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -80,7 +80,9 @@
<color name="workspace_accent_color_light">#ff8df5e3</color>
<color name="workspace_accent_color_dark">#ff3d665f</color>
- <color name="all_apps_button_color">#40484B</color>
+ <color name="all_apps_button_color">@color/all_apps_button_color_light</color>
+ <color name="all_apps_button_color_light">#40484B</color>
+ <color name="all_apps_button_color_dark">#BFC8CC</color>
<color name="preload_icon_accent_color_light">#00668B</color>
<color name="preload_icon_background_color_light">#B5CAD7</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 016420b..1206dd8 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -203,4 +203,7 @@
<!-- The max scale for the wallpaper when it's zoomed in -->
<item name="config_wallpaperMaxScale" format="float" type="dimen">0</item>
+ <!-- Whether the floating rotation button should be on the left/right in the device's natural
+ orientation -->
+ <bool name="floating_rotation_button_position_left">true</bool>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d041dfe..321aef5 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -93,6 +93,8 @@
-->
<dimen name="fastscroll_width">58dp</dimen>
<dimen name="fastscroll_end_margin">-26dp</dimen>
+ <!-- Extra margin between bottom of the scrollbar and the search bar protection layer. -->
+ <dimen name="fastscroll_bottom_margin_floating_search">4dp</dimen>
<!-- PagedView -->
<dimen name="fling_threshold_velocity">500dp</dimen>
@@ -139,11 +141,6 @@
<dimen name="arrow_toast_elevation">2dp</dimen>
<dimen name="arrow_toast_arrow_width">10dp</dimen>
- <!-- Search bar in All Apps -->
- <dimen name="all_apps_header_max_elevation">3dp</dimen>
- <dimen name="all_apps_header_scroll_to_elevation">16dp</dimen>
- <dimen name="all_apps_header_shadow_height">6dp</dimen>
-
<dimen name="all_apps_divider_margin_vertical">8dp</dimen>
<!-- Floating action button inside work tab to toggle work profile -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3eb08ba..a2ebf16 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -40,9 +40,6 @@
<!-- Options for recent tasks -->
<!-- Title for an option to enter split screen mode for a given app -->
<string name="recent_task_option_split_screen">Split screen</string>
- <string name="split_screen_position_top">Split top</string>
- <string name="split_screen_position_left">Split left</string>
- <string name="split_screen_position_right">Split right</string>
<string name="split_app_info_accessibility">App info for %1$s</string>
<!-- Widgets -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7582a30..6b57532 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -54,7 +54,7 @@
<item name="folderPreviewColor">@color/folder_preview_light</item>
<item name="folderBackgroundColor">@color/folder_background_light</item>
<item name="folderIconBorderColor">?android:attr/colorPrimary</item>
- <item name="folderTextColor">@color/workspace_text_color_dark</item>
+ <item name="folderTextColor">?android:attr/textColorPrimary</item>
<item name="isFolderDarkText">true</item>
<item name="folderHintColor">@color/folder_hint_text_color_dark</item>
<item name="loadingIconColor">#CCFFFFFF</item>
@@ -109,7 +109,6 @@
<item name="folderPreviewColor">@color/folder_preview_dark</item>
<item name="folderBackgroundColor">@color/folder_background_dark</item>
<item name="folderIconBorderColor">?android:attr/colorPrimary</item>
- <item name="folderTextColor">@color/workspace_text_color_light</item>
<item name="isFolderDarkText">false</item>
<item name="folderHintColor">@color/folder_hint_text_color_light</item>
<item name="isMainColorDark">true</item>
@@ -293,7 +292,7 @@
<item name="android:windowTranslucentStatus">true</item>
</style>
- <style name="FolderDefaultStyle">
+ <style name="FolderStyleDefault">
<item name="folderTopPadding">24dp</item>
<item name="folderCellHeight">94dp</item>
<item name="folderCellWidth">80dp</item>
@@ -301,4 +300,8 @@
<item name="folderFooterHeight">56dp</item>
</style>
+ <style name="CellStyleDefault">
+ <item name="iconDrawablePadding">7dp</item>
+ </style>
+
</resources>
diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java
index 28d4a9f..796fa80 100644
--- a/src/com/android/launcher3/AbstractFloatingView.java
+++ b/src/com/android/launcher3/AbstractFloatingView.java
@@ -46,7 +46,8 @@
/**
* Base class for a View which shows a floating UI on top of the launcher UI.
*/
-public abstract class AbstractFloatingView extends LinearLayout implements TouchController {
+public abstract class AbstractFloatingView extends LinearLayout implements TouchController,
+ OnBackPressedHandler {
@IntDef(flag = true, value = {
TYPE_FOLDER,
@@ -63,11 +64,13 @@
TYPE_TASK_MENU,
TYPE_OPTIONS_POPUP,
TYPE_ICON_SURFACE,
+ TYPE_OPTIONS_POPUP_DIALOG,
TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP,
TYPE_WIDGETS_EDUCATION_DIALOG,
TYPE_TASKBAR_EDUCATION_DIALOG,
TYPE_TASKBAR_ALL_APPS,
- TYPE_OPTIONS_POPUP_DIALOG
+ TYPE_ADD_TO_HOME_CONFIRMATION,
+ TYPE_TASKBAR_OVERLAY_PROXY
})
@Retention(RetentionPolicy.SOURCE)
public @interface FloatingViewType {}
@@ -87,14 +90,14 @@
public static final int TYPE_TASK_MENU = 1 << 11;
public static final int TYPE_OPTIONS_POPUP = 1 << 12;
public static final int TYPE_ICON_SURFACE = 1 << 13;
- public static final int TYPE_OPTIONS_POPUP_DIALOG = 1 << 18;
+ public static final int TYPE_OPTIONS_POPUP_DIALOG = 1 << 14;
- public static final int TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP = 1 << 14;
- public static final int TYPE_WIDGETS_EDUCATION_DIALOG = 1 << 15;
- public static final int TYPE_TASKBAR_EDUCATION_DIALOG = 1 << 16;
- public static final int TYPE_TASKBAR_ALL_APPS = 1 << 17;
- public static final int TYPE_ADD_TO_HOME_CONFIRMATION = 1 << 18;
- public static final int TYPE_TASKBAR_OVERLAY_PROXY = 1 << 19;
+ public static final int TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP = 1 << 15;
+ public static final int TYPE_WIDGETS_EDUCATION_DIALOG = 1 << 16;
+ public static final int TYPE_TASKBAR_EDUCATION_DIALOG = 1 << 17;
+ public static final int TYPE_TASKBAR_ALL_APPS = 1 << 18;
+ public static final int TYPE_ADD_TO_HOME_CONFIRMATION = 1 << 19;
+ public static final int TYPE_TASKBAR_OVERLAY_PROXY = 1 << 20;
public static final int TYPE_ALL = TYPE_FOLDER | TYPE_ACTION_POPUP
| TYPE_WIDGETS_BOTTOM_SHEET | TYPE_WIDGET_RESIZE_FRAME | TYPE_WIDGETS_FULL_SHEET
@@ -163,13 +166,17 @@
protected abstract boolean isOfType(@FloatingViewType int type);
- /** @return Whether the back is consumed. If false, Launcher will handle the back as well. */
- public boolean onBackPressed() {
- close(true);
+ /** Return true if this view can consume back press. */
+ public boolean canHandleBack() {
return true;
}
@Override
+ public void onBackInvoked() {
+ close(true);
+ }
+
+ @Override
public boolean onControllerTouchEvent(MotionEvent ev) {
return false;
}
diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java
index 85bd2d3..94b8cd8 100644
--- a/src/com/android/launcher3/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher3/AppWidgetResizeFrame.java
@@ -33,6 +33,7 @@
import com.android.launcher3.accessibility.DragViewStateAnnouncer;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.keyboard.ViewGroupFocusHelper;
import com.android.launcher3.logging.InstanceId;
@@ -268,10 +269,11 @@
CellLayoutLayoutParams lp = (CellLayoutLayoutParams) mWidgetView.getLayoutParams();
ItemInfo widgetInfo = (ItemInfo) mWidgetView.getTag();
- lp.setCellX(widgetInfo.cellX);
- lp.setTmpCellX(widgetInfo.cellX);
- lp.setCellY(widgetInfo.cellY);
- lp.setTmpCellY(widgetInfo.cellY);
+ CellPos presenterPos = mLauncher.getCellPosMapper().mapModelToPresenter(widgetInfo);
+ lp.setCellX(presenterPos.cellX);
+ lp.setTmpCellX(presenterPos.cellX);
+ lp.setCellY(presenterPos.cellY);
+ lp.setTmpCellY(presenterPos.cellY);
lp.cellHSpan = widgetInfo.spanX;
lp.cellVSpan = widgetInfo.spanY;
lp.isLockedToGrid = true;
diff --git a/src/com/android/launcher3/BaseDraggingActivity.java b/src/com/android/launcher3/BaseDraggingActivity.java
index ca1fe40..6f3e948 100644
--- a/src/com/android/launcher3/BaseDraggingActivity.java
+++ b/src/com/android/launcher3/BaseDraggingActivity.java
@@ -125,9 +125,13 @@
mCurrentActionMode = null;
}
+ protected boolean isInAutoCancelActionMode() {
+ return mCurrentActionMode != null && AUTO_CANCEL_ACTION_MODE == mCurrentActionMode.getTag();
+ }
+
@Override
public boolean finishAutoCancelActionMode() {
- if (mCurrentActionMode != null && AUTO_CANCEL_ACTION_MODE == mCurrentActionMode.getTag()) {
+ if (isInAutoCancelActionMode()) {
mCurrentActionMode.finish();
return true;
}
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 05b225c..d388ebc 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -62,6 +62,7 @@
import com.android.launcher3.accessibility.DragAndDropAccessibilityDelegate;
import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DraggableView;
import com.android.launcher3.folder.PreviewBackground;
@@ -267,7 +268,7 @@
mDragCell[0] = mDragCell[1] = -1;
mDragCellSpan[0] = mDragCellSpan[1] = -1;
for (int i = 0; i < mDragOutlines.length; i++) {
- mDragOutlines[i] = new CellLayoutLayoutParams(0, 0, 0, 0, -1);
+ mDragOutlines[i] = new CellLayoutLayoutParams(0, 0, 0, 0);
}
mDragOutlinePaint.setColor(Themes.getAttrColor(context, R.attr.workspaceTextColor));
@@ -1084,8 +1085,8 @@
final int oldY = lp.y;
lp.isLockedToGrid = true;
if (permanent) {
- lp.setCellX(info.cellX = cellX);
- lp.setCellY(info.cellY = cellY);
+ lp.setCellX(cellX);
+ lp.setCellY(cellY);
} else {
lp.setTmpCellX(cellX);
lp.setTmpCellY(cellY);
@@ -1627,20 +1628,16 @@
// We do a null check here because the item info can be null in the case of the
// AllApps button in the hotseat.
if (info != null && child != dragView) {
- final boolean requiresDbUpdate = (info.cellX != lp.getTmpCellX()
- || info.cellY != lp.getTmpCellY() || info.spanX != lp.cellHSpan
- || info.spanY != lp.cellVSpan);
+ CellPos presenterPos = mActivity.getCellPosMapper().mapModelToPresenter(info);
+ final boolean requiresDbUpdate = (presenterPos.cellX != lp.getTmpCellX()
+ || presenterPos.cellY != lp.getTmpCellY() || info.spanX != lp.cellHSpan
+ || info.spanY != lp.cellVSpan || presenterPos.screenId != screenId);
lp.setCellX(lp.getTmpCellX());
- info.cellX = lp.getTmpCellX();
- info.cellY = lp.getTmpCellY();
lp.setCellY(lp.getTmpCellY());
- info.spanX = lp.cellHSpan;
- info.spanY = lp.cellVSpan;
-
if (requiresDbUpdate) {
Launcher.cast(mActivity).getModelWriter().modifyItemInDatabase(info, container,
- screenId, info.cellX, info.cellY, info.spanX, info.spanY);
+ screenId, lp.getCellX(), lp.getCellY(), lp.cellHSpan, lp.cellVSpan);
}
}
}
@@ -2792,7 +2789,8 @@
if (view instanceof LauncherAppWidgetHostView
&& view.getTag() instanceof LauncherAppWidgetInfo) {
LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) view.getTag();
- mOccupied.markCells(info.cellX, info.cellY, info.spanX, info.spanY, true);
+ CellPos pos = mActivity.getCellPosMapper().mapModelToPresenter(info);
+ mOccupied.markCells(pos.cellX, pos.cellY, info.spanX, info.spanY, true);
return;
}
if (view == null || view.getParent() != mShortcutsAndWidgets) return;
@@ -2805,7 +2803,8 @@
if (view instanceof LauncherAppWidgetHostView
&& view.getTag() instanceof LauncherAppWidgetInfo) {
LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) view.getTag();
- mOccupied.markCells(info.cellX, info.cellY, info.spanX, info.spanY, false);
+ CellPos pos = mActivity.getCellPosMapper().mapModelToPresenter(info);
+ mOccupied.markCells(pos.cellX, pos.cellY, info.spanX, info.spanY, false);
return;
}
if (view == null || view.getParent() != mShortcutsAndWidgets) return;
@@ -2858,13 +2857,13 @@
final int screenId;
final int container;
- public CellInfo(View v, ItemInfo info) {
- cellX = info.cellX;
- cellY = info.cellY;
+ public CellInfo(View v, ItemInfo info, CellPos cellPos) {
+ cellX = cellPos.cellX;
+ cellY = cellPos.cellY;
spanX = info.spanX;
spanY = info.spanY;
cell = v;
- screenId = info.screenId;
+ screenId = cellPos.screenId;
container = info.container;
}
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 8391b91..0070f95 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -57,6 +57,7 @@
import java.io.PrintWriter;
import java.util.Locale;
+import java.util.function.Consumer;
@SuppressLint("NewApi")
public class DeviceProfile {
@@ -67,6 +68,7 @@
public static final PointF DEFAULT_SCALE = new PointF(1.0f, 1.0f);
public static final ViewScaleProvider DEFAULT_PROVIDER = itemInfo -> DEFAULT_SCALE;
+ public static final Consumer<DeviceProfile> DEFAULT_DIMENSION_PROVIDER = dp -> {};
// Ratio of empty space, qsb should take up to appear visually centered.
private final float mQsbCenterFactor;
@@ -271,7 +273,8 @@
DeviceProfile(Context context, InvariantDeviceProfile inv, Info info, WindowBounds windowBounds,
SparseArray<DotRenderer> dotRendererCache, boolean isMultiWindowMode,
boolean transposeLayoutWithOrientation, boolean isMultiDisplay, boolean isGestureMode,
- @NonNull final ViewScaleProvider viewScaleProvider) {
+ @NonNull final ViewScaleProvider viewScaleProvider,
+ @NonNull final Consumer<DeviceProfile> dimensionOverrideProvider) {
this.inv = inv;
this.isLandscape = windowBounds.isLandscape();
@@ -376,19 +379,19 @@
if (inv.folderStyle != INVALID_RESOURCE_HANDLE) {
TypedArray folderStyle = context.obtainStyledAttributes(inv.folderStyle,
- R.styleable.FolderDisplayStyle);
+ R.styleable.FolderStyle);
// These are re-set in #updateFolderCellSize if the grid is not scalable
folderCellHeightPx = folderStyle.getDimensionPixelSize(
- R.styleable.FolderDisplayStyle_folderCellHeight, 0);
+ R.styleable.FolderStyle_folderCellHeight, 0);
folderCellWidthPx = folderStyle.getDimensionPixelSize(
- R.styleable.FolderDisplayStyle_folderCellWidth, 0);
+ R.styleable.FolderStyle_folderCellWidth, 0);
folderContentPaddingTop = folderStyle.getDimensionPixelSize(
- R.styleable.FolderDisplayStyle_folderTopPadding, 0);
+ R.styleable.FolderStyle_folderTopPadding, 0);
folderCellLayoutBorderSpacePx = folderStyle.getDimensionPixelSize(
- R.styleable.FolderDisplayStyle_folderBorderSpace, 0);
+ R.styleable.FolderStyle_folderBorderSpace, 0);
folderFooterHeightPx = folderStyle.getDimensionPixelSize(
- R.styleable.FolderDisplayStyle_folderFooterHeight, 0);
+ R.styleable.FolderStyle_folderFooterHeight, 0);
folderStyle.recycle();
} else {
folderCellLayoutBorderSpacePx = 0;
@@ -407,8 +410,17 @@
mWorkspacePageIndicatorOverlapWorkspace =
res.getDimensionPixelSize(R.dimen.workspace_page_indicator_overlap_workspace);
- iconDrawablePaddingOriginalPx =
- res.getDimensionPixelSize(R.dimen.dynamic_grid_icon_drawable_padding);
+ TypedArray cellStyle;
+ if (inv.cellStyle != INVALID_RESOURCE_HANDLE) {
+ cellStyle = context.obtainStyledAttributes(inv.cellStyle,
+ R.styleable.CellStyle);
+ } else {
+ cellStyle = context.obtainStyledAttributes(R.style.CellStyleDefault,
+ R.styleable.CellStyle);
+ }
+ iconDrawablePaddingOriginalPx = cellStyle.getDimensionPixelSize(
+ R.styleable.CellStyle_iconDrawablePadding, 0);
+ cellStyle.recycle();
dropTargetBarSizePx = res.getDimensionPixelSize(R.dimen.dynamic_grid_drop_target_size);
dropTargetBarTopMarginPx = res.getDimensionPixelSize(R.dimen.drop_target_top_margin);
@@ -562,6 +574,8 @@
mViewScaleProvider = viewScaleProvider;
+ dimensionOverrideProvider.accept(this);
+
// This is done last, after iconSizePx is calculated above.
mDotRendererWorkSpace = createDotRenderer(iconSizePx, dotRendererCache);
mDotRendererAllApps = createDotRenderer(allAppsIconSizePx, dotRendererCache);
@@ -1397,8 +1411,10 @@
/** Gets the space that the overview actions will take, including bottom margin. */
public int getOverviewActionsClaimedSpace() {
- return overviewActionsTopMarginPx + overviewActionsHeight
- + getOverviewActionsClaimedSpaceBelow();
+ int overviewActionsSpace = isTablet && FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW.get()
+ ? 0
+ : (overviewActionsTopMarginPx + overviewActionsHeight);
+ return overviewActionsSpace + getOverviewActionsClaimedSpaceBelow();
}
/**
@@ -1743,6 +1759,8 @@
private SparseArray<DotRenderer> mDotRendererCache;
+ private Consumer<DeviceProfile> mOverrideProvider;
+
public Builder(Context context, InvariantDeviceProfile inv, Info info) {
mContext = context;
mInv = inv;
@@ -1779,6 +1797,11 @@
return this;
}
+ public Builder withDimensionsOverride(Consumer<DeviceProfile> overrideProvider) {
+ mOverrideProvider = overrideProvider;
+ return this;
+ }
+
/**
* Set the viewScaleProvider for the builder
*
@@ -1808,9 +1831,12 @@
if (mViewScaleProvider == null) {
mViewScaleProvider = DEFAULT_PROVIDER;
}
+ if (mOverrideProvider == null) {
+ mOverrideProvider = DEFAULT_DIMENSION_PROVIDER;
+ }
return new DeviceProfile(mContext, mInv, mInfo, mWindowBounds, mDotRendererCache,
mIsMultiWindowMode, mTransposeLayoutWithOrientation, mIsMultiDisplay,
- mIsGestureMode, mViewScaleProvider);
+ mIsGestureMode, mViewScaleProvider, mOverrideProvider);
}
}
diff --git a/src/com/android/launcher3/FastScrollRecyclerView.java b/src/com/android/launcher3/FastScrollRecyclerView.java
index 2f927d3..3504b24 100644
--- a/src/com/android/launcher3/FastScrollRecyclerView.java
+++ b/src/com/android/launcher3/FastScrollRecyclerView.java
@@ -77,11 +77,15 @@
return getPaddingTop();
}
+ public int getScrollBarMarginBottom() {
+ return getPaddingBottom();
+ }
+
/**
* Returns the height of the fast scroll bar
*/
public int getScrollbarTrackHeight() {
- return mScrollbar.getHeight() - getScrollBarTop() - getPaddingBottom();
+ return mScrollbar.getHeight() - getScrollBarTop() - getScrollBarMarginBottom();
}
/**
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java
index a4020f9..d97eac9 100644
--- a/src/com/android/launcher3/InvariantDeviceProfile.java
+++ b/src/com/android/launcher3/InvariantDeviceProfile.java
@@ -143,6 +143,8 @@
public @StyleRes int folderStyle;
+ public @StyleRes int cellStyle;
+
public float[] horizontalMargin;
public PointF[] allAppsCellSize;
@@ -206,8 +208,6 @@
if (!newGridName.equals(gridName)) {
LauncherPrefs.getPrefs(context).edit().putString(KEY_IDP_GRID_NAME, newGridName)
.apply();
- Log.d("b/258560494", "InvariantDeviceProfile - setting newGridName: " + newGridName
- + ", gridName: " + gridName);
}
new DeviceGridState(this).writeToPrefs(context);
@@ -351,6 +351,8 @@
numFolderColumns = closestProfile.numFolderColumns;
folderStyle = closestProfile.folderStyle;
+ cellStyle = closestProfile.cellStyle;
+
isScalable = closestProfile.isScalable;
devicePaddingId = closestProfile.devicePaddingId;
this.deviceType = deviceType;
@@ -455,7 +457,6 @@
public void setCurrentGrid(Context context, String gridName) {
Context appContext = context.getApplicationContext();
LauncherPrefs.getPrefs(appContext).edit().putString(KEY_IDP_GRID_NAME, gridName).apply();
- Log.d("b/258560494", "setCurrentGrid: " + gridName);
MAIN_EXECUTOR.execute(() -> onConfigChanged(appContext));
}
@@ -520,10 +521,6 @@
}
}
if (filteredProfiles.isEmpty()) {
- if (gridName != null) {
- Log.d("b/258560494", "No matching grid from for gridName: " + gridName
- + ", deviceType: " + deviceType);
- }
// No grid found, use the default options
for (DisplayOption option : profiles) {
if (option.canBeDefault) {
@@ -790,6 +787,7 @@
private final int numFolderRows;
private final int numFolderColumns;
private final @StyleRes int folderStyle;
+ private final @StyleRes int cellStyle;
private final int numAllAppsColumns;
private final int numDatabaseAllAppsColumns;
@@ -859,6 +857,9 @@
folderStyle = a.getResourceId(R.styleable.GridDisplayOption_folderStyle,
INVALID_RESOURCE_HANDLE);
+ cellStyle = a.getResourceId(R.styleable.GridDisplayOption_cellStyle,
+ R.style.CellStyleDefault);
+
isScalable = a.getBoolean(
R.styleable.GridDisplayOption_isScalable, false);
devicePaddingId = a.getResourceId(
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index af6935f..2f1f59c 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -32,6 +32,7 @@
import static com.android.launcher3.LauncherAnimUtils.SCALE_INDEX_WIDGET_TRANSITION;
import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY;
import static com.android.launcher3.LauncherAnimUtils.WORKSPACE_SCALE_PROPERTY_FACTORY;
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.FLAG_MULTI_PAGE;
@@ -76,11 +77,9 @@
import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetManager;
import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
@@ -134,10 +133,11 @@
import com.android.launcher3.allapps.AllAppsRecyclerView;
import com.android.launcher3.allapps.AllAppsStore;
import com.android.launcher3.allapps.AllAppsTransitionController;
-import com.android.launcher3.allapps.BaseAllAppsContainerView;
import com.android.launcher3.allapps.BaseSearchConfig;
import com.android.launcher3.allapps.DiscoveryBounce;
import com.android.launcher3.anim.PropertyListBuilder;
+import com.android.launcher3.celllayout.CellPosMapper;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dot.DotInfo;
@@ -198,6 +198,8 @@
import com.android.launcher3.util.PendingRequestArgs;
import com.android.launcher3.util.RunnableList;
import com.android.launcher3.util.SafeCloseable;
+import com.android.launcher3.util.ScreenOnTracker;
+import com.android.launcher3.util.ScreenOnTracker.ScreenOnListener;
import com.android.launcher3.util.SystemUiController;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.Thunk;
@@ -407,6 +409,8 @@
private StringCache mStringCache;
private BaseSearchConfig mBaseSearchConfig;
+ private CellPosMapper mCellPosMapper = CellPosMapper.DEFAULT;
+
@Override
@TargetApi(Build.VERSION_CODES.S)
protected void onCreate(Bundle savedInstanceState) {
@@ -536,9 +540,8 @@
}
getRootView().dispatchInsets();
- // Listen for broadcasts
- registerReceiver(mScreenOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
-
+ // Listen for screen turning off
+ ScreenOnTracker.INSTANCE.get(this).addListener(mScreenOnListener);
getSystemUiController().updateUiState(SystemUiController.UI_STATE_BASE_WINDOW,
Themes.getAttrBoolean(this, R.attr.isWorkspaceDarkText));
@@ -561,6 +564,61 @@
setTitle(R.string.home_screen);
}
+ /**
+ * Provide {@link OnBackPressedHandler} in below order:
+ * <ol>
+ * <li> auto cancel action mode handler
+ * <li> drag handler
+ * <li> view handler
+ * <li> state handler
+ * </ol>
+ *
+ * A back gesture (a single click on back button, or a swipe back gesture that contains a series
+ * of swipe events) should be handled by the same handler from above list. For a new back
+ * gesture, a new handler should be regenerated.
+ *
+ * Note that state handler will always be handling the back press event if the previous 3 don't.
+ */
+ @NonNull
+ protected OnBackPressedHandler getOnBackPressedHandler() {
+ // #1 auto cancel action mode handler
+ if (isInAutoCancelActionMode()) {
+ return this::finishAutoCancelActionMode;
+ }
+
+ // #2 drag handler
+ if (mDragController.isDragging()) {
+ return mDragController::cancelDrag;
+ }
+
+ // #3 view handler
+ AbstractFloatingView topView =
+ AbstractFloatingView.getTopOpenView(Launcher.this);
+ if (topView != null && topView.canHandleBack()) {
+ return topView;
+ }
+
+ // #4 state handler
+ return new OnBackPressedHandler() {
+ @Override
+ public void onBackInvoked() {
+ onStateBack();
+ }
+
+ @Override
+ public void onBackProgressed(
+ @FloatRange(from = 0.0, to = 1.0) float backProgress) {
+ mStateManager.getState().onBackProgressed(
+ Launcher.this, backProgress);
+ }
+
+ @Override
+ public void onBackCancelled() {
+ mStateManager.getState().onBackCancelled(Launcher.this);
+ }
+ };
+ }
+
protected LauncherOverlayManager getDefaultOverlay() {
return new LauncherOverlayManager() { };
}
@@ -672,10 +730,17 @@
}
onDeviceProfileInitiated();
- mModelWriter = mModel.getWriter(getDeviceProfile().isVerticalBarLayout(), true, this);
+ mCellPosMapper = CellPosMapper.DEFAULT;
+ mModelWriter = mModel.getWriter(getDeviceProfile().isVerticalBarLayout(), true,
+ mCellPosMapper, this);
return true;
}
+ @Override
+ public CellPosMapper getCellPosMapper() {
+ return mCellPosMapper;
+ }
+
public RotationHelper getRotationHelper() {
return mRotationHelper;
}
@@ -741,16 +806,18 @@
*/
private int completeAdd(
int requestCode, Intent intent, int appWidgetId, PendingRequestArgs info) {
- int screenId = info.screenId;
- if (info.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ CellPos cellPos = getCellPosMapper().mapModelToPresenter(info);
+ int screenId = cellPos.screenId;
+ if (info.container == CONTAINER_DESKTOP) {
// When the screen id represents an actual screen (as opposed to a rank) we make sure
// that the drop page actually exists.
- screenId = ensurePendingDropLayoutExists(info.screenId);
+ screenId = ensurePendingDropLayoutExists(cellPos.screenId);
}
switch (requestCode) {
case REQUEST_CREATE_SHORTCUT:
- completeAddShortcut(intent, info.container, screenId, info.cellX, info.cellY, info);
+ completeAddShortcut(intent, info.container, screenId,
+ cellPos.cellX, cellPos.cellY, info);
announceForAccessibility(R.string.item_added_to_workspace);
break;
case REQUEST_CREATE_APPWIDGET:
@@ -846,14 +913,17 @@
ON_ACTIVITY_RESULT_ANIMATION_DELAY, false,
() -> getStateManager().goToState(NORMAL));
} else {
- if (requestArgs.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ CellPos presenterPos = getCellPosMapper().mapModelToPresenter(requestArgs);
+ if (requestArgs.container == CONTAINER_DESKTOP) {
// When the screen id represents an actual screen (as opposed to a rank)
// we make sure that the drop page actually exists.
- requestArgs.screenId =
- ensurePendingDropLayoutExists(requestArgs.screenId);
+ int newScreenId = ensurePendingDropLayoutExists(presenterPos.screenId);
+ requestArgs.screenId = getCellPosMapper().mapPresenterToModel(
+ presenterPos.cellX, presenterPos.cellY, newScreenId, CONTAINER_DESKTOP)
+ .screenId;
}
final CellLayout dropLayout =
- mWorkspace.getScreenWithId(requestArgs.screenId);
+ mWorkspace.getScreenWithId(presenterPos.screenId);
dropLayout.setDropPending(true);
final Runnable onComplete = new Runnable() {
@@ -911,9 +981,10 @@
setWaitingForResult(null);
View v = null;
- CellLayout layout = getCellLayout(pendingArgs.container, pendingArgs.screenId);
+ CellPos cellPos = getCellPosMapper().mapModelToPresenter(pendingArgs);
+ CellLayout layout = getCellLayout(pendingArgs.container, cellPos.screenId);
if (layout != null) {
- v = layout.getChildAt(pendingArgs.cellX, pendingArgs.cellY);
+ v = layout.getChildAt(cellPos.cellX, cellPos.cellY);
}
Intent intent = pendingArgs.getPendingIntent();
@@ -949,7 +1020,8 @@
@Thunk
void completeTwoStageWidgetDrop(
final int resultCode, final int appWidgetId, final PendingRequestArgs requestArgs) {
- CellLayout cellLayout = mWorkspace.getScreenWithId(requestArgs.screenId);
+ CellLayout cellLayout = mWorkspace.getScreenWithId(
+ getCellPosMapper().mapModelToPresenter(requestArgs).screenId);
Runnable onCompleteRunnable = null;
int animationType = 0;
@@ -1440,9 +1512,9 @@
launcherInfo.sourceContainer =
((PendingRequestArgs) itemInfo).getWidgetSourceContainer();
}
-
+ CellPos presenterPos = getCellPosMapper().mapModelToPresenter(itemInfo);
getModelWriter().addItemToDatabase(launcherInfo,
- itemInfo.container, itemInfo.screenId, itemInfo.cellX, itemInfo.cellY);
+ itemInfo.container, presenterPos.screenId, presenterPos.cellX, presenterPos.cellY);
hostView.setVisibility(View.VISIBLE);
prepareAppWidget(hostView, launcherInfo);
@@ -1452,7 +1524,7 @@
// Show the widget resize frame.
if (hostView instanceof LauncherAppWidgetHostView) {
final LauncherAppWidgetHostView launcherHostView = (LauncherAppWidgetHostView) hostView;
- CellLayout cellLayout = getCellLayout(launcherInfo.container, launcherInfo.screenId);
+ CellLayout cellLayout = getCellLayout(launcherInfo.container, presenterPos.screenId);
if (mStateManager.getState() == NORMAL) {
AppWidgetResizeFrame.showForWidget(launcherHostView, cellLayout);
} else {
@@ -1476,12 +1548,7 @@
hostView.setOnFocusChangeListener(mFocusHandler);
}
- private final BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- onScreenOff();
- }
- };
+ private final ScreenOnListener mScreenOnListener = this::onScreenOnChanged;
private void updateNotificationDots(Predicate<PackageUserKey> updatedDots) {
mWorkspace.updateNotificationDots(updatedDots);
@@ -1648,7 +1715,7 @@
private void showAllAppsWorkTabFromIntent(boolean alreadyOnHome) {
showAllAppsFromIntent(alreadyOnHome);
- mAppsView.switchToTab(BaseAllAppsContainerView.AdapterHolder.WORK);
+ mAppsView.switchToTab(ActivityAllAppsContainerView.AdapterHolder.WORK);
}
/**
@@ -1715,7 +1782,7 @@
super.onDestroy();
ACTIVITY_TRACKER.onActivityDestroyed(this);
- unregisterReceiver(mScreenOffReceiver);
+ ScreenOnTracker.INSTANCE.get(this).removeListener(mScreenOnListener);
mWorkspace.removeFolderListeners();
PluginManagerWrapper.INSTANCE.get(this).removePluginListener(this);
@@ -1839,12 +1906,17 @@
public void addPendingItem(PendingAddItemInfo info, int container, int screenId,
int[] cell, int spanX, int spanY) {
- info.container = container;
- info.screenId = screenId;
- if (cell != null) {
- info.cellX = cell[0];
- info.cellY = cell[1];
+ if (cell == null) {
+ CellPos modelPos = getCellPosMapper().mapPresenterToModel(0, 0, screenId, container);
+ info.screenId = modelPos.screenId;
+ } else {
+ CellPos modelPos = getCellPosMapper().mapPresenterToModel(
+ cell[0], cell[1], screenId, container);
+ info.screenId = modelPos.screenId;
+ info.cellX = modelPos.cellX;
+ info.cellY = modelPos.cellY;
}
+ info.container = container;
info.spanX = spanX;
info.spanY = spanY;
@@ -2053,40 +2125,17 @@
@Override
public void onBackPressed() {
- if (finishAutoCancelActionMode()) {
- return;
- }
-
- if (mDragController.isDragging()) {
- mDragController.cancelDrag();
- return;
- }
-
- // Note: There should be at most one log per method call. This is enforced implicitly
- // by using if-else statements.
- AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(this);
- if (topView == null || !topView.onBackPressed()) {
- // Not handled by the floating view.
- onStateBack();
- }
+ getOnBackPressedHandler().onBackInvoked();
}
protected void onStateBack() {
mStateManager.getState().onBackPressed(this);
}
- protected void onBackProgressed(@FloatRange(from = 0.0, to = 1.0) float backProgress) {
- mStateManager.getState().onBackProgressed(this, backProgress);
- }
-
- protected void onBackCancelled() {
- mStateManager.getState().onBackCancelled(this);
- }
-
- protected void onScreenOff() {
+ protected void onScreenOnChanged(boolean isOn) {
// Reset AllApps to its initial state only if we are not in the middle of
// processing a multi-step drop
- if (mPendingRequestArgs == null) {
+ if (!isOn && mPendingRequestArgs == null) {
if (!isInState(NORMAL)) {
onUiChangedWhileSleeping();
}
@@ -2430,10 +2479,11 @@
/*
* Remove colliding items.
*/
- if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
- CellLayout cl = mWorkspace.getScreenWithId(item.screenId);
- if (cl != null && cl.isOccupied(item.cellX, item.cellY)) {
- View v = cl.getChildAt(item.cellX, item.cellY);
+ CellPos presenterPos = getCellPosMapper().mapModelToPresenter(item);
+ if (item.container == CONTAINER_DESKTOP) {
+ CellLayout cl = mWorkspace.getScreenWithId(presenterPos.screenId);
+ if (cl != null && cl.isOccupied(presenterPos.cellX, presenterPos.cellY)) {
+ View v = cl.getChildAt(presenterPos.cellX, presenterPos.cellY);
if (v == null) {
Log.e(TAG, "bindItems failed when removing colliding item=" + item);
}
@@ -2459,7 +2509,7 @@
view.setScaleX(0f);
view.setScaleY(0f);
bounceAnims.add(createNewAppBounceAnimation(view, i));
- newItemsScreenId = item.screenId;
+ newItemsScreenId = presenterPos.screenId;
}
if (newView == null) {
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index 3461601..2b98d98 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -102,7 +102,7 @@
Intent.ACTION_MANAGED_PROFILE_UNLOCKED,
ACTION_DEVICE_POLICY_RESOURCE_UPDATED);
if (FeatureFlags.IS_STUDIO_BUILD) {
- modelChangeReceiver.register(mContext, Context.RECEIVER_EXPORTED, ACTION_FORCE_ROLOAD);
+ modelChangeReceiver.register(mContext, ACTION_FORCE_ROLOAD);
}
mOnTerminateCallback.add(() -> mContext.unregisterReceiver(modelChangeReceiver));
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 2c6458b..4472383 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -37,6 +37,7 @@
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
+import com.android.launcher3.celllayout.CellPosMapper;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.icons.IconCache;
import com.android.launcher3.logging.FileLog;
@@ -165,9 +166,9 @@
@NonNull
public ModelWriter getWriter(final boolean hasVerticalHotseat, final boolean verifyChanges,
- @Nullable final Callbacks owner) {
+ CellPosMapper cellPosMapper, @Nullable final Callbacks owner) {
return new ModelWriter(mApp.getContext(), this, mBgDataModel,
- hasVerticalHotseat, verifyChanges, owner);
+ hasVerticalHotseat, verifyChanges, cellPosMapper, owner);
}
@Override
diff --git a/src/com/android/launcher3/LauncherPrefs.kt b/src/com/android/launcher3/LauncherPrefs.kt
index 1fb2dce..2e07e30 100644
--- a/src/com/android/launcher3/LauncherPrefs.kt
+++ b/src/com/android/launcher3/LauncherPrefs.kt
@@ -8,6 +8,8 @@
import com.android.launcher3.model.DeviceGridState
import com.android.launcher3.pm.InstallSessionHelper
import com.android.launcher3.provider.RestoreDbTask
+import com.android.launcher3.states.RotationHelper
+import com.android.launcher3.util.DisplayController
import com.android.launcher3.util.MainThreadInitializedObject
import com.android.launcher3.util.Themes
@@ -17,31 +19,36 @@
*/
class LauncherPrefs(private val context: Context) {
+ /** Wrapper around `getInner` for a `ContextualItem` */
+ fun <T : Any> get(item: ContextualItem<T>): T =
+ getInner(item, item.defaultValueFromContext(context))
+
+ /** Wrapper around `getInner` for an `Item` */
+ fun <T : Any> get(item: ConstantItem<T>): T = getInner(item, item.defaultValue)
+
/**
* Retrieves the value for an [Item] from [SharedPreferences]. It handles method typing via the
* default value type, and will throw an error if the type of the item provided is not a
* `String`, `Boolean`, `Float`, `Int`, `Long`, or `Set<String>`.
*/
@Suppress("IMPLICIT_CAST_TO_ANY", "UNCHECKED_CAST")
- fun <T : Any> get(item: Item<T>): T {
+ private fun <T : Any> getInner(item: Item, default: T): T {
val sp = context.getSharedPreferences(item.sharedPrefFile, Context.MODE_PRIVATE)
- return when (item.defaultValue::class.java) {
- String::class.java -> sp.getString(item.sharedPrefKey, item.defaultValue as String)
+ return when (default::class.java) {
+ String::class.java -> sp.getString(item.sharedPrefKey, default as String)
Boolean::class.java,
- java.lang.Boolean::class.java ->
- sp.getBoolean(item.sharedPrefKey, item.defaultValue as Boolean)
+ java.lang.Boolean::class.java -> sp.getBoolean(item.sharedPrefKey, default as Boolean)
Int::class.java,
- java.lang.Integer::class.java -> sp.getInt(item.sharedPrefKey, item.defaultValue as Int)
+ java.lang.Integer::class.java -> sp.getInt(item.sharedPrefKey, default as Int)
Float::class.java,
- java.lang.Float::class.java ->
- sp.getFloat(item.sharedPrefKey, item.defaultValue as Float)
+ java.lang.Float::class.java -> sp.getFloat(item.sharedPrefKey, default as Float)
Long::class.java,
- java.lang.Long::class.java -> sp.getLong(item.sharedPrefKey, item.defaultValue as Long)
- Set::class.java -> sp.getStringSet(item.sharedPrefKey, item.defaultValue as Set<String>)
+ java.lang.Long::class.java -> sp.getLong(item.sharedPrefKey, default as Long)
+ Set::class.java -> sp.getStringSet(item.sharedPrefKey, default as Set<String>)
else ->
throw IllegalArgumentException(
- "item type: ${item.defaultValue::class.java}" +
+ "item type: ${default::class.java}" +
" is not compatible with sharedPref methods"
)
}
@@ -57,14 +64,14 @@
* prepareToPutValue(itemsToValues) for every distinct `SharedPreferences` file present in the
* provided item configurations.
*/
- fun put(vararg itemsToValues: Pair<Item<*>, Any>): Unit =
+ fun put(vararg itemsToValues: Pair<Item, Any>): Unit =
prepareToPutValues(itemsToValues).forEach { it.apply() }
/**
* Stores the value provided in `SharedPreferences` according to the item configuration provided
* It is asynchronous, so the caller can't assume that the value put is immediately available.
*/
- fun <T : Any> put(item: Item<T>, value: T): Unit =
+ fun <T : Any> put(item: Item, value: T): Unit =
context
.getSharedPreferences(item.sharedPrefFile, Context.MODE_PRIVATE)
.edit()
@@ -75,7 +82,7 @@
* Synchronously stores all the values provided according to their associated Item
* configuration.
*/
- fun putSync(vararg itemsToValues: Pair<Item<*>, Any>): Unit =
+ fun putSync(vararg itemsToValues: Pair<Item, Any>): Unit =
prepareToPutValues(itemsToValues).forEach { it.commit() }
/**
@@ -86,7 +93,7 @@
* items given as part of the itemsToValues parameter
*/
private fun prepareToPutValues(
- itemsToValues: Array<out Pair<Item<*>, Any>>
+ itemsToValues: Array<out Pair<Item, Any>>
): List<SharedPreferences.Editor> =
itemsToValues
.groupBy { it.first.sharedPrefFile }
@@ -108,7 +115,7 @@
*/
@Suppress("UNCHECKED_CAST")
private fun SharedPreferences.Editor.putValue(
- item: Item<*>,
+ item: Item,
value: Any
): SharedPreferences.Editor =
when (value::class.java) {
@@ -124,8 +131,7 @@
Set::class.java -> putStringSet(item.sharedPrefKey, value as Set<String>)
else ->
throw IllegalArgumentException(
- "item type: " +
- "${item.defaultValue!!::class} is not compatible with sharedPref methods"
+ "item type: ${value::class} is not compatible with sharedPref methods"
)
}
@@ -134,7 +140,7 @@
* `SharedPreferences` files associated with the provided list of items. The listener will need
* to filter update notifications so they don't activate for non-relevant updates.
*/
- fun addListener(listener: OnSharedPreferenceChangeListener, vararg items: Item<*>) {
+ fun addListener(listener: OnSharedPreferenceChangeListener, vararg items: Item) {
items
.map { it.sharedPrefFile }
.distinct()
@@ -149,7 +155,7 @@
* Stops the listener from getting notified of any more updates to any of the
* `SharedPreferences` files associated with any of the provided list of [Item].
*/
- fun removeListener(listener: OnSharedPreferenceChangeListener, vararg items: Item<*>) {
+ fun removeListener(listener: OnSharedPreferenceChangeListener, vararg items: Item) {
// If a listener is not registered to a SharedPreference, unregistering it does nothing
items
.map { it.sharedPrefFile }
@@ -165,7 +171,7 @@
* Checks if all the provided [Item] have values stored in their corresponding
* `SharedPreferences` files.
*/
- fun has(vararg items: Item<*>): Boolean {
+ fun has(vararg items: Item): Boolean {
items
.groupBy { it.sharedPrefFile }
.forEach { (file, itemsSublist) ->
@@ -179,17 +185,17 @@
/**
* Asynchronously removes the [Item]'s value from its corresponding `SharedPreferences` file.
*/
- fun remove(vararg items: Item<*>) = prepareToRemove(items).forEach { it.apply() }
+ fun remove(vararg items: Item) = prepareToRemove(items).forEach { it.apply() }
/** Synchronously removes the [Item]'s value from its corresponding `SharedPreferences` file. */
- fun removeSync(vararg items: Item<*>) = prepareToRemove(items).forEach { it.commit() }
+ fun removeSync(vararg items: Item) = prepareToRemove(items).forEach { it.commit() }
/**
* Creates `SharedPreferences.Editor` transactions for removing all the provided [Item] values
* from their respective `SharedPreferences` files. These returned `Editors` can then be
* committed or applied for synchronous or async behavior.
*/
- private fun prepareToRemove(items: Array<out Item<*>>): List<SharedPreferences.Editor> =
+ private fun prepareToRemove(items: Array<out Item>): List<SharedPreferences.Editor> =
items
.groupBy { it.sharedPrefFile }
.map { (file, items) ->
@@ -218,16 +224,32 @@
backedUpItem(RestoreDbTask.RESTORED_DEVICE_TYPE, InvariantDeviceProfile.TYPE_PHONE)
@JvmField val APP_WIDGET_IDS = backedUpItem(RestoreDbTask.APPWIDGET_IDS, "")
@JvmField val OLD_APP_WIDGET_IDS = backedUpItem(RestoreDbTask.APPWIDGET_OLD_IDS, "")
+ @JvmField
+ val ALLOW_ROTATION =
+ backedUpItem(RotationHelper.ALLOW_ROTATION_PREFERENCE_KEY) {
+ RotationHelper.getAllowRotationDefaultValue(DisplayController.INSTANCE.get(it).info)
+ }
@VisibleForTesting
@JvmStatic
- fun <T> backedUpItem(sharedPrefKey: String, defaultValue: T): Item<T> =
- Item(sharedPrefKey, LauncherFiles.SHARED_PREFERENCES_KEY, defaultValue)
+ fun <T> backedUpItem(sharedPrefKey: String, defaultValue: T): ConstantItem<T> =
+ ConstantItem(sharedPrefKey, LauncherFiles.SHARED_PREFERENCES_KEY, defaultValue)
+
+ @JvmStatic
+ fun <T> backedUpItem(
+ sharedPrefKey: String,
+ defaultValueFromContext: (c: Context) -> T
+ ): ContextualItem<T> =
+ ContextualItem(
+ sharedPrefKey,
+ LauncherFiles.SHARED_PREFERENCES_KEY,
+ defaultValueFromContext
+ )
@VisibleForTesting
@JvmStatic
- fun <T> nonRestorableItem(sharedPrefKey: String, defaultValue: T): Item<T> =
- Item(sharedPrefKey, LauncherFiles.DEVICE_PREFERENCES_KEY, defaultValue)
+ fun <T> nonRestorableItem(sharedPrefKey: String, defaultValue: T): ConstantItem<T> =
+ ConstantItem(sharedPrefKey, LauncherFiles.DEVICE_PREFERENCES_KEY, defaultValue)
@Deprecated("Don't use shared preferences directly. Use other LauncherPref methods.")
@JvmStatic
@@ -251,6 +273,30 @@
}
}
-data class Item<T>(val sharedPrefKey: String, val sharedPrefFile: String, val defaultValue: T) {
- fun to(value: T): Pair<Item<T>, T> = Pair(this, value)
+abstract class Item {
+ abstract val sharedPrefKey: String
+ abstract val sharedPrefFile: String
+
+ fun <T> to(value: T): Pair<Item, T> = Pair(this, value)
+}
+
+data class ConstantItem<T>(
+ override val sharedPrefKey: String,
+ override val sharedPrefFile: String,
+ val defaultValue: T
+) : Item()
+
+data class ContextualItem<T>(
+ override val sharedPrefKey: String,
+ override val sharedPrefFile: String,
+ private val defaultSupplier: (c: Context) -> T
+) : Item() {
+ private var default: T? = null
+
+ fun defaultValueFromContext(context: Context): T {
+ if (default == null) {
+ default = defaultSupplier(context)
+ }
+ return default!!
+ }
}
diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java
index 6ea331d..66ea616 100644
--- a/src/com/android/launcher3/LauncherSettings.java
+++ b/src/com/android/launcher3/LauncherSettings.java
@@ -30,6 +30,20 @@
public class LauncherSettings {
/**
+ * Types of animations.
+ */
+ public static final class Animation {
+ /**
+ * The default animation for a given view/item info type.
+ */
+ public static final int DEFAULT = 0;
+ /**
+ * An animation using the view's background.
+ */
+ public static final int VIEW_BACKGROUND = 1;
+ }
+
+ /**
* Favorites.
*/
public static final class Favorites implements BaseColumns {
diff --git a/src/com/android/launcher3/OnBackPressedHandler.java b/src/com/android/launcher3/OnBackPressedHandler.java
new file mode 100644
index 0000000..485aa0a
--- /dev/null
+++ b/src/com/android/launcher3/OnBackPressedHandler.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3;
+
+import androidx.annotation.FloatRange;
+
+/**
+ * Interface that mimics {@link android.window.OnBackInvokedCallback} without dependencies on U's
+ * API such as {@link android.window.BackEvent}.
+ *
+ * <p> Impl can assume below order during a back gesture:
+ * <ol>
+ * <li> [optional] one {@link #onBackStarted()} will be called to start the gesture
+ * <li> zero or multiple {@link #onBackProgressed(float)} will be called during swipe gesture
+ * <li> either one of {@link #onBackInvoked()} or {@link #onBackCancelled()} will be called to end
+ * the gesture
+ */
+public interface OnBackPressedHandler {
+
+ /** Called when back has started. */
+ default void onBackStarted() {}
+
+ /** Called when back is committed. */
+ void onBackInvoked();
+
+ /** Called with back gesture's progress. */
+ default void onBackProgressed(@FloatRange(from = 0.0, to = 1.0) float backProgress) {}
+
+ /** Called when user drops the back gesture. */
+ default void onBackCancelled() {}
+}
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index d7e84f0..bd9493b 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -85,7 +85,7 @@
import com.android.launcher3.widget.PendingAddShortcutInfo;
import java.lang.reflect.Method;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
@@ -691,37 +691,16 @@
/**
* Returns a list of screen-splitting options depending on the device orientation (split top for
- * portrait, split left for landscape, split left and right for landscape tablets, etc.)
+ * portrait, split right for landscape)
*/
public static List<SplitPositionOption> getSplitPositionOptions(
DeviceProfile dp) {
- List<SplitPositionOption> options = new ArrayList<>();
- // Add both left and right options if we're in tablet mode
- if (dp.isTablet && dp.isLandscape) {
- options.add(new SplitPositionOption(
- R.drawable.ic_split_left, R.string.split_screen_position_left,
- STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
- options.add(new SplitPositionOption(
- R.drawable.ic_split_right, R.string.split_screen_position_right,
- STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN));
- } else {
- if (dp.isSeascape()) {
- // Add left/right options
- options.add(new SplitPositionOption(
- R.drawable.ic_split_right, R.string.split_screen_position_right,
- STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN));
- } else if (dp.isLandscape) {
- options.add(new SplitPositionOption(
- R.drawable.ic_split_left, R.string.split_screen_position_left,
- STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
- } else {
- // Only add top option
- options.add(new SplitPositionOption(
- R.drawable.ic_split_top, R.string.split_screen_position_top,
- STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
- }
- }
- return options;
+ return Collections.singletonList(new SplitPositionOption(
+ dp.isLandscape ? R.drawable.ic_split_horizontal : R.drawable.ic_split_vertical,
+ R.string.recent_task_option_split_screen,
+ dp.isLandscape ? STAGE_POSITION_BOTTOM_OR_RIGHT : STAGE_POSITION_TOP_OR_LEFT,
+ STAGE_TYPE_MAIN
+ ));
}
/** Logs the Scale and Translate properties of a matrix. Ignores skew and perspective. */
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 460c658..df829f1 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -26,6 +26,7 @@
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.SPRING_LOADED;
import static com.android.launcher3.anim.AnimatorListeners.forSuccessCallback;
+import static com.android.launcher3.config.FeatureFlags.FOLDABLE_SINGLE_PAGE;
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_HOME;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SWIPELEFT;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SWIPERIGHT;
@@ -69,6 +70,8 @@
import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
+import com.android.launcher3.celllayout.CellPosMapper;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dot.FolderDotInfo;
import com.android.launcher3.dragndrop.DragController;
@@ -585,7 +588,7 @@
}
int cellHSpan = mLauncher.getDeviceProfile().inv.numSearchContainerColumns;
- CellLayoutLayoutParams lp = new CellLayoutLayoutParams(0, 0, cellHSpan, 1, FIRST_SCREEN_ID);
+ CellLayoutLayoutParams lp = new CellLayoutLayoutParams(0, 0, cellHSpan, 1);
lp.canReorder = false;
if (!firstPage.addViewToCellLayout(
mFirstPagePinnedItem, 0, R.id.search_container_workspace, lp, true)) {
@@ -642,7 +645,7 @@
// Inflate the cell layout, but do not add it automatically so that we can get the newly
// created CellLayout.
CellLayout newScreen = (CellLayout) LayoutInflater.from(getContext()).inflate(
- R.layout.workspace_screen, this, false /* attachToRoot */);
+ R.layout.workspace_screen, this, false /* attachToRoot */);
mWorkspaceScreens.put(screenId, newScreen);
mScreenOrder.add(insertIndex, screenId);
@@ -664,7 +667,8 @@
// If the icon was dragged from Hotseat, there is no page pair
if (isTwoPanelEnabled() && !(mDragSourceInternal.getParent() instanceof Hotseat)) {
- int pagePairScreenId = getScreenPair(dragObject.dragInfo.screenId);
+ int pagePairScreenId = getScreenPair(getCellPosMapper().mapModelToPresenter(
+ dragObject.dragInfo).screenId);
CellLayout pagePair = mWorkspaceScreens.get(pagePairScreenId);
dragSourceChildCount += pagePair.getShortcutsAndWidgets().getChildCount();
}
@@ -680,7 +684,7 @@
lastChildOnScreen = true;
}
CellLayout cl = (CellLayout) mDragSourceInternal.getParent();
- if (getLeftmostVisiblePageForIndex(indexOfChild(cl))
+ if (!FOLDABLE_SINGLE_PAGE.get() && getLeftmostVisiblePageForIndex(indexOfChild(cl))
== getLeftmostVisiblePageForIndex(getPageCount() - 1)) {
childOnFinalScreen = true;
}
@@ -1954,8 +1958,11 @@
minSpanY = item.minSpanY;
}
- droppedOnOriginalCell = item.screenId == screenId && item.container == container
- && item.cellX == mTargetCell[0] && item.cellY == mTargetCell[1];
+ CellPos originalPresenterPos = getCellPosMapper().mapModelToPresenter(item);
+ droppedOnOriginalCell = originalPresenterPos.screenId == screenId
+ && item.container == container
+ && originalPresenterPos.cellX == mTargetCell[0]
+ && originalPresenterPos.cellY == mTargetCell[1];
droppedOnOriginalCellDuringTransition = droppedOnOriginalCell && mIsSwitchingState;
// When quickly moving an item, a user may accidentally rearrange their
@@ -3434,6 +3441,11 @@
> deviceProfile.availableWidthPx * SIGNIFICANT_MOVE_SCREEN_WIDTH_PERCENTAGE;
}
+ @Override
+ public CellPosMapper getCellPosMapper() {
+ return mLauncher.getCellPosMapper();
+ }
+
/**
* Used as a workaround to ensure that the AppWidgetService receives the
* PACKAGE_ADDED broadcast before updating widgets.
diff --git a/src/com/android/launcher3/WorkspaceLayoutManager.java b/src/com/android/launcher3/WorkspaceLayoutManager.java
index bf448c9..4768773 100644
--- a/src/com/android/launcher3/WorkspaceLayoutManager.java
+++ b/src/com/android/launcher3/WorkspaceLayoutManager.java
@@ -20,6 +20,8 @@
import android.view.ViewGroup;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
+import com.android.launcher3.celllayout.CellPosMapper;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.model.data.ItemInfo;
@@ -48,15 +50,16 @@
* See {@link #addInScreen}.
*/
default void addInScreenFromBind(View child, ItemInfo info) {
- int x = info.cellX;
- int y = info.cellY;
+ CellPos presenterPos = getCellPosMapper().mapModelToPresenter(info);
+ int x = presenterPos.cellX;
+ int y = presenterPos.cellY;
if (info.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT
|| info.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION) {
- int screenId = info.screenId;
+ int screenId = presenterPos.screenId;
x = getHotseat().getCellXFromOrder(screenId);
y = getHotseat().getCellYFromOrder(screenId);
}
- addInScreen(child, info.container, info.screenId, x, y, info.spanX, info.spanY);
+ addInScreen(child, info.container, presenterPos.screenId, x, y, info.spanX, info.spanY);
}
/**
@@ -64,7 +67,9 @@
* See {@link #addInScreen(View, int, int, int, int, int, int)}.
*/
default void addInScreen(View child, ItemInfo info) {
- addInScreen(child, info.container, info.screenId, info.cellX, info.cellY,
+ CellPos presenterPos = getCellPosMapper().mapModelToPresenter(info);
+ addInScreen(child, info.container,
+ presenterPos.screenId, presenterPos.cellX, presenterPos.cellY,
info.spanX, info.spanY);
}
@@ -114,7 +119,7 @@
ViewGroup.LayoutParams genericLp = child.getLayoutParams();
CellLayoutLayoutParams lp;
if (genericLp == null || !(genericLp instanceof CellLayoutLayoutParams)) {
- lp = new CellLayoutLayoutParams(x, y, spanX, spanY, screenId);
+ lp = new CellLayoutLayoutParams(x, y, spanX, spanY);
} else {
lp = (CellLayoutLayoutParams) genericLp;
lp.setCellX(x);
@@ -151,6 +156,11 @@
return ItemLongClickListener.INSTANCE_WORKSPACE;
}
+ /**
+ * Returns the mapper for converting between model and presenter
+ */
+ CellPosMapper getCellPosMapper();
+
Hotseat getHotseat();
CellLayout getScreenWithId(int screenId);
diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java
index 2511cada..ea0d1b9 100644
--- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java
@@ -15,25 +15,78 @@
*/
package com.android.launcher3.allapps;
-import static com.android.launcher3.allapps.BaseAllAppsContainerView.AdapterHolder.SEARCH;
+import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.SEARCH;
+import static com.android.launcher3.allapps.AllAppsTransitionController.SWIPE_ALL_APPS_TO_HOME_MIN_SCALE;
+import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_COUNT;
+import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_PERSONAL_TAB;
+import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_WORK_TAB;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Outline;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.Path.Direction;
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.os.Process;
+import android.os.UserManager;
import android.util.AttributeSet;
+import android.util.Log;
+import android.util.SparseArray;
+import android.util.TypedValue;
import android.view.KeyEvent;
+import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewOutlineProvider;
+import android.view.WindowInsets;
+import android.widget.Button;
import android.widget.RelativeLayout;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.Px;
+import androidx.annotation.VisibleForTesting;
import androidx.core.graphics.ColorUtils;
import androidx.recyclerview.widget.RecyclerView;
+import com.android.launcher3.DeviceProfile;
+import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener;
+import com.android.launcher3.DragSource;
+import com.android.launcher3.DropTarget.DragObject;
+import com.android.launcher3.Insettable;
+import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem;
+import com.android.launcher3.allapps.search.DefaultSearchAdapterProvider;
+import com.android.launcher3.allapps.search.SearchAdapterProvider;
import com.android.launcher3.config.FeatureFlags;
+import com.android.launcher3.keyboard.FocusedItemDecorator;
+import com.android.launcher3.model.StringCache;
+import com.android.launcher3.model.data.ItemInfo;
+import com.android.launcher3.util.ItemInfoMatcher;
+import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ActivityContext;
+import com.android.launcher3.views.BaseDragLayer;
+import com.android.launcher3.views.RecyclerViewFastScroller;
+import com.android.launcher3.views.ScrimView;
+import com.android.launcher3.views.SpringRelativeLayout;
+import com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
/**
* All apps container view with search support for use in a dragging activity.
@@ -41,16 +94,67 @@
* @param <T> Type of context inflating all apps.
*/
public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
- extends BaseAllAppsContainerView<T> {
+ extends SpringRelativeLayout implements DragSource, Insettable,
+ OnDeviceProfileChangeListener, PersonalWorkSlidingTabStrip.OnActivePageChangedListener,
+ ScrimView.ScrimDrawingController {
+ public static final float PULL_MULTIPLIER = .02f;
+ public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
+ protected static final String BUNDLE_KEY_CURRENT_PAGE = "launcher.allapps.current_page";
private static final long DEFAULT_SEARCH_TRANSITION_DURATION_MS = 300;
+ // Render the header protection at all times to debug clipping issues.
+ private static final boolean DEBUG_HEADER_PROTECTION = false;
+ /** Context of an activity or window that is inflating this container. */
+
+ protected final T mActivityContext;
+ protected final List<AdapterHolder> mAH;
+ protected final Predicate<ItemInfo> mPersonalMatcher = ItemInfoMatcher.ofUser(
+ Process.myUserHandle());
+ protected final WorkProfileManager mWorkManager;
+ protected final Point mFastScrollerOffset = new Point();
+ protected final int mScrimColor;
+ protected final float mHeaderThreshold;
// Used to animate Search results out and A-Z apps in, or vice-versa.
private final SearchTransitionController mSearchTransitionController;
+ private final Paint mHeaderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private final Rect mInsets = new Rect();
+ private final AllAppsStore mAllAppsStore = new AllAppsStore();
+ private final RecyclerView.OnScrollListener mScrollListener =
+ new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+ updateHeaderScroll(recyclerView.computeVerticalScrollOffset());
+ }
+ };
+ private final Paint mNavBarScrimPaint;
+ private final int mHeaderProtectionColor;
+ private final Path mTmpPath = new Path();
+ private final RectF mTmpRectF = new RectF();
+ protected AllAppsPagedView mViewPager;
+ protected FloatingHeaderView mHeader;
+ protected View mBottomSheetBackground;
+ /**
+ * View that defines the search box. Result is rendered inside {@link #mSearchRecyclerView}.
+ */
+ protected View mSearchContainer;
+ protected SearchUiManager mSearchUiManager;
+ protected boolean mUsingTabs;
+ protected RecyclerViewFastScroller mTouchHandler;
/** {@code true} when rendered view is in search state instead of the scroll state. */
private boolean mIsSearching;
private boolean mRebindAdaptersAfterSearchAnimation;
+ private int mNavBarScrimHeight = 0;
+ private SearchRecyclerView mSearchRecyclerView;
+ protected SearchAdapterProvider<?> mMainAdapterProvider;
+ private View mBottomSheetHandleArea;
+ private boolean mHasWorkApps;
+ private float[] mBottomSheetCornerRadii;
+ private ScrimView mScrimView;
+ private int mHeaderColor;
+ private int mBottomSheetBackgroundColor;
+ private int mTabsProtectionAlpha;
public ActivityAllAppsContainerView(Context context) {
this(context, null);
@@ -62,13 +166,87 @@
public ActivityAllAppsContainerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
+ mActivityContext = ActivityContext.lookupContext(context);
+
+ mScrimColor = Themes.getAttrColor(context, R.attr.allAppsScrimColor);
+ mHeaderThreshold = getResources().getDimensionPixelSize(
+ R.dimen.dynamic_grid_cell_border_spacing);
+ mHeaderProtectionColor = Themes.getAttrColor(context, R.attr.allappsHeaderProtectionColor);
+
+ mWorkManager = new WorkProfileManager(
+ mActivityContext.getSystemService(UserManager.class),
+ this, mActivityContext.getStatsLogManager());
+ mAH = Arrays.asList(null, null, null);
+ mNavBarScrimPaint = new Paint();
+ mNavBarScrimPaint.setColor(Themes.getAttrColor(context, R.attr.allAppsNavBarScrimColor));
+
+ mAllAppsStore.addUpdateListener(this::onAppsUpdated);
+ mActivityContext.addOnDeviceProfileChangeListener(this);
+
+ // This is a focus listener that proxies focus from a view into the list view. This is to
+ // work around the search box from getting first focus and showing the cursor.
+ setOnFocusChangeListener((v, hasFocus) -> {
+ if (hasFocus && getActiveRecyclerView() != null) {
+ getActiveRecyclerView().requestFocus();
+ }
+ });
+ initContent();
mSearchTransitionController = new SearchTransitionController(this);
}
+ /**
+ * Initializes the view hierarchy and internal variables. Any initialization which actually uses
+ * these members should be done in {@link #onFinishInflate()}.
+ * In terms of subclass initialization, the following would be parallel order for activity:
+ * initContent -> onPreCreate
+ * constructor/init -> onCreate
+ * onFinishInflate -> onPostCreate
+ */
+ protected void initContent() {
+ mMainAdapterProvider = createMainAdapterProvider();
+
+ mAH.set(AdapterHolder.MAIN, new AdapterHolder(AdapterHolder.MAIN,
+ new AlphabeticalAppsList<>(mActivityContext, mAllAppsStore, null)));
+ mAH.set(AdapterHolder.WORK, new AdapterHolder(AdapterHolder.WORK,
+ new AlphabeticalAppsList<>(mActivityContext, mAllAppsStore, mWorkManager)));
+ mAH.set(SEARCH, new AdapterHolder(SEARCH,
+ new AlphabeticalAppsList<>(mActivityContext, null, null)));
+
+ getLayoutInflater().inflate(R.layout.all_apps_content, this);
+ mHeader = findViewById(R.id.all_apps_header);
+ mBottomSheetBackground = findViewById(R.id.bottom_sheet_background);
+ mBottomSheetHandleArea = findViewById(R.id.bottom_sheet_handle_area);
+ mSearchRecyclerView = findViewById(R.id.search_results_list_view);
+
+ // Add the search box above everything else.
+ mSearchContainer = inflateSearchBox();
+ addView(mSearchContainer);
+ mSearchUiManager = (SearchUiManager) mSearchContainer;
+ }
+
@Override
protected void onFinishInflate() {
super.onFinishInflate();
+
+ mAH.get(SEARCH).setup(mSearchRecyclerView,
+ /* Filter out A-Z apps */ itemInfo -> false);
+ rebindAdapters(true /* force */);
+ float cornerRadius = Themes.getDialogCornerRadius(getContext());
+ mBottomSheetCornerRadii = new float[]{
+ cornerRadius,
+ cornerRadius, // Top left radius in px
+ cornerRadius,
+ cornerRadius, // Top right radius in px
+ 0,
+ 0, // Bottom right
+ 0,
+ 0 // Bottom left
+ };
+ final TypedValue value = new TypedValue();
+ getContext().getTheme().resolveAttribute(android.R.attr.colorBackground, value, true);
+ mBottomSheetBackgroundColor = value.data;
+ updateBackground(mActivityContext.getDeviceProfile());
mSearchUiManager.initializeSearch(this);
}
@@ -141,19 +319,43 @@
});
}
- @Override
public boolean shouldContainerScroll(MotionEvent ev) {
+ BaseDragLayer dragLayer = mActivityContext.getDragLayer();
// IF the MotionEvent is inside the search box, and the container keeps on receiving
// touch input, container should move down.
- if (mActivityContext.getDragLayer().isEventOverView(mSearchContainer, ev)) {
+ if (dragLayer.isEventOverView(mSearchContainer, ev)) {
return true;
}
- return super.shouldContainerScroll(ev);
+ // Scroll if not within the container view (e.g. over large-screen scrim).
+ if (!dragLayer.isEventOverView(getVisibleContainerView(), ev)) {
+ return true;
+ }
+ if (dragLayer.isEventOverView(mBottomSheetHandleArea, ev)) {
+ return true;
+ }
+ AllAppsRecyclerView rv = getActiveRecyclerView();
+ if (rv == null) {
+ return true;
+ }
+ if (rv.getScrollbar() != null
+ && rv.getScrollbar().getThumbOffsetY() >= 0
+ && dragLayer.isEventOverView(rv.getScrollbar(), ev)) {
+ return false;
+ }
+ return rv.shouldContainerScroll(ev, dragLayer);
}
- @Override
public void reset(boolean animate) {
- super.reset(animate);
+ for (int i = 0; i < mAH.size(); i++) {
+ if (mAH.get(i).mRecyclerView != null) {
+ mAH.get(i).mRecyclerView.scrollToTop();
+ }
+ }
+ if (mHeader != null && mHeader.getVisibility() == VISIBLE) {
+ mHeader.reset(animate);
+ }
+ // Reset the base recycler view after transitioning home.
+ updateHeaderScroll(0);
// Reset the search bar after transitioning home.
mSearchUiManager.resetSearch();
// Animate to A-Z with 0 time to reset the animation with proper state management.
@@ -166,16 +368,26 @@
return super.dispatchKeyEvent(event);
}
- @Override
public String getDescription() {
if (!mUsingTabs && isSearching()) {
return getContext().getString(R.string.all_apps_search_results);
} else {
- return super.getDescription();
+ StringCache cache = mActivityContext.getStringCache();
+ if (mUsingTabs) {
+ if (cache != null) {
+ return isPersonalTab()
+ ? cache.allAppsPersonalTabAccessibility
+ : cache.allAppsWorkTabAccessibility;
+ } else {
+ return isPersonalTab()
+ ? getContext().getString(R.string.all_apps_button_personal_label)
+ : getContext().getString(R.string.all_apps_button_work_label);
+ }
+ }
+ return getContext().getString(R.string.all_apps_button_label);
}
}
- @Override
public boolean isSearching() {
return mIsSearching;
}
@@ -186,30 +398,139 @@
// Will be called at the end of the animation.
return;
}
- super.onActivePageChanged(currentActivePage);
+ if (mAH.get(currentActivePage).mRecyclerView != null) {
+ mAH.get(currentActivePage).mRecyclerView.bindFastScrollbar();
+ }
+ // Header keeps track of active recycler view to properly render header protection.
+ mHeader.setActiveRV(currentActivePage);
+ reset(true /* animate */);
+
+ mWorkManager.onActivePageChanged(currentActivePage);
}
- @Override
+ protected void rebindAdapters() {
+ rebindAdapters(false /* force */);
+ }
+
protected void rebindAdapters(boolean force) {
if (mSearchTransitionController.isRunning()) {
mRebindAdaptersAfterSearchAnimation = true;
return;
}
- super.rebindAdapters(force);
- if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()
- || getMainAdapterProvider().getDecorator() == null
- || getSearchRecyclerView() == null) {
+ updateSearchResultsVisibility();
+
+ boolean showTabs = shouldShowTabs();
+ if (showTabs == mUsingTabs && !force) {
+ return;
+ }
+
+ if (isSearching()) {
+ mUsingTabs = showTabs;
+ mWorkManager.detachWorkModeSwitch();
return;
}
RecyclerView.ItemDecoration decoration = getMainAdapterProvider().getDecorator();
- getSearchRecyclerView().removeItemDecoration(decoration); // In case it is already added.
+ getSearchRecyclerView().removeItemDecoration(decoration);
getSearchRecyclerView().addItemDecoration(decoration);
+
+ // replaceAppsRVcontainer() needs to use both mUsingTabs value to remove the old view AND
+ // showTabs value to create new view. Hence the mUsingTabs new value assignment MUST happen
+ // after this call.
+ replaceAppsRVContainer(showTabs);
+ mUsingTabs = showTabs;
+
+ mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.MAIN).mRecyclerView);
+ mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.WORK).mRecyclerView);
+ mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.SEARCH).mRecyclerView);
+
+ if (mUsingTabs) {
+ mAH.get(AdapterHolder.MAIN).setup(mViewPager.getChildAt(0), mPersonalMatcher);
+ mAH.get(AdapterHolder.WORK).setup(mViewPager.getChildAt(1), mWorkManager.getMatcher());
+ mAH.get(AdapterHolder.WORK).mRecyclerView.setId(R.id.apps_list_view_work);
+ if (FeatureFlags.ENABLE_EXPANDING_PAUSE_WORK_BUTTON.get()) {
+ mAH.get(AdapterHolder.WORK).mRecyclerView.addOnScrollListener(
+ mWorkManager.newScrollListener());
+ }
+ mViewPager.getPageIndicator().setActiveMarker(AdapterHolder.MAIN);
+ findViewById(R.id.tab_personal)
+ .setOnClickListener((View view) -> {
+ if (mViewPager.snapToPage(AdapterHolder.MAIN)) {
+ mActivityContext.getStatsLogManager().logger()
+ .log(LAUNCHER_ALLAPPS_TAP_ON_PERSONAL_TAB);
+ }
+ mActivityContext.hideKeyboard();
+ });
+ findViewById(R.id.tab_work)
+ .setOnClickListener((View view) -> {
+ if (mViewPager.snapToPage(AdapterHolder.WORK)) {
+ mActivityContext.getStatsLogManager().logger()
+ .log(LAUNCHER_ALLAPPS_TAP_ON_WORK_TAB);
+ }
+ mActivityContext.hideKeyboard();
+ });
+ setDeviceManagementResources();
+ onActivePageChanged(mViewPager.getNextPage());
+ } else {
+ mAH.get(AdapterHolder.MAIN).setup(findViewById(R.id.apps_list_view), null);
+ mAH.get(AdapterHolder.WORK).mRecyclerView = null;
+ }
+ setupHeader();
+
+ if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
+ // Keep the scroller above the search bar.
+ RelativeLayout.LayoutParams scrollerLayoutParams =
+ (LayoutParams) findViewById(R.id.fast_scroller).getLayoutParams();
+ scrollerLayoutParams.addRule(RelativeLayout.ABOVE, R.id.search_container_all_apps);
+ scrollerLayoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
+ scrollerLayoutParams.bottomMargin = getResources().getDimensionPixelSize(
+ R.dimen.fastscroll_bottom_margin_floating_search);
+ }
+
+ mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.MAIN).mRecyclerView);
+ mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.WORK).mRecyclerView);
+ mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.SEARCH).mRecyclerView);
}
- @Override
protected View replaceAppsRVContainer(boolean showTabs) {
- View rvContainer = super.replaceAppsRVContainer(showTabs);
+ for (int i = AdapterHolder.MAIN; i <= AdapterHolder.WORK; i++) {
+ AdapterHolder adapterHolder = mAH.get(i);
+ if (adapterHolder.mRecyclerView != null) {
+ adapterHolder.mRecyclerView.setLayoutManager(null);
+ adapterHolder.mRecyclerView.setAdapter(null);
+ }
+ }
+ View oldView = getAppsRecyclerViewContainer();
+ int index = indexOfChild(oldView);
+ removeView(oldView);
+ int layout = showTabs ? R.layout.all_apps_tabs : R.layout.all_apps_rv_layout;
+ final View rvContainer = getLayoutInflater().inflate(layout, this, false);
+ addView(rvContainer, index);
+ if (showTabs) {
+ mViewPager = (AllAppsPagedView) rvContainer;
+ mViewPager.initParentViews(this);
+ mViewPager.getPageIndicator().setOnActivePageChangedListener(this);
+ mViewPager.setOutlineProvider(new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ @Px final int bottomOffsetPx =
+ (int) (ActivityAllAppsContainerView.this.getMeasuredHeight()
+ * SWIPE_ALL_APPS_TO_HOME_MIN_SCALE);
+ outline.setRect(
+ 0,
+ 0,
+ view.getMeasuredWidth(),
+ view.getMeasuredHeight() + bottomOffsetPx);
+ }
+ });
+
+ mWorkManager.reset();
+ post(() -> mAH.get(AdapterHolder.WORK).applyPadding());
+
+ } else {
+ mWorkManager.detachWorkModeSwitch();
+ mViewPager = null;
+ }
removeCustomRules(rvContainer);
removeCustomRules(getSearchRecyclerView());
@@ -228,21 +549,47 @@
return rvContainer;
}
- @Override
void setupHeader() {
- super.setupHeader();
+ mHeader.setVisibility(View.VISIBLE);
+ boolean tabsHidden = !mUsingTabs;
+ mHeader.setup(
+ mAH.get(AdapterHolder.MAIN).mRecyclerView,
+ mAH.get(AdapterHolder.WORK).mRecyclerView,
+ (SearchRecyclerView) mAH.get(SEARCH).mRecyclerView,
+ getCurrentPage(),
+ tabsHidden);
+
+ int padding = mHeader.getMaxTranslation();
+ mAH.forEach(adapterHolder -> {
+ adapterHolder.mPadding.top = padding;
+ adapterHolder.applyPadding();
+ if (adapterHolder.mRecyclerView != null) {
+ adapterHolder.mRecyclerView.scrollToTop();
+ }
+ });
removeCustomRules(mHeader);
- if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
+ if (!isSearchSupported()) {
+ layoutWithoutSearchContainer(mHeader, false /* includeTabsMargin */);
+ } else if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
alignParentTop(mHeader, false /* includeTabsMargin */);
} else {
layoutBelowSearchContainer(mHeader, false /* includeTabsMargin */);
}
}
- @Override
protected void updateHeaderScroll(int scrolledOffset) {
- super.updateHeaderScroll(scrolledOffset);
+ float prog1 = Utilities.boundToRange((float) scrolledOffset / mHeaderThreshold, 0f, 1f);
+ int headerColor = getHeaderColor(prog1);
+ int tabsAlpha = mHeader.getPeripheralProtectionHeight() == 0 ? 0
+ : (int) (Utilities.boundToRange(
+ (scrolledOffset + mHeader.mSnappedScrolledY) / mHeaderThreshold, 0f, 1f)
+ * 255);
+ if (headerColor != mHeaderColor || mTabsProtectionAlpha != tabsAlpha) {
+ mHeaderColor = headerColor;
+ mTabsProtectionAlpha = tabsAlpha;
+ invalidateHeader();
+ }
if (mSearchUiManager.getEditText() == null) {
return;
}
@@ -257,10 +604,9 @@
mSearchUiManager.setBackgroundVisibility(bgVisible, 1 - prog);
}
- @Override
protected int getHeaderColor(float blendRatio) {
return ColorUtils.setAlphaComponent(
- super.getHeaderColor(blendRatio),
+ ColorUtils.blendARGB(mScrimColor, mHeaderProtectionColor, blendRatio),
(int) (mSearchContainer.getAlpha() * 255));
}
@@ -315,11 +661,9 @@
layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_TOP);
}
- @Override
- protected BaseAllAppsAdapter<T> createAdapter(AlphabeticalAppsList<T> appsList,
- BaseAdapterProvider[] adapterProviders) {
+ protected BaseAllAppsAdapter<T> createAdapter(AlphabeticalAppsList<T> appsList) {
return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), appsList,
- adapterProviders);
+ mMainAdapterProvider);
}
// TODO(b/216683257): Remove when Taskbar All Apps supports search.
@@ -339,9 +683,549 @@
: R.dimen.all_apps_header_top_margin);
}
- @Override
public boolean isInAllApps() {
// TODO: Make this abstract
return true;
}
+
+ /**
+ * Inflates the search box
+ */
+ protected View inflateSearchBox() {
+ return getLayoutInflater().inflate(R.layout.search_container_all_apps, this, false);
+ }
+
+ /** Creates the adapter provider for the main section. */
+ protected SearchAdapterProvider<?> createMainAdapterProvider() {
+ return new DefaultSearchAdapterProvider(mActivityContext);
+ }
+
+ /** The adapter provider for the main section. */
+ public final SearchAdapterProvider<?> getMainAdapterProvider() {
+ return mMainAdapterProvider;
+ }
+
+ @Override
+ protected void dispatchRestoreInstanceState(SparseArray<Parcelable> sparseArray) {
+ try {
+ // Many slice view id is not properly assigned, and hence throws null
+ // pointer exception in the underneath method. Catching the exception
+ // simply doesn't restore these slice views. This doesn't have any
+ // user visible effect because because we query them again.
+ super.dispatchRestoreInstanceState(sparseArray);
+ } catch (Exception e) {
+ Log.e("AllAppsContainerView", "restoreInstanceState viewId = 0", e);
+ }
+
+ Bundle state = (Bundle) sparseArray.get(R.id.work_tab_state_id, null);
+ if (state != null) {
+ int currentPage = state.getInt(BUNDLE_KEY_CURRENT_PAGE, 0);
+ if (currentPage == AdapterHolder.WORK && mViewPager != null) {
+ mViewPager.setCurrentPage(currentPage);
+ rebindAdapters();
+ } else {
+ reset(true);
+ }
+ }
+ }
+
+ @Override
+ protected void dispatchSaveInstanceState(SparseArray<Parcelable> container) {
+ super.dispatchSaveInstanceState(container);
+ Bundle state = new Bundle();
+ state.putInt(BUNDLE_KEY_CURRENT_PAGE, getCurrentPage());
+ container.put(R.id.work_tab_state_id, state);
+ }
+
+ /**
+ * Sets the long click listener for icons
+ */
+ public void setOnIconLongClickListener(OnLongClickListener listener) {
+ for (AdapterHolder holder : mAH) {
+ holder.mAdapter.setOnIconLongClickListener(listener);
+ }
+ }
+
+ public AllAppsStore getAppsStore() {
+ return mAllAppsStore;
+ }
+
+ public WorkProfileManager getWorkManager() {
+ return mWorkManager;
+ }
+
+ @Override
+ public void onDeviceProfileChanged(DeviceProfile dp) {
+ for (AdapterHolder holder : mAH) {
+ holder.mAdapter.setAppsPerRow(dp.numShownAllAppsColumns);
+ if (holder.mRecyclerView != null) {
+ // Remove all views and clear the pool, while keeping the data same. After this
+ // call, all the viewHolders will be recreated.
+ holder.mRecyclerView.swapAdapter(holder.mRecyclerView.getAdapter(), true);
+ holder.mRecyclerView.getRecycledViewPool().clear();
+ }
+ }
+ updateBackground(dp);
+ }
+
+ protected void updateBackground(DeviceProfile deviceProfile) {
+ mBottomSheetBackground.setVisibility(deviceProfile.isTablet ? View.VISIBLE : View.GONE);
+ // Note: For tablets, the opaque background and header protection are added in drawOnScrim.
+ // For the taskbar entrypoint, the scrim is drawn differently, so a static background is
+ // added in TaskbarAllAppsContainerView and header protection is not yet supported.
+ }
+
+ private void onAppsUpdated() {
+ mHasWorkApps = Stream.of(mAllAppsStore.getApps()).anyMatch(mWorkManager.getMatcher());
+ if (!isSearching()) {
+ rebindAdapters();
+ if (mHasWorkApps) {
+ mWorkManager.reset();
+ }
+ }
+
+ mActivityContext.getStatsLogManager().logger()
+ .withCardinality(mAllAppsStore.getApps().length)
+ .log(LAUNCHER_ALLAPPS_COUNT);
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ // The AllAppsContainerView houses the QSB and is hence visible from the Workspace
+ // Overview states. We shouldn't intercept for the scrubber in these cases.
+ if (!isInAllApps()) {
+ mTouchHandler = null;
+ return false;
+ }
+
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ AllAppsRecyclerView rv = getActiveRecyclerView();
+ if (rv != null && rv.getScrollbar() != null
+ && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) {
+ mTouchHandler = rv.getScrollbar();
+ } else {
+ mTouchHandler = null;
+ }
+ }
+ if (mTouchHandler != null) {
+ return mTouchHandler.handleTouchEvent(ev, mFastScrollerOffset);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (!isInAllApps()) {
+ return false;
+ }
+
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ AllAppsRecyclerView rv = getActiveRecyclerView();
+ if (rv != null && rv.getScrollbar() != null
+ && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) {
+ mTouchHandler = rv.getScrollbar();
+ } else {
+ mTouchHandler = null;
+
+ }
+ }
+ if (mTouchHandler != null) {
+ mTouchHandler.handleTouchEvent(ev, mFastScrollerOffset);
+ return true;
+ }
+ if (isSearching()
+ && mActivityContext.getDragLayer().isEventOverView(getVisibleContainerView(), ev)) {
+ // if in search state, consume touch event.
+ return true;
+ }
+ return false;
+ }
+
+ /** The current active recycler view (A-Z list from one of the profiles, or search results). */
+ public AllAppsRecyclerView getActiveRecyclerView() {
+ if (isSearching()) {
+ return getSearchRecyclerView();
+ }
+ return getActiveAppsRecyclerView();
+ }
+
+ /** The current apps recycler view in the container. */
+ private AllAppsRecyclerView getActiveAppsRecyclerView() {
+ if (!mUsingTabs || isPersonalTab()) {
+ return mAH.get(AdapterHolder.MAIN).mRecyclerView;
+ } else {
+ return mAH.get(AdapterHolder.WORK).mRecyclerView;
+ }
+ }
+
+ /**
+ * The container for A-Z apps (the ViewPager for main+work tabs, or main RV). This is currently
+ * hidden while searching.
+ **/
+ protected View getAppsRecyclerViewContainer() {
+ return mViewPager != null ? mViewPager : findViewById(R.id.apps_list_view);
+ }
+
+ /** The RV for search results, which is hidden while A-Z apps are visible. */
+ public SearchRecyclerView getSearchRecyclerView() {
+ return mSearchRecyclerView;
+ }
+
+ protected boolean isPersonalTab() {
+ return mViewPager == null || mViewPager.getNextPage() == 0;
+ }
+
+ /**
+ * Switches the current page to the provided {@code tab} if tabs are supported, otherwise does
+ * nothing.
+ */
+ public void switchToTab(int tab) {
+ if (mUsingTabs) {
+ mViewPager.setCurrentPage(tab);
+ }
+ }
+
+ public LayoutInflater getLayoutInflater() {
+ return LayoutInflater.from(getContext());
+ }
+
+ @Override
+ public void onDropCompleted(View target, DragObject d, boolean success) {}
+
+ @Override
+ public void setInsets(Rect insets) {
+ mInsets.set(insets);
+ DeviceProfile grid = mActivityContext.getDeviceProfile();
+
+ applyAdapterSideAndBottomPaddings(grid);
+
+ MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams();
+ mlp.leftMargin = insets.left;
+ mlp.rightMargin = insets.right;
+ setLayoutParams(mlp);
+
+ if (grid.isVerticalBarLayout()) {
+ setPadding(grid.workspacePadding.left, 0, grid.workspacePadding.right, 0);
+ } else {
+ int topPadding = grid.allAppsTopPadding;
+ if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get() && !grid.isTablet) {
+ topPadding += getResources().getDimensionPixelSize(
+ R.dimen.all_apps_additional_top_padding_floating_search);
+ }
+ setPadding(grid.allAppsLeftRightMargin, topPadding, grid.allAppsLeftRightMargin, 0);
+ }
+
+ InsettableFrameLayout.dispatchInsets(this, insets);
+ }
+
+ /**
+ * Returns a padding in case a scrim is shown on the bottom of the view and a padding is needed.
+ */
+ protected int computeNavBarScrimHeight(WindowInsets insets) {
+ return 0;
+ }
+
+ /**
+ * Returns the current height of nav bar scrim
+ */
+ public int getNavBarScrimHeight() {
+ return mNavBarScrimHeight;
+ }
+
+ @Override
+ public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
+ mNavBarScrimHeight = computeNavBarScrimHeight(insets);
+ applyAdapterSideAndBottomPaddings(mActivityContext.getDeviceProfile());
+ return super.dispatchApplyWindowInsets(insets);
+ }
+
+ @Override
+ protected void dispatchDraw(Canvas canvas) {
+ super.dispatchDraw(canvas);
+
+ if (mNavBarScrimHeight > 0) {
+ canvas.drawRect(0, getHeight() - mNavBarScrimHeight, getWidth(), getHeight(),
+ mNavBarScrimPaint);
+ }
+ }
+
+ protected void updateSearchResultsVisibility() {
+ if (isSearching()) {
+ getSearchRecyclerView().setVisibility(VISIBLE);
+ getAppsRecyclerViewContainer().setVisibility(GONE);
+ mHeader.setVisibility(GONE);
+ } else {
+ getSearchRecyclerView().setVisibility(GONE);
+ getAppsRecyclerViewContainer().setVisibility(VISIBLE);
+ mHeader.setVisibility(VISIBLE);
+ }
+ if (mHeader.isSetUp()) {
+ mHeader.setActiveRV(getCurrentPage());
+ }
+ }
+
+ private void applyAdapterSideAndBottomPaddings(DeviceProfile grid) {
+ int bottomPadding = Math.max(mInsets.bottom, mNavBarScrimHeight);
+ mAH.forEach(adapterHolder -> {
+ adapterHolder.mPadding.bottom = bottomPadding;
+ adapterHolder.mPadding.left =
+ adapterHolder.mPadding.right = grid.allAppsLeftRightPadding;
+ adapterHolder.applyPadding();
+ });
+ }
+
+ private void setDeviceManagementResources() {
+ if (mActivityContext.getStringCache() != null) {
+ Button personalTab = findViewById(R.id.tab_personal);
+ personalTab.setText(mActivityContext.getStringCache().allAppsPersonalTab);
+
+ Button workTab = findViewById(R.id.tab_work);
+ workTab.setText(mActivityContext.getStringCache().allAppsWorkTab);
+ }
+ }
+
+ protected boolean shouldShowTabs() {
+ return mHasWorkApps;
+ }
+
+ // Used by tests only
+ private boolean isDescendantViewVisible(int viewId) {
+ final View view = findViewById(viewId);
+ if (view == null) return false;
+
+ if (!view.isShown()) return false;
+
+ return view.getGlobalVisibleRect(new Rect());
+ }
+
+ @VisibleForTesting
+ public boolean isPersonalTabVisible() {
+ return isDescendantViewVisible(R.id.tab_personal);
+ }
+
+ @VisibleForTesting
+ public boolean isWorkTabVisible() {
+ return isDescendantViewVisible(R.id.tab_work);
+ }
+
+ public AlphabeticalAppsList<T> getSearchResultList() {
+ return mAH.get(SEARCH).mAppsList;
+ }
+
+ public FloatingHeaderView getFloatingHeaderView() {
+ return mHeader;
+ }
+
+ @VisibleForTesting
+ public View getContentView() {
+ return isSearching() ? getSearchRecyclerView() : getAppsRecyclerViewContainer();
+ }
+
+ /** The current page visible in all apps. */
+ public int getCurrentPage() {
+ return isSearching()
+ ? SEARCH
+ : mViewPager == null ? AdapterHolder.MAIN : mViewPager.getNextPage();
+ }
+
+ /** The scroll bar for the active apps recycler view. */
+ public RecyclerViewFastScroller getScrollBar() {
+ AllAppsRecyclerView rv = getActiveAppsRecyclerView();
+ return rv == null ? null : rv.getScrollbar();
+ }
+
+ /**
+ * Adds an update listener to animator that adds springs to the animation.
+ */
+ public void addSpringFromFlingUpdateListener(ValueAnimator animator,
+ float velocity /* release velocity */,
+ float progress /* portion of the distance to travel*/) {
+ animator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animator) {
+ float distance = (1 - progress) * getHeight(); // px
+ float settleVelocity = Math.min(0, distance
+ / (AllAppsTransitionController.INTERP_COEFF * animator.getDuration())
+ + velocity);
+ absorbSwipeUpVelocity(Math.max(1000, Math.abs(
+ Math.round(settleVelocity * FLING_VELOCITY_MULTIPLIER))));
+ }
+ });
+ }
+
+ /** Invoked when the container is pulled. */
+ public void onPull(float deltaDistance, float displacement) {
+ absorbPullDeltaDistance(PULL_MULTIPLIER * deltaDistance, PULL_MULTIPLIER * displacement);
+ // Current motion spec is to actually push and not pull
+ // on this surface. However, until EdgeEffect.onPush (b/190612804) is
+ // implemented at view level, we will simply pull
+ }
+
+ @Override
+ public void getDrawingRect(Rect outRect) {
+ super.getDrawingRect(outRect);
+ outRect.offset(0, (int) getTranslationY());
+ }
+
+ @Override
+ public void setTranslationY(float translationY) {
+ super.setTranslationY(translationY);
+ invalidateHeader();
+ }
+
+ public void setScrimView(ScrimView scrimView) {
+ mScrimView = scrimView;
+ }
+
+ @Override
+ public void drawOnScrimWithScale(Canvas canvas, float scale) {
+ boolean isTablet = mActivityContext.getDeviceProfile().isTablet;
+
+ // Draw full background panel for tablets.
+ if (isTablet) {
+ mHeaderPaint.setColor(mBottomSheetBackgroundColor);
+ View panel = (View) mBottomSheetBackground;
+ float translationY = ((View) panel.getParent()).getTranslationY();
+ mTmpRectF.set(panel.getLeft(), panel.getTop() + translationY,
+ panel.getRight(), panel.getBottom());
+ mTmpPath.reset();
+ mTmpPath.addRoundRect(mTmpRectF, mBottomSheetCornerRadii, Direction.CW);
+ canvas.drawPath(mTmpPath, mHeaderPaint);
+ }
+
+ if (DEBUG_HEADER_PROTECTION) {
+ mHeaderPaint.setColor(Color.MAGENTA);
+ mHeaderPaint.setAlpha(255);
+ } else {
+ mHeaderPaint.setColor(mHeaderColor);
+ mHeaderPaint.setAlpha((int) (getAlpha() * Color.alpha(mHeaderColor)));
+ }
+ if (mHeaderPaint.getColor() == mScrimColor || mHeaderPaint.getColor() == 0) {
+ return;
+ }
+ final float offset = (getVisibleContainerView().getHeight() * (1 - scale) / 2);
+ final float bottom =
+ scale * (getHeaderBottom() + getVisibleContainerView().getPaddingTop()) + offset;
+ FloatingHeaderView headerView = getFloatingHeaderView();
+ if (isTablet) {
+ // Start adding header protection if search bar or tabs will attach to the top.
+ if (!FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get() || mUsingTabs) {
+ View panel = (View) mBottomSheetBackground;
+ float translationY = ((View) panel.getParent()).getTranslationY();
+ mTmpRectF.set(panel.getLeft(), panel.getTop() + translationY, panel.getRight(),
+ bottom);
+ mTmpPath.reset();
+ mTmpPath.addRoundRect(mTmpRectF, mBottomSheetCornerRadii, Direction.CW);
+ canvas.drawPath(mTmpPath, mHeaderPaint);
+ }
+ } else {
+ canvas.drawRect(0, 0, canvas.getWidth(), bottom, mHeaderPaint);
+ }
+ int tabsHeight = headerView.getPeripheralProtectionHeight();
+ if (mTabsProtectionAlpha > 0 && tabsHeight != 0) {
+ if (DEBUG_HEADER_PROTECTION) {
+ mHeaderPaint.setColor(Color.BLUE);
+ mHeaderPaint.setAlpha(255);
+ } else {
+ mHeaderPaint.setAlpha((int) (getAlpha() * mTabsProtectionAlpha));
+ }
+ int left = 0;
+ int right = canvas.getWidth();
+ if (isTablet) {
+ left = mBottomSheetBackground.getLeft();
+ right = mBottomSheetBackground.getRight();
+ }
+ canvas.drawRect(left, bottom, right, bottom + tabsHeight, mHeaderPaint);
+ }
+ }
+
+ /**
+ * redraws header protection
+ */
+ public void invalidateHeader() {
+ if (mScrimView != null) {
+ mScrimView.invalidate();
+ }
+ }
+
+ /** Returns the position of the bottom edge of the header */
+ public int getHeaderBottom() {
+ int bottom = (int) getTranslationY() + mHeader.getClipTop();
+ if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
+ if (mActivityContext.getDeviceProfile().isTablet) {
+ return bottom + mBottomSheetBackground.getTop();
+ }
+ return bottom;
+ }
+ return bottom + mHeader.getTop();
+ }
+
+ /**
+ * Returns a view that denotes the visible part of all apps container view.
+ */
+ public View getVisibleContainerView() {
+ return mActivityContext.getDeviceProfile().isTablet ? mBottomSheetBackground : this;
+ }
+
+ protected void onInitializeRecyclerView(RecyclerView rv) {
+ rv.addOnScrollListener(mScrollListener);
+ }
+
+ /** Holds a {@link BaseAllAppsAdapter} and related fields. */
+ public class AdapterHolder {
+ public static final int MAIN = 0;
+ public static final int WORK = 1;
+ public static final int SEARCH = 2;
+
+ private final int mType;
+ public final BaseAllAppsAdapter<T> mAdapter;
+ final RecyclerView.LayoutManager mLayoutManager;
+ final AlphabeticalAppsList<T> mAppsList;
+ final Rect mPadding = new Rect();
+ AllAppsRecyclerView mRecyclerView;
+
+ AdapterHolder(int type, AlphabeticalAppsList<T> appsList) {
+ mType = type;
+ mAppsList = appsList;
+ mAdapter = createAdapter(mAppsList);
+ mAppsList.setAdapter(mAdapter);
+ mLayoutManager = mAdapter.getLayoutManager();
+ }
+
+ void setup(@NonNull View rv, @Nullable Predicate<ItemInfo> matcher) {
+ mAppsList.updateItemFilter(matcher);
+ mRecyclerView = (AllAppsRecyclerView) rv;
+ mRecyclerView.setEdgeEffectFactory(createEdgeEffectFactory());
+ mRecyclerView.setApps(mAppsList);
+ mRecyclerView.setLayoutManager(mLayoutManager);
+ mRecyclerView.setAdapter(mAdapter);
+ mRecyclerView.setHasFixedSize(true);
+ // No animations will occur when changes occur to the items in this RecyclerView.
+ mRecyclerView.setItemAnimator(null);
+ onInitializeRecyclerView(mRecyclerView);
+ FocusedItemDecorator focusedItemDecorator = new FocusedItemDecorator(mRecyclerView);
+ mRecyclerView.addItemDecoration(focusedItemDecorator);
+ mAdapter.setIconFocusListener(focusedItemDecorator.getFocusListener());
+ applyPadding();
+ }
+
+ void applyPadding() {
+ if (mRecyclerView != null) {
+ int bottomOffset = 0;
+ if (isWork() && mWorkManager.getWorkModeSwitch() != null) {
+ bottomOffset = mInsets.bottom + mWorkManager.getWorkModeSwitch().getHeight();
+ }
+ mRecyclerView.setPadding(mPadding.left, mPadding.top, mPadding.right,
+ mPadding.bottom + bottomOffset);
+ }
+ }
+
+ private boolean isWork() {
+ return mType == WORK;
+ }
+
+ private boolean isSearch() {
+ return mType == SEARCH;
+ }
+ }
}
diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
index 112d47e..866932a 100644
--- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
+++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
@@ -29,6 +29,7 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.Adapter;
+import com.android.launcher3.allapps.search.SearchAdapterProvider;
import com.android.launcher3.util.ScrollableLayoutManager;
import com.android.launcher3.views.ActivityContext;
@@ -73,8 +74,8 @@
public AllAppsGridAdapter(T activityContext, LayoutInflater inflater,
- AlphabeticalAppsList apps, BaseAdapterProvider[] adapterProviders) {
- super(activityContext, inflater, apps, adapterProviders);
+ AlphabeticalAppsList apps, SearchAdapterProvider<?> adapterProvider) {
+ super(activityContext, inflater, apps, adapterProvider);
mGridLayoutMgr = new AppsGridLayoutManager(mActivityContext);
mGridLayoutMgr.setSpanSizeLookup(new GridSpanSizer());
setAppsPerRow(activityContext.getDeviceProfile().numShownAllAppsColumns);
@@ -195,11 +196,9 @@
public void setAppsPerRow(int appsPerRow) {
mAppsPerRow = appsPerRow;
int totalSpans = mAppsPerRow;
- for (BaseAdapterProvider adapterProvider : mAdapterProviders) {
- for (int itemPerRow : adapterProvider.getSupportedItemsPerRowArray()) {
- if (totalSpans % itemPerRow != 0) {
- totalSpans *= itemPerRow;
- }
+ for (int itemPerRow : mAdapterProvider.getSupportedItemsPerRowArray()) {
+ if (totalSpans % itemPerRow != 0) {
+ totalSpans *= itemPerRow;
}
}
mGridLayoutMgr.setSpanCount(totalSpans);
@@ -226,9 +225,8 @@
if (isIconViewType(viewType)) {
return totalSpans / mAppsPerRow;
} else {
- BaseAdapterProvider adapterProvider = getAdapterProvider(viewType);
- if (adapterProvider != null) {
- return totalSpans / adapterProvider.getItemsPerRow(viewType, mAppsPerRow);
+ if (mAdapterProvider.isViewSupported(viewType)) {
+ return totalSpans / mAdapterProvider.getItemsPerRow(viewType, mAppsPerRow);
}
// Section breaks span the full width
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index 8cb31fa..6b45fe6 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -261,12 +261,19 @@
}
}
+ @Override
public int getScrollBarTop() {
return ActivityContext.lookupContext(getContext()).getAppsView().isSearchSupported()
? getResources().getDimensionPixelOffset(R.dimen.all_apps_header_top_padding)
: 0;
}
+ @Override
+ public int getScrollBarMarginBottom() {
+ return getRootWindowInsets() == null ? 0
+ : getRootWindowInsets().getSystemWindowInsetBottom();
+ }
+
public RecyclerViewFastScroller getScrollbar() {
return mScrollbar;
}
@@ -299,7 +306,7 @@
return;
} else if (appsView.mViewPager != null) {
int currentPage = appsView.mViewPager.getCurrentPage();
- if (currentPage == BaseAllAppsContainerView.AdapterHolder.WORK) {
+ if (currentPage == ActivityAllAppsContainerView.AdapterHolder.WORK) {
// In work A-Z list
mgr.logger().withContainerInfo(containerInfo).log((mCumulativeVerticalScroll > 0)
? LAUNCHER_WORK_FAB_BUTTON_COLLAPSE
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index f7b0d96..394a7d7 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -277,17 +277,6 @@
mAllAppScale.updateValue(scaleProgress);
}
- @Override
- public void onBackCancelled(LauncherState toState) {
- if (!mLauncher.isInState(ALL_APPS) || !NORMAL.equals(toState)) {
- return;
- }
-
- // TODO: once ag/20649618 is picked into tm-qpr, we don't need to animate back on cancel
- // swipe because framework will do that for us in {@link #onBackProgressed}.
- animateAllAppsToNoScale();
- }
-
private void onScaleProgressChanged() {
final float scaleProgress = mAllAppScale.value;
SCALE_PROPERTY.set(mLauncher.getAppsView(), scaleProgress);
@@ -312,12 +301,6 @@
}
}
- private void animateAllAppsToNoScale() {
- mAllAppScale.animateToValue(1f)
- .setDuration(REVERT_SWIPE_ALL_APPS_TO_HOME_ANIMATION_DURATION_MS)
- .start();
- }
-
/**
* Creates an animation which updates the vertical transition progress and updates all the
* dependent UI using various animation events
diff --git a/src/com/android/launcher3/allapps/BaseAdapterProvider.java b/src/com/android/launcher3/allapps/BaseAdapterProvider.java
deleted file mode 100644
index 308294c..0000000
--- a/src/com/android/launcher3/allapps/BaseAdapterProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.allapps;
-
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-
-/**
- * A UI expansion wrapper providing for providing dynamic recyclerview items
- */
-public abstract class BaseAdapterProvider {
-
- /**
- * Returns whether or not viewType can be handled by searchProvider
- */
- public abstract boolean isViewSupported(int viewType);
-
- /**
- * Called from RecyclerView.Adapter#onBindViewHolder
- */
- public abstract void onBindView(AllAppsGridAdapter.ViewHolder holder, int position);
-
- /**
- * Called from RecyclerView.Adapter#onCreateViewHolder
- */
- public abstract AllAppsGridAdapter.ViewHolder onCreateViewHolder(LayoutInflater layoutInflater,
- ViewGroup parent, int viewType);
-
- /**
- * Returns supported item per row combinations supported
- */
- public int[] getSupportedItemsPerRowArray() {
- return new int[]{};
- }
-
- /**
- * Returns how many cells a view should span
- */
- public int getItemsPerRow(int viewType, int appsPerRow) {
- return appsPerRow;
- }
-
-}
diff --git a/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java b/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java
index 42f8b0c..7040de5 100644
--- a/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java
+++ b/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java
@@ -27,18 +27,16 @@
import android.view.ViewGroup;
import android.widget.TextView;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.R;
+import com.android.launcher3.allapps.search.SearchAdapterProvider;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.views.ActivityContext;
-import java.util.Arrays;
-
/**
* Adapter for all the apps.
*
@@ -65,8 +63,7 @@
public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER;
public static final int VIEW_TYPE_MASK_ICON = VIEW_TYPE_ICON;
-
- protected final BaseAdapterProvider[] mAdapterProviders;
+ protected final SearchAdapterProvider<?> mAdapterProvider;
/**
* ViewHolder for each icon.
@@ -146,7 +143,7 @@
private final int mExtraHeight;
public BaseAllAppsAdapter(T activityContext, LayoutInflater inflater,
- AlphabeticalAppsList<T> apps, BaseAdapterProvider[] adapterProviders) {
+ AlphabeticalAppsList<T> apps, SearchAdapterProvider<?> adapterProvider) {
Resources res = activityContext.getResources();
mActivityContext = activityContext;
mApps = apps;
@@ -154,7 +151,7 @@
mOnIconClickListener = mActivityContext.getItemOnClickListener();
- mAdapterProviders = adapterProviders;
+ mAdapterProvider = adapterProvider;
mExtraHeight = res.getDimensionPixelSize(R.dimen.all_apps_height_extra);
}
@@ -216,9 +213,8 @@
return new ViewHolder(mLayoutInflater.inflate(
R.layout.work_apps_paused, parent, false));
default:
- BaseAdapterProvider adapterProvider = getAdapterProvider(viewType);
- if (adapterProvider != null) {
- return adapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType);
+ if (mAdapterProvider.isViewSupported(viewType)) {
+ return mAdapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType);
}
throw new RuntimeException("Unexpected view type" + viewType);
}
@@ -250,19 +246,13 @@
((WorkEduCard) holder.itemView).setPosition(position);
break;
default:
- BaseAdapterProvider adapterProvider = getAdapterProvider(holder.getItemViewType());
- if (adapterProvider != null) {
- adapterProvider.onBindView(holder, position);
+ if (mAdapterProvider.isViewSupported(holder.getItemViewType())) {
+ mAdapterProvider.onBindView(holder, position);
}
}
}
@Override
- public void onViewRecycled(@NonNull ViewHolder holder) {
- super.onViewRecycled(holder);
- }
-
- @Override
public boolean onFailedToRecycleView(ViewHolder holder) {
// Always recycle and we will reset the view when it is bound
return true;
@@ -283,10 +273,4 @@
return (viewType & viewTypeMask) != 0;
}
- @Nullable
- protected BaseAdapterProvider getAdapterProvider(int viewType) {
- return Arrays.stream(mAdapterProviders).filter(
- adapterProvider -> adapterProvider.isViewSupported(viewType)).findFirst().orElse(
- null);
- }
}
diff --git a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java
deleted file mode 100644
index 9bb8250..0000000
--- a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java
+++ /dev/null
@@ -1,996 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.allapps;
-
-import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_COUNT;
-import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_PERSONAL_TAB;
-import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_WORK_TAB;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Path.Direction;
-import android.graphics.Point;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.os.Process;
-import android.os.UserManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.SparseArray;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.WindowInsets;
-import android.widget.Button;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.ColorUtils;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.launcher3.DeviceProfile;
-import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener;
-import com.android.launcher3.DragSource;
-import com.android.launcher3.DropTarget.DragObject;
-import com.android.launcher3.Insettable;
-import com.android.launcher3.InsettableFrameLayout;
-import com.android.launcher3.R;
-import com.android.launcher3.Utilities;
-import com.android.launcher3.allapps.search.DefaultSearchAdapterProvider;
-import com.android.launcher3.allapps.search.SearchAdapterProvider;
-import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.keyboard.FocusedItemDecorator;
-import com.android.launcher3.model.StringCache;
-import com.android.launcher3.model.data.ItemInfo;
-import com.android.launcher3.util.ItemInfoMatcher;
-import com.android.launcher3.util.Themes;
-import com.android.launcher3.views.ActivityContext;
-import com.android.launcher3.views.BaseDragLayer;
-import com.android.launcher3.views.RecyclerViewFastScroller;
-import com.android.launcher3.views.ScrimView;
-import com.android.launcher3.views.SpringRelativeLayout;
-import com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip.OnActivePageChangedListener;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.function.Predicate;
-import java.util.stream.Stream;
-
-/**
- * Base all apps view container.
- *
- * @param <T> Type of context inflating all apps.
- */
-public abstract class BaseAllAppsContainerView<T extends Context & ActivityContext>
- extends SpringRelativeLayout implements DragSource, Insettable,
- OnDeviceProfileChangeListener, OnActivePageChangedListener,
- ScrimView.ScrimDrawingController {
-
- protected static final String BUNDLE_KEY_CURRENT_PAGE = "launcher.allapps.current_page";
-
- public static final float PULL_MULTIPLIER = .02f;
- public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
-
- // Render the header protection at all times to debug clipping issues.
- private static final boolean DEBUG_HEADER_PROTECTION = false;
-
- private final Paint mHeaderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Rect mInsets = new Rect();
-
- /** Context of an activity or window that is inflating this container. */
- protected final T mActivityContext;
- protected final List<AdapterHolder> mAH;
- protected final Predicate<ItemInfo> mPersonalMatcher = ItemInfoMatcher.ofUser(
- Process.myUserHandle());
- private final AllAppsStore mAllAppsStore = new AllAppsStore();
-
- private final RecyclerView.OnScrollListener mScrollListener =
- new RecyclerView.OnScrollListener() {
- @Override
- public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- updateHeaderScroll(recyclerView.computeVerticalScrollOffset());
- }
- };
-
- protected final WorkProfileManager mWorkManager;
-
- private final Paint mNavBarScrimPaint;
- private int mNavBarScrimHeight = 0;
-
- protected AllAppsPagedView mViewPager;
- private SearchRecyclerView mSearchRecyclerView;
- private SearchAdapterProvider<?> mMainAdapterProvider;
-
- protected FloatingHeaderView mHeader;
- protected View mBottomSheetBackground;
- private View mBottomSheetHandleArea;
-
- /**
- * View that defines the search box. Result is rendered inside {@link #mSearchRecyclerView}.
- */
- protected View mSearchContainer;
- protected SearchUiManager mSearchUiManager;
-
- protected boolean mUsingTabs;
- private boolean mHasWorkApps;
-
- protected RecyclerViewFastScroller mTouchHandler;
- protected final Point mFastScrollerOffset = new Point();
-
- protected final int mScrimColor;
- private final int mHeaderProtectionColor;
- protected final float mHeaderThreshold;
- private final Path mTmpPath = new Path();
- private final RectF mTmpRectF = new RectF();
- private float[] mBottomSheetCornerRadii;
- private ScrimView mScrimView;
- private int mHeaderColor;
- private int mBottomSheetBackgroundColor;
- private int mTabsProtectionAlpha;
-
- protected BaseAllAppsContainerView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- mActivityContext = ActivityContext.lookupContext(context);
-
- mScrimColor = Themes.getAttrColor(context, R.attr.allAppsScrimColor);
- mHeaderThreshold = getResources().getDimensionPixelSize(
- R.dimen.dynamic_grid_cell_border_spacing);
- mHeaderProtectionColor = Themes.getAttrColor(context, R.attr.allappsHeaderProtectionColor);
-
- mWorkManager = new WorkProfileManager(mActivityContext.getSystemService(UserManager.class),
- this, mActivityContext.getStatsLogManager());
- mAH = Arrays.asList(null, null, null);
- mNavBarScrimPaint = new Paint();
- mNavBarScrimPaint.setColor(Themes.getAttrColor(context, R.attr.allAppsNavBarScrimColor));
-
- mAllAppsStore.addUpdateListener(this::onAppsUpdated);
- mActivityContext.addOnDeviceProfileChangeListener(this);
-
- // This is a focus listener that proxies focus from a view into the list view. This is to
- // work around the search box from getting first focus and showing the cursor.
- setOnFocusChangeListener((v, hasFocus) -> {
- if (hasFocus && getActiveRecyclerView() != null) {
- getActiveRecyclerView().requestFocus();
- }
- });
- initContent();
- }
-
- /**
- * Initializes the view hierarchy and internal variables. Any initialization which actually uses
- * these members should be done in {@link #onFinishInflate()}.
- * In terms of subclass initialization, the following would be parallel order for activity:
- * initContent -> onPreCreate
- * constructor/init -> onCreate
- * onFinishInflate -> onPostCreate
- */
- protected void initContent() {
- mMainAdapterProvider = createMainAdapterProvider();
-
- mAH.set(AdapterHolder.MAIN, new AdapterHolder(AdapterHolder.MAIN));
- mAH.set(AdapterHolder.WORK, new AdapterHolder(AdapterHolder.WORK));
- mAH.set(AdapterHolder.SEARCH, new AdapterHolder(AdapterHolder.SEARCH));
-
- getLayoutInflater().inflate(R.layout.all_apps_content, this);
- mHeader = findViewById(R.id.all_apps_header);
- mBottomSheetBackground = findViewById(R.id.bottom_sheet_background);
- mBottomSheetHandleArea = findViewById(R.id.bottom_sheet_handle_area);
- mSearchRecyclerView = findViewById(R.id.search_results_list_view);
-
- // Add the search box next to the header
- mSearchContainer = inflateSearchBox();
- addView(mSearchContainer, indexOfChild(mHeader) + 1);
- mSearchUiManager = (SearchUiManager) mSearchContainer;
- }
-
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- mAH.get(AdapterHolder.SEARCH).setup(mSearchRecyclerView,
- /* Filter out A-Z apps */ itemInfo -> false);
- rebindAdapters(true /* force */);
- float cornerRadius = Themes.getDialogCornerRadius(getContext());
- mBottomSheetCornerRadii = new float[]{
- cornerRadius,
- cornerRadius, // Top left radius in px
- cornerRadius,
- cornerRadius, // Top right radius in px
- 0,
- 0, // Bottom right
- 0,
- 0 // Bottom left
- };
- final TypedValue value = new TypedValue();
- getContext().getTheme().resolveAttribute(android.R.attr.colorBackground, value, true);
- mBottomSheetBackgroundColor = value.data;
- updateBackground(mActivityContext.getDeviceProfile());
- }
-
- /**
- * Inflates the search box
- */
- protected View inflateSearchBox() {
- return getLayoutInflater().inflate(R.layout.search_container_all_apps, this, false);
- }
-
- /** Creates the adapter provider for the main section. */
- protected SearchAdapterProvider<?> createMainAdapterProvider() {
- return new DefaultSearchAdapterProvider(mActivityContext);
- }
-
- /** The adapter provider for the main section. */
- public final SearchAdapterProvider<?> getMainAdapterProvider() {
- return mMainAdapterProvider;
- }
-
- @Override
- protected void dispatchRestoreInstanceState(SparseArray<Parcelable> sparseArray) {
- try {
- // Many slice view id is not properly assigned, and hence throws null
- // pointer exception in the underneath method. Catching the exception
- // simply doesn't restore these slice views. This doesn't have any
- // user visible effect because because we query them again.
- super.dispatchRestoreInstanceState(sparseArray);
- } catch (Exception e) {
- Log.e("AllAppsContainerView", "restoreInstanceState viewId = 0", e);
- }
-
- Bundle state = (Bundle) sparseArray.get(R.id.work_tab_state_id, null);
- if (state != null) {
- int currentPage = state.getInt(BUNDLE_KEY_CURRENT_PAGE, 0);
- if (currentPage == AdapterHolder.WORK && mViewPager != null) {
- mViewPager.setCurrentPage(currentPage);
- rebindAdapters();
- } else {
- reset(true);
- }
- }
- }
-
- @Override
- protected void dispatchSaveInstanceState(SparseArray<Parcelable> container) {
- super.dispatchSaveInstanceState(container);
- Bundle state = new Bundle();
- state.putInt(BUNDLE_KEY_CURRENT_PAGE, getCurrentPage());
- container.put(R.id.work_tab_state_id, state);
- }
-
- /**
- * Sets the long click listener for icons
- */
- public void setOnIconLongClickListener(OnLongClickListener listener) {
- for (AdapterHolder holder : mAH) {
- holder.mAdapter.setOnIconLongClickListener(listener);
- }
- }
-
- public AllAppsStore getAppsStore() {
- return mAllAppsStore;
- }
-
- public WorkProfileManager getWorkManager() {
- return mWorkManager;
- }
-
- @Override
- public void onDeviceProfileChanged(DeviceProfile dp) {
- for (AdapterHolder holder : mAH) {
- holder.mAdapter.setAppsPerRow(dp.numShownAllAppsColumns);
- if (holder.mRecyclerView != null) {
- // Remove all views and clear the pool, while keeping the data same. After this
- // call, all the viewHolders will be recreated.
- holder.mRecyclerView.swapAdapter(holder.mRecyclerView.getAdapter(), true);
- holder.mRecyclerView.getRecycledViewPool().clear();
- }
- }
- updateBackground(dp);
- }
-
- protected void updateBackground(DeviceProfile deviceProfile) {
- mBottomSheetBackground.setVisibility(deviceProfile.isTablet ? View.VISIBLE : View.GONE);
- // Note: For tablets, the opaque background and header protection are added in drawOnScrim.
- // For the taskbar entrypoint, the scrim is drawn differently, so a static background is
- // added in TaskbarAllAppsContainerView and header protection is not yet supported.
- }
-
- private void onAppsUpdated() {
- mHasWorkApps = Stream.of(mAllAppsStore.getApps()).anyMatch(mWorkManager.getMatcher());
- if (!isSearching()) {
- rebindAdapters();
- if (mHasWorkApps) {
- mWorkManager.reset();
- }
- }
-
- mActivityContext.getStatsLogManager().logger()
- .withCardinality(mAllAppsStore.getApps().length)
- .log(LAUNCHER_ALLAPPS_COUNT);
- }
-
- /**
- * Returns whether the view itself will handle the touch event or not.
- */
- public boolean shouldContainerScroll(MotionEvent ev) {
- BaseDragLayer dragLayer = mActivityContext.getDragLayer();
- // Scroll if not within the container view (e.g. over large-screen scrim).
- if (!dragLayer.isEventOverView(getVisibleContainerView(), ev)) {
- return true;
- }
- if (dragLayer.isEventOverView(mBottomSheetHandleArea, ev)) {
- return true;
- }
- AllAppsRecyclerView rv = getActiveRecyclerView();
- if (rv == null) {
- return true;
- }
- if (rv.getScrollbar() != null
- && rv.getScrollbar().getThumbOffsetY() >= 0
- && dragLayer.isEventOverView(rv.getScrollbar(), ev)) {
- return false;
- }
- return rv.shouldContainerScroll(ev, dragLayer);
- }
-
- @Override
- public boolean onInterceptTouchEvent(MotionEvent ev) {
- // The AllAppsContainerView houses the QSB and is hence visible from the Workspace
- // Overview states. We shouldn't intercept for the scrubber in these cases.
- if (!isInAllApps()) {
- mTouchHandler = null;
- return false;
- }
-
- if (ev.getAction() == MotionEvent.ACTION_DOWN) {
- AllAppsRecyclerView rv = getActiveRecyclerView();
- if (rv != null && rv.getScrollbar() != null
- && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) {
- mTouchHandler = rv.getScrollbar();
- } else {
- mTouchHandler = null;
- }
- }
- if (mTouchHandler != null) {
- return mTouchHandler.handleTouchEvent(ev, mFastScrollerOffset);
- }
- return false;
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- if (!isInAllApps()) {
- return false;
- }
-
- if (ev.getAction() == MotionEvent.ACTION_DOWN) {
- AllAppsRecyclerView rv = getActiveRecyclerView();
- if (rv != null && rv.getScrollbar() != null
- && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) {
- mTouchHandler = rv.getScrollbar();
- } else {
- mTouchHandler = null;
-
- }
- }
- if (mTouchHandler != null) {
- mTouchHandler.handleTouchEvent(ev, mFastScrollerOffset);
- return true;
- }
- if (isSearching()
- && mActivityContext.getDragLayer().isEventOverView(getVisibleContainerView(), ev)) {
- // if in search state, consume touch event.
- return true;
- }
- return false;
- }
-
- /** Description of the container view based on its current state. */
- public String getDescription() {
- StringCache cache = mActivityContext.getStringCache();
- if (mUsingTabs) {
- if (cache != null) {
- return isPersonalTab()
- ? cache.allAppsPersonalTabAccessibility
- : cache.allAppsWorkTabAccessibility;
- } else {
- return isPersonalTab()
- ? getContext().getString(R.string.all_apps_button_personal_label)
- : getContext().getString(R.string.all_apps_button_work_label);
- }
- }
- return getContext().getString(R.string.all_apps_button_label);
- }
-
- /** The current active recycler view (A-Z list from one of the profiles, or search results). */
- public AllAppsRecyclerView getActiveRecyclerView() {
- if (isSearching()) {
- return getSearchRecyclerView();
- }
- return getActiveAppsRecyclerView();
- }
-
- /** The current apps recycler view in the container. */
- private AllAppsRecyclerView getActiveAppsRecyclerView() {
- if (!mUsingTabs || isPersonalTab()) {
- return mAH.get(AdapterHolder.MAIN).mRecyclerView;
- } else {
- return mAH.get(AdapterHolder.WORK).mRecyclerView;
- }
- }
-
- /**
- * The container for A-Z apps (the ViewPager for main+work tabs, or main RV). This is currently
- * hidden while searching.
- **/
- protected View getAppsRecyclerViewContainer() {
- return mViewPager != null ? mViewPager : findViewById(R.id.apps_list_view);
- }
-
- /** The RV for search results, which is hidden while A-Z apps are visible. */
- public SearchRecyclerView getSearchRecyclerView() {
- return mSearchRecyclerView;
- }
-
- protected boolean isPersonalTab() {
- return mViewPager == null || mViewPager.getNextPage() == 0;
- }
-
- /**
- * Switches the current page to the provided {@code tab} if tabs are supported, otherwise does
- * nothing.
- */
- public void switchToTab(int tab) {
- if (mUsingTabs) {
- mViewPager.setCurrentPage(tab);
- }
- }
-
- public LayoutInflater getLayoutInflater() {
- return LayoutInflater.from(getContext());
- }
-
- /**
- * Resets the state of AllApps.
- */
- public void reset(boolean animate) {
- for (int i = 0; i < mAH.size(); i++) {
- if (mAH.get(i).mRecyclerView != null) {
- mAH.get(i).mRecyclerView.scrollToTop();
- }
- }
- if (isHeaderVisible()) {
- mHeader.reset(animate);
- }
- // Reset the base recycler view after transitioning home.
- updateHeaderScroll(0);
- }
-
- @Override
- public void onDropCompleted(View target, DragObject d, boolean success) {}
-
- @Override
- public void setInsets(Rect insets) {
- mInsets.set(insets);
- DeviceProfile grid = mActivityContext.getDeviceProfile();
-
- applyAdapterSideAndBottomPaddings(grid);
-
- MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams();
- mlp.leftMargin = insets.left;
- mlp.rightMargin = insets.right;
- setLayoutParams(mlp);
-
- if (grid.isVerticalBarLayout()) {
- setPadding(grid.workspacePadding.left, 0, grid.workspacePadding.right, 0);
- } else {
- int topPadding = grid.allAppsTopPadding;
- if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get() && !grid.isTablet) {
- topPadding += getResources().getDimensionPixelSize(
- R.dimen.all_apps_additional_top_padding_floating_search);
- }
- setPadding(grid.allAppsLeftRightMargin, topPadding, grid.allAppsLeftRightMargin, 0);
- }
-
- InsettableFrameLayout.dispatchInsets(this, insets);
- }
-
- /**
- * Returns a padding in case a scrim is shown on the bottom of the view and a padding is needed.
- */
- protected int computeNavBarScrimHeight(WindowInsets insets) {
- return 0;
- }
-
- /**
- * Returns the current height of nav bar scrim
- */
- public int getNavBarScrimHeight() {
- return mNavBarScrimHeight;
- }
-
- @Override
- public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
- mNavBarScrimHeight = computeNavBarScrimHeight(insets);
- applyAdapterSideAndBottomPaddings(mActivityContext.getDeviceProfile());
- return super.dispatchApplyWindowInsets(insets);
- }
-
- @Override
- protected void dispatchDraw(Canvas canvas) {
- super.dispatchDraw(canvas);
-
- if (mNavBarScrimHeight > 0) {
- canvas.drawRect(0, getHeight() - mNavBarScrimHeight, getWidth(), getHeight(),
- mNavBarScrimPaint);
- }
- }
-
- protected void rebindAdapters() {
- rebindAdapters(false /* force */);
- }
-
- protected void rebindAdapters(boolean force) {
- updateSearchResultsVisibility();
-
- boolean showTabs = shouldShowTabs();
- if (showTabs == mUsingTabs && !force) {
- return;
- }
-
- if (isSearching()) {
- mUsingTabs = showTabs;
- mWorkManager.detachWorkModeSwitch();
- return;
- }
-
- // replaceAppsRVcontainer() needs to use both mUsingTabs value to remove the old view AND
- // showTabs value to create new view. Hence the mUsingTabs new value assignment MUST happen
- // after this call.
- replaceAppsRVContainer(showTabs);
- mUsingTabs = showTabs;
-
- mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.MAIN).mRecyclerView);
- mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.WORK).mRecyclerView);
- mAllAppsStore.unregisterIconContainer(mAH.get(AdapterHolder.SEARCH).mRecyclerView);
-
- if (mUsingTabs) {
- mAH.get(AdapterHolder.MAIN).setup(mViewPager.getChildAt(0), mPersonalMatcher);
- mAH.get(AdapterHolder.WORK).setup(mViewPager.getChildAt(1), mWorkManager.getMatcher());
- mAH.get(AdapterHolder.WORK).mRecyclerView.setId(R.id.apps_list_view_work);
- if (FeatureFlags.ENABLE_EXPANDING_PAUSE_WORK_BUTTON.get()) {
- mAH.get(AdapterHolder.WORK).mRecyclerView.addOnScrollListener(
- mWorkManager.newScrollListener());
- }
- mViewPager.getPageIndicator().setActiveMarker(AdapterHolder.MAIN);
- findViewById(R.id.tab_personal)
- .setOnClickListener((View view) -> {
- if (mViewPager.snapToPage(AdapterHolder.MAIN)) {
- mActivityContext.getStatsLogManager().logger()
- .log(LAUNCHER_ALLAPPS_TAP_ON_PERSONAL_TAB);
- }
- mActivityContext.hideKeyboard();
- });
- findViewById(R.id.tab_work)
- .setOnClickListener((View view) -> {
- if (mViewPager.snapToPage(AdapterHolder.WORK)) {
- mActivityContext.getStatsLogManager().logger()
- .log(LAUNCHER_ALLAPPS_TAP_ON_WORK_TAB);
- }
- mActivityContext.hideKeyboard();
- });
- setDeviceManagementResources();
- onActivePageChanged(mViewPager.getNextPage());
- } else {
- mAH.get(AdapterHolder.MAIN).setup(findViewById(R.id.apps_list_view), null);
- mAH.get(AdapterHolder.WORK).mRecyclerView = null;
- }
- setupHeader();
-
- mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.MAIN).mRecyclerView);
- mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.WORK).mRecyclerView);
- mAllAppsStore.registerIconContainer(mAH.get(AdapterHolder.SEARCH).mRecyclerView);
- }
-
- protected void updateSearchResultsVisibility() {
- if (isSearching()) {
- getSearchRecyclerView().setVisibility(VISIBLE);
- getAppsRecyclerViewContainer().setVisibility(GONE);
- mHeader.setVisibility(GONE);
- } else {
- getSearchRecyclerView().setVisibility(GONE);
- getAppsRecyclerViewContainer().setVisibility(VISIBLE);
- mHeader.setVisibility(VISIBLE);
- }
- if (mHeader.isSetUp()) {
- mHeader.setActiveRV(getCurrentPage());
- }
- }
-
- private void applyAdapterSideAndBottomPaddings(DeviceProfile grid) {
- int bottomPadding = Math.max(mInsets.bottom, mNavBarScrimHeight);
- mAH.forEach(adapterHolder -> {
- adapterHolder.mPadding.bottom = bottomPadding;
- adapterHolder.mPadding.left =
- adapterHolder.mPadding.right = grid.allAppsLeftRightPadding;
- adapterHolder.applyPadding();
- });
- }
-
- private void setDeviceManagementResources() {
- if (mActivityContext.getStringCache() != null) {
- Button personalTab = findViewById(R.id.tab_personal);
- personalTab.setText(mActivityContext.getStringCache().allAppsPersonalTab);
-
- Button workTab = findViewById(R.id.tab_work);
- workTab.setText(mActivityContext.getStringCache().allAppsWorkTab);
- }
- }
-
- protected boolean shouldShowTabs() {
- return mHasWorkApps;
- }
-
- protected boolean isSearching() {
- return false;
- }
-
- protected View replaceAppsRVContainer(boolean showTabs) {
- for (int i = AdapterHolder.MAIN; i <= AdapterHolder.WORK; i++) {
- AdapterHolder adapterHolder = mAH.get(i);
- if (adapterHolder.mRecyclerView != null) {
- adapterHolder.mRecyclerView.setLayoutManager(null);
- adapterHolder.mRecyclerView.setAdapter(null);
- }
- }
- View oldView = getAppsRecyclerViewContainer();
- int index = indexOfChild(oldView);
- removeView(oldView);
- int layout = showTabs ? R.layout.all_apps_tabs : R.layout.all_apps_rv_layout;
- View newView = getLayoutInflater().inflate(layout, this, false);
- addView(newView, index);
- if (showTabs) {
- mViewPager = (AllAppsPagedView) newView;
- mViewPager.initParentViews(this);
- mViewPager.getPageIndicator().setOnActivePageChangedListener(this);
-
- mWorkManager.reset();
- post(() -> mAH.get(AdapterHolder.WORK).applyPadding());
-
- } else {
- mWorkManager.detachWorkModeSwitch();
- mViewPager = null;
- }
- return newView;
- }
-
- @Override
- public void onActivePageChanged(int currentActivePage) {
- if (mAH.get(currentActivePage).mRecyclerView != null) {
- mAH.get(currentActivePage).mRecyclerView.bindFastScrollbar();
- }
- // Header keeps track of active recycler view to properly render header protection.
- mHeader.setActiveRV(currentActivePage);
- reset(true /* animate */);
-
- mWorkManager.onActivePageChanged(currentActivePage);
- }
-
- // Used by tests only
- private boolean isDescendantViewVisible(int viewId) {
- final View view = findViewById(viewId);
- if (view == null) return false;
-
- if (!view.isShown()) return false;
-
- return view.getGlobalVisibleRect(new Rect());
- }
-
- @VisibleForTesting
- public boolean isPersonalTabVisible() {
- return isDescendantViewVisible(R.id.tab_personal);
- }
-
- @VisibleForTesting
- public boolean isWorkTabVisible() {
- return isDescendantViewVisible(R.id.tab_work);
- }
-
- public AlphabeticalAppsList<T> getSearchResultList() {
- return mAH.get(AdapterHolder.SEARCH).mAppsList;
- }
-
- public FloatingHeaderView getFloatingHeaderView() {
- return mHeader;
- }
-
- @VisibleForTesting
- public View getContentView() {
- return isSearching() ? getSearchRecyclerView() : getAppsRecyclerViewContainer();
- }
-
- /** The current page visible in all apps. */
- public int getCurrentPage() {
- return isSearching()
- ? AdapterHolder.SEARCH
- : mViewPager == null ? AdapterHolder.MAIN : mViewPager.getNextPage();
- }
-
- /** The scroll bar for the active apps recycler view. */
- public RecyclerViewFastScroller getScrollBar() {
- AllAppsRecyclerView rv = getActiveAppsRecyclerView();
- return rv == null ? null : rv.getScrollbar();
- }
-
- void setupHeader() {
- mHeader.setVisibility(View.VISIBLE);
- boolean tabsHidden = !mUsingTabs;
- mHeader.setup(
- mAH.get(AdapterHolder.MAIN).mRecyclerView,
- mAH.get(AdapterHolder.WORK).mRecyclerView,
- (SearchRecyclerView) mAH.get(AdapterHolder.SEARCH).mRecyclerView,
- getCurrentPage(),
- tabsHidden);
-
- int padding = mHeader.getMaxTranslation();
- mAH.forEach(adapterHolder -> {
- adapterHolder.mPadding.top = padding;
- adapterHolder.applyPadding();
- if (adapterHolder.mRecyclerView != null) {
- adapterHolder.mRecyclerView.scrollToTop();
- }
- });
- }
-
- public boolean isHeaderVisible() {
- return mHeader != null && mHeader.getVisibility() == View.VISIBLE;
- }
-
- /**
- * Adds an update listener to animator that adds springs to the animation.
- */
- public void addSpringFromFlingUpdateListener(ValueAnimator animator,
- float velocity /* release velocity */,
- float progress /* portion of the distance to travel*/) {
- animator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- float distance = (1 - progress) * getHeight(); // px
- float settleVelocity = Math.min(0, distance
- / (AllAppsTransitionController.INTERP_COEFF * animator.getDuration())
- + velocity);
- absorbSwipeUpVelocity(Math.max(1000, Math.abs(
- Math.round(settleVelocity * FLING_VELOCITY_MULTIPLIER))));
- }
- });
- }
-
- /** Invoked when the container is pulled. */
- public void onPull(float deltaDistance, float displacement) {
- absorbPullDeltaDistance(PULL_MULTIPLIER * deltaDistance, PULL_MULTIPLIER * displacement);
- // Current motion spec is to actually push and not pull
- // on this surface. However, until EdgeEffect.onPush (b/190612804) is
- // implemented at view level, we will simply pull
- }
-
- @Override
- public void getDrawingRect(Rect outRect) {
- super.getDrawingRect(outRect);
- outRect.offset(0, (int) getTranslationY());
- }
-
- @Override
- public void setTranslationY(float translationY) {
- super.setTranslationY(translationY);
- invalidateHeader();
- }
-
- public void setScrimView(ScrimView scrimView) {
- mScrimView = scrimView;
- }
-
- @Override
- public void drawOnScrimWithScale(Canvas canvas, float scale) {
- boolean isTablet = mActivityContext.getDeviceProfile().isTablet;
-
- // Draw full background panel for tablets.
- if (isTablet) {
- mHeaderPaint.setColor(mBottomSheetBackgroundColor);
- View panel = (View) mBottomSheetBackground;
- float translationY = ((View) panel.getParent()).getTranslationY();
- mTmpRectF.set(panel.getLeft(), panel.getTop() + translationY,
- panel.getRight(), panel.getBottom());
- mTmpPath.reset();
- mTmpPath.addRoundRect(mTmpRectF, mBottomSheetCornerRadii, Direction.CW);
- canvas.drawPath(mTmpPath, mHeaderPaint);
- }
-
- if (DEBUG_HEADER_PROTECTION) {
- mHeaderPaint.setColor(Color.MAGENTA);
- mHeaderPaint.setAlpha(255);
- } else {
- mHeaderPaint.setColor(mHeaderColor);
- mHeaderPaint.setAlpha((int) (getAlpha() * Color.alpha(mHeaderColor)));
- }
- if (mHeaderPaint.getColor() == mScrimColor || mHeaderPaint.getColor() == 0) {
- return;
- }
- final float offset = (getVisibleContainerView().getHeight() * (1 - scale) / 2);
- final float bottom =
- scale * (getHeaderBottom() + getVisibleContainerView().getPaddingTop()) + offset;
- FloatingHeaderView headerView = getFloatingHeaderView();
- if (isTablet) {
- // Start adding header protection if search bar or tabs will attach to the top.
- if (!FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get() || mUsingTabs) {
- View panel = (View) mBottomSheetBackground;
- float translationY = ((View) panel.getParent()).getTranslationY();
- mTmpRectF.set(panel.getLeft(), panel.getTop() + translationY, panel.getRight(),
- bottom);
- mTmpPath.reset();
- mTmpPath.addRoundRect(mTmpRectF, mBottomSheetCornerRadii, Direction.CW);
- canvas.drawPath(mTmpPath, mHeaderPaint);
- }
- } else {
- canvas.drawRect(0, 0, canvas.getWidth(), bottom, mHeaderPaint);
- }
- int tabsHeight = headerView.getPeripheralProtectionHeight();
- if (mTabsProtectionAlpha > 0 && tabsHeight != 0) {
- if (DEBUG_HEADER_PROTECTION) {
- mHeaderPaint.setColor(Color.BLUE);
- mHeaderPaint.setAlpha(255);
- } else {
- mHeaderPaint.setAlpha((int) (getAlpha() * mTabsProtectionAlpha));
- }
- int left = 0;
- int right = canvas.getWidth();
- if (isTablet) {
- left = mBottomSheetBackground.getLeft();
- right = mBottomSheetBackground.getRight();
- }
- canvas.drawRect(left, bottom, right, bottom + tabsHeight, mHeaderPaint);
- }
- }
-
- /**
- * redraws header protection
- */
- public void invalidateHeader() {
- if (mScrimView != null) {
- mScrimView.invalidate();
- }
- }
-
- protected void updateHeaderScroll(int scrolledOffset) {
- float prog = Utilities.boundToRange((float) scrolledOffset / mHeaderThreshold, 0f, 1f);
- int headerColor = getHeaderColor(prog);
- int tabsAlpha = mHeader.getPeripheralProtectionHeight() == 0 ? 0
- : (int) (Utilities.boundToRange(
- (scrolledOffset + mHeader.mSnappedScrolledY) / mHeaderThreshold, 0f, 1f)
- * 255);
- if (headerColor != mHeaderColor || mTabsProtectionAlpha != tabsAlpha) {
- mHeaderColor = headerColor;
- mTabsProtectionAlpha = tabsAlpha;
- invalidateHeader();
- }
- }
-
- protected int getHeaderColor(float blendRatio) {
- return ColorUtils.blendARGB(mScrimColor, mHeaderProtectionColor, blendRatio);
- }
-
- protected abstract BaseAllAppsAdapter<T> createAdapter(AlphabeticalAppsList<T> mAppsList,
- BaseAdapterProvider[] adapterProviders);
-
- public int getHeaderBottom() {
- int bottom = (int) getTranslationY() + mHeader.getClipTop();
- if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
- if (mActivityContext.getDeviceProfile().isTablet) {
- return bottom + mBottomSheetBackground.getTop();
- }
- return bottom;
- }
- return bottom + mHeader.getTop();
- }
-
- /**
- * Returns a view that denotes the visible part of all apps container view.
- */
- public View getVisibleContainerView() {
- return mActivityContext.getDeviceProfile().isTablet ? mBottomSheetBackground : this;
- }
-
- protected void onInitializeRecyclerView(RecyclerView rv) {
- rv.addOnScrollListener(mScrollListener);
- }
-
- /**
- * Returns {@code true} the All Apps UI is currently being displayed on the target surface and
- * is interactive.
- */
- public abstract boolean isInAllApps();
-
- /** Holds a {@link BaseAllAppsAdapter} and related fields. */
- public class AdapterHolder {
- public static final int MAIN = 0;
- public static final int WORK = 1;
- public static final int SEARCH = 2;
-
- private final int mType;
- public final BaseAllAppsAdapter<T> mAdapter;
- final RecyclerView.LayoutManager mLayoutManager;
- final AlphabeticalAppsList<T> mAppsList;
- final Rect mPadding = new Rect();
- AllAppsRecyclerView mRecyclerView;
-
- AdapterHolder(int type) {
- mType = type;
- mAppsList = new AlphabeticalAppsList<>(mActivityContext,
- isSearch() ? null : mAllAppsStore,
- isWork() ? mWorkManager : null);
- BaseAdapterProvider[] adapterProviders =
- new BaseAdapterProvider[]{mMainAdapterProvider};
-
- mAdapter = createAdapter(mAppsList, adapterProviders);
- mAppsList.setAdapter(mAdapter);
- mLayoutManager = mAdapter.getLayoutManager();
- }
-
- void setup(@NonNull View rv, @Nullable Predicate<ItemInfo> matcher) {
- mAppsList.updateItemFilter(matcher);
- mRecyclerView = (AllAppsRecyclerView) rv;
- mRecyclerView.setEdgeEffectFactory(createEdgeEffectFactory());
- mRecyclerView.setApps(mAppsList);
- mRecyclerView.setLayoutManager(mLayoutManager);
- mRecyclerView.setAdapter(mAdapter);
- mRecyclerView.setHasFixedSize(true);
- // No animations will occur when changes occur to the items in this RecyclerView.
- mRecyclerView.setItemAnimator(null);
- onInitializeRecyclerView(mRecyclerView);
- FocusedItemDecorator focusedItemDecorator = new FocusedItemDecorator(mRecyclerView);
- mRecyclerView.addItemDecoration(focusedItemDecorator);
- mAdapter.setIconFocusListener(focusedItemDecorator.getFocusListener());
- applyPadding();
- }
-
- void applyPadding() {
- if (mRecyclerView != null) {
- int bottomOffset = 0;
- if (isWork() && mWorkManager.getWorkModeSwitch() != null) {
- bottomOffset = mInsets.bottom + mWorkManager.getWorkModeSwitch().getHeight();
- }
- mRecyclerView.setPadding(mPadding.left, mPadding.top, mPadding.right,
- mPadding.bottom + bottomOffset);
- }
- }
-
- private boolean isWork() {
- return mType == WORK;
- }
-
- private boolean isSearch() {
- return mType == SEARCH;
- }
- }
-}
diff --git a/src/com/android/launcher3/allapps/DiscoveryBounce.java b/src/com/android/launcher3/allapps/DiscoveryBounce.java
index be261f7..0188a47 100644
--- a/src/com/android/launcher3/allapps/DiscoveryBounce.java
+++ b/src/com/android/launcher3/allapps/DiscoveryBounce.java
@@ -81,10 +81,10 @@
}
@Override
- public boolean onBackPressed() {
- super.onBackPressed();
- // Go back to the previous state (from a user's perspective this floating view isn't
- // something to go back from).
+ public boolean canHandleBack() {
+ // Since DiscoveryBounce doesn't handle back, onBackInvoked() won't be called and we should
+ // close it without animation.
+ close(false);
return false;
}
diff --git a/src/com/android/launcher3/allapps/FloatingHeaderView.java b/src/com/android/launcher3/allapps/FloatingHeaderView.java
index c18f9e1..b3ea3ab 100644
--- a/src/com/android/launcher3/allapps/FloatingHeaderView.java
+++ b/src/com/android/launcher3/allapps/FloatingHeaderView.java
@@ -32,7 +32,7 @@
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
-import com.android.launcher3.allapps.BaseAllAppsContainerView.AdapterHolder;
+import com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
import com.android.launcher3.views.ActivityContext;
@@ -72,8 +72,8 @@
moved(current);
applyVerticalMove();
if (headerCollapsed != mHeaderCollapsed) {
- BaseAllAppsContainerView<?> parent =
- (BaseAllAppsContainerView<?>) getParent();
+ ActivityAllAppsContainerView<?> parent =
+ (ActivityAllAppsContainerView<?>) getParent();
parent.invalidateHeader();
}
}
@@ -191,7 +191,7 @@
updateExpectedHeight();
if (mMaxTranslation != oldMaxHeight || mFloatingRowsCollapsed) {
- BaseAllAppsContainerView<?> parent = (BaseAllAppsContainerView<?>) getParent();
+ ActivityAllAppsContainerView parent = (ActivityAllAppsContainerView) getParent();
if (parent != null) {
parent.setupHeader();
}
diff --git a/src/com/android/launcher3/allapps/WorkProfileManager.java b/src/com/android/launcher3/allapps/WorkProfileManager.java
index fa03905..f66ea34 100644
--- a/src/com/android/launcher3/allapps/WorkProfileManager.java
+++ b/src/com/android/launcher3/allapps/WorkProfileManager.java
@@ -16,11 +16,11 @@
package com.android.launcher3.allapps;
import static com.android.launcher3.LauncherPrefs.WORK_EDU_STEP;
+import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.MAIN;
+import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.SEARCH;
+import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.WORK;
import static com.android.launcher3.allapps.BaseAllAppsAdapter.VIEW_TYPE_WORK_DISABLED_CARD;
import static com.android.launcher3.allapps.BaseAllAppsAdapter.VIEW_TYPE_WORK_EDU_CARD;
-import static com.android.launcher3.allapps.BaseAllAppsContainerView.AdapterHolder.MAIN;
-import static com.android.launcher3.allapps.BaseAllAppsContainerView.AdapterHolder.SEARCH;
-import static com.android.launcher3.allapps.BaseAllAppsContainerView.AdapterHolder.WORK;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TURN_OFF_WORK_APPS_TAP;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_HAS_SHORTCUT_PERMISSION;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_QUIET_MODE_CHANGE_PERMISSION;
@@ -54,7 +54,7 @@
import java.util.function.Predicate;
/**
- * Companion class for {@link BaseAllAppsContainerView} to manage work tab and personal tab
+ * Companion class for {@link ActivityAllAppsContainerView} to manage work tab and personal tab
* related
* logic based on {@link WorkProfileState}?
*/
@@ -79,7 +79,7 @@
public @interface WorkProfileState { }
private final UserManager mUserManager;
- private final BaseAllAppsContainerView<?> mAllApps;
+ private final ActivityAllAppsContainerView<?> mAllApps;
private final Predicate<ItemInfo> mMatcher;
private final StatsLogManager mStatsLogManager;
@@ -89,7 +89,7 @@
private int mCurrentState;
public WorkProfileManager(
- UserManager userManager, BaseAllAppsContainerView<?> allApps,
+ UserManager userManager, ActivityAllAppsContainerView allApps,
StatsLogManager statsLogManager) {
mUserManager = userManager;
mAllApps = allApps;
@@ -152,7 +152,7 @@
}
/**
- * Creates and attaches for profile toggle button to {@link BaseAllAppsContainerView}
+ * Creates and attaches for profile toggle button to {@link ActivityAllAppsContainerView}
*/
public boolean attachWorkModeSwitch() {
if (!mAllApps.getAppsStore().hasModelFlag(
@@ -177,7 +177,7 @@
return true;
}
/**
- * Removes work profile toggle button from {@link BaseAllAppsContainerView}
+ * Removes work profile toggle button from {@link ActivityAllAppsContainerView}
*/
public void detachWorkModeSwitch() {
if (mWorkModeSwitch != null && mWorkModeSwitch.getParent() == mAllApps) {
@@ -195,7 +195,7 @@
return mWorkModeSwitch;
}
- private BaseAllAppsContainerView<?>.AdapterHolder getAH() {
+ private ActivityAllAppsContainerView.AdapterHolder getAH() {
return mAllApps.mAH.get(WORK);
}
diff --git a/src/com/android/launcher3/allapps/search/DefaultSearchAdapterProvider.java b/src/com/android/launcher3/allapps/search/DefaultSearchAdapterProvider.java
index 20edf8a..714304b 100644
--- a/src/com/android/launcher3/allapps/search/DefaultSearchAdapterProvider.java
+++ b/src/com/android/launcher3/allapps/search/DefaultSearchAdapterProvider.java
@@ -15,12 +15,10 @@
*/
package com.android.launcher3.allapps.search;
-import android.graphics.Canvas;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.android.launcher3.BubbleTextView;
@@ -38,13 +36,7 @@
public DefaultSearchAdapterProvider(ActivityContext launcher) {
super(launcher);
- mDecoration = new RecyclerView.ItemDecoration() {
- @Override
- public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent,
- @NonNull RecyclerView.State state) {
- super.onDraw(c, parent, state);
- }
- };
+ mDecoration = new RecyclerView.ItemDecoration() { };
}
@Override
diff --git a/src/com/android/launcher3/allapps/search/SearchAdapterProvider.java b/src/com/android/launcher3/allapps/search/SearchAdapterProvider.java
index 3890741..15756f5 100644
--- a/src/com/android/launcher3/allapps/search/SearchAdapterProvider.java
+++ b/src/com/android/launcher3/allapps/search/SearchAdapterProvider.java
@@ -16,12 +16,13 @@
package com.android.launcher3.allapps.search;
-import android.net.Uri;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import androidx.recyclerview.widget.RecyclerView;
-import com.android.launcher3.allapps.BaseAdapterProvider;
+import com.android.launcher3.allapps.AllAppsGridAdapter;
import com.android.launcher3.views.ActivityContext;
/**
@@ -29,7 +30,7 @@
*
* @param <T> Context for this adapter provider.
*/
-public abstract class SearchAdapterProvider<T extends ActivityContext> extends BaseAdapterProvider {
+public abstract class SearchAdapterProvider<T extends ActivityContext> {
protected final T mLauncher;
@@ -38,12 +39,6 @@
}
/**
- * Called from LiveSearchManager to notify slice status updates.
- */
- public void onSliceStatusUpdate(Uri sliceUri) {
- }
-
- /**
* Handles selection event on search adapter item. Returns false if provider can not handle
* event
*/
@@ -63,4 +58,34 @@
* Clear the highlighted view.
*/
public abstract void clearHighlightedItem();
+
+ /**
+ * Returns whether or not viewType can be handled by searchProvider
+ */
+ public abstract boolean isViewSupported(int viewType);
+
+ /**
+ * Called from RecyclerView.Adapter#onBindViewHolder
+ */
+ public abstract void onBindView(AllAppsGridAdapter.ViewHolder holder, int position);
+
+ /**
+ * Called from RecyclerView.Adapter#onCreateViewHolder
+ */
+ public abstract AllAppsGridAdapter.ViewHolder onCreateViewHolder(LayoutInflater layoutInflater,
+ ViewGroup parent, int viewType);
+
+ /**
+ * Returns supported item per row combinations supported
+ */
+ public int[] getSupportedItemsPerRowArray() {
+ return new int[]{};
+ }
+
+ /**
+ * Returns how many cells a view should span
+ */
+ public int getItemsPerRow(int viewType, int appsPerRow) {
+ return appsPerRow;
+ }
}
diff --git a/src/com/android/launcher3/celllayout/CellLayoutLayoutParams.java b/src/com/android/launcher3/celllayout/CellLayoutLayoutParams.java
index 726ef05..4b6a062 100644
--- a/src/com/android/launcher3/celllayout/CellLayoutLayoutParams.java
+++ b/src/com/android/launcher3/celllayout/CellLayoutLayoutParams.java
@@ -29,8 +29,6 @@
*/
public class CellLayoutLayoutParams extends ViewGroup.MarginLayoutParams {
- private int mScreenId = -1;
-
@ViewDebug.ExportedProperty
private int mCellX;
@@ -97,20 +95,17 @@
this.mCellY = source.getCellY();
this.cellHSpan = source.cellHSpan;
this.cellVSpan = source.cellVSpan;
- this.mScreenId = source.getScreenId();
this.mTmpCellX = source.getTmpCellX();
this.mTmpCellY = source.getTmpCellY();
this.useTmpCoords = source.useTmpCoords;
}
- public CellLayoutLayoutParams(int cellX, int cellY, int cellHSpan, int cellVSpan,
- int screenId) {
+ public CellLayoutLayoutParams(int cellX, int cellY, int cellHSpan, int cellVSpan) {
super(CellLayoutLayoutParams.MATCH_PARENT, CellLayoutLayoutParams.MATCH_PARENT);
this.mCellX = cellX;
this.mCellY = cellY;
this.cellHSpan = cellHSpan;
this.cellVSpan = cellVSpan;
- this.mScreenId = screenId;
}
/**
@@ -178,14 +173,6 @@
return "(" + this.getCellX() + ", " + this.getCellY() + ")";
}
- public int getScreenId() {
- return mScreenId;
- }
-
- public void setScreenId(int screenId) {
- this.mScreenId = screenId;
- }
-
/**
* Horizontal location of the item in the grid.
*/
diff --git a/src/com/android/launcher3/celllayout/CellPosMapper.java b/src/com/android/launcher3/celllayout/CellPosMapper.java
new file mode 100644
index 0000000..1891696
--- /dev/null
+++ b/src/com/android/launcher3/celllayout/CellPosMapper.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2026 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.celllayout;
+
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
+
+import com.android.launcher3.model.data.ItemInfo;
+
+import java.util.Objects;
+
+/**
+ * Class for mapping between model position and presenter position.
+ */
+public class CellPosMapper {
+
+ public static final CellPosMapper DEFAULT = new CellPosMapper();
+
+ private CellPosMapper() { }
+
+ /**
+ * Maps the position in model to the position in view
+ */
+ public CellPos mapModelToPresenter(ItemInfo info) {
+ return new CellPos(info.cellX, info.cellY, info.screenId);
+ }
+
+ /**
+ * Maps the position in view to the position in model
+ */
+ public CellPos mapPresenterToModel(int presenterX, int presenterY, int presenterScreen,
+ int container) {
+ return new CellPos(presenterX, presenterY, presenterScreen);
+ }
+
+ /**
+ * Cell mapper which maps two panels into a single layout
+ */
+ public static class TwoPanelCellPosMapper extends CellPosMapper {
+
+ private final int mColumnCount;
+
+ public TwoPanelCellPosMapper(int columnCount) {
+ mColumnCount = columnCount;
+ }
+
+ /**
+ * Maps the position in model to the position in view
+ */
+ public CellPos mapModelToPresenter(ItemInfo info) {
+ if (info.container != CONTAINER_DESKTOP || (info.screenId % 2) == 0) {
+ return super.mapModelToPresenter(info);
+ }
+ return new CellPos(info.cellX + mColumnCount, info.cellY, info.screenId - 1);
+ }
+
+ @Override
+ public CellPos mapPresenterToModel(int presenterX, int presenterY, int presenterScreen,
+ int container) {
+ if (container == CONTAINER_DESKTOP && (presenterScreen % 2) == 0
+ && presenterX >= mColumnCount) {
+ return new CellPos(presenterX - mColumnCount, presenterY, presenterScreen + 1);
+ }
+ return super.mapPresenterToModel(presenterX, presenterY, presenterScreen, container);
+ }
+ }
+
+ /**
+ * Utility class to indicate the position of a cell
+ */
+ public static class CellPos {
+ public final int cellX;
+ public final int cellY;
+ public final int screenId;
+
+ public CellPos(int cellX, int cellY, int screenId) {
+ this.cellX = cellX;
+ this.cellY = cellY;
+ this.screenId = screenId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CellPos)) return false;
+ CellPos cellPos = (CellPos) o;
+ return cellX == cellPos.cellX && cellY == cellPos.cellY && screenId == cellPos.screenId;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(cellX, cellY, screenId);
+ }
+ }
+}
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
index c328554..4f4e65c 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -96,9 +96,6 @@
"ENABLE_EXPANDING_PAUSE_WORK_BUTTON", false,
"Expand and collapse pause work button while scrolling");
- public static final BooleanFlag ENABLE_HIDE_HEADER_STATIC = new DeviceFlag(
- "ENABLE_HIDE_HEADER_STATIC", false, "Hide keyboard suggestion strip");
-
public static final BooleanFlag COLLECT_SEARCH_HISTORY = new DeviceFlag(
"COLLECT_SEARCH_HISTORY", false, "Allow launcher to collect search history for log");
@@ -275,7 +272,7 @@
public static final BooleanFlag ENABLE_SEARCH_RESULT_LAUNCH_TRANSITION = new DeviceFlag(
"ENABLE_SEARCH_RESULT_LAUNCH_TRANSITION", false,
- "Enable option to launch search results using the new standardized transitions");
+ "Enable option to launch search results using the new view container transitions");
public static final BooleanFlag TWO_PREDICTED_ROWS_ALL_APPS_SEARCH = new DeviceFlag(
"TWO_PREDICTED_ROWS_ALL_APPS_SEARCH", false,
@@ -308,6 +305,9 @@
"FOLDABLE_WORKSPACE_REORDER", true,
"In foldables, when reordering the icons and widgets, is now going to use both sides");
+ public static final BooleanFlag ENABLE_QUICK_LAUNCH_V3 = new DeviceFlag(
+ "ENABLE_QUICK_LAUNCH_V3", false, "Quick Launch V3");
+
public static final BooleanFlag ENABLE_WIDGET_PICKER_DEPTH = new DeviceFlag(
"ENABLE_WIDGET_PICKER_DEPTH", true, "Enable changing depth in widget picker.");
@@ -334,6 +334,10 @@
"ENABLE_DOWNLOAD_APP_UX_V2", true, "Updates the download app UX"
+ " to have better visuals");
+ public static final BooleanFlag ENABLE_DOWNLOAD_APP_UX_V3 = getDebugFlag(
+ "ENABLE_DOWNLOAD_APP_UX_V3", false, "Updates the download app UX"
+ + " to have better visuals, improve contrast, and color");
+
public static final BooleanFlag ENABLE_TASKBAR_REVISED_THRESHOLDS = getDebugFlag(
"ENABLE_TASKBAR_REVISED_THRESHOLDS", true,
"Uses revised thresholds for transient taskbar.");
@@ -378,7 +382,7 @@
);
public static final BooleanFlag ENABLE_TASKBAR_EDU_TOOLTIP = getDebugFlag(
- "ENABLE_TASKBAR_EDU_TOOLTIP", false,
+ "ENABLE_TASKBAR_EDU_TOOLTIP", true,
"Enable the tooltip version of the Taskbar education flow.");
public static final BooleanFlag ENABLE_MULTI_INSTANCE = getDebugFlag(
@@ -390,6 +394,10 @@
"Enables taskbar pinning to allow user to switch between transient and persistent "
+ "taskbar flavors");
+ public static final BooleanFlag ENABLE_GRID_ONLY_OVERVIEW = getDebugFlag(
+ "ENABLE_GRID_ONLY_OVERVIEW", false,
+ "Enable a grid-only overview without a focused task.");
+
public static void initialize(Context context) {
synchronized (sDebugFlags) {
for (DebugFlag flag : sDebugFlags) {
diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java
index 94eea35..9a5d77e 100644
--- a/src/com/android/launcher3/folder/Folder.java
+++ b/src/com/android/launcher3/folder/Folder.java
@@ -1579,17 +1579,14 @@
return getOpenView(activityContext, TYPE_FOLDER);
}
- /**
- * Navigation bar back key or hardware input back key has been issued.
- */
+ /** Navigation bar back key or hardware input back key has been issued. */
@Override
- public boolean onBackPressed() {
+ public void onBackInvoked() {
if (isEditingName()) {
mFolderName.dispatchBackKey();
} else {
- super.onBackPressed();
+ super.onBackInvoked();
}
- return true;
}
@Override
diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java
index 60442f4..e69f781 100644
--- a/src/com/android/launcher3/folder/FolderIcon.java
+++ b/src/com/android/launcher3/folder/FolderIcon.java
@@ -41,6 +41,7 @@
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.android.launcher3.Alarm;
import com.android.launcher3.BubbleTextView;
@@ -181,8 +182,11 @@
return icon;
}
- public static FolderIcon inflateIcon(int resId, ActivityContext activity, ViewGroup group,
- FolderInfo folderInfo) {
+ /**
+ * Builds a FolderIcon to be added to the Launcher
+ */
+ public static FolderIcon inflateIcon(int resId, ActivityContext activity,
+ @Nullable ViewGroup group, FolderInfo folderInfo) {
@SuppressWarnings("all") // suppress dead code warning
final boolean error = INITIAL_ITEM_ANIMATION_DURATION >= DROP_IN_ANIMATION_DURATION;
if (error) {
@@ -192,8 +196,10 @@
}
DeviceProfile grid = activity.getDeviceProfile();
- FolderIcon icon = (FolderIcon) LayoutInflater.from(group.getContext())
- .inflate(resId, group, false);
+ LayoutInflater inflater = (group != null)
+ ? LayoutInflater.from(group.getContext())
+ : activity.getLayoutInflater();
+ FolderIcon icon = (FolderIcon) inflater.inflate(resId, group, false);
icon.setClipToPadding(false);
icon.mFolderName = icon.findViewById(R.id.folder_icon_name);
diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java
index 10a2637..d43731b 100644
--- a/src/com/android/launcher3/folder/FolderPagedView.java
+++ b/src/com/android/launcher3/folder/FolderPagedView.java
@@ -222,7 +222,7 @@
CellLayoutLayoutParams lp = (CellLayoutLayoutParams) textView.getLayoutParams();
if (lp == null) {
textView.setLayoutParams(new CellLayoutLayoutParams(
- item.cellX, item.cellY, item.spanX, item.spanY, item.screenId));
+ item.cellX, item.cellY, item.spanX, item.spanY));
} else {
lp.setCellX(item.cellX);
lp.setCellY(item.cellY);
diff --git a/src/com/android/launcher3/folder/LauncherDelegate.java b/src/com/android/launcher3/folder/LauncherDelegate.java
index 1f0a011..3e55425 100644
--- a/src/com/android/launcher3/folder/LauncherDelegate.java
+++ b/src/com/android/launcher3/folder/LauncherDelegate.java
@@ -28,6 +28,7 @@
import com.android.launcher3.DropTarget;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
+import com.android.launcher3.celllayout.CellPosMapper;
import com.android.launcher3.dragndrop.DragOptions;
import com.android.launcher3.logging.InstanceId;
import com.android.launcher3.logging.StatsLogManager.StatsLogger;
@@ -177,7 +178,7 @@
ModelWriter getModelWriter() {
if (mWriter == null) {
mWriter = LauncherAppState.getInstance((Context) mContext).getModel()
- .getWriter(false, false, null);
+ .getWriter(false, false, CellPosMapper.DEFAULT, null);
}
return mWriter;
}
diff --git a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
index e7b0446..b061f8f 100644
--- a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
+++ b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
@@ -68,12 +68,14 @@
import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.LauncherAppState;
+import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.Workspace;
import com.android.launcher3.WorkspaceLayoutManager;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
+import com.android.launcher3.celllayout.CellPosMapper;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.icons.BaseIconFactory;
@@ -137,7 +139,7 @@
new ConcurrentLinkedQueue<>();
public PreviewContext(Context base, InvariantDeviceProfile idp) {
- super(base, UserCache.INSTANCE, InstallSessionHelper.INSTANCE,
+ super(base, UserCache.INSTANCE, InstallSessionHelper.INSTANCE, LauncherPrefs.INSTANCE,
LauncherAppState.INSTANCE, InvariantDeviceProfile.INSTANCE,
CustomWidgetManager.INSTANCE, PluginManagerWrapper.INSTANCE,
WindowManagerProxy.INSTANCE, DisplayController.INSTANCE);
@@ -347,6 +349,11 @@
return mWorkspaceScreens.get(screenId);
}
+ @Override
+ public CellPosMapper getCellPosMapper() {
+ return CellPosMapper.DEFAULT;
+ }
+
private void inflateAndAddIcon(WorkspaceItemInfo info) {
CellLayout screen = mWorkspaceScreens.get(info.screenId);
BubbleTextView icon = (BubbleTextView) mHomeElementInflater.inflate(
@@ -538,10 +545,9 @@
// Add first page QSB
if (FeatureFlags.QSB_ON_FIRST_SCREEN) {
CellLayout firstScreen = mWorkspaceScreens.get(FIRST_SCREEN_ID);
- View qsb = mHomeElementInflater.inflate(R.layout.qsb_preview, firstScreen,
- false);
- CellLayoutLayoutParams lp = new CellLayoutLayoutParams(0, 0, firstScreen.getCountX(),
- 1, FIRST_SCREEN_ID);
+ View qsb = mHomeElementInflater.inflate(R.layout.qsb_preview, firstScreen, false);
+ CellLayoutLayoutParams lp = new CellLayoutLayoutParams(
+ 0, 0, firstScreen.getCountX(), 1);
lp.canReorder = false;
firstScreen.addViewToCellLayout(qsb, 0, R.id.search_container_workspace, lp, true);
}
diff --git a/src/com/android/launcher3/graphics/SysUiScrim.java b/src/com/android/launcher3/graphics/SysUiScrim.java
index 185b8d3..11e7dc8 100644
--- a/src/com/android/launcher3/graphics/SysUiScrim.java
+++ b/src/com/android/launcher3/graphics/SysUiScrim.java
@@ -16,17 +16,10 @@
package com.android.launcher3.graphics;
-import static android.content.Intent.ACTION_SCREEN_OFF;
-import static android.content.Intent.ACTION_USER_PRESENT;
-
import static com.android.launcher3.config.FeatureFlags.KEYGUARD_ANIMATION;
import static com.android.launcher3.icons.GraphicsUtils.setColorAlphaBound;
import android.animation.ObjectAnimator;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -43,10 +36,12 @@
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
-import com.android.launcher3.testing.shared.ResourceUtils;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
+import com.android.launcher3.testing.shared.ResourceUtils;
import com.android.launcher3.util.DynamicResource;
+import com.android.launcher3.util.ScreenOnTracker;
+import com.android.launcher3.util.ScreenOnTracker.ScreenOnListener;
import com.android.launcher3.util.Themes;
import com.android.systemui.plugins.ResourceProvider;
@@ -85,18 +80,20 @@
/**
* Receiver used to get a signal that the user unlocked their device.
*/
- private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ private final ScreenOnListener mScreenOnListener = new ScreenOnListener() {
@Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- if (ACTION_SCREEN_OFF.equals(action)) {
+ public void onScreenOnChanged(boolean isOn) {
+ if (!isOn) {
mAnimateScrimOnNextDraw = true;
- } else if (ACTION_USER_PRESENT.equals(action)) {
- // ACTION_USER_PRESENT is sent after onStart/onResume. This covers the case where
- // the user unlocked and the Launcher is not in the foreground.
- mAnimateScrimOnNextDraw = false;
}
}
+
+ @Override
+ public void onUserPresent() {
+ // ACTION_USER_PRESENT is sent after onStart/onResume. This covers the case where
+ // the user unlocked and the Launcher is not in the foreground.
+ mAnimateScrimOnNextDraw = false;
+ }
};
private static final int MAX_HOTSEAT_SCRIM_ALPHA = 100;
@@ -208,16 +205,14 @@
@Override
public void onViewAttachedToWindow(View view) {
if (!KEYGUARD_ANIMATION.get() && mTopScrim != null) {
- IntentFilter filter = new IntentFilter(ACTION_SCREEN_OFF);
- filter.addAction(ACTION_USER_PRESENT); // When the device wakes up + keyguard is gone
- mRoot.getContext().registerReceiver(mReceiver, filter);
+ ScreenOnTracker.INSTANCE.get(mActivity).addListener(mScreenOnListener);
}
}
@Override
public void onViewDetachedFromWindow(View view) {
if (!KEYGUARD_ANIMATION.get() && mTopScrim != null) {
- mRoot.getContext().unregisterReceiver(mReceiver);
+ ScreenOnTracker.INSTANCE.get(mActivity).removeListener(mScreenOnListener);
}
}
diff --git a/src/com/android/launcher3/model/BaseModelUpdateTask.java b/src/com/android/launcher3/model/BaseModelUpdateTask.java
index 74a2c5d..01e58f2 100644
--- a/src/com/android/launcher3/model/BaseModelUpdateTask.java
+++ b/src/com/android/launcher3/model/BaseModelUpdateTask.java
@@ -24,6 +24,7 @@
import com.android.launcher3.LauncherModel;
import com.android.launcher3.LauncherModel.CallbackTask;
import com.android.launcher3.LauncherModel.ModelUpdateTask;
+import com.android.launcher3.celllayout.CellPosMapper;
import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.BgDataModel.FixedContainerItems;
import com.android.launcher3.model.data.AppInfo;
@@ -96,7 +97,8 @@
public ModelWriter getModelWriter() {
// Updates from model task, do not deal with icon position in hotseat. Also no need to
// verify changes as the ModelTasks always push the changes to callbacks
- return mModel.getWriter(false /* hasVerticalHotseat */, false /* verifyChanges */, null);
+ return mModel.getWriter(false /* hasVerticalHotseat */, false /* verifyChanges */,
+ CellPosMapper.DEFAULT, null);
}
public void bindUpdatedWorkspaceItems(@NonNull final List<WorkspaceItemInfo> allUpdates) {
diff --git a/src/com/android/launcher3/model/ModelWriter.java b/src/com/android/launcher3/model/ModelWriter.java
index f444bd5..772ffa4 100644
--- a/src/com/android/launcher3/model/ModelWriter.java
+++ b/src/com/android/launcher3/model/ModelWriter.java
@@ -37,6 +37,8 @@
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.LauncherSettings.Settings;
import com.android.launcher3.Utilities;
+import com.android.launcher3.celllayout.CellPosMapper;
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.logging.FileLog;
import com.android.launcher3.model.BgDataModel.Callbacks;
@@ -81,9 +83,10 @@
// Keep track of delete operations that occur when an Undo option is present; we may not commit.
private final List<Runnable> mDeleteRunnables = new ArrayList<>();
private boolean mPreparingToUndo;
+ private final CellPosMapper mCellPosMapper;
public ModelWriter(Context context, LauncherModel model, BgDataModel dataModel,
- boolean hasVerticalHotseat, boolean verifyChanges,
+ boolean hasVerticalHotseat, boolean verifyChanges, CellPosMapper cellPosMapper,
@Nullable Callbacks owner) {
mContext = context;
mModel = model;
@@ -91,21 +94,24 @@
mHasVerticalHotseat = hasVerticalHotseat;
mVerifyChanges = verifyChanges;
mOwner = owner;
+ mCellPosMapper = cellPosMapper;
mUiExecutor = Executors.MAIN_EXECUTOR;
}
private void updateItemInfoProps(
ItemInfo item, int container, int screenId, int cellX, int cellY) {
+ CellPos modelPos = mCellPosMapper.mapPresenterToModel(cellX, cellY, screenId, container);
+
item.container = container;
- item.cellX = cellX;
- item.cellY = cellY;
+ item.cellX = modelPos.cellX;
+ item.cellY = modelPos.cellY;
// We store hotseat items in canonical form which is this orientation invariant position
// in the hotseat
if (container == Favorites.CONTAINER_HOTSEAT) {
item.screenId = mHasVerticalHotseat
? LauncherAppState.getIDP(mContext).numDatabaseHotseatIcons - cellY - 1 : cellX;
} else {
- item.screenId = screenId;
+ item.screenId = modelPos.screenId;
}
}
diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java
index 2dd44a4..4eb2e9e 100644
--- a/src/com/android/launcher3/model/data/ItemInfo.java
+++ b/src/com/android/launcher3/model/data/ItemInfo.java
@@ -47,8 +47,10 @@
import androidx.annotation.Nullable;
import com.android.launcher3.LauncherSettings;
+import com.android.launcher3.LauncherSettings.Animation;
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.Workspace;
+import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.logger.LauncherAtom;
import com.android.launcher3.logger.LauncherAtom.AllAppsContainer;
import com.android.launcher3.logger.LauncherAtom.ContainerInfo;
@@ -94,6 +96,12 @@
public int itemType;
/**
+ * One of {@link Animation#DEFAULT},
+ * {@link Animation#VIEW_BACKGROUND}.
+ */
+ public int animationType = Animation.DEFAULT;
+
+ /**
* The id of the container that holds this item. For the desktop, this will be
* {@link Favorites#CONTAINER_DESKTOP}. For the all applications folder it
* will be {@link #NO_ID} (since it is not stored in the settings DB). For user folders
@@ -185,6 +193,7 @@
rank = info.rank;
screenId = info.screenId;
itemType = info.itemType;
+ animationType = info.animationType;
container = info.container;
user = info.user;
contentDescription = info.contentDescription;
@@ -298,6 +307,15 @@
}
/**
+ * Returns whether this item should use the background animation.
+ */
+ public boolean shouldUseBackgroundAnimation() {
+ return animationType == LauncherSettings.Animation.VIEW_BACKGROUND
+ && FeatureFlags.ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES.get()
+ && FeatureFlags.ENABLE_SEARCH_RESULT_LAUNCH_TRANSITION.get();
+ }
+
+ /**
* Creates {@link LauncherAtom.ItemInfo} with important fields and parent container info.
*/
@NonNull
diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java
index 0e25984c..69bba69 100644
--- a/src/com/android/launcher3/popup/SystemShortcut.java
+++ b/src/com/android/launcher3/popup/SystemShortcut.java
@@ -40,6 +40,7 @@
public abstract class SystemShortcut<T extends Context & ActivityContext> extends ItemInfo
implements View.OnClickListener {
+ private static final String TAG = SystemShortcut.class.getSimpleName();
private final int mIconResId;
protected final int mLabelResId;
protected int mAccessibilityActionId;
diff --git a/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java b/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
index a2353d8..56dffa9 100644
--- a/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
+++ b/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
@@ -175,8 +175,9 @@
// Note: There should be at most one log per method call. This is enforced implicitly
// by using if-else statements.
AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(this);
- if (topView != null && topView.onBackPressed()) {
+ if (topView != null && topView.canHandleBack()) {
// Handled by the floating view.
+ topView.onBackInvoked();
} else {
showAppDrawer(false);
}
diff --git a/src/com/android/launcher3/settings/DeveloperOptionsFragment.java b/src/com/android/launcher3/settings/DeveloperOptionsFragment.java
index c81214e..40fc16e 100644
--- a/src/com/android/launcher3/settings/DeveloperOptionsFragment.java
+++ b/src/com/android/launcher3/settings/DeveloperOptionsFragment.java
@@ -15,6 +15,9 @@
*/
package com.android.launcher3.settings;
+import static android.content.Intent.ACTION_PACKAGE_ADDED;
+import static android.content.Intent.ACTION_PACKAGE_CHANGED;
+import static android.content.Intent.ACTION_PACKAGE_REMOVED;
import static android.content.pm.PackageManager.GET_RESOLVED_FILTER;
import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
import static android.view.View.GONE;
@@ -25,11 +28,9 @@
import static com.android.launcher3.uioverrides.plugins.PluginManagerWrapper.pluginEnabledKey;
import android.annotation.TargetApi;
-import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -66,6 +67,7 @@
import com.android.launcher3.secondarydisplay.SecondaryDisplayLauncher;
import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
import com.android.launcher3.util.OnboardingPrefs;
+import com.android.launcher3.util.SimpleBroadcastReceiver;
import java.util.ArrayList;
import java.util.List;
@@ -83,12 +85,8 @@
private static final String ACTION_PLUGIN_SETTINGS = "com.android.systemui.action.PLUGIN_SETTINGS";
private static final String PLUGIN_PERMISSION = "com.android.systemui.permission.PLUGIN";
- private final BroadcastReceiver mPluginReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- loadPluginPrefs();
- }
- };
+ private final SimpleBroadcastReceiver mPluginReceiver =
+ new SimpleBroadcastReceiver(i -> loadPluginPrefs());
private PreferenceScreen mPreferenceScreen;
@@ -97,13 +95,9 @@
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
- filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
- filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
- filter.addDataScheme("package");
- getContext().registerReceiver(mPluginReceiver, filter);
- getContext().registerReceiver(mPluginReceiver,
- new IntentFilter(Intent.ACTION_USER_UNLOCKED));
+ mPluginReceiver.registerPkgActions(getContext(), null,
+ ACTION_PACKAGE_ADDED, ACTION_PACKAGE_CHANGED, ACTION_PACKAGE_REMOVED);
+ mPluginReceiver.register(getContext(), Intent.ACTION_USER_UNLOCKED);
mPreferenceScreen = getPreferenceManager().createPreferenceScreen(getContext());
setPreferenceScreen(mPreferenceScreen);
@@ -185,7 +179,7 @@
@Override
public void onDestroy() {
super.onDestroy();
- getContext().unregisterReceiver(mPluginReceiver);
+ mPluginReceiver.unregisterReceiverSafely(getContext());
}
private PreferenceCategory newCategory(String title) {
diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java
index d2f82c2..8d6a5cb 100644
--- a/src/com/android/launcher3/settings/SettingsActivity.java
+++ b/src/com/android/launcher3/settings/SettingsActivity.java
@@ -226,9 +226,10 @@
getResources().getString(R.string.search_pref_screen_title))){
DeviceProfile mDeviceProfile = InvariantDeviceProfile.INSTANCE.get(
getContext()).getDeviceProfile(getContext());
- getPreferenceScreen().setTitle(mDeviceProfile.isTablet ?
- R.string.search_pref_screen_title_tablet
- : R.string.search_pref_screen_title);
+ getPreferenceScreen().setTitle(mDeviceProfile.isMultiDisplay
+ || mDeviceProfile.isPhone ?
+ R.string.search_pref_screen_title :
+ R.string.search_pref_screen_title_tablet);
}
getActivity().setTitle(getPreferenceScreen().getTitle());
}
diff --git a/src/com/android/launcher3/states/RotationHelper.java b/src/com/android/launcher3/states/RotationHelper.java
index e5b4eba..7b4e248 100644
--- a/src/com/android/launcher3/states/RotationHelper.java
+++ b/src/com/android/launcher3/states/RotationHelper.java
@@ -20,6 +20,7 @@
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE;
+import static com.android.launcher3.LauncherPrefs.ALLOW_ROTATION;
import static com.android.launcher3.Utilities.dpiFromPx;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import static com.android.launcher3.util.window.WindowManagerProxy.MIN_TABLET_WIDTH;
@@ -63,7 +64,6 @@
@Nullable
private BaseActivity mActivity;
- private SharedPreferences mSharedPrefs = null;
private final Handler mRequestOrientationHandler;
private boolean mIgnoreAutoRotateSettings;
@@ -103,17 +103,10 @@
// On large devices we do not handle auto-rotate differently.
mIgnoreAutoRotateSettings = ignoreAutoRotateSettings;
if (!mIgnoreAutoRotateSettings) {
- if (mSharedPrefs == null) {
- mSharedPrefs = LauncherPrefs.getPrefs(mActivity);
- mSharedPrefs.registerOnSharedPreferenceChangeListener(this);
- }
- mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY,
- getAllowRotationDefaultValue(info));
+ mHomeRotationEnabled = LauncherPrefs.get(mActivity).get(ALLOW_ROTATION);
+ LauncherPrefs.get(mActivity).addListener(this, ALLOW_ROTATION);
} else {
- if (mSharedPrefs != null) {
- mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this);
- mSharedPrefs = null;
- }
+ LauncherPrefs.get(mActivity).removeListener(this, ALLOW_ROTATION);
}
}
@@ -121,8 +114,7 @@
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
if (mDestroyed || mIgnoreAutoRotateSettings) return;
boolean wasRotationEnabled = mHomeRotationEnabled;
- mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY,
- getAllowRotationDefaultValue(mActivity.getDeviceProfile().getDisplayInfo()));
+ mHomeRotationEnabled = LauncherPrefs.get(mActivity).get(ALLOW_ROTATION);
if (mHomeRotationEnabled != wasRotationEnabled) {
notifyChange();
}
@@ -179,10 +171,8 @@
if (!mDestroyed) {
mDestroyed = true;
DisplayController.INSTANCE.get(mActivity).removeChangeListener(this);
+ LauncherPrefs.get(mActivity).removeListener(this, ALLOW_ROTATION);
mActivity = null;
- if (mSharedPrefs != null) {
- mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this);
- }
}
}
diff --git a/src/com/android/launcher3/testing/TestInformationHandler.java b/src/com/android/launcher3/testing/TestInformationHandler.java
index acb7eb3..9a34478 100644
--- a/src/com/android/launcher3/testing/TestInformationHandler.java
+++ b/src/com/android/launcher3/testing/TestInformationHandler.java
@@ -201,6 +201,13 @@
});
}
+ case TestProtocol.REQUEST_WORKSPACE_COLUMNS_ROWS: {
+ return getLauncherUIProperty(Bundle::putParcelable, launcher -> new Point(
+ InvariantDeviceProfile.INSTANCE.get(mContext).numColumns,
+ InvariantDeviceProfile.INSTANCE.get(mContext).numRows)
+ );
+ }
+
case TestProtocol.REQUEST_HOTSEAT_CELL_CENTER: {
final HotseatCellCenterRequest request = extra.getParcelable(
TestProtocol.TEST_INFO_REQUEST_FIELD);
diff --git a/src/com/android/launcher3/testing/shared/TestProtocol.java b/src/com/android/launcher3/testing/shared/TestProtocol.java
index f5ee91b..9b2ce9a 100644
--- a/src/com/android/launcher3/testing/shared/TestProtocol.java
+++ b/src/com/android/launcher3/testing/shared/TestProtocol.java
@@ -123,6 +123,7 @@
public static final String REQUEST_WORKSPACE_CELL_LAYOUT_SIZE = "workspace-cell-layout-size";
public static final String REQUEST_WORKSPACE_CELL_CENTER = "workspace-cell-center";
+ public static final String REQUEST_WORKSPACE_COLUMNS_ROWS = "workspace-columns-rows";
public static final String REQUEST_HOTSEAT_CELL_CENTER = "hotseat-cell-center";
diff --git a/src/com/android/launcher3/testing/shared/WorkspaceCellCenterRequest.java b/src/com/android/launcher3/testing/shared/WorkspaceCellCenterRequest.java
index 80dbef8..e2cd8ea 100644
--- a/src/com/android/launcher3/testing/shared/WorkspaceCellCenterRequest.java
+++ b/src/com/android/launcher3/testing/shared/WorkspaceCellCenterRequest.java
@@ -124,7 +124,7 @@
* Set span Height in cells
*/
public WorkspaceCellCenterRequest.Builder setSpanY(int y) {
- this.mCellY = y;
+ this.mSpanY = y;
return this;
}
diff --git a/src/com/android/launcher3/touch/ItemClickHandler.java b/src/com/android/launcher3/touch/ItemClickHandler.java
index 64951ca..790c226 100644
--- a/src/com/android/launcher3/touch/ItemClickHandler.java
+++ b/src/com/android/launcher3/touch/ItemClickHandler.java
@@ -343,7 +343,8 @@
return;
}
}
- if (v != null && launcher.supportsAdaptiveIconAnimation(v)) {
+ if (v != null && launcher.supportsAdaptiveIconAnimation(v)
+ && !item.shouldUseBackgroundAnimation()) {
// Preload the icon to reduce latency b/w swapping the floating view with the original.
FloatingIconView.fetchIcon(launcher, v, item, true /* isOpening */);
}
diff --git a/src/com/android/launcher3/touch/ItemLongClickListener.java b/src/com/android/launcher3/touch/ItemLongClickListener.java
index 1421ece..7db7b0d 100644
--- a/src/com/android/launcher3/touch/ItemLongClickListener.java
+++ b/src/com/android/launcher3/touch/ItemLongClickListener.java
@@ -80,7 +80,8 @@
}
}
- CellLayout.CellInfo longClickCellInfo = new CellLayout.CellInfo(v, info);
+ CellLayout.CellInfo longClickCellInfo = new CellLayout.CellInfo(v, info,
+ launcher.getCellPosMapper().mapModelToPresenter(info));
launcher.getWorkspace().startDrag(longClickCellInfo, dragOptions);
}
diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
index 097823b..cf470f4 100644
--- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
@@ -403,7 +403,7 @@
public List<SplitPositionOption> getSplitPositionOptions(DeviceProfile dp) {
// Add "left" side of phone which is actually the top
return Collections.singletonList(new SplitPositionOption(
- R.drawable.ic_split_left, R.string.split_screen_position_left,
+ R.drawable.ic_split_horizontal, R.string.recent_task_option_split_screen,
STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
}
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index 316cf0e..75378f6 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -30,6 +30,7 @@
import static com.android.launcher3.util.NavigationMode.THREE_BUTTONS;
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT;
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT;
+import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MAIN;
import android.content.res.Resources;
import android.graphics.Matrix;
@@ -57,6 +58,7 @@
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
+import java.util.ArrayList;
import java.util.List;
public class PortraitPagedViewHandler implements PagedOrientationHandler {
@@ -405,7 +407,26 @@
@Override
public List<SplitPositionOption> getSplitPositionOptions(DeviceProfile dp) {
- return Utilities.getSplitPositionOptions(dp);
+ if (dp.isTablet) {
+ return Utilities.getSplitPositionOptions(dp);
+ }
+
+ List<SplitPositionOption> options = new ArrayList<>();
+ if (dp.isSeascape()) {
+ options.add(new SplitPositionOption(
+ R.drawable.ic_split_horizontal, R.string.recent_task_option_split_screen,
+ STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN));
+ } else if (dp.isLandscape) {
+ options.add(new SplitPositionOption(
+ R.drawable.ic_split_horizontal, R.string.recent_task_option_split_screen,
+ STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
+ } else {
+ // Only add top option
+ options.add(new SplitPositionOption(
+ R.drawable.ic_split_vertical, R.string.recent_task_option_split_screen,
+ STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN));
+ }
+ return options;
}
@Override
diff --git a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
index 05683bd..3363443 100644
--- a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
@@ -178,7 +178,7 @@
public List<SplitPositionOption> getSplitPositionOptions(DeviceProfile dp) {
// Add "right" option which is actually the top
return Collections.singletonList(new SplitPositionOption(
- R.drawable.ic_split_right, R.string.split_screen_position_right,
+ R.drawable.ic_split_horizontal, R.string.recent_task_option_split_screen,
STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN));
}
diff --git a/src/com/android/launcher3/util/DisplayController.java b/src/com/android/launcher3/util/DisplayController.java
index c52890f..9ed6700 100644
--- a/src/com/android/launcher3/util/DisplayController.java
+++ b/src/com/android/launcher3/util/DisplayController.java
@@ -23,7 +23,6 @@
import static com.android.launcher3.config.FeatureFlags.ENABLE_TRANSIENT_TASKBAR;
import static com.android.launcher3.config.FeatureFlags.FORCE_PERSISTENT_TASKBAR;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
-import static com.android.launcher3.util.PackageManagerHelper.getPackageFilter;
import static com.android.launcher3.util.window.WindowManagerProxy.MIN_TABLET_WIDTH;
import android.annotation.SuppressLint;
@@ -111,8 +110,7 @@
}
// Initialize navigation mode change listener
- mContext.registerReceiver(mReceiver,
- getPackageFilter(TARGET_OVERLAY_PACKAGE, ACTION_OVERLAY_CHANGED));
+ mReceiver.registerPkgActions(mContext, TARGET_OVERLAY_PACKAGE, ACTION_OVERLAY_CHANGED);
WindowManagerProxy wmProxy = WindowManagerProxy.INSTANCE.get(context);
Context displayInfoContext = getDisplayInfoContext(display);
diff --git a/src/com/android/launcher3/util/OnboardingPrefs.java b/src/com/android/launcher3/util/OnboardingPrefs.java
index f4893c7..c146216 100644
--- a/src/com/android/launcher3/util/OnboardingPrefs.java
+++ b/src/com/android/launcher3/util/OnboardingPrefs.java
@@ -44,6 +44,7 @@
public static final String TASKBAR_EDU_SEEN = "launcher.taskbar_edu_seen2";
public static final String ALL_APPS_VISITED_COUNT = "launcher.all_apps_visited_count";
public static final String QSB_SEARCH_ONBOARDING_CARD_DISMISSED = "launcher.qsb_edu_dismiss";
+ public static final String TASKBAR_EDU_TOOLTIP_STEP = "launcher.taskbar_edu_tooltip_step";
// When adding a new key, add it here as well, to be able to reset it from Developer Options.
public static final Map<String, String[]> ALL_PREF_KEYS = Map.of(
"All Apps Bounce", new String[] { HOME_BOUNCE_SEEN, HOME_BOUNCE_COUNT },
@@ -51,7 +52,7 @@
HOTSEAT_LONGPRESS_TIP_SEEN },
"Search Education", new String[] { SEARCH_KEYBOARD_EDU_SEEN, SEARCH_SNACKBAR_COUNT,
SEARCH_ONBOARDING_COUNT, QSB_SEARCH_ONBOARDING_CARD_DISMISSED},
- "Taskbar Education", new String[] { TASKBAR_EDU_SEEN },
+ "Taskbar Education", new String[] { TASKBAR_EDU_SEEN, TASKBAR_EDU_TOOLTIP_STEP },
"All Apps Visited Count", new String[] {ALL_APPS_VISITED_COUNT}
);
@@ -76,7 +77,8 @@
HOTSEAT_DISCOVERY_TIP_COUNT,
SEARCH_SNACKBAR_COUNT,
SEARCH_ONBOARDING_COUNT,
- ALL_APPS_VISITED_COUNT
+ ALL_APPS_VISITED_COUNT,
+ TASKBAR_EDU_TOOLTIP_STEP,
})
@Retention(RetentionPolicy.SOURCE)
public @interface EventCountKey {}
@@ -91,6 +93,7 @@
// This is the sum of all onboarding cards. Currently there is only 1 card shown 3 times.
maxCounts.put(SEARCH_ONBOARDING_COUNT, 3);
maxCounts.put(ALL_APPS_VISITED_COUNT, 20);
+ maxCounts.put(TASKBAR_EDU_TOOLTIP_STEP, 2);
MAX_COUNTS = Collections.unmodifiableMap(maxCounts);
}
diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java
index 140440e..a6a2751 100644
--- a/src/com/android/launcher3/util/PackageManagerHelper.java
+++ b/src/com/android/launcher3/util/PackageManagerHelper.java
@@ -21,7 +21,6 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.LauncherActivityInfo;
import android.content.pm.LauncherApps;
@@ -33,7 +32,6 @@
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.os.PatternMatcher;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
@@ -249,19 +247,6 @@
}
}
- /**
- * Creates an intent filter to listen for actions with a specific package in the data field.
- */
- public static IntentFilter getPackageFilter(String pkg, String... actions) {
- IntentFilter packageFilter = new IntentFilter();
- for (String action : actions) {
- packageFilter.addAction(action);
- }
- packageFilter.addDataScheme("package");
- packageFilter.addDataSchemeSpecificPart(pkg, PatternMatcher.PATTERN_LITERAL);
- return packageFilter;
- }
-
public static boolean isSystemApp(@NonNull final Context context,
@NonNull final Intent intent) {
PackageManager pm = context.getPackageManager();
diff --git a/src/com/android/launcher3/util/ScreenOnTracker.java b/src/com/android/launcher3/util/ScreenOnTracker.java
new file mode 100644
index 0000000..67530a6
--- /dev/null
+++ b/src/com/android/launcher3/util/ScreenOnTracker.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.util;
+
+import static android.content.Intent.ACTION_SCREEN_OFF;
+import static android.content.Intent.ACTION_SCREEN_ON;
+import static android.content.Intent.ACTION_USER_PRESENT;
+
+import android.content.Context;
+import android.content.Intent;
+
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * Utility class for tracking if the screen is currently on or off
+ */
+public class ScreenOnTracker {
+
+ public static final MainThreadInitializedObject<ScreenOnTracker> INSTANCE =
+ new MainThreadInitializedObject<>(ScreenOnTracker::new);
+
+ private final SimpleBroadcastReceiver mReceiver = new SimpleBroadcastReceiver(this::onReceive);
+ private final CopyOnWriteArrayList<ScreenOnListener> mListeners = new CopyOnWriteArrayList<>();
+
+ private boolean mIsScreenOn;
+
+ private ScreenOnTracker(Context context) {
+ // Assume that the screen is on to begin with
+ mIsScreenOn = true;
+ mReceiver.register(context, ACTION_SCREEN_ON, ACTION_SCREEN_OFF, ACTION_USER_PRESENT);
+ }
+
+ private void onReceive(Intent intent) {
+ String action = intent.getAction();
+ if (ACTION_SCREEN_ON.equals(action)) {
+ mIsScreenOn = true;
+ dispatchScreenOnChanged();
+ } else if (ACTION_SCREEN_OFF.equals(action)) {
+ mIsScreenOn = false;
+ dispatchScreenOnChanged();
+ } else if (ACTION_USER_PRESENT.equals(action)) {
+ mListeners.forEach(ScreenOnListener::onUserPresent);
+ }
+ }
+
+ private void dispatchScreenOnChanged() {
+ mListeners.forEach(l -> l.onScreenOnChanged(mIsScreenOn));
+ }
+
+ /** Returns if the screen is on or not */
+ public boolean isScreenOn() {
+ return mIsScreenOn;
+ }
+
+ /** Adds a listener for screen on changes */
+ public void addListener(ScreenOnListener listener) {
+ mListeners.add(listener);
+ }
+
+ /** Removes a previously added listener */
+ public void removeListener(ScreenOnListener listener) {
+ mListeners.remove(listener);
+ }
+
+ /**
+ * Interface to listen for screen on changes
+ */
+ public interface ScreenOnListener {
+
+ /**
+ * Called when the screen turns on/off
+ */
+ void onScreenOnChanged(boolean isOn);
+
+ /**
+ * Called when the keyguard goes away
+ */
+ default void onUserPresent() { }
+ }
+}
diff --git a/src/com/android/launcher3/util/SimpleBroadcastReceiver.java b/src/com/android/launcher3/util/SimpleBroadcastReceiver.java
index 0a23506..064bcd0 100644
--- a/src/com/android/launcher3/util/SimpleBroadcastReceiver.java
+++ b/src/com/android/launcher3/util/SimpleBroadcastReceiver.java
@@ -19,6 +19,10 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.os.PatternMatcher;
+import android.text.TextUtils;
+
+import androidx.annotation.Nullable;
import java.util.function.Consumer;
@@ -39,18 +43,34 @@
* Helper method to register multiple actions
*/
public void register(Context context, String... actions) {
- register(context, 0, actions);
+ context.registerReceiver(this, getFilter(actions));
}
/**
- * Helper method to register multiple actions with one or more {@code flags}.
+ * Helper method to register multiple actions associated with a paction
*/
- public void register(Context context, int flags, String... actions) {
+ public void registerPkgActions(Context context, @Nullable String pkg, String... actions) {
+ context.registerReceiver(this, getPackageFilter(pkg, actions));
+ }
+
+ /**
+ * Creates an intent filter to listen for actions with a specific package in the data field.
+ */
+ public static IntentFilter getPackageFilter(String pkg, String... actions) {
+ IntentFilter filter = getFilter(actions);
+ filter.addDataScheme("package");
+ if (!TextUtils.isEmpty(pkg)) {
+ filter.addDataSchemeSpecificPart(pkg, PatternMatcher.PATTERN_LITERAL);
+ }
+ return filter;
+ }
+
+ private static IntentFilter getFilter(String... actions) {
IntentFilter filter = new IntentFilter();
for (String action : actions) {
filter.addAction(action);
}
- context.registerReceiver(this, filter, flags);
+ return filter;
}
/**
diff --git a/src/com/android/launcher3/util/SplitConfigurationOptions.java b/src/com/android/launcher3/util/SplitConfigurationOptions.java
index 19a3948..8c5e782 100644
--- a/src/com/android/launcher3/util/SplitConfigurationOptions.java
+++ b/src/com/android/launcher3/util/SplitConfigurationOptions.java
@@ -21,11 +21,15 @@
import static java.lang.annotation.RetentionPolicy.SOURCE;
+import android.content.Intent;
import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.view.View;
import androidx.annotation.IntDef;
import com.android.launcher3.logging.StatsLogManager;
+import com.android.launcher3.model.data.ItemInfo;
import java.lang.annotation.Retention;
@@ -190,4 +194,35 @@
return position == STAGE_POSITION_TOP_OR_LEFT ? STAGE_POSITION_BOTTOM_OR_RIGHT
: STAGE_POSITION_TOP_OR_LEFT;
}
+
+ public static class SplitSelectSource {
+
+ /** Keep in sync w/ ActivityTaskManager#INVALID_TASK_ID (unreference-able) */
+ private static final int INVALID_TASK_ID = -1;
+
+ public final View view;
+ public final Drawable drawable;
+ public final Intent intent;
+ public final SplitPositionOption position;
+ public final ItemInfo itemInfo;
+ public final StatsLogManager.EventEnum splitEvent;
+ /** Represents the taskId of the first app to start in split screen */
+ public int alreadyRunningTaskId = INVALID_TASK_ID;
+ /**
+ * If {@code true}, animates the view represented by {@link #alreadyRunningTaskId} into the
+ * split placeholder view
+ */
+ public boolean animateCurrentTaskDismissal;
+
+ public SplitSelectSource(View view, Drawable drawable, Intent intent,
+ SplitPositionOption position, ItemInfo itemInfo,
+ StatsLogManager.EventEnum splitEvent) {
+ this.view = view;
+ this.drawable = drawable;
+ this.intent = intent;
+ this.position = position;
+ this.itemInfo = itemInfo;
+ this.splitEvent = splitEvent;
+ }
+ }
}
diff --git a/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java b/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java
index 43e9820..4ac6bc4 100644
--- a/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java
+++ b/src/com/android/launcher3/util/WallpaperOffsetInterpolator.java
@@ -1,12 +1,11 @@
package com.android.launcher3.util;
+import static android.content.Intent.ACTION_WALLPAPER_CHANGED;
+
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import android.app.WallpaperManager;
-import android.content.BroadcastReceiver;
import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -23,7 +22,7 @@
/**
* Utility class to handle wallpaper scrolling along with workspace.
*/
-public class WallpaperOffsetInterpolator extends BroadcastReceiver {
+public class WallpaperOffsetInterpolator {
private static final int[] sTempInt = new int[2];
private static final String TAG = "WPOffsetInterpolator";
@@ -32,6 +31,8 @@
// Don't use all the wallpaper for parallax until you have at least this many pages
private static final int MIN_PARALLAX_PAGE_SPAN = 4;
+ private final SimpleBroadcastReceiver mWallpaperChangeReceiver =
+ new SimpleBroadcastReceiver(i -> onWallpaperChanged());
private final Workspace<?> mWorkspace;
private final boolean mIsRtl;
private final Handler mHandler;
@@ -197,22 +198,20 @@
public void setWindowToken(IBinder token) {
mWindowToken = token;
if (mWindowToken == null && mRegistered) {
- mWorkspace.getContext().unregisterReceiver(this);
+ mWallpaperChangeReceiver.unregisterReceiverSafely(mWorkspace.getContext());
mRegistered = false;
} else if (mWindowToken != null && !mRegistered) {
- mWorkspace.getContext()
- .registerReceiver(this, new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED));
- onReceive(mWorkspace.getContext(), null);
+ mWallpaperChangeReceiver.register(mWorkspace.getContext(), ACTION_WALLPAPER_CHANGED);
+ onWallpaperChanged();
mRegistered = true;
}
}
- @Override
- public void onReceive(Context context, Intent intent) {
+ private void onWallpaperChanged() {
UI_HELPER_EXECUTOR.execute(() -> {
// Updating the boolean on a background thread is fine as the assignments are atomic
- mWallpaperIsLiveWallpaper =
- WallpaperManager.getInstance(context).getWallpaperInfo() != null;
+ mWallpaperIsLiveWallpaper = WallpaperManager.getInstance(mWorkspace.getContext())
+ .getWallpaperInfo() != null;
updateOffset();
});
}
diff --git a/src/com/android/launcher3/views/ActivityContext.java b/src/com/android/launcher3/views/ActivityContext.java
index 79b4cb4..2ab4601 100644
--- a/src/com/android/launcher3/views/ActivityContext.java
+++ b/src/com/android/launcher3/views/ActivityContext.java
@@ -23,6 +23,7 @@
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import android.app.ActivityOptions;
+import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.ContextWrapper;
@@ -45,6 +46,7 @@
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.launcher3.BubbleTextView;
@@ -54,6 +56,7 @@
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.allapps.ActivityAllAppsContainerView;
+import com.android.launcher3.celllayout.CellPosMapper;
import com.android.launcher3.dot.DotInfo;
import com.android.launcher3.dragndrop.DragController;
import com.android.launcher3.folder.FolderIcon;
@@ -70,6 +73,7 @@
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.RunnableList;
+import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.launcher3.util.ViewCache;
import java.util.List;
@@ -130,6 +134,12 @@
return null;
}
+ /** Called when the first app in split screen has been selected */
+ default void startSplitSelection(
+ SplitConfigurationOptions.SplitSelectSource splitSelectSource) {
+ // Overridden, intentionally empty
+ }
+
/**
* The root view to support drag-and-drop and popup support.
*/
@@ -270,6 +280,29 @@
}
}
+
+ /**
+ * Sends a pending intent animating from a view.
+ *
+ * @param v View to animate.
+ * @param intent The pending intent being launched.
+ * @param item Item associated with the view.
+ * @return {@code true} if the intent is sent successfully.
+ */
+ default boolean sendPendingIntentWithAnimation(
+ @NonNull View v, PendingIntent intent, @Nullable ItemInfo item) {
+ Bundle optsBundle = getActivityLaunchOptions(v, item).toBundle();
+ try {
+ intent.send(null, 0, null, null, null, null, optsBundle);
+ return true;
+ } catch (PendingIntent.CanceledException e) {
+ Toast.makeText(v.getContext(),
+ v.getContext().getResources().getText(R.string.shortcut_not_available),
+ Toast.LENGTH_SHORT).show();
+ }
+ return false;
+ }
+
/**
* Safely starts an activity.
*
@@ -427,6 +460,10 @@
return false;
}
+ default CellPosMapper getCellPosMapper() {
+ return CellPosMapper.DEFAULT;
+ }
+
/**
* Returns the ActivityContext associated with the given Context, or throws an exception if
* the Context is not associated with any ActivityContext.
diff --git a/src/com/android/launcher3/views/IconButtonView.java b/src/com/android/launcher3/views/IconButtonView.java
index dd48c99..64e9327 100644
--- a/src/com/android/launcher3/views/IconButtonView.java
+++ b/src/com/android/launcher3/views/IconButtonView.java
@@ -30,6 +30,8 @@
import android.os.Build;
import android.util.AttributeSet;
+import androidx.annotation.ColorInt;
+
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.icons.BaseIconFactory;
import com.android.launcher3.icons.FastBitmapDrawable;
@@ -68,6 +70,14 @@
}
}
+ /** Updates the color of the icon's foreground layer. */
+ public void setForegroundTint(@ColorInt int tintColor) {
+ FastBitmapDrawable icon = getIcon();
+ if (icon instanceof IconDrawable) {
+ ((IconDrawable) icon).mFg.setTint(tintColor);
+ }
+ }
+
private static class IconDrawable extends FastBitmapDrawable {
private final Drawable mFg;
diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java
index 870ff12..ca80c51 100644
--- a/src/com/android/launcher3/views/ScrimView.java
+++ b/src/com/android/launcher3/views/ScrimView.java
@@ -77,6 +77,10 @@
super.setBackgroundColor(color);
}
+ public int getBackgroundColor() {
+ return mBackgroundColor;
+ }
+
@Override
public void onVisibilityAggregated(boolean isVisible) {
super.onVisibilityAggregated(isVisible);
diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
index 38cdb4b..c78ecf5 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
@@ -17,7 +17,9 @@
import static android.view.View.MeasureSpec.makeMeasureSpec;
+import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y;
+import static com.android.launcher3.allapps.AllAppsTransitionController.SWIPE_ALL_APPS_TO_HOME_MIN_SCALE;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGETSTRAY_SEARCHED;
import static com.android.launcher3.testing.shared.TestProtocol.NORMAL_STATE_ORDINAL;
@@ -45,6 +47,7 @@
import android.widget.Button;
import android.widget.TextView;
+import androidx.annotation.FloatRange;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.recyclerview.widget.DefaultItemAnimator;
@@ -54,6 +57,7 @@
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
+import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.model.UserManagerState;
@@ -264,6 +268,15 @@
attachScrollbarToRecyclerView(currentRecyclerView);
}
+ @Override
+ public void onBackProgressed(@FloatRange(from = 0.0, to = 1.0) float progress) {
+ float deceleratedProgress =
+ Interpolators.PREDICTIVE_BACK_DECELERATED_EASE.getInterpolation(progress);
+ float scaleProgress = SWIPE_ALL_APPS_TO_HOME_MIN_SCALE
+ + (1 - SWIPE_ALL_APPS_TO_HOME_MIN_SCALE) * (1 - deceleratedProgress);
+ SCALE_PROPERTY.set(this, scaleProgress);
+ }
+
private void attachScrollbarToRecyclerView(WidgetsRecyclerView recyclerView) {
recyclerView.bindFastScrollbar();
if (mCurrentWidgetsRecyclerView != recyclerView) {
@@ -736,12 +749,12 @@
}
@Override
- public boolean onBackPressed() {
+ public void onBackInvoked() {
if (mIsInSearchMode) {
mSearchBar.reset();
- return true;
+ } else {
+ super.onBackInvoked();
}
- return super.onBackPressed();
}
@Override
diff --git a/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt b/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt
index 2da5eee..0aecfb2 100644
--- a/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt
+++ b/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt
@@ -20,6 +20,7 @@
import android.graphics.Rect
import android.util.SparseArray
import androidx.test.core.app.ApplicationProvider
+import com.android.launcher3.DeviceProfile.DEFAULT_DIMENSION_PROVIDER
import com.android.launcher3.DeviceProfile.DEFAULT_PROVIDER
import com.android.launcher3.util.DisplayController.Info
import com.android.launcher3.util.WindowBounds
@@ -60,7 +61,8 @@
transposeLayoutWithOrientation,
useTwoPanels,
isGestureMode,
- DEFAULT_PROVIDER
+ DEFAULT_PROVIDER,
+ DEFAULT_DIMENSION_PROVIDER
)
protected fun initializeVarsForPhone(
@@ -112,7 +114,7 @@
numFolderRows = 3
numFolderColumns = 3
- folderStyle = R.style.FolderDefaultStyle
+ folderStyle = R.style.FolderStyleDefault
inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_split
@@ -190,7 +192,7 @@
numFolderRows = 3
numFolderColumns = 3
- folderStyle = R.style.FolderDefaultStyle
+ folderStyle = R.style.FolderStyleDefault
inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_6_5
@@ -269,7 +271,7 @@
numFolderRows = 3
numFolderColumns = 3
- folderStyle = R.style.FolderDefaultStyle
+ folderStyle = R.style.FolderStyleDefault
inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_split
diff --git a/tests/src/com/android/launcher3/LauncherPrefsTest.kt b/tests/src/com/android/launcher3/LauncherPrefsTest.kt
index 151abf1..31e8d30 100644
--- a/tests/src/com/android/launcher3/LauncherPrefsTest.kt
+++ b/tests/src/com/android/launcher3/LauncherPrefsTest.kt
@@ -13,6 +13,7 @@
private val TEST_BOOLEAN_ITEM = LauncherPrefs.nonRestorableItem("1", false)
private val TEST_STRING_ITEM = LauncherPrefs.nonRestorableItem("2", "( ͡❛ ͜ʖ ͡❛)")
private val TEST_INT_ITEM = LauncherPrefs.nonRestorableItem("3", -1)
+private val TEST_CONTEXTUAL_ITEM = LauncherPrefs.backedUpItem("4") { true }
@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -145,4 +146,9 @@
assertThat(get(TEST_BOOLEAN_ITEM)).isEqualTo(TEST_BOOLEAN_ITEM.defaultValue)
}
}
+
+ @Test
+ fun get_contextualItem_returnsCorrectDefault() {
+ assertThat(launcherPrefs.get(TEST_CONTEXTUAL_ITEM)).isTrue()
+ }
}
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java b/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
index 469d79f..6d75180 100644
--- a/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
@@ -29,7 +29,73 @@
import java.util.stream.Collectors;
-public class CellLayoutBoard {
+public class CellLayoutBoard implements Comparable<CellLayoutBoard> {
+
+ private boolean intersects(Rect r1, Rect r2) {
+ // If one rectangle is on left side of other
+ if (r1.left > r2.right || r2.left > r1.right) {
+ return false;
+ }
+
+ // If one rectangle is above other
+ if (r1.bottom > r2.top || r2.bottom > r1.top) {
+ return false;
+ }
+
+ return true;
+ }
+
+ private boolean overlapsWithIgnored(Set<Rect> ignoredRectangles, Rect rect) {
+ for (Rect ignoredRect : ignoredRectangles) {
+ // Using the built in intersects doesn't work because it doesn't account for area 0
+ if (intersects(ignoredRect, rect)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public int compareTo(CellLayoutBoard cellLayoutBoard) {
+ // to be equal they need to have the same number of widgets and the same dimensions
+ // their order can be different
+ Set<Rect> widgetsSet = new HashSet<>();
+ Set<Rect> ignoredRectangles = new HashSet<>();
+ for (WidgetRect rect : mWidgetsRects) {
+ if (rect.shouldIgnore()) {
+ ignoredRectangles.add(rect.mBounds);
+ } else {
+ widgetsSet.add(rect.mBounds);
+ }
+ }
+ for (WidgetRect rect : cellLayoutBoard.mWidgetsRects) {
+ // ignore rectangles overlapping with the area marked by x
+ if (overlapsWithIgnored(ignoredRectangles, rect.mBounds)) {
+ continue;
+ }
+ if (!widgetsSet.contains(rect.mBounds)) {
+ return -1;
+ }
+ widgetsSet.remove(rect.mBounds);
+ }
+ if (!widgetsSet.isEmpty()) {
+ return 1;
+ }
+
+ // to be equal they need to have the same number of icons their order can be different
+ Set<Point> iconsSet = new HashSet<>();
+ mIconPoints.forEach(icon -> iconsSet.add(icon.getCoord()));
+ for (IconPoint icon : cellLayoutBoard.mIconPoints) {
+ if (!iconsSet.contains(icon.getCoord())) {
+ return -1;
+ }
+ iconsSet.remove(icon.getCoord());
+ }
+ if (!iconsSet.isEmpty()) {
+ return 1;
+ }
+ return 0;
+ }
public static class CellType {
// The cells marked by this will be filled by 1x1 widgets and will be ignored when
@@ -115,7 +181,7 @@
List<IconPoint> mIconPoints = new ArrayList<>();
Map<Character, IconPoint> mIconsMap = new HashMap<>();
- Point mMain = new Point();
+ WidgetRect mMain = null;
CellLayoutBoard() {
for (int x = 0; x < mWidget.length; x++) {
@@ -133,7 +199,7 @@
return mIconPoints;
}
- public Point getMain() {
+ public WidgetRect getMain() {
return mMain;
}
@@ -273,6 +339,16 @@
return iconPoints;
}
+ public static WidgetRect getMainFromList(List<CellLayoutBoard> boards) {
+ for (CellLayoutBoard board : boards) {
+ WidgetRect main = board.getMain();
+ if (main != null) {
+ return main;
+ }
+ }
+ return null;
+ }
+
public static CellLayoutBoard boardFromString(String boardStr) {
String[] lines = boardStr.split("\n");
CellLayoutBoard board = new CellLayoutBoard();
@@ -281,17 +357,18 @@
String line = lines[y];
for (int x = 0; x < line.length(); x++) {
char c = line.charAt(x);
- if (c == CellType.MAIN_WIDGET) {
- board.mMain = new Point(x, y);
- }
if (c != CellType.EMPTY) {
board.mWidget[x][y] = line.charAt(x);
}
}
}
board.mWidgetsRects = getRects(board.mWidget);
- board.mWidgetsRects.forEach(
- widgetRect -> board.mWidgetsMap.put(widgetRect.mType, widgetRect));
+ board.mWidgetsRects.forEach(widgetRect -> {
+ if (widgetRect.mType == CellType.MAIN_WIDGET) {
+ board.mMain = widgetRect;
+ }
+ board.mWidgetsMap.put(widgetRect.mType, widgetRect);
+ });
board.mIconPoints = getIconPoints(board.mWidget);
return board;
}
@@ -308,4 +385,24 @@
}
return s.toString();
}
+
+ public static List<CellLayoutBoard> boardListFromString(String boardsStr) {
+ String[] lines = boardsStr.split("\n");
+ ArrayList<String> individualBoards = new ArrayList<>();
+ ArrayList<CellLayoutBoard> boards = new ArrayList<>();
+ for (String line : lines) {
+ String[] boardSegment = line.split("\\|");
+ for (int i = 0; i < boardSegment.length; i++) {
+ if (i >= individualBoards.size()) {
+ individualBoards.add(boardSegment[i]);
+ } else {
+ individualBoards.set(i, individualBoards.get(i) + "\n" + boardSegment[i]);
+ }
+ }
+ }
+ for (String board : individualBoards) {
+ boards.add(CellLayoutBoard.boardFromString(board));
+ }
+ return boards;
+ }
}
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
new file mode 100644
index 0000000..1e6737d
--- /dev/null
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.celllayout;
+
+import android.view.View;
+
+import com.android.launcher3.CellLayout;
+import com.android.launcher3.Launcher;
+import com.android.launcher3.views.DoubleShadowBubbleTextView;
+
+import java.util.ArrayList;
+
+public class CellLayoutTestUtils {
+
+ public static ArrayList<CellLayoutBoard> workspaceToBoards(Launcher launcher) {
+ ArrayList<CellLayoutBoard> boards = new ArrayList<>();
+ int widgetCount = 0;
+ for (CellLayout cellLayout : launcher.getWorkspace().mWorkspaceScreens) {
+ CellLayoutBoard board = new CellLayoutBoard();
+ int count = cellLayout.getShortcutsAndWidgets().getChildCount();
+ for (int i = 0; i < count; i++) {
+ View callView = cellLayout.getShortcutsAndWidgets().getChildAt(i);
+ CellLayoutLayoutParams params =
+ (CellLayoutLayoutParams) callView.getLayoutParams();
+ // is icon
+ if (callView instanceof DoubleShadowBubbleTextView) {
+ board.addIcon(params.getCellX(), params.getCellY());
+ } else {
+ // is widget
+ board.addWidget(params.getCellX(), params.getCellY(), params.cellHSpan,
+ params.cellVSpan, (char) ('A' + widgetCount));
+ widgetCount++;
+ }
+ }
+ boards.add(board);
+ }
+ return boards;
+ }
+}
diff --git a/tests/src/com/android/launcher3/celllayout/CellPosMapperTest.java b/tests/src/com/android/launcher3/celllayout/CellPosMapperTest.java
new file mode 100644
index 0000000..29efb18
--- /dev/null
+++ b/tests/src/com/android/launcher3/celllayout/CellPosMapperTest.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.celllayout;
+
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.launcher3.celllayout.CellPosMapper.CellPos;
+import com.android.launcher3.celllayout.CellPosMapper.TwoPanelCellPosMapper;
+import com.android.launcher3.model.data.ItemInfo;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests for {@link CellPosMapper}
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class CellPosMapperTest {
+
+ @Test
+ public void testMapModelToPresenter_default() {
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(0, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(0, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(5, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(5, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 0));
+
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(0, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(0, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(5, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapModelToPresenter(
+ createInfo(5, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 0));
+ }
+
+ @Test
+ public void testMapPresenterToModel_default() {
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 0, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 0, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 5, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 5, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 0));
+
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 0, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 0, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 5, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(CellPosMapper.DEFAULT.mapPresenterToModel(
+ 5, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 0));
+ }
+
+ @Test
+ public void testMapModelToPresenter_twoPanel() {
+ CellPosMapper mapper = new TwoPanelCellPosMapper(8);
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(0, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(0, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(8, 0, 0));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(5, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(13, 0, 0));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(5, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 0));
+
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(0, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(0, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(5, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(mapper.mapModelToPresenter(
+ createInfo(5, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 0));
+ }
+
+ @Test
+ public void testMapPresenterToModel_twoPanel() {
+ CellPosMapper mapper = new TwoPanelCellPosMapper(3);
+ assertThat(mapper.mapPresenterToModel(
+ 0, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(mapper.mapPresenterToModel(
+ 0, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(mapper.mapPresenterToModel(
+ 5, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(mapper.mapPresenterToModel(
+ 5, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(2, 0, 1));
+
+ assertThat(mapper.mapPresenterToModel(
+ 0, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 0));
+ assertThat(mapper.mapPresenterToModel(
+ 0, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 1));
+ assertThat(mapper.mapPresenterToModel(
+ 5, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 1));
+ assertThat(mapper.mapPresenterToModel(
+ 5, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 0));
+ }
+
+ private ItemInfo createInfo(int cellX, int cellY, int screen, int container) {
+ ItemInfo info = new ItemInfo();
+ info.cellX = cellX;
+ info.cellY = cellY;
+ info.screenId = screen;
+ info.container = container;
+ return info;
+ }
+}
diff --git a/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java b/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java
new file mode 100644
index 0000000..9b52fe8
--- /dev/null
+++ b/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.celllayout.testcases;
+
+import android.graphics.Point;
+
+import java.util.Map;
+
+/**
+ * The grids represent the workspace to be build by TestWorkspaceBuilder, to see what each character
+ * in the board mean refer to {@code CellType}
+ */
+public class MultipleCellLayoutsSimpleReorder {
+
+ /** 5x5 Test
+ **/
+ private static final String START_BOARD_STR_5x5 = ""
+ + "xxxxx|-----\n"
+ + "--mm-|-----\n"
+ + "--mm-|-----\n"
+ + "-----|-----\n"
+ + "-----|-----";
+ private static final Point MOVE_TO_5x5 = new Point(8, 3);
+ private static final String END_BOARD_STR_5x5 = ""
+ + "xxxxx|-----\n"
+ + "-----|-----\n"
+ + "-----|-----\n"
+ + "-----|---mm\n"
+ + "-----|---mm";
+ private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
+ MOVE_TO_5x5,
+ END_BOARD_STR_5x5);
+
+ /** 4x4 Test
+ **/
+ private static final String START_BOARD_STR_4x4 = ""
+ + "xxxx|----\n"
+ + "--mm|----\n"
+ + "--mm|----\n"
+ + "----|----";
+ private static final Point MOVE_TO_4x4 = new Point(5, 3);
+ private static final String END_BOARD_STR_4x4 = ""
+ + "xxxx|----\n"
+ + "----|----\n"
+ + "----|-mm-\n"
+ + "----|-mm-";
+ private static final ReorderTestCase TEST_CASE_4x4 = new ReorderTestCase(START_BOARD_STR_4x4,
+ MOVE_TO_4x4,
+ END_BOARD_STR_4x4);
+
+
+ /** 6x5 Test
+ **/
+ private static final String START_BOARD_STR_6x5 = ""
+ + "xxxxxx|------\n"
+ + "--m---|------\n"
+ + "------|------\n"
+ + "------|------\n"
+ + "------|------";
+ private static final Point MOVE_TO_6x5 = new Point(10, 4);
+ private static final String END_BOARD_STR_6x5 = ""
+ + "xxxxxx|------\n"
+ + "------|------\n"
+ + "------|------\n"
+ + "------|------\n"
+ + "------|----m-";
+ private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
+ MOVE_TO_6x5,
+ END_BOARD_STR_6x5);
+
+ public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
+ Map.of(new Point(5, 5), TEST_CASE_5x5,
+ new Point(4, 4), TEST_CASE_4x4,
+ new Point(6, 5), TEST_CASE_6x5);
+}
diff --git a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
index 7b38ed6..3443fd9 100644
--- a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
+++ b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
@@ -20,15 +20,14 @@
import android.graphics.Point;
import android.util.Log;
-import android.view.View;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
-import com.android.launcher3.CellLayout;
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.celllayout.testcases.FullReorderCase;
import com.android.launcher3.celllayout.testcases.MoveOutReorderCase;
+import com.android.launcher3.celllayout.testcases.MultipleCellLayoutsSimpleReorder;
import com.android.launcher3.celllayout.testcases.PushReorderCase;
import com.android.launcher3.celllayout.testcases.ReorderTestCase;
import com.android.launcher3.celllayout.testcases.SimpleReorderCase;
@@ -37,8 +36,6 @@
import com.android.launcher3.ui.AbstractLauncherUiTest;
import com.android.launcher3.ui.TaplTestsLauncher3;
import com.android.launcher3.util.rule.ShellCommandRule;
-import com.android.launcher3.views.DoubleShadowBubbleTextView;
-import com.android.launcher3.widget.LauncherAppWidgetHostView;
import org.junit.Assume;
import org.junit.Before;
@@ -48,6 +45,7 @@
import org.junit.runner.RunWith;
import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
@@ -62,20 +60,6 @@
TestWorkspaceBuilder mWorkspaceBuilder;
- private View getViewAt(int cellX, int cellY) {
- return getFromLauncher(l -> l.getWorkspace().getScreenWithId(
- l.getWorkspace().getScreenIdForPageIndex(0)).getChildAt(cellX, cellY));
- }
-
- private Point getCellDimensions() {
- return getFromLauncher(l -> {
- CellLayout cellLayout = l.getWorkspace().getScreenWithId(
- l.getWorkspace().getScreenIdForPageIndex(0));
- return new Point(cellLayout.getWidth() / cellLayout.getCountX(),
- cellLayout.getHeight() / cellLayout.getCountY());
- });
- }
-
@Before
public void setup() throws Throwable {
mWorkspaceBuilder = new TestWorkspaceBuilder(this, mTargetContext);
@@ -86,28 +70,26 @@
/**
* Validate if the given board represent the current CellLayout
**/
- private boolean validateBoard(CellLayoutBoard board) {
- boolean match = true;
- Point cellDimensions = getCellDimensions();
- for (CellLayoutBoard.WidgetRect widgetRect : board.getWidgets()) {
- if (widgetRect.shouldIgnore()) {
- continue;
+ private boolean validateBoard(List<CellLayoutBoard> testBoards) {
+ ArrayList<CellLayoutBoard> workspaceBoards = workspaceToBoards();
+ if (workspaceBoards.size() < testBoards.size()) {
+ return false;
+ }
+ for (int i = 0; i < testBoards.size(); i++) {
+ if (testBoards.get(i).compareTo(workspaceBoards.get(i)) != 0) {
+ return false;
}
- View widget = getViewAt(widgetRect.getCellX(), widgetRect.getCellY());
- assertTrue("The view selected at " + board + " is not a widget",
- widget instanceof LauncherAppWidgetHostView);
- match &= widgetRect.getSpanX()
- == Math.round(widget.getWidth() / (float) cellDimensions.x);
- match &= widgetRect.getSpanY()
- == Math.round(widget.getHeight() / (float) cellDimensions.y);
- if (!match) return match;
}
- for (CellLayoutBoard.IconPoint iconPoint : board.getIcons()) {
- View icon = getViewAt(iconPoint.getCoord().x, iconPoint.getCoord().y);
- assertTrue("The view selected at " + iconPoint.coord + " is not an Icon",
- icon instanceof DoubleShadowBubbleTextView);
+ return true;
+ }
+
+ private FavoriteItemsTransaction buildWorkspaceFromBoards(List<CellLayoutBoard> boards,
+ FavoriteItemsTransaction transaction) {
+ for (int i = 0; i < boards.size(); i++) {
+ CellLayoutBoard board = boards.get(i);
+ mWorkspaceBuilder.buildFromBoard(board, transaction, i);
}
- return match;
+ return transaction;
}
private void printCurrentWorkspace() {
@@ -120,50 +102,30 @@
}
private ArrayList<CellLayoutBoard> workspaceToBoards() {
- return getFromLauncher(l -> {
- ArrayList<CellLayoutBoard> boards = new ArrayList<>();
- int widgetCount = 0;
- for (CellLayout cellLayout : l.getWorkspace().mWorkspaceScreens) {
- CellLayoutBoard board = new CellLayoutBoard();
- int count = cellLayout.getShortcutsAndWidgets().getChildCount();
- for (int i = 0; i < count; i++) {
- View callView = cellLayout.getShortcutsAndWidgets().getChildAt(i);
- CellLayoutLayoutParams params =
- (CellLayoutLayoutParams) callView.getLayoutParams();
- // is icon
- if (callView instanceof DoubleShadowBubbleTextView) {
- board.addIcon(params.getCellX(), params.getCellY());
- } else {
- // is widget
- board.addWidget(params.getCellX(), params.getCellY(), params.cellHSpan,
- params.cellVSpan, (char) ('A' + widgetCount));
- widgetCount++;
- }
- }
- boards.add(board);
- }
- return boards;
- });
+ return getFromLauncher(CellLayoutTestUtils::workspaceToBoards);
}
private void runTestCase(ReorderTestCase testCase)
throws ExecutionException, InterruptedException {
- Point mainWidgetCellPos = testCase.mStart.getMain();
+ CellLayoutBoard.WidgetRect mainWidgetCellPos = CellLayoutBoard.getMainFromList(
+ testCase.mStart);
FavoriteItemsTransaction transaction =
new FavoriteItemsTransaction(mTargetContext, this);
- mWorkspaceBuilder.buildFromBoard(testCase.mStart, transaction).commit();
+ transaction = buildWorkspaceFromBoards(testCase.mStart, transaction);
+ transaction.commit();
waitForLauncherCondition("Workspace didn't finish loading", l -> !l.isWorkspaceLoading());
- Widget widget = mLauncher.getWorkspace().getWidgetAtCell(mainWidgetCellPos.x,
- mainWidgetCellPos.y);
+ Widget widget = mLauncher.getWorkspace().getWidgetAtCell(mainWidgetCellPos.getCellX(),
+ mainWidgetCellPos.getCellY());
assertNotNull(widget);
WidgetResizeFrame resizeFrame = widget.dragWidgetToWorkspace(testCase.moveMainTo.x,
- testCase.moveMainTo.y);
+ testCase.moveMainTo.y, mainWidgetCellPos.getSpanX(), mainWidgetCellPos.getSpanY());
resizeFrame.dismiss();
boolean isValid = false;
- for (CellLayoutBoard board : testCase.mEnd) {
- isValid |= validateBoard(board);
+ for (List<CellLayoutBoard> boards : testCase.mEnd) {
+ isValid |= validateBoard(boards);
+ if (isValid) break;
}
printCurrentWorkspace();
assertTrue("Non of the valid boards match with the current state", isValid);
@@ -207,4 +169,11 @@
runTestCaseMap(MoveOutReorderCase.TEST_BY_GRID_SIZE,
MoveOutReorderCase.class.getSimpleName());
}
+
+ @Test
+ public void multipleCellLayoutsSimpleReorder() throws ExecutionException, InterruptedException {
+ Assume.assumeTrue("Test doesn't support foldables", !mLauncher.isTwoPanels());
+ runTestCaseMap(MultipleCellLayoutsSimpleReorder.TEST_BY_GRID_SIZE,
+ MultipleCellLayoutsSimpleReorder.class.getSimpleName());
+ }
}
diff --git a/tests/src/com/android/launcher3/celllayout/TestWorkspaceBuilder.java b/tests/src/com/android/launcher3/celllayout/TestWorkspaceBuilder.java
index 7e3588b..5945605 100644
--- a/tests/src/com/android/launcher3/celllayout/TestWorkspaceBuilder.java
+++ b/tests/src/com/android/launcher3/celllayout/TestWorkspaceBuilder.java
@@ -15,7 +15,6 @@
*/
package com.android.launcher3.celllayout;
-import static com.android.launcher3.WorkspaceLayoutManager.FIRST_SCREEN_ID;
import static com.android.launcher3.util.WidgetUtils.createWidgetInfo;
import android.content.ComponentName;
@@ -62,7 +61,7 @@
* Fills the given rect in WidgetRect with 1x1 widgets. This is useful to equalize cases.
*/
private FavoriteItemsTransaction fillWithWidgets(CellLayoutBoard.WidgetRect widgetRect,
- FavoriteItemsTransaction transaction) {
+ FavoriteItemsTransaction transaction, int screenId) {
int initX = widgetRect.getCellX();
int initY = widgetRect.getCellY();
for (int x = initX; x < initX + widgetRect.getSpanX(); x++) {
@@ -71,8 +70,7 @@
// this widgets are filling, we don't care if we can't place them
ItemInfo item = createWidgetInCell(
new CellLayoutBoard.WidgetRect(CellLayoutBoard.CellType.IGNORE,
- new Rect(x, y, x, y))
- );
+ new Rect(x, y, x, y)), screenId);
transaction.addItem(item);
} catch (Exception e) {
Log.d(TAG, "Unable to place filling widget at " + x + "," + y);
@@ -94,11 +92,11 @@
}
private void addCorrespondingWidgetRect(CellLayoutBoard.WidgetRect widgetRect,
- FavoriteItemsTransaction transaction) {
+ FavoriteItemsTransaction transaction, int screenId) {
if (widgetRect.mType == 'x') {
- fillWithWidgets(widgetRect, transaction);
+ fillWithWidgets(widgetRect, transaction, screenId);
} else {
- transaction.addItem(createWidgetInCell(widgetRect));
+ transaction.addItem(createWidgetInCell(widgetRect, screenId));
}
}
@@ -106,11 +104,11 @@
* Builds the given board into the transaction
*/
public FavoriteItemsTransaction buildFromBoard(CellLayoutBoard board,
- FavoriteItemsTransaction transaction) {
+ FavoriteItemsTransaction transaction, final int screenId) {
board.getWidgets().forEach(
- (widgetRect) -> addCorrespondingWidgetRect(widgetRect, transaction));
+ (widgetRect) -> addCorrespondingWidgetRect(widgetRect, transaction, screenId));
board.getIcons().forEach((iconPoint) ->
- transaction.addItem(createIconInCell(iconPoint))
+ transaction.addItem(createIconInCell(iconPoint, screenId))
);
return transaction;
}
@@ -127,7 +125,7 @@
return transaction;
}
- private ItemInfo createWidgetInCell(CellLayoutBoard.WidgetRect widgetRect) {
+ private ItemInfo createWidgetInCell(CellLayoutBoard.WidgetRect widgetRect, int screenId) {
LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(mTest, false);
LauncherAppWidgetInfo item = createWidgetInfo(info,
ApplicationProvider.getApplicationContext(), true);
@@ -136,14 +134,14 @@
item.cellY = widgetRect.getCellY();
item.spanX = widgetRect.getSpanX();
item.spanY = widgetRect.getSpanY();
- item.screenId = FIRST_SCREEN_ID;
+ item.screenId = screenId;
return item;
}
- private ItemInfo createIconInCell(CellLayoutBoard.IconPoint iconPoint) {
+ private ItemInfo createIconInCell(CellLayoutBoard.IconPoint iconPoint, int screenId) {
WorkspaceItemInfo item = new WorkspaceItemInfo(getApp());
item.id = getID();
- item.screenId = FIRST_SCREEN_ID;
+ item.screenId = screenId;
item.cellX = iconPoint.getCoord().x;
item.cellY = iconPoint.getCoord().y;
item.minSpanY = item.minSpanX = item.spanX = item.spanY = 1;
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java b/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java
index 0a28668..98fc20c 100644
--- a/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java
+++ b/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java
@@ -24,23 +24,24 @@
import java.util.stream.Collectors;
public class ReorderTestCase {
- public CellLayoutBoard mStart;
+ public List<CellLayoutBoard> mStart;
public Point moveMainTo;
- public List<CellLayoutBoard> mEnd;
+ public List<List<CellLayoutBoard>> mEnd;
- ReorderTestCase(CellLayoutBoard start, Point moveMainTo, CellLayoutBoard ... end) {
+ public ReorderTestCase(List<CellLayoutBoard> start, Point moveMainTo,
+ List<CellLayoutBoard>... end) {
mStart = start;
this.moveMainTo = moveMainTo;
mEnd = Arrays.asList(end);
}
- ReorderTestCase(String start, Point moveMainTo, String ... end) {
- mStart = CellLayoutBoard.boardFromString(start);
+ public ReorderTestCase(String start, Point moveMainTo, String ... end) {
+ mStart = CellLayoutBoard.boardListFromString(start);
this.moveMainTo = moveMainTo;
mEnd = Arrays
.asList(end)
.stream()
- .map(CellLayoutBoard::boardFromString)
+ .map(CellLayoutBoard::boardListFromString)
.collect(Collectors.toList());
}
}
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java
index 546c48b..c9f6849 100644
--- a/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java
+++ b/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java
@@ -33,13 +33,13 @@
+ "--mm-\n"
+ "-----\n"
+ "-----";
- private static final Point MOVE_TO_5x5 = new Point(4, 4);
+ private static final Point MOVE_TO_5x5 = new Point(0, 4);
private static final String END_BOARD_STR_5x5 = ""
+ "xxxxx\n"
+ "-----\n"
+ "-----\n"
- + "---mm\n"
- + "---mm";
+ + "mm---\n"
+ + "mm---";
private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
MOVE_TO_5x5,
END_BOARD_STR_5x5);
@@ -61,7 +61,27 @@
MOVE_TO_4x4,
END_BOARD_STR_4x4);
+ /** 6x5 Test
+ **/
+ private static final String START_BOARD_STR_6x5 = ""
+ + "xxxxxx\n"
+ + "-mm---\n"
+ + "-mm---\n"
+ + "------\n"
+ + "------";
+ private static final Point MOVE_TO_6x5 = new Point(4, 3);
+ private static final String END_BOARD_STR_6x5 = ""
+ + "xxxxxx\n"
+ + "------\n"
+ + "------\n"
+ + "----mm\n"
+ + "----mm";
+ private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
+ MOVE_TO_6x5,
+ END_BOARD_STR_6x5);
+
public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
Map.of(new Point(5, 5), TEST_CASE_5x5,
- new Point(4, 4), TEST_CASE_4x4);
+ new Point(4, 4), TEST_CASE_4x4,
+ new Point(6, 5), TEST_CASE_6x5);
}
diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
index cf21dd7..eae1868 100644
--- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
+++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
@@ -63,7 +63,7 @@
import com.android.launcher3.testcomponent.TestCommandReceiver;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.launcher3.util.LooperExecutor;
-import com.android.launcher3.util.PackageManagerHelper;
+import com.android.launcher3.util.SimpleBroadcastReceiver;
import com.android.launcher3.util.Wait;
import com.android.launcher3.util.WidgetUtils;
import com.android.launcher3.util.rule.FailureWatcher;
@@ -196,15 +196,10 @@
protected void clearPackageData(String pkg) throws IOException, InterruptedException {
final CountDownLatch count = new CountDownLatch(2);
- final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- count.countDown();
- }
- };
- mTargetContext.registerReceiver(broadcastReceiver,
- PackageManagerHelper.getPackageFilter(pkg,
- Intent.ACTION_PACKAGE_RESTARTED, Intent.ACTION_PACKAGE_DATA_CLEARED));
+ final SimpleBroadcastReceiver broadcastReceiver =
+ new SimpleBroadcastReceiver(i -> count.countDown());
+ broadcastReceiver.registerPkgActions(mTargetContext, pkg,
+ Intent.ACTION_PACKAGE_RESTARTED, Intent.ACTION_PACKAGE_DATA_CLEARED);
mDevice.executeShellCommand("pm clear " + pkg);
assertTrue(pkg + " didn't restart", count.await(10, TimeUnit.SECONDS));
diff --git a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
index e1a2c1b..4b04c7e 100644
--- a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
+++ b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
@@ -124,6 +124,7 @@
}
@Test
+ @ScreenRecord
public void testPressHomeOnAllAppsContextMenu() throws Exception {
final AllApps allApps = mLauncher.getWorkspace().switchToAllApps();
allApps.freeze();
diff --git a/tests/src/com/android/launcher3/util/LauncherModelHelper.java b/tests/src/com/android/launcher3/util/LauncherModelHelper.java
index caec301..fa4c519 100644
--- a/tests/src/com/android/launcher3/util/LauncherModelHelper.java
+++ b/tests/src/com/android/launcher3/util/LauncherModelHelper.java
@@ -134,7 +134,7 @@
setupProvider(LauncherProvider.AUTHORITY, provider);
}
- protected void setupProvider(String authority, ContentProvider provider) {
+ public void setupProvider(String authority, ContentProvider provider) {
ProviderInfo providerInfo = new ProviderInfo();
providerInfo.authority = authority;
providerInfo.applicationInfo = sandboxContext.getApplicationInfo();
diff --git a/tests/tapl/com/android/launcher3/tapl/AllAppsQsb.java b/tests/tapl/com/android/launcher3/tapl/AllAppsQsb.java
deleted file mode 100644
index 0931cd4..0000000
--- a/tests/tapl/com/android/launcher3/tapl/AllAppsQsb.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.tapl;
-
-import androidx.test.uiautomator.UiObject2;
-
-/**
- * Operations on AllApp screen qsb.
- */
-class AllAppsQsb extends Qsb {
-
- private final UiObject2 mAllAppsContainer;
-
- AllAppsQsb(LauncherInstrumentation launcher, UiObject2 allAppsContainer) {
- super(launcher);
- mAllAppsContainer = allAppsContainer;
- waitForQsbObject();
- }
-
- @Override
- protected UiObject2 waitForQsbObject() {
- return mLauncher.waitForObjectInContainer(mAllAppsContainer, "search_container_all_apps");
- }
-}
diff --git a/tests/tapl/com/android/launcher3/tapl/HomeAllApps.java b/tests/tapl/com/android/launcher3/tapl/HomeAllApps.java
index 8ac1aef..50b03aa 100644
--- a/tests/tapl/com/android/launcher3/tapl/HomeAllApps.java
+++ b/tests/tapl/com/android/launcher3/tapl/HomeAllApps.java
@@ -115,13 +115,4 @@
}
}
}
-
- /**
- * Return the QSB UI object on the AllApps screen.
- * @return the QSB UI object.
- */
- @NonNull
- public Qsb getQsb() {
- return new AllAppsQsb(mLauncher, verifyActiveContainer());
- }
}
diff --git a/tests/tapl/com/android/launcher3/tapl/HomeQsb.java b/tests/tapl/com/android/launcher3/tapl/HomeQsb.java
index 20d09a1..c365708 100644
--- a/tests/tapl/com/android/launcher3/tapl/HomeQsb.java
+++ b/tests/tapl/com/android/launcher3/tapl/HomeQsb.java
@@ -15,23 +15,69 @@
*/
package com.android.launcher3.tapl;
+import androidx.annotation.NonNull;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
/**
- * Operations on Home screen qsb.
+ * Operations on home screen qsb.
*/
-class HomeQsb extends Qsb {
+public class HomeQsb {
- private final UiObject2 mHotSeat;
+ private final LauncherInstrumentation mLauncher;
+ private static final String ASSISTANT_APP_PACKAGE = "com.google.android.googlequicksearchbox";
+ private static final String ASSISTANT_ICON_RES_ID = "mic_icon";
- HomeQsb(LauncherInstrumentation launcher, UiObject2 hotseat) {
- super(launcher);
- mHotSeat = hotseat;
- waitForQsbObject();
+
+ HomeQsb(LauncherInstrumentation launcher) {
+ mLauncher = launcher;
+ mLauncher.waitForLauncherObject("search_container_hotseat");
}
- @Override
- protected UiObject2 waitForQsbObject() {
- return mLauncher.waitForObjectInContainer(mHotSeat, "search_container_hotseat");
+ /**
+ * Launch assistant app by tapping mic icon on qsb.
+ */
+ @NonNull
+ public LaunchedAppState launchAssistant() {
+ try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
+ "want to click assistant mic icon button");
+ LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
+ UiObject2 assistantIcon = mLauncher.waitForLauncherObject(ASSISTANT_ICON_RES_ID);
+
+ LauncherInstrumentation.log("HomeQsb.launchAssistant before click "
+ + assistantIcon.getVisibleCenter() + " in "
+ + mLauncher.getVisibleBounds(assistantIcon));
+
+ mLauncher.clickLauncherObject(assistantIcon);
+
+ try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
+ // assert Assistant App Launched
+ BySelector selector = By.pkg(ASSISTANT_APP_PACKAGE);
+ mLauncher.assertTrue(
+ "assistant app didn't start: (" + selector + ")",
+ mLauncher.getDevice().wait(Until.hasObject(selector),
+ LauncherInstrumentation.WAIT_TIME_MS)
+ );
+ return new LaunchedAppState(mLauncher);
+ }
+ }
+ }
+
+ /**
+ * Show search result page from tapping qsb.
+ */
+ public SearchResultFromQsb showSearchResult() {
+ try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
+ "want to open search result page");
+ LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
+ mLauncher.clickLauncherObject(
+ mLauncher.waitForLauncherObject("search_container_hotseat"));
+ try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer(
+ "clicked qsb to open search result page")) {
+ return new SearchResultFromQsb(mLauncher);
+ }
+ }
}
}
diff --git a/tests/tapl/com/android/launcher3/tapl/Qsb.java b/tests/tapl/com/android/launcher3/tapl/Qsb.java
deleted file mode 100644
index 6bc4f21..0000000
--- a/tests/tapl/com/android/launcher3/tapl/Qsb.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3.tapl;
-
-import androidx.annotation.NonNull;
-import androidx.test.uiautomator.By;
-import androidx.test.uiautomator.BySelector;
-import androidx.test.uiautomator.UiObject2;
-import androidx.test.uiautomator.Until;
-
-/**
- * Operations on qsb from either Home screen or AllApp screen.
- */
-public abstract class Qsb {
-
- private static final String ASSISTANT_APP_PACKAGE = "com.google.android.googlequicksearchbox";
- private static final String ASSISTANT_ICON_RES_ID = "mic_icon";
- protected final LauncherInstrumentation mLauncher;
-
- protected Qsb(LauncherInstrumentation launcher) {
- mLauncher = launcher;
- }
-
- // Waits for the quick search box.
- protected abstract UiObject2 waitForQsbObject();
- /**
- * Launch assistant app by tapping mic icon on qsb.
- */
-
- @NonNull
- public LaunchedAppState launchAssistant() {
- try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
- "want to click assistant mic icon button");
- LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
- UiObject2 assistantIcon = mLauncher.waitForLauncherObject(ASSISTANT_ICON_RES_ID);
-
- LauncherInstrumentation.log("Qsb.launchAssistant before click "
- + assistantIcon.getVisibleCenter() + " in "
- + mLauncher.getVisibleBounds(assistantIcon));
-
- mLauncher.clickLauncherObject(assistantIcon);
-
- try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
- // assert Assistant App Launched
- BySelector selector = By.pkg(ASSISTANT_APP_PACKAGE);
- mLauncher.assertTrue(
- "assistant app didn't start: (" + selector + ")",
- mLauncher.getDevice().wait(Until.hasObject(selector),
- LauncherInstrumentation.WAIT_TIME_MS)
- );
- return new LaunchedAppState(mLauncher);
- }
- }
- }
-
- /**
- * Show search result page from tapping qsb.
- */
- public SearchResultFromQsb showSearchResult() {
- try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
- "want to open search result page");
- LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
- mLauncher.clickLauncherObject(waitForQsbObject());
- // wait for the result rendering to complete
- mLauncher.waitForIdle();
- try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer(
- "clicked qsb to open search result page")) {
- return new SearchResultFromQsb(mLauncher);
- }
- }
- }
-}
diff --git a/tests/tapl/com/android/launcher3/tapl/SearchResultFromQsb.java b/tests/tapl/com/android/launcher3/tapl/SearchResultFromQsb.java
index 80176e9..80e4116 100644
--- a/tests/tapl/com/android/launcher3/tapl/SearchResultFromQsb.java
+++ b/tests/tapl/com/android/launcher3/tapl/SearchResultFromQsb.java
@@ -23,7 +23,7 @@
import java.util.ArrayList;
/**
- * Operations on search result page opened from qsb.
+ * Operations on search result page opened from home screen qsb.
*/
public class SearchResultFromQsb {
// The input resource id in the search box.
diff --git a/tests/tapl/com/android/launcher3/tapl/Widget.java b/tests/tapl/com/android/launcher3/tapl/Widget.java
index 046308b..d440903 100644
--- a/tests/tapl/com/android/launcher3/tapl/Widget.java
+++ b/tests/tapl/com/android/launcher3/tapl/Widget.java
@@ -71,7 +71,7 @@
public WidgetResizeFrame dragWidgetToWorkspace() {
try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
return dragWidgetToWorkspace(/* configurable= */ false, /* acceptsConfig= */ false, -1,
- -1);
+ -1, 1, 1);
}
}
@@ -80,12 +80,12 @@
* cellY and returns the resize frame that is shown after the widget is added.
*/
@NonNull
- public WidgetResizeFrame dragWidgetToWorkspace(int cellX, int cellY) {
+ public WidgetResizeFrame dragWidgetToWorkspace(int cellX, int cellY, int spanX, int spanY) {
try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"Dragging widget to workspace cell " + cellX + "," + cellY)) {
return dragWidgetToWorkspace(/* configurable= */ false, /* acceptsConfig= */ false,
- cellX, cellY);
+ cellX, cellY, spanX, spanY);
}
}
@@ -98,7 +98,7 @@
public WidgetResizeFrame dragConfigWidgetToWorkspace(boolean acceptsConfig) {
// TODO(b/239438337, fransebas) add correct event checking for this case
//try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
- return dragWidgetToWorkspace(/* configurable= */ true, acceptsConfig, -1, -1);
+ return dragWidgetToWorkspace(/* configurable= */ true, acceptsConfig, -1, -1, 1, 1);
//}
}
@@ -110,18 +110,17 @@
* @param cellX X position in the CellLayout
* @param cellY Y position in the CellLayout
*/
- private void dragToWorkspace(boolean startsActivity, boolean isWidgetShortcut, int cellX,
- int cellY) {
+ private void dragToWorkspaceCellPosition(boolean startsActivity, boolean isWidgetShortcut,
+ int cellX, int cellY, int spanX, int spanY) {
Launchable launchable = getLaunchable();
LauncherInstrumentation launcher = launchable.mLauncher;
- Workspace.dragIconToWorkspace(
+ Workspace.dragIconToWorkspaceCellPosition(
launcher,
launchable,
- () -> Workspace.getCellCenter(launchable.mLauncher, cellX, cellY),
+ cellX, cellY, spanX, spanY,
startsActivity,
isWidgetShortcut,
launchable::addExpectedEventsForLongClick);
-
}
/**
@@ -144,13 +143,13 @@
*/
@Nullable
private WidgetResizeFrame dragWidgetToWorkspace(boolean configurable, boolean acceptsConfig,
- int cellX, int cellY) {
+ int cellX, int cellY, int spanX, int spanY) {
if (cellX == -1 || cellY == -1) {
internalDragToWorkspace(/* startsActivity= */ configurable, /* isWidgetShortcut= */
false);
} else {
- dragToWorkspace(/* startsActivity= */ configurable, /* isWidgetShortcut= */ false,
- cellX, cellY);
+ dragToWorkspaceCellPosition(/* startsActivity= */ configurable, /* isWidgetShortcut= */
+ false, cellX, cellY, spanX, spanY);
}
if (configurable) {
diff --git a/tests/tapl/com/android/launcher3/tapl/Workspace.java b/tests/tapl/com/android/launcher3/tapl/Workspace.java
index 388955c..473cfb9 100644
--- a/tests/tapl/com/android/launcher3/tapl/Workspace.java
+++ b/tests/tapl/com/android/launcher3/tapl/Workspace.java
@@ -118,11 +118,10 @@
*
* The qsb must already be visible when calling this method.
*/
- @NonNull
- public Qsb getQsb() {
+ public HomeQsb getQsb() {
try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"want to get the home qsb")) {
- return new HomeQsb(mLauncher, mHotseat);
+ return new HomeQsb(mLauncher);
}
}
@@ -409,9 +408,15 @@
}
static Point getCellCenter(LauncherInstrumentation launcher, int cellX, int cellY) {
- return launcher.getTestInfo(WorkspaceCellCenterRequest.builder().setCellX(
- cellX).setCellY(cellY).build()).getParcelable(
- TestProtocol.TEST_INFO_RESPONSE_FIELD);
+ return launcher.getTestInfo(WorkspaceCellCenterRequest.builder().setCellX(cellX).setCellY(
+ cellY).build()).getParcelable(TestProtocol.TEST_INFO_RESPONSE_FIELD);
+ }
+
+ static Point getCellCenter(LauncherInstrumentation launcher, int cellX, int cellY, int spanX,
+ int spanY) {
+ return launcher.getTestInfo(WorkspaceCellCenterRequest.builder().setCellX(cellX)
+ .setCellY(cellY).setSpanX(spanX).setSpanY(spanY).build())
+ .getParcelable(TestProtocol.TEST_INFO_RESPONSE_FIELD);
}
static Point getHotseatCellCenter(LauncherInstrumentation launcher, int cellInd) {
@@ -419,6 +424,12 @@
.setCellInd(cellInd).build()).getParcelable(TestProtocol.TEST_INFO_RESPONSE_FIELD);
}
+ /** Returns the number of rows and columns in the workspace */
+ public Point getRowsAndCols() {
+ return mLauncher.getTestInfo(TestProtocol.REQUEST_WORKSPACE_COLUMNS_ROWS).getParcelable(
+ TestProtocol.TEST_INFO_RESPONSE_FIELD);
+ }
+
/**
* Finds folder icons in the current workspace.
*
@@ -457,6 +468,19 @@
launcher, launchable, dest, expectLongClickEvents, expectDropEvents);
}
+ static void dragIconToWorkspaceCellPosition(LauncherInstrumentation launcher,
+ Launchable launchable, int cellX, int cellY, int spanX, int spanY,
+ boolean startsActivity, boolean isWidgetShortcut, Runnable expectLongClickEvents) {
+ Runnable expectDropEvents = null;
+ if (startsActivity || isWidgetShortcut) {
+ expectDropEvents = () -> launcher.expectEvent(TestProtocol.SEQUENCE_MAIN,
+ LauncherInstrumentation.EVENT_START);
+ }
+ dragIconToWorkspaceCellPosition(
+ launcher, launchable, cellX, cellY, spanX, spanY, true, expectLongClickEvents,
+ expectDropEvents);
+ }
+
/**
* Drag icon in workspace to else where and drop it immediately.
* (There is no slow down time before drop event)
@@ -526,6 +550,51 @@
}
}
+ static void dragIconToWorkspaceCellPosition(
+ LauncherInstrumentation launcher,
+ Launchable launchable,
+ int cellX, int cellY, int spanX, int spanY,
+ boolean isDecelerating,
+ Runnable expectLongClickEvents,
+ @Nullable Runnable expectDropEvents) {
+ try (LauncherInstrumentation.Closable ignored = launcher.addContextLayer(
+ "want to drag icon to workspace")) {
+ Point rowsAndCols = launcher.getWorkspace().getRowsAndCols();
+ int destinationWorkspace = cellX / rowsAndCols.x;
+ cellX = cellX % rowsAndCols.x;
+
+ final long downTime = SystemClock.uptimeMillis();
+ Point dragStart = launchable.startDrag(
+ downTime,
+ expectLongClickEvents,
+ /* runToSpringLoadedState= */ true);
+ Point targetDest = getCellCenter(launcher, cellX, cellY, spanX, spanY);
+ int displayX = launcher.getRealDisplaySize().x;
+
+ // Since the destination can be on another page, we need to drag to the edge first
+ // until we reach the target page
+ for (int i = 0; i < destinationWorkspace; i++) {
+ // Don't drag all the way to the edge to prevent touch events from getting out of
+ //screen bounds.
+ Point screenEdge = new Point(displayX - 1, targetDest.y);
+ Point finalDragStart = dragStart;
+ executeAndWaitForPageScroll(launcher,
+ () -> launcher.movePointer(finalDragStart, screenEdge, DEFAULT_DRAG_STEPS,
+ true, downTime, downTime, true,
+ LauncherInstrumentation.GestureScope.INSIDE));
+ dragStart = screenEdge;
+ }
+
+ // targetDest.x is now between 0 and displayX so we found the target page,
+ // we just have to put move the icon to the destination and drop it
+ launcher.movePointer(dragStart, targetDest, DEFAULT_DRAG_STEPS, isDecelerating,
+ downTime, SystemClock.uptimeMillis(), false,
+ LauncherInstrumentation.GestureScope.INSIDE);
+ launcher.runCallbackIfActive(CALLBACK_HOLD_BEFORE_DROP);
+ dropDraggedIcon(launcher, targetDest, downTime, expectDropEvents);
+ }
+ }
+
private static void executeAndWaitForPageScroll(LauncherInstrumentation launcher,
Runnable command) {
launcher.executeAndWaitForEvent(command,