Merge "Remove protolog classes from allow list" into sc-dev
diff --git a/apps/CameraITS/tests/scene0/test_metadata.py b/apps/CameraITS/tests/scene0/test_metadata.py
index 12b68a4..b0995a7 100644
--- a/apps/CameraITS/tests/scene0/test_metadata.py
+++ b/apps/CameraITS/tests/scene0/test_metadata.py
@@ -51,6 +51,7 @@
       logging.debug('Limited: %s', camera_properties_utils.limited(props))
       logging.debug('Full or better: %s',
                     camera_properties_utils.full_or_better(props))
+      logging.debug('Level 3: %s', camera_properties_utils.level3(props))
       logging.debug('Capabilities')
       logging.debug('Manual sensor: %s',
                     camera_properties_utils.manual_sensor(props))
diff --git a/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py b/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py
index 842ac73..657f20c 100644
--- a/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py
+++ b/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py
@@ -28,6 +28,7 @@
 import its_session_utils
 import opencv_processing_utils
 
+_ANDROID11_API_LEVEL = 30
 _CIRCLE_COLOR = 0  # [0: black, 255: white].
 _CIRCLE_MIN_AREA = 0.01  # 1% of image size.
 _FOV_PERCENT_RTOL = 0.15  # Relative tolerance on circle FoV % to expected.
@@ -50,7 +51,7 @@
 
 def _check_skip_conditions(first_api_level, props):
   """Check the skip conditions based on first API level."""
-  if first_api_level < 30:  # Original constraint.
+  if first_api_level < _ANDROID11_API_LEVEL:  # Original constraint.
     camera_properties_utils.skip_unless(camera_properties_utils.read_3a(props))
   else:  # Loosen from read_3a to enable LIMITED coverage.
     camera_properties_utils.skip_unless(
@@ -100,7 +101,8 @@
   return format_list
 
 
-def _print_failed_test_results(failed_ar, failed_fov, failed_crop):
+def _print_failed_test_results(failed_ar, failed_fov, failed_crop,
+                               first_api_level, level_3):
   """Print failed test results."""
   if failed_ar:
     logging.error('Aspect ratio test summary')
@@ -125,13 +127,17 @@
     raise RuntimeError
   if failed_fov:
     raise RuntimeError
-  if failed_crop:  # failed_crop = [] if run_crop_test = False.
-    raise RuntimeError
+  if first_api_level > _ANDROID11_API_LEVEL:
+    if failed_crop:  # failed_crop = [] if run_crop_test = False.
+      raise RuntimeError
+  else:
+    if failed_crop and level_3:
+      raise RuntimeError
 
 
 def _is_checked_aspect_ratio(first_api_level, w, h):
   """Determine if format aspect ratio is a checked on based of first_API."""
-  if first_api_level >= 30:
+  if first_api_level >= _ANDROID11_API_LEVEL:
     return True
 
   for ar_check in _AR_CHECKED_PRE_API_30:
@@ -476,6 +482,7 @@
 
       # Determine camera capabilities.
       full_or_better = camera_properties_utils.full_or_better(props)
+      level3 = camera_properties_utils.level3(props)
       raw_avlb = camera_properties_utils.raw16(props)
       debug = self.debug_mode
 
@@ -559,7 +566,8 @@
               image_processing_utils.write_image(img, img_name, True)
 
       # Print any failed test results.
-      _print_failed_test_results(failed_ar, failed_fov, failed_crop)
+      _print_failed_test_results(failed_ar, failed_fov, failed_crop,
+                                 first_api_level, level3)
 
 if __name__ == '__main__':
   test_runner.main()
diff --git a/apps/CameraITS/tools/DngNoiseModel.pdf b/apps/CameraITS/tools/DngNoiseModel.pdf
index 7cbdbd0..6216482 100644
--- a/apps/CameraITS/tools/DngNoiseModel.pdf
+++ b/apps/CameraITS/tools/DngNoiseModel.pdf
Binary files differ
diff --git a/apps/CameraITS/tools/run_all_tests.py b/apps/CameraITS/tools/run_all_tests.py
index d385af2..823616a 100644
--- a/apps/CameraITS/tools/run_all_tests.py
+++ b/apps/CameraITS/tools/run_all_tests.py
@@ -416,33 +416,40 @@
     auto_scene_switch = False
     logging.info('Manual testing: no tablet defined or testing scene5.')
 
-  # Run through all scenes if user does not supply one and config file doesn't
-  # have specific scene name listed.
-  possible_scenes = _AUTO_SCENES if auto_scene_switch else _ALL_SCENES
-  if not scenes or '<scene-name>' in scenes:
-    scenes = possible_scenes
-  else:
-    # Validate user input scene names
-    valid_scenes = True
-    temp_scenes = []
-    for s in scenes:
-      if s in possible_scenes:
-        temp_scenes.append(s)
-      elif s in _GROUPED_SCENES:
-        expand_scene(s, temp_scenes)
-      else:
-        valid_scenes = False
-        raise ValueError(f'Unknown scene specified: {s}')
-
-    # assign temp_scenes back to scenes and remove duplicates
-    scenes = sorted(set(temp_scenes), key=temp_scenes.index)
-
   logging.info('Running ITS on device: %s, camera: %s, scene: %s',
                device_id, camera_id_combos, scenes)
 
   for camera_id in camera_id_combos:
     test_params_content['camera'] = camera_id
     results = {}
+
+    # Run through all scenes if user does not supply one and config file doesn't
+    # have specific scene name listed.
+    if its_session_utils.SUB_CAMERA_SEPARATOR in camera_id:
+      possible_scenes = list(SUB_CAMERA_TESTS.keys())
+      if auto_scene_switch:
+        possible_scenes.remove('sensor_fusion')
+    else:
+      possible_scenes = _AUTO_SCENES if auto_scene_switch else _ALL_SCENES
+
+    if not scenes or '<scene-name>' in scenes:
+      scenes = possible_scenes
+    else:
+      # Validate user input scene names
+      valid_scenes = True
+      temp_scenes = []
+      for s in scenes:
+        if s in possible_scenes:
+          temp_scenes.append(s)
+        elif s in _GROUPED_SCENES:
+          expand_scene(s, temp_scenes)
+        else:
+          valid_scenes = False
+          raise ValueError(f'Unknown scene specified: {s}')
+
+      # assign temp_scenes back to scenes and remove duplicates
+      scenes = sorted(set(temp_scenes), key=temp_scenes.index)
+
     for s in _ALL_SCENES:
       results[s] = {RESULT_KEY: RESULT_NOT_EXECUTED}
     # A subdir in topdir will be created for each camera_id. All scene test
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 2a083c2..51a1287 100644
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -2476,6 +2476,7 @@
     <string name="provisioning_byod_capture_image_support">Camera support cross profile image capture</string>
     <string name="provisioning_byod_capture_image_support_info">
         This test verifies that images can be captured from the managed profile using the primary profile camera.\n
+        If prompted, accept the camera permission after pressing go.\n
         1. Capture a picture using the camera.\n
         2. Verify that the captured picture is shown.\n
         3. Click on the close button.
@@ -2483,6 +2484,7 @@
     <string name="provisioning_byod_capture_video_support_with_extra_output">Camera support cross profile video capture (with extra output path)</string>
     <string name="provisioning_byod_capture_video_support_info">
         This test verifies that videos can be captured from the managed profile using the primary profile camera.\n
+        If prompted, accept the camera permission after pressing go.\n
         1. Capture a video using the camera.\n
         2. Click on the play button.\n
         3. Verify that the captured video is played.\n
@@ -3251,8 +3253,10 @@
     <string name="provisioning_byod_no_gps_location_feature">No GPS feature present. Skip test.</string>
     <string name="provisioning_byod_location_mode_enable">Enable location</string>
     <string name="provisioning_byod_location_mode_enable_toast_location_change">Location changed</string>
+    <string name="provisioning_byod_location_mode_enable_missing_permission">Permission missing</string>
     <string name="provisioning_byod_location_mode_enable_instruction">
         This test verifies that the location updates can be enabled for the managed profile apps.\n
+        If prompted, accept the location permission after pressing go.\n
         1. Press the go button to go to the location settings page, set both the main location switch and the work profile location switch enabled.\n
         2. Press home to go to the launcher.\n
         3. Move your position a little bit, verify that location updates toast comes up.\n
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractBaseTest.java b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractBaseTest.java
index 2938b00..a58a18f 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractBaseTest.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractBaseTest.java
@@ -83,6 +83,11 @@
         Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
     }
 
+    void showToastAndLog(String s, Exception e) {
+        Log.d(getTag(), s, e);
+        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
+    }
+
     protected void onBiometricEnrollFinished() {
     }
 
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractUserAuthenticationTest.java b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractUserAuthenticationTest.java
index 92869f3..ace4c7f 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractUserAuthenticationTest.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/AbstractUserAuthenticationTest.java
@@ -356,7 +356,7 @@
 
                     if (keyUsed != shouldKeyBeUsable) {
                         showToastAndLog("Test failed. shouldKeyBeUsable: " + shouldKeyBeUsable
-                                + " keyUsed: " + keyUsed + " Exception: " + exception);
+                                + " keyUsed: " + keyUsed + " Exception: " + exception, exception);
                         if (exception != null) {
                             exception.printStackTrace();
                         }
@@ -418,4 +418,9 @@
         Log.d(getTag(), s);
         Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
     }
+
+    private void showToastAndLog(String s, Exception e) {
+        Log.d(getTag(), s, e);
+        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
+    }
 }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/BiometricStrongTests.java b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/BiometricStrongTests.java
index f1e1c0f..d5d2199 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/BiometricStrongTests.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/BiometricStrongTests.java
@@ -249,7 +249,7 @@
                                 updatePassButton();
                             } catch (Exception e) {
                                 showToastAndLog("Failed to encrypt after biometric was"
-                                        + "authenticated: " + e);
+                                        + "authenticated: " + e, e);
                             }
                         }
                     });
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/CredentialCryptoTests.java b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/CredentialCryptoTests.java
index 50aee3a..17f49f8 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/CredentialCryptoTests.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/biometrics/CredentialCryptoTests.java
@@ -128,7 +128,7 @@
             // Expected
             Log.d(TAG, "UserNotAuthenticated (expected)");
         } catch (Exception e) {
-            showToastAndLog("Unexpected exception: " + e);
+            showToastAndLog("Unexpected exception: " + e, e);
         }
 
         // Authenticate with credential
@@ -160,7 +160,7 @@
                     }
                     updateButton();
                 } catch (Exception e) {
-                    showToastAndLog("Unable to encrypt: " + e);
+                    showToastAndLog("Unable to encrypt: " + e, e);
                 }
             }
         });
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/OWNERS b/apps/CtsVerifier/src/com/android/cts/verifier/camera/OWNERS
index 8ebd7b8..d1d18b4 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/OWNERS
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 41727
-include platform/frameworks/av:/camera/OWNER
\ No newline at end of file
+include platform/frameworks/av:/camera/OWNERS
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsTestActivity.java
index cd75746..806d055 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsTestActivity.java
@@ -96,6 +96,7 @@
             add("scene3");
             add("scene4");
             add("scene5");
+            add("scene6");
             add("scene_change");
             add("sensor_fusion");
         }};
@@ -213,6 +214,10 @@
             add("test_lens_shading_and_color_uniformity");
         }};
 
+    private static final ArrayList<String> mScene6Tests = new ArrayList<String>() {{
+            add("test_zoom");
+        }};
+
     private static final ArrayList<String> mSceneChangeTests = new ArrayList<String>() {{
             add("test_scene_change");
         }};
@@ -235,6 +240,7 @@
             put("scene3",mScene3Tests);
             put("scene4",mScene4Tests);
             put("scene5",mScene5Tests);
+            put("scene6",mScene6Tests);
             put("scene_change",mSceneChangeTests);
             put("sensor_fusion",mSensorFusionTests);
         }};
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodHelperActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodHelperActivity.java
index a6a25e6..74d50a9 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodHelperActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodHelperActivity.java
@@ -19,6 +19,7 @@
 import static android.os.UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES;
 import static android.os.UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY;
 
+import android.Manifest;
 import android.app.KeyguardManager;
 import android.app.Notification;
 import android.app.NotificationChannel;
@@ -27,6 +28,7 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -34,6 +36,9 @@
 import android.provider.MediaStore;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 import androidx.core.content.FileProvider;
 import androidx.core.util.Pair;
 
@@ -53,7 +58,7 @@
  * Note: We have to use a test activity because cross-profile intents only work for activities.
  */
 public class ByodHelperActivity extends LocationListenerActivity
-        implements DialogCallback {
+        implements DialogCallback, ActivityCompat.OnRequestPermissionsResultCallback {
 
     static final String TAG = "ByodHelperActivity";
 
@@ -167,6 +172,11 @@
     private static final int NOTIFICATION_ID = 7;
     private static final String NOTIFICATION_CHANNEL_ID = TAG;
 
+    private static final int EXECUTE_IMAGE_CAPTURE_TEST = 1;
+    private static final int EXECUTE_VIDEO_CAPTURE_WITH_EXTRA_TEST = 2;
+    private static final int EXECUTE_VIDEO_CAPTURE_WITHOUT_EXTRA_TEST = 3;
+    private static final int EXECUTE_LOCATION_UPDATE_TEST = 4;
+
     private NotificationManager mNotificationManager;
     private Bundle mOriginalRestrictions;
 
@@ -274,40 +284,25 @@
                             IntentFiltersTestHelper.FLAG_INTENTS_FROM_MANAGED);
             setResult(intentFiltersSetForManagedIntents? RESULT_OK : RESULT_FAILED, null);
         } else if (action.equals(ACTION_CAPTURE_AND_CHECK_IMAGE)) {
-            // We need the camera permission to send the image capture intent.
-            grantCameraPermissionToSelf();
-            Intent captureImageIntent = getCaptureImageIntent();
-            Pair<File, Uri> pair = getTempUri("image.jpg");
-            mImageFile = pair.first;
-            mImageUri = pair.second;
-            captureImageIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
-            if (captureImageIntent.resolveActivity(getPackageManager()) != null) {
-                startActivityForResult(captureImageIntent, REQUEST_IMAGE_CAPTURE);
+            if (hasCameraPermission()) {
+                startCaptureImageIntent();
             } else {
-                Log.e(TAG, "Capture image intent could not be resolved in managed profile.");
-                showToast(R.string.provisioning_byod_capture_media_error);
-                finish();
+                requestCameraPermission(EXECUTE_IMAGE_CAPTURE_TEST);
             }
             return;
         } else if (action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITH_EXTRA_OUTPUT) ||
                 action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITHOUT_EXTRA_OUTPUT)) {
-            // We need the camera permission to send the video capture intent.
-            grantCameraPermissionToSelf();
-            Intent captureVideoIntent = getCaptureVideoIntent();
-            int videoCaptureRequestId;
+            final int testRequestCode;
             if (action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITH_EXTRA_OUTPUT)) {
-                mVideoUri = getTempUri("video.mp4").second;
-                captureVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mVideoUri);
-                videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITH_EXTRA_OUTPUT;
+                testRequestCode = EXECUTE_VIDEO_CAPTURE_WITH_EXTRA_TEST;
             } else {
-                videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITHOUT_EXTRA_OUTPUT;
+                testRequestCode = EXECUTE_VIDEO_CAPTURE_WITHOUT_EXTRA_TEST;
             }
-            if (captureVideoIntent.resolveActivity(getPackageManager()) != null) {
-                startActivityForResult(captureVideoIntent, videoCaptureRequestId);
+
+            if (hasCameraPermission()) {
+                startCaptureVideoActivity(testRequestCode);
             } else {
-                Log.e(TAG, "Capture video intent could not be resolved in managed profile.");
-                showToast(R.string.provisioning_byod_capture_media_error);
-                finish();
+                requestCameraPermission(testRequestCode);
             }
             return;
         } else if (action.equals(ACTION_CAPTURE_AND_CHECK_AUDIO)) {
@@ -356,7 +351,11 @@
                         DeviceAdminTestReceiver.getReceiverComponentName(), restriction);
             }
         } else if (action.equals(ACTION_BYOD_SET_LOCATION_AND_CHECK_UPDATES)) {
-            handleLocationAction();
+            if (hasLocationPermission()) {
+                handleLocationAction();
+            } else {
+                requestLocationPermission(EXECUTE_LOCATION_UPDATE_TEST);
+            }
             return;
         } else if (action.equals(ACTION_NOTIFICATION)) {
             showNotification(Notification.VISIBILITY_PUBLIC);
@@ -394,6 +393,40 @@
         finish();
     }
 
+    private void startCaptureVideoActivity(int testRequestCode) {
+        Intent captureVideoIntent = getCaptureVideoIntent();
+        int videoCaptureRequestId;
+        if (testRequestCode == EXECUTE_VIDEO_CAPTURE_WITH_EXTRA_TEST) {
+            mVideoUri = getTempUri("video.mp4").second;
+            captureVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mVideoUri);
+            videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITH_EXTRA_OUTPUT;
+        } else {
+            videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITHOUT_EXTRA_OUTPUT;
+        }
+        if (captureVideoIntent.resolveActivity(getPackageManager()) != null) {
+            startActivityForResult(captureVideoIntent, videoCaptureRequestId);
+        } else {
+            Log.e(TAG, "Capture video intent could not be resolved in managed profile.");
+            showToast(R.string.provisioning_byod_capture_media_error);
+            finish();
+        }
+    }
+
+    private void startCaptureImageIntent() {
+        Intent captureImageIntent = getCaptureImageIntent();
+        Pair<File, Uri> pair = getTempUri("image.jpg");
+        mImageFile = pair.first;
+        mImageUri = pair.second;
+        captureImageIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
+        if (captureImageIntent.resolveActivity(getPackageManager()) != null) {
+            startActivityForResult(captureImageIntent, REQUEST_IMAGE_CAPTURE);
+        } else {
+            Log.e(TAG, "Capture image intent could not be resolved in managed profile.");
+            showToast(R.string.provisioning_byod_capture_media_error);
+            finish();
+        }
+    }
+
     private void startInstallerActivity(String pathToApk) {
         // Start the installer activity until this activity is rendered to workaround a glitch.
         mMainThreadHandler.post(() -> {
@@ -552,10 +585,73 @@
         }
     }
 
-    private void grantCameraPermissionToSelf() {
-        mDevicePolicyManager.setPermissionGrantState(mAdminReceiverComponent, getPackageName(),
-                android.Manifest.permission.CAMERA,
-                DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
+    private boolean hasCameraPermission() {
+        return ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private void requestCameraPermission(int requestCode) {
+        ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.CAMERA},
+                requestCode);
+    }
+
+    private boolean hasLocationPermission() {
+        return ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private void requestLocationPermission(int requestCode) {
+        ActivityCompat.requestPermissions(this,
+                new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
+                requestCode);
+    }
+
+    /**
+     * Launch the right test based on the request code, after validating the right permission
+     * has been granted.
+     */
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+            @NonNull int[] grants) {
+        // Test that the right permission was granted.
+        switch(requestCode) {
+            case EXECUTE_IMAGE_CAPTURE_TEST:
+            case EXECUTE_VIDEO_CAPTURE_WITH_EXTRA_TEST:
+            case EXECUTE_VIDEO_CAPTURE_WITHOUT_EXTRA_TEST:
+                if (!permissions[0].equals(android.Manifest.permission.CAMERA)
+                        || grants[0] != PackageManager.PERMISSION_GRANTED) {
+                    Log.e(TAG, "The test needs camera permission.");
+                    showToast(R.string.provisioning_byod_capture_media_error);
+                    finish();
+                    return;
+                }
+                break;
+            case EXECUTE_LOCATION_UPDATE_TEST:
+                if (!permissions[0].equals(Manifest.permission.ACCESS_FINE_LOCATION)
+                        || grants[0] != PackageManager.PERMISSION_GRANTED) {
+                    Log.e(TAG, "The test needs location permission.");
+                    showToast(R.string.provisioning_byod_location_mode_enable_missing_permission);
+                    finish();
+                    return;
+                }
+                break;
+        }
+
+        // Execute the right test.
+        switch (requestCode) {
+            case EXECUTE_IMAGE_CAPTURE_TEST:
+                startCaptureImageIntent();
+                break;
+            case EXECUTE_VIDEO_CAPTURE_WITH_EXTRA_TEST:
+            case EXECUTE_VIDEO_CAPTURE_WITHOUT_EXTRA_TEST:
+                startCaptureVideoActivity(requestCode);
+                break;
+            case EXECUTE_LOCATION_UPDATE_TEST:
+                handleLocationAction();
+                break;
+            default:
+                Log.e(TAG, "Unknown action.");
+                finish();
+        }
     }
 
     private void sendIntentInsideChooser(Intent toSend) {
@@ -566,21 +662,6 @@
     }
 
     @Override
-    protected void handleLocationAction() {
-        // Grant the locaiton permission to the provile owner on cts-verifier.
-        // The permission state does not have to be reverted at the end since the profile onwer
-        // is going to be deleted when BYOD tests ends.
-        grantLocationPermissionToSelf();
-        super.handleLocationAction();
-    }
-
-    private void grantLocationPermissionToSelf() {
-        mDevicePolicyManager.setPermissionGrantState(mAdminReceiverComponent, getPackageName(),
-                android.Manifest.permission.ACCESS_FINE_LOCATION,
-                DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
-    }
-
-    @Override
     public void onDialogClose() {
         finish();
     }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/net/MultiNetworkConnectivityTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/net/MultiNetworkConnectivityTestActivity.java
index dcc4f37..f1deb8d 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/net/MultiNetworkConnectivityTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/net/MultiNetworkConnectivityTestActivity.java
@@ -554,7 +554,7 @@
         final NetworkCallback mWifiNetworkCallback = new NetworkCallback() {
             @Override
             public void onAvailable(Network network) {
-                Log.i(TAG, "Wifi network available " + network.getNetId());
+                Log.i(TAG, "Wifi network available " + network);
                 stopTimerDisplayIfRequested();
                 mMultiNetworkValidator.onWifiNetworkConnected(network);
             }
@@ -569,7 +569,7 @@
         final NetworkCallback mCellularNetworkCallback = new NetworkCallback() {
             @Override
             public void onAvailable(Network network) {
-                Log.i(TAG, "Cellular network available " + network.getNetId());
+                Log.i(TAG, "Cellular network available " + network);
                 stopTimerDisplayIfRequested();
                 mMultiNetworkValidator.onCellularNetworkConnected(network);
             }
@@ -761,7 +761,7 @@
             Network activeNetwork = mConnectivityManager.getActiveNetwork();
             NetworkCapabilities activeNetworkCapabilities =
                     mConnectivityManager.getNetworkCapabilities(activeNetwork);
-            Log.i(TAG, "Network capabilities for " + activeNetwork.getNetId() + " "
+            Log.i(TAG, "Network capabilities for " + activeNetwork + " "
                     + activeNetworkCapabilities.hasCapability(NET_CAPABILITY_INTERNET));
             return activeNetworkCapabilities.hasTransport(transport)
                     && activeNetworkCapabilities.hasCapability(NET_CAPABILITY_INTERNET);
@@ -774,7 +774,7 @@
         boolean isNetworkConnected(Network network) {
             NetworkInfo networkInfo = mConnectivityManager.getNetworkInfo(network);
             boolean status = networkInfo != null && networkInfo.isConnectedOrConnecting();
-            Log.i(TAG, "Network connection status " + network.getNetId() + " " + status);
+            Log.i(TAG, "Network connection status " + network + " " + status);
             return status;
         }
 
@@ -786,7 +786,7 @@
 
         /** Called when a wifi network is connected and available */
         void onWifiNetworkConnected(Network network) {
-            Log.i(TAG, "Wifi network connected " + network.getNetId());
+            Log.i(TAG, "Wifi network connected " + network);
         }
 
         void onWifiNetworkUnavailable() {
diff --git a/apps/ForceStopHelperApp/AndroidManifest.xml b/apps/ForceStopHelperApp/AndroidManifest.xml
index 2bd9b0d..5f3ba67 100644
--- a/apps/ForceStopHelperApp/AndroidManifest.xml
+++ b/apps/ForceStopHelperApp/AndroidManifest.xml
@@ -18,6 +18,7 @@
           package="com.android.cts.forcestophelper" >
 
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
 
     <application android:label="Force stop helper app">
         <activity android:name=".RecentTaskActivity"
diff --git a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DeviceOwnerHelper.java b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DeviceOwnerHelper.java
index 8cab723..0e7ce36 100644
--- a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DeviceOwnerHelper.java
+++ b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DeviceOwnerHelper.java
@@ -142,6 +142,7 @@
                     return clazz.getDeclaredMethod(methodName,
                             new Class<?>[] { int.class, CharSequence.class });
                 case "setDeviceOwnerLockScreenInfo":
+                case "setOrganizationName":
                     return clazz.getDeclaredMethod(methodName,
                             new Class<?>[] { ComponentName.class, CharSequence.class });
             }
diff --git a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DevicePolicyManagerWrapper.java b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DevicePolicyManagerWrapper.java
index c1de82d..484a9e4 100644
--- a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DevicePolicyManagerWrapper.java
+++ b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/DevicePolicyManagerWrapper.java
@@ -156,6 +156,22 @@
             // Used by SuspendPackageTest
             doAnswer(answer).when(spy).getPolicyExemptApps();
 
+            // Used by PrivacyDeviceOwnerTest
+            doAnswer(answer).when(spy).getDeviceOwner();
+
+            // Used by AdminActionBookkeepingTest
+            doAnswer(answer).when(spy).getDeviceOwnerOrganizationName();
+            doAnswer(answer).when(spy).setOrganizationName(any(), any());
+            doAnswer(answer).when(spy).retrieveSecurityLogs(any());
+            doAnswer(answer).when(spy).getLastSecurityLogRetrievalTime();
+            doAnswer(answer).when(spy).getLastBugReportRequestTime();
+            doAnswer(answer).when(spy).isDeviceManaged();
+            doAnswer(answer).when(spy).isCurrentInputMethodSetByOwner();
+            doAnswer(answer).when(spy).installCaCert(any(), any());
+            doAnswer(answer).when(spy).getOwnerInstalledCaCerts(any());
+            doAnswer(answer).when(spy).retrievePreRebootSecurityLogs(any());
+            doAnswer(answer).when(spy).getLastNetworkLogRetrievalTime();
+
             // TODO(b/176993670): add more methods below as tests are converted
         } catch (Exception e) {
             // Should never happen, but needs to be catch as some methods declare checked exceptions
diff --git a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/TestAppSystemServiceFactory.java b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/TestAppSystemServiceFactory.java
index 30071d15..f5c618b 100644
--- a/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/TestAppSystemServiceFactory.java
+++ b/common/device-side/bedstead/dpmwrapper/src/main/java/com/android/bedstead/dpmwrapper/TestAppSystemServiceFactory.java
@@ -219,7 +219,7 @@
                     != PackageManager.PERMISSION_GRANTED) {
                 fail("Package " + context.getPackageName() + " doesn't have "
                         + INTERACT_ACROSS_USERS + " - did you add it to the manifest and called "
-                        + "grantDpmWrapper() in the host-side test?");
+                        + "grantDpmWrapper() (for user " + userId + ") in the host-side test?");
             }
             context.sendOrderedBroadcastAsUser(intent,
                     UserHandle.SYSTEM, /* permission= */ null, myReceiver, sHandler,
diff --git a/common/device-side/bedstead/eventlib/lint-baseline.xml b/common/device-side/bedstead/eventlib/lint-baseline.xml
new file mode 100644
index 0000000..467bd49
--- /dev/null
+++ b/common/device-side/bedstead/eventlib/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 27): `android.app.AppComponentFactory`"
+        errorLine1="public class EventLibAppComponentFactory extends AppComponentFactory {"
+        errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/eventlib/src/main/java/com/android/eventlib/premade/EventLibAppComponentFactory.java"
+            line="28"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level R (current min is 27): `android.content.Context#bindServiceAsUser`"
+        errorLine1="                didBind.set(sContext.bindServiceAsUser("
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/eventlib/src/main/java/com/android/eventlib/RemoteEventQuerier.java"
+            line="197"
+            column="38"/>
+    </issue>
+
+</issues>
diff --git a/common/device-side/bedstead/harrier/Android.bp b/common/device-side/bedstead/harrier/Android.bp
index 975d63e..a99ec9c 100644
--- a/common/device-side/bedstead/harrier/Android.bp
+++ b/common/device-side/bedstead/harrier/Android.bp
@@ -26,7 +26,8 @@
 
     static_libs: [
         "Nene",
-        "compatibility-device-util-axt"
+        "compatibility-device-util-axt",
+        "androidx.test.ext.junit",
     ]
 }
 
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/BedsteadJUnit4.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/BedsteadJUnit4.java
new file mode 100644
index 0000000..07d5314
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/BedsteadJUnit4.java
@@ -0,0 +1,331 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier;
+
+import androidx.annotation.Nullable;
+
+import com.android.bedstead.harrier.annotations.enterprise.EnterprisePolicy;
+import com.android.bedstead.harrier.annotations.enterprise.NegativePolicyTest;
+import com.android.bedstead.harrier.annotations.enterprise.PositivePolicyTest;
+import com.android.bedstead.harrier.annotations.meta.ParameterizedAnnotation;
+import com.android.bedstead.harrier.annotations.parameterized.IncludeNone;
+
+import com.google.common.base.Objects;
+
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+import org.junit.runners.model.TestClass;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * A JUnit test runner for use with Bedstead.
+ */
+public final class BedsteadJUnit4 extends BlockJUnit4ClassRunner {
+
+    private static final String BEDSTEAD_PACKAGE_NAME = "com.android.bedstead";
+
+    // These are annotations which are not included indirectly
+    private static final Set<String> sIgnoredAnnotationPackages = new HashSet<>();
+    static {
+        sIgnoredAnnotationPackages.add("java.lang.annotation");
+        sIgnoredAnnotationPackages.add("com.android.bedstead.harrier.annotations.meta");
+    }
+
+    /**
+     * {@link FrameworkMethod} subclass which allows modifying the test name and annotations.
+     */
+    public static final class BedsteadFrameworkMethod extends FrameworkMethod {
+
+        private final Class<? extends Annotation> mParameterizedAnnotation;
+        private final Map<Class<? extends Annotation>, Annotation> mAnnotationsMap =
+                new HashMap<>();
+        private Annotation[] mAnnotations;
+
+        public BedsteadFrameworkMethod(Method method) {
+            this(method, /* parameterizedAnnotation= */ null);
+        }
+
+        public BedsteadFrameworkMethod(Method method, Annotation parameterizedAnnotation) {
+            super(method);
+            this.mParameterizedAnnotation = (parameterizedAnnotation == null) ? null
+                    : parameterizedAnnotation.annotationType();
+
+            calculateAnnotations();
+        }
+
+        private void calculateAnnotations() {
+            List<Annotation> annotations = new ArrayList<>(
+                    Arrays.asList(getMethod().getAnnotations()));
+
+            parseEnterpriseAnnotations(annotations);
+
+            resolveRecursiveAnnotations(annotations, mParameterizedAnnotation);
+
+            this.mAnnotations = annotations.toArray(new Annotation[0]);
+            for (Annotation annotation : annotations) {
+                mAnnotationsMap.put(annotation.annotationType(), annotation);
+            }
+        }
+
+        @Override
+        public String getName() {
+            if (mParameterizedAnnotation == null) {
+                return super.getName();
+            }
+            return super.getName() + "[" + mParameterizedAnnotation.getSimpleName() + "]";
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (!super.equals(obj)) {
+                return false;
+            }
+
+            if (!(obj instanceof BedsteadFrameworkMethod)) {
+                return false;
+            }
+
+            BedsteadFrameworkMethod other = (BedsteadFrameworkMethod) obj;
+
+            return Objects.equal(mParameterizedAnnotation, other.mParameterizedAnnotation);
+        }
+
+        @Override
+        public Annotation[] getAnnotations() {
+            return mAnnotations;
+        }
+
+        @Override
+        public <T extends Annotation> T getAnnotation(Class<T> annotationType) {
+            return (T) mAnnotationsMap.get(annotationType);
+        }
+    }
+
+    /**
+     * Resolve annotations recursively.
+     *
+     * @param parameterizedAnnotation The class of the parameterized annotation to expand, if any
+     */
+    public static void resolveRecursiveAnnotations(List<Annotation> annotations,
+            @Nullable Class<? extends Annotation> parameterizedAnnotation) {
+        int index = 0;
+        while (index < annotations.size()) {
+            Annotation annotation = annotations.get(index);
+            annotations.remove(index);
+            List<Annotation> replacementAnnotations =
+                    getReplacementAnnotations(annotation, parameterizedAnnotation);
+            annotations.addAll(index, replacementAnnotations);
+            index += replacementAnnotations.size();
+        }
+    }
+
+    private static List<Annotation> getReplacementAnnotations(Annotation annotation,
+            @Nullable Class<? extends Annotation> parameterizedAnnotation) {
+        List<Annotation> replacementAnnotations = new ArrayList<>();
+
+        if (annotation.annotationType().getAnnotation(ParameterizedAnnotation.class) != null
+                && !annotation.annotationType().equals(parameterizedAnnotation)) {
+            return replacementAnnotations;
+        }
+
+        for (Annotation indirectAnnotation : annotation.annotationType().getAnnotations()) {
+            if (sIgnoredAnnotationPackages.contains(
+                    indirectAnnotation.annotationType().getPackage().getName())) {
+                continue;
+            }
+
+            replacementAnnotations.addAll(getReplacementAnnotations(
+                    indirectAnnotation, parameterizedAnnotation));
+        }
+
+        replacementAnnotations.add(annotation);
+
+        return replacementAnnotations;
+    }
+
+    public BedsteadJUnit4(Class<?> testClass) throws InitializationError {
+        super(testClass);
+    }
+
+    @Override
+    protected List<FrameworkMethod> computeTestMethods() {
+        TestClass testClass = getTestClass();
+
+        List<FrameworkMethod> basicTests = testClass.getAnnotatedMethods(Test.class);
+        List<FrameworkMethod> modifiedTests = new ArrayList<>();
+
+        for (FrameworkMethod m : basicTests) {
+            Set<Annotation> parameterizedAnnotations = getParameterizedAnnotations(m);
+
+            if (parameterizedAnnotations.isEmpty()) {
+                // Unparameterized, just add the original
+                modifiedTests.add(new BedsteadFrameworkMethod(m.getMethod()));
+            }
+
+            for (Annotation annotation : parameterizedAnnotations) {
+                if (annotation.annotationType().equals(IncludeNone.class)) {
+                    // Special case - does not generate a run
+                    continue;
+                }
+                modifiedTests.add(
+                        new BedsteadFrameworkMethod(m.getMethod(), annotation));
+            }
+        }
+
+        sortMethodsByBedsteadAnnotations(modifiedTests);
+
+        return modifiedTests;
+    }
+
+    /**
+     * Sort methods so that methods with identical bedstead annotations are together.
+     *
+     * <p>This will also ensure that all tests methods which are not annotated for bedstead will
+     * run before any tests which are annotated.
+     */
+    private void sortMethodsByBedsteadAnnotations(List<FrameworkMethod> modifiedTests) {
+        List<Annotation> bedsteadAnnotationsSortedByMostCommon =
+                bedsteadAnnotationsSortedByMostCommon(modifiedTests);
+
+        modifiedTests.sort((o1, o2) -> {
+            for (Annotation annotation : bedsteadAnnotationsSortedByMostCommon) {
+                boolean o1HasAnnotation = o1.getAnnotation(annotation.annotationType()) != null;
+                boolean o2HasAnnotation = o2.getAnnotation(annotation.annotationType()) != null;
+
+                if (o1HasAnnotation && !o2HasAnnotation) {
+                    // o1 goes to the end
+                    return 1;
+                } else if (o2HasAnnotation && !o1HasAnnotation) {
+                    return -1;
+                }
+            }
+            return 0;
+        });
+    }
+
+    private List<Annotation> bedsteadAnnotationsSortedByMostCommon(List<FrameworkMethod> methods) {
+        Map<Annotation, Integer> annotationCounts = countAnnotations(methods);
+        List<Annotation> annotations = new ArrayList<>(annotationCounts.keySet());
+
+        annotations.removeIf(
+                annotation ->
+                        !annotation.getClass().getCanonicalName().contains(BEDSTEAD_PACKAGE_NAME));
+
+        annotations.sort(Comparator.comparingInt(annotationCounts::get));
+        Collections.reverse(annotations);
+
+        return annotations;
+    }
+
+    private Map<Annotation, Integer> countAnnotations(List<FrameworkMethod> methods) {
+        Map<Annotation, Integer> annotationCounts = new HashMap<>();
+
+        for (FrameworkMethod method : methods) {
+            for (Annotation annotation : method.getAnnotations()) {
+                annotationCounts.put(
+                        annotation, annotationCounts.getOrDefault(annotation, 0) + 1);
+            }
+        }
+
+        return annotationCounts;
+    }
+
+    private Set<Annotation> getParameterizedAnnotations(FrameworkMethod method) {
+        Set<Annotation> parameterizedAnnotations = new HashSet<>();
+        List<Annotation> annotations = new ArrayList<>(Arrays.asList(method.getAnnotations()));
+
+        // TODO(scottjonathan): We're doing this twice... does it matter?
+        parseEnterpriseAnnotations(annotations);
+
+        for (Annotation annotation : annotations) {
+            if (annotation.annotationType().getAnnotation(ParameterizedAnnotation.class) != null) {
+                parameterizedAnnotations.add(annotation);
+            }
+        }
+
+        return parameterizedAnnotations;
+    }
+
+    /**
+     * Parse enterprise-specific annotations.
+     *
+     * <p>To be used before general annotation processing.
+     */
+    private static void parseEnterpriseAnnotations(List<Annotation> annotations) {
+        int index = 0;
+        while (index < annotations.size()) {
+            Annotation annotation = annotations.get(index);
+            if (annotation instanceof PositivePolicyTest) {
+                annotations.remove(index);
+                Class<?> policy = ((PositivePolicyTest) annotation).policy();
+
+                EnterprisePolicy enterprisePolicy =
+                        policy.getAnnotation(EnterprisePolicy.class);
+                List<Annotation> replacementAnnotations =
+                        Policy.positiveStates(enterprisePolicy);
+
+                annotations.addAll(index, replacementAnnotations);
+                index += replacementAnnotations.size();
+            } else if (annotation instanceof NegativePolicyTest) {
+                annotations.remove(index);
+                Class<?> policy = ((NegativePolicyTest) annotation).policy();
+
+                EnterprisePolicy enterprisePolicy =
+                        policy.getAnnotation(EnterprisePolicy.class);
+                List<Annotation> replacementAnnotations =
+                        Policy.negativeStates(enterprisePolicy);
+
+                annotations.addAll(index, replacementAnnotations);
+                index += replacementAnnotations.size();
+            } else {
+                index++;
+            }
+        }
+    }
+
+    @Override
+    protected List<TestRule> classRules() {
+        List<TestRule> rules = super.classRules();
+
+        for (TestRule rule : rules) {
+            if (rule instanceof DeviceState) {
+                DeviceState deviceState = (DeviceState) rule;
+
+                deviceState.setSkipTestTeardown(true);
+                deviceState.setUsingBedsteadJUnit4(true);
+
+                break;
+            }
+        }
+
+        return rules;
+    }
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/DeviceState.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/DeviceState.java
index 61be221..15c50e8 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/DeviceState.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/DeviceState.java
@@ -33,17 +33,16 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.platform.app.InstrumentationRegistry;
 
-import com.android.bedstead.harrier.annotations.EnsureHasNoSecondaryUser;
-import com.android.bedstead.harrier.annotations.EnsureHasSecondaryUser;
 import com.android.bedstead.harrier.annotations.FailureMode;
 import com.android.bedstead.harrier.annotations.RequireFeatures;
-import com.android.bedstead.harrier.annotations.RequireRunOnPrimaryUser;
-import com.android.bedstead.harrier.annotations.RequireRunOnSecondaryUser;
-import com.android.bedstead.harrier.annotations.RequireRunOnTvProfile;
-import com.android.bedstead.harrier.annotations.RequireRunOnWorkProfile;
 import com.android.bedstead.harrier.annotations.RequireUserSupported;
 import com.android.bedstead.harrier.annotations.meta.EnsureHasNoProfileAnnotation;
+import com.android.bedstead.harrier.annotations.meta.EnsureHasNoUserAnnotation;
 import com.android.bedstead.harrier.annotations.meta.EnsureHasProfileAnnotation;
+import com.android.bedstead.harrier.annotations.meta.EnsureHasUserAnnotation;
+import com.android.bedstead.harrier.annotations.meta.ParameterizedAnnotation;
+import com.android.bedstead.harrier.annotations.meta.RequireRunOnUserAnnotation;
+import com.android.bedstead.harrier.annotations.meta.RequiresBedsteadJUnit4;
 import com.android.bedstead.nene.TestApis;
 import com.android.bedstead.nene.exceptions.AdbException;
 import com.android.bedstead.nene.exceptions.NeneException;
@@ -53,6 +52,8 @@
 import com.android.bedstead.nene.utils.ShellCommand;
 import com.android.compatibility.common.util.BlockingBroadcastReceiver;
 
+import junit.framework.AssertionFailedError;
+
 import org.junit.rules.TestRule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
@@ -82,9 +83,12 @@
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private static final TestApis sTestApis = new TestApis();
     private static final String SKIP_TEST_TEARDOWN_KEY = "skip-test-teardown";
+    private static final String SKIP_CLASS_TEARDOWN_KEY = "skip-class-teardown";
     private static final String SKIP_TESTS_REASON_KEY = "skip-tests-reason";
-    private final boolean mSkipTestTeardown;
+    private boolean mSkipTestTeardown;
+    private boolean mSkipClassTeardown;
     private boolean mSkipTests;
+    private boolean mUsingBedsteadJUnit4 = false;
     private String mSkipTestsReason;
 
     private static final String TV_PROFILE_TYPE_NAME = "com.android.tv.profile";
@@ -93,10 +97,20 @@
         Bundle arguments = InstrumentationRegistry.getArguments();
         mSkipTestTeardown = Boolean.parseBoolean(
                 arguments.getString(SKIP_TEST_TEARDOWN_KEY, "false"));
+        mSkipClassTeardown = Boolean.parseBoolean(
+                arguments.getString(SKIP_CLASS_TEARDOWN_KEY, "false"));
         mSkipTestsReason = arguments.getString(SKIP_TESTS_REASON_KEY, "");
         mSkipTests = !mSkipTestsReason.isEmpty();
     }
 
+    void setSkipTestTeardown(boolean skipTestTeardown) {
+        mSkipTestTeardown = skipTestTeardown;
+    }
+
+    void setUsingBedsteadJUnit4(boolean usingBedsteadJUnit4) {
+        mUsingBedsteadJUnit4 = usingBedsteadJUnit4;
+    }
+
     @Override public Statement apply(final Statement base,
             final Description description) {
 
@@ -115,7 +129,7 @@
 
                 assumeFalse(mSkipTestsReason, mSkipTests);
 
-                for (Annotation annotation : description.getAnnotations()) {
+                for (Annotation annotation : getAnnotations(description)) {
                     Class<? extends Annotation> annotationType = annotation.annotationType();
 
                     EnsureHasNoProfileAnnotation ensureHasNoProfileAnnotation =
@@ -129,59 +143,52 @@
                     EnsureHasProfileAnnotation ensureHasProfileAnnotation =
                             annotationType.getAnnotation(EnsureHasProfileAnnotation.class);
                     if (ensureHasProfileAnnotation != null) {
-                        UserType userType = (UserType) annotation.annotationType()
+                        UserType forUser = (UserType) annotation.annotationType()
                                 .getMethod("forUser").invoke(annotation);
                         boolean installTestApp = (boolean) annotation.annotationType()
                                 .getMethod("installTestApp").invoke(annotation);
                             ensureHasProfile(
-                                    ensureHasProfileAnnotation.value(), installTestApp, userType);
+                                    ensureHasProfileAnnotation.value(), installTestApp, forUser);
                     }
-                }
-                if (description.getAnnotation(RequireRunOnPrimaryUser.class) != null) {
-                    assumeTrue("@RequireRunOnPrimaryUser tests only run on primary user",
-                            isRunningOnPrimaryUser());
-                }
-                if (description.getAnnotation(RequireRunOnWorkProfile.class) != null) {
-                    assumeTrue("@RequireRunOnWorkProfile tests only run on work profile",
-                            isRunningOnWorkProfile());
-                }
-                if (description.getAnnotation(RequireRunOnSecondaryUser.class) != null) {
-                    assumeTrue("@RequireRunOnSecondaryUser tests only run on secondary user",
-                            isRunningOnSecondaryUser());
-                }
-                if (description.getAnnotation(RequireRunOnTvProfile.class) != null) {
-                    assumeTrue("@RequireRunOnTvProfile tests only run on TV profile",
-                            isRunningOnTvProfile());
-                }
-                EnsureHasSecondaryUser ensureHasSecondaryUserAnnotation =
-                        description.getAnnotation(EnsureHasSecondaryUser.class);
-                if (ensureHasSecondaryUserAnnotation != null) {
-                    ensureHasUser(
-                            SECONDARY_USER_TYPE_NAME,
-                            /* installTestApp= */ ensureHasSecondaryUserAnnotation.installTestApp()
-                    );
-                }
-                EnsureHasNoSecondaryUser ensureHasNoSecondaryUserAnnotation =
-                        description.getAnnotation(EnsureHasNoSecondaryUser.class);
-                if (ensureHasNoSecondaryUserAnnotation != null) {
-                    ensureHasNoUser(SECONDARY_USER_TYPE_NAME);
-                }
-                RequireFeatures requireFeaturesAnnotation =
-                        description.getAnnotation(RequireFeatures.class);
-                if (requireFeaturesAnnotation != null) {
-                    for (String feature: requireFeaturesAnnotation.value()) {
-                        requireFeature(feature, requireFeaturesAnnotation.failureMode());
-                    }
-                }
-                RequireUserSupported requireUserSupportedAnnotation =
-                        description.getAnnotation(RequireUserSupported.class);
-                if (requireUserSupportedAnnotation != null) {
-                    for (String userType: requireUserSupportedAnnotation.value()) {
-                        requireUserSupported(
-                                userType, requireUserSupportedAnnotation.failureMode());
-                    }
-                }
 
+
+                    EnsureHasNoUserAnnotation ensureHasNoUserAnnotation =
+                            annotationType.getAnnotation(EnsureHasNoUserAnnotation.class);
+                    if (ensureHasNoUserAnnotation != null) {
+                        ensureHasNoUser(ensureHasNoUserAnnotation.value());
+                    }
+
+                    EnsureHasUserAnnotation ensureHasUserAnnotation =
+                            annotationType.getAnnotation(EnsureHasUserAnnotation.class);
+                    if (ensureHasUserAnnotation != null) {
+                        boolean installTestApp = (boolean) annotation.getClass()
+                                .getMethod("installTestApp").invoke(annotation);
+                        ensureHasUser(ensureHasUserAnnotation.value(), installTestApp);
+                    }
+
+                    RequireRunOnUserAnnotation requireRunOnUserAnnotation =
+                            annotationType.getAnnotation(RequireRunOnUserAnnotation.class);
+                    if (requireRunOnUserAnnotation != null) {
+                        requireRunOnUser(requireRunOnUserAnnotation.value());
+                    }
+
+                    if (annotation instanceof RequireFeatures) {
+                        RequireFeatures requireFeaturesAnnotation = (RequireFeatures) annotation;
+                        for (String feature: requireFeaturesAnnotation.value()) {
+                            requireFeature(feature, requireFeaturesAnnotation.failureMode());
+                        }
+                    }
+
+                    if (annotation instanceof RequireUserSupported) {
+                        RequireUserSupported requireUserSupportedAnnotation =
+                                (RequireUserSupported) annotation;
+                        for (String userType: requireUserSupportedAnnotation.value()) {
+                            requireUserSupported(
+                                    userType, requireUserSupportedAnnotation.failureMode());
+                        }
+                    }
+
+                }
                 Log.d(LOG_TAG,
                         "Finished preparing state for test " + description.getMethodName());
 
@@ -200,8 +207,53 @@
             }};
     }
 
+    private Collection<Annotation> getAnnotations(Description description) {
+        if (mUsingBedsteadJUnit4) {
+            // The annotations are already exploded
+            return description.getAnnotations();
+        }
+
+        // Otherwise we should build a new collection by recursively gathering annotations
+        // if we find any which don't work without the runner we should error and fail the test
+        List<Annotation> annotations = new ArrayList<>(description.getAnnotations());
+        checkAnnotations(annotations);
+
+        BedsteadJUnit4.resolveRecursiveAnnotations(annotations,
+                /* parameterizedAnnotation= */ null);
+
+        checkAnnotations(annotations);
+
+        return annotations;
+    }
+
+    private void checkAnnotations(Collection<Annotation> annotations) {
+        for (Annotation annotation : annotations) {
+            if (annotation.annotationType().getAnnotation(RequiresBedsteadJUnit4.class) != null
+                    || annotation.annotationType().getAnnotation(
+                            ParameterizedAnnotation.class) != null) {
+                throw new AssertionFailedError("Test is annotated "
+                        + annotation.annotationType().getSimpleName()
+                        + " which requires using the BedsteadJUnit4 test runner");
+            }
+        }
+    }
+
     private Statement applySuite(final Statement base, final Description description) {
-        return base;
+        return new Statement() {
+            @Override
+            public void evaluate() throws Throwable {
+                base.evaluate();
+
+                if (!mSkipClassTeardown) {
+                    teardownShareableState();
+                }
+            }
+        };
+    }
+
+    private void requireRunOnUser(String userType) {
+        assumeTrue("This test only runs on users of type " + userType,
+                isRunningOnUser(userType));
     }
 
     private void requireFeature(String feature, FailureMode failureMode) {
@@ -316,9 +368,9 @@
         return mProfiles.get(userType).get(forUser);
     }
 
-    private boolean isRunningOnWorkProfile() {
+    private boolean isRunningOnUser(String userType) {
         return sTestApis.users().instrumented()
-                .resolve().type().name().equals(MANAGED_PROFILE_TYPE_NAME);
+                .resolve().type().name().equals(userType);
     }
 
     /**
@@ -357,20 +409,6 @@
         return profile(TV_PROFILE_TYPE_NAME, forUser);
     }
 
-    public boolean isRunningOnTvProfile() {
-        return sTestApis.users().instrumented().resolve()
-                .type().name().equals(TV_PROFILE_TYPE_NAME);
-    }
-
-    public boolean isRunningOnPrimaryUser() {
-        return sTestApis.users().instrumented().resolve().isPrimary();
-    }
-
-    public boolean isRunningOnSecondaryUser() {
-        return sTestApis.users().instrumented().resolve()
-                .type().name().equals(SECONDARY_USER_TYPE_NAME);
-    }
-
     /**
      * Get the user ID of the first human user on the device.
      *
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/Policy.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/Policy.java
new file mode 100644
index 0000000..3496f86
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/Policy.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier;
+
+import com.android.bedstead.harrier.annotations.enterprise.EnterprisePolicy;
+import com.android.bedstead.harrier.annotations.parameterized.IncludeNone;
+import com.android.bedstead.harrier.annotations.parameterized.IncludeRunOnDeviceOwnerUser;
+import com.android.bedstead.harrier.annotations.parameterized.IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Utility class for enterprise policy tests.
+ */
+@IncludeNone
+@IncludeRunOnDeviceOwnerUser
+@IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser
+public final class Policy {
+
+    private Policy() {
+
+    }
+
+    private static final IncludeNone INCLUDE_NONE_ANNOTATION =
+            Policy.class.getAnnotation(IncludeNone.class);
+    private static final IncludeRunOnDeviceOwnerUser INCLUDE_RUN_ON_DEVICE_OWNER_USER =
+            Policy.class.getAnnotation(IncludeRunOnDeviceOwnerUser.class);
+    private static final IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser
+            INCLUDE_RUN_ON_NON_AFFILIATED_DEVICE_OWNER_SECONDARY_USER =
+            Policy.class.getAnnotation(IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser.class);
+
+    /**
+     * Get positive state annotations for the given policy.
+     *
+     * <p>These are states which should be run where the policy is able to be applied.
+     */
+    public static List<Annotation> positiveStates(EnterprisePolicy enterprisePolicy) {
+        List<Annotation> annotations = new ArrayList<>();
+
+        annotations.add(INCLUDE_RUN_ON_DEVICE_OWNER_USER);
+        annotations.add(INCLUDE_RUN_ON_NON_AFFILIATED_DEVICE_OWNER_SECONDARY_USER);
+
+        return annotations;
+    }
+
+    /**
+     * Get negative state annotations for the given policy.
+     *
+     * <p>These are states which should be run where the policy is not able to be applied.
+     */
+    public static List<Annotation> negativeStates(EnterprisePolicy enterprisePolicy) {
+        List<Annotation> annotations = new ArrayList<>();
+
+        annotations.add(INCLUDE_NONE_ANNOTATION);
+
+        return annotations;
+    }
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasNoSecondaryUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasNoSecondaryUser.java
index 22a646e..e66a126 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasNoSecondaryUser.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasNoSecondaryUser.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.EnsureHasNoUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -33,5 +34,6 @@
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
+@EnsureHasNoUserAnnotation("android.os.usertype.full.SECONDARY")
 public @interface EnsureHasNoSecondaryUser {
 }
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasSecondaryUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasSecondaryUser.java
index 9419a48..3e58efc 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasSecondaryUser.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/EnsureHasSecondaryUser.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.EnsureHasUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -35,6 +36,7 @@
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
+@EnsureHasUserAnnotation("android.os.usertype.full.SECONDARY")
 public @interface EnsureHasSecondaryUser {
     /** Whether the test app should be installed in the secondary user. */
     boolean installTestApp() default true;
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnPrimaryUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnPrimaryUser.java
index c30452e..875f1e3 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnPrimaryUser.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnPrimaryUser.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.RequireRunOnUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -31,7 +32,8 @@
  * <p>Optionally, you can guarantee that these methods do not run outside of the primary
  * user by using {@link DeviceState}.
  */
-@Target(ElementType.METHOD)
+@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
 @Retention(RetentionPolicy.RUNTIME)
+@RequireRunOnUserAnnotation("android.os.usertype.full.SYSTEM")
 public @interface RequireRunOnPrimaryUser {
 }
\ No newline at end of file
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnSecondaryUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnSecondaryUser.java
index 6205df9..9225e04 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnSecondaryUser.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnSecondaryUser.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.RequireRunOnUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -36,7 +37,8 @@
  * annotated {@link Postsubmit} until they are shown to meet the multi-user presubmit
  * requirements.
  */
-@Target(ElementType.METHOD)
+@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
 @Retention(RetentionPolicy.RUNTIME)
+@RequireRunOnUserAnnotation("android.os.usertype.full.SECONDARY")
 public @interface RequireRunOnSecondaryUser {
 }
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnTvProfile.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnTvProfile.java
index 7a4f4cf..9e20a9f 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnTvProfile.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnTvProfile.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.RequireRunOnUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -34,5 +35,6 @@
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
+@RequireRunOnUserAnnotation("com.android.tv.profile")
 public @interface RequireRunOnTvProfile {
 }
\ No newline at end of file
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnWorkProfile.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnWorkProfile.java
index 70ddc97..31144df 100644
--- a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnWorkProfile.java
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/RequireRunOnWorkProfile.java
@@ -17,6 +17,7 @@
 package com.android.bedstead.harrier.annotations;
 
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.meta.RequireRunOnUserAnnotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -37,5 +38,6 @@
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
+@RequireRunOnUserAnnotation("android.os.usertype.profile.MANAGED")
 public @interface RequireRunOnWorkProfile {
 }
\ No newline at end of file
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/EnterprisePolicy.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/EnterprisePolicy.java
new file mode 100644
index 0000000..127020b
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/EnterprisePolicy.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.enterprise;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate an enterprise policy for use with {@link NegativePolicyTest} and
+ * {@link PositivePolicyTest}.
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EnterprisePolicy {
+    enum DeviceOwnerControl {
+        /** A policy that can be applied by a Device Owner to all users on the device. */
+        GLOBAL,
+        /** A policy that can be applied by a Device Owner to only the Device Owner's user. */
+        USER,
+        /** A policy that cannot be applied by a Device Owner. */
+        NO
+    }
+
+    enum ProfileOwnerControl {
+        /** A policy that can be applied by a Profile Owner to the profile itself and its parent. */
+        PARENT,
+        /**
+         * A policy that can be applied by a Profile Owner to the profile itself, and to the
+         * parent if it is a COPE profile.
+         */
+        COPE_PARENT,
+        /** A policy that can be applied by a Profile Owner to the profile itself. */
+        PROFILE,
+        /** A policy that cannot be applied by a Profile Owner. */
+        NO
+    }
+
+    DeviceOwnerControl deviceOwner();
+    ProfileOwnerControl profileOwner();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/NegativePolicyTest.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/NegativePolicyTest.java
new file mode 100644
index 0000000..c5a9ef4
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/NegativePolicyTest.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.enterprise;
+
+import com.android.bedstead.harrier.annotations.meta.RequiresBedsteadJUnit4;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark a test as testing the states where a policy is applied (by a Device Owner or Profile Owner)
+ * and it should not apply to the user the test is running on.
+ *
+ * <p>This will generated parameterized runs for all matching states.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@RequiresBedsteadJUnit4
+public @interface NegativePolicyTest {
+    /**
+     * The policy being tested.
+     *
+     * <p>This is used to calculate which states are required to be tested.
+     */
+    Class<?> policy();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/PositivePolicyTest.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/PositivePolicyTest.java
new file mode 100644
index 0000000..07e7bba
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/enterprise/PositivePolicyTest.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.enterprise;
+
+import com.android.bedstead.harrier.annotations.meta.RequiresBedsteadJUnit4;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark a test as testing the states where a policy is applied (by a Device Owner or Profile Owner)
+ * and it should apply to the user the test is running on.
+ *
+ * <p>This will generated parameterized runs for all matching states.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@RequiresBedsteadJUnit4
+public @interface PositivePolicyTest {
+    /**
+     * The policy being tested.
+     *
+     * <p>This is used to calculate which states are required to be tested.
+     */
+    Class<?> policy();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUser.java
new file mode 100644
index 0000000..1504a06
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUser.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.Target;
+
+/**
+ * This annotation should not be used directly. It exists as a template for annotations which
+ * ensure that a given user type does not exist.
+ */
+@Target({})
+public @interface EnsureHasNoUser {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUserAnnotation.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUserAnnotation.java
new file mode 100644
index 0000000..5aaaf31
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasNoUserAnnotation.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark that an annotation is used to indicate that no users of a given type should exist.
+ *
+ * <p>The annotation annotated with {@link EnsureHasNoUserAnnotation} must have the same body as
+ * {@link EnsureHasNoUser}.
+ */
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EnsureHasNoUserAnnotation {
+    /** The name of the user type which should not be present. */
+    String value();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUser.java
new file mode 100644
index 0000000..871c57a
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUser.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.Target;
+
+/**
+ * This annotation should not be used directly. It exists as a template for annotations which
+ * ensure that a given user type exists.
+ */
+@Target({})
+public @interface EnsureHasUser {
+    /** Whether the test app should be installed in the user. */
+    boolean installTestApp() default true;
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUserAnnotation.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUserAnnotation.java
new file mode 100644
index 0000000..1e6a88d
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/EnsureHasUserAnnotation.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark that an annotation is used to indicate that a given user type should exist on the device.
+ *
+ * <p>The annotation annotated with {@link EnsureHasUserAnnotation} must have the same body as
+ * {@link EnsureHasUser}.
+ */
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EnsureHasUserAnnotation {
+    /** The name of the user type which should be present. */
+    String value();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/ParameterizedAnnotation.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/ParameterizedAnnotation.java
new file mode 100644
index 0000000..bab40ca
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/ParameterizedAnnotation.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark a Harrier annotation as being Parameterized.
+ *
+ * <p>There will be a separate run generated for the annotated method for each
+ * {@link ParameterizedAnnotation} annotation. The test will be named methodName[paramName].
+ *
+ * <p>If any {@link ParameterizedAnnotation} annotations are applied to a test, then the basic
+ * un-parameterized test will not be run.
+ */
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@RequiresBedsteadJUnit4
+public @interface ParameterizedAnnotation {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUser.java
new file mode 100644
index 0000000..b3882b1
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUser.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.Target;
+
+/**
+ * This annotation should not be used directly. It exists as a template for annotations which
+ * ensure that a test runs on a given user type.
+ */
+@Target({})
+public @interface RequireRunOnUser {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUserAnnotation.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUserAnnotation.java
new file mode 100644
index 0000000..e100416
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequireRunOnUserAnnotation.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark that an annotation is used to indicate that a test should run on a given user type.
+ *
+ * <p>The annotation annotated with {@link RequireRunOnUserAnnotation} must have the same body as
+ * {@link RequireRunOnUser}.
+ */
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RequireRunOnUserAnnotation {
+    /** The name of the user type which the test should be run on. */
+    String value();
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequiresBedsteadJUnit4.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequiresBedsteadJUnit4.java
new file mode 100644
index 0000000..9033b90
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/meta/RequiresBedsteadJUnit4.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.meta;
+
+import com.android.bedstead.harrier.BedsteadJUnit4;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates that an annotation requires using the {@link BedsteadJUnit4} test runner
+ */
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RequiresBedsteadJUnit4 {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeNone.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeNone.java
new file mode 100644
index 0000000..3ad98af
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeNone.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.parameterized;
+
+import com.android.bedstead.harrier.annotations.meta.ParameterizedAnnotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Parameterize a test but do not generate a run.
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@ParameterizedAnnotation
+public @interface IncludeNone {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnDeviceOwnerUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnDeviceOwnerUser.java
new file mode 100644
index 0000000..8f877eb
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnDeviceOwnerUser.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.parameterized;
+
+import com.android.bedstead.harrier.annotations.RequireRunOnPrimaryUser;
+import com.android.bedstead.harrier.annotations.meta.ParameterizedAnnotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Parameterize a test so that it runs on the same user as the device owner.
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@ParameterizedAnnotation
+@RequireRunOnPrimaryUser
+// TODO(scottjonathan): Add annotations to ensure Device Owner is set
+public @interface IncludeRunOnDeviceOwnerUser {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser.java
new file mode 100644
index 0000000..0adbb86
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/annotations/parameterized/IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.annotations.parameterized;
+
+import com.android.bedstead.harrier.annotations.RequireRunOnSecondaryUser;
+import com.android.bedstead.harrier.annotations.meta.ParameterizedAnnotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Parameterize a test so that it runs on a non-affiliated secondary user on a device with a
+ * Device Owner.
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@ParameterizedAnnotation
+@RequireRunOnSecondaryUser
+// TODO(scottjonathan): Add annotations to ensure Device Owner is set
+public @interface IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser {
+}
diff --git a/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/policies/TestPolicy.java b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/policies/TestPolicy.java
new file mode 100644
index 0000000..0b7c557
--- /dev/null
+++ b/common/device-side/bedstead/harrier/src/main/java/com/android/bedstead/harrier/policies/TestPolicy.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.bedstead.harrier.policies;
+
+import static com.android.bedstead.harrier.annotations.enterprise.EnterprisePolicy.DeviceOwnerControl.NO;
+import static com.android.bedstead.harrier.annotations.enterprise.EnterprisePolicy.ProfileOwnerControl.COPE_PARENT;
+
+import com.android.bedstead.harrier.annotations.enterprise.EnterprisePolicy;
+
+/** Example Policy until real policies are added. */
+@EnterprisePolicy(profileOwner = COPE_PARENT, deviceOwner = NO)
+public class TestPolicy {
+}
diff --git a/common/device-side/bedstead/harrier/src/test/java/com/android/bedstead/harrier/DeviceStateTest.java b/common/device-side/bedstead/harrier/src/test/java/com/android/bedstead/harrier/DeviceStateTest.java
index 68d92bc..9dd78f0 100644
--- a/common/device-side/bedstead/harrier/src/test/java/com/android/bedstead/harrier/DeviceStateTest.java
+++ b/common/device-side/bedstead/harrier/src/test/java/com/android/bedstead/harrier/DeviceStateTest.java
@@ -35,9 +35,8 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
 
-@RunWith(JUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public class DeviceStateTest {
 
     @ClassRule
diff --git a/common/device-side/bedstead/nene/lint-baseline.xml b/common/device-side/bedstead/nene/lint-baseline.xml
new file mode 100644
index 0000000..6fe256f
--- /dev/null
+++ b/common/device-side/bedstead/nene/lint-baseline.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 10000 (current min is 27): `AdbUserParser31`"
+        errorLine1="            return new AdbUserParser31(testApis);"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/users/AdbUserParser.java"
+            line="37"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level R (current min is 27): `AdbUserParser30`"
+        errorLine1="            return new AdbUserParser30(testApis);"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/users/AdbUserParser.java"
+            line="40"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 27): `android.app.UiAutomation#adoptShellPermissionIdentity`"
+        errorLine1="            ShellCommandUtils.uiAutomation().adoptShellPermissionIdentity("
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/permissions/Permissions.java"
+            line="196"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 27): `android.app.UiAutomation#dropShellPermissionIdentity`"
+        errorLine1="            ShellCommandUtils.uiAutomation().dropShellPermissionIdentity();"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/permissions/Permissions.java"
+            line="240"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 27): `android.app.UiAutomation#adoptShellPermissionIdentity`"
+        errorLine1="            ShellCommandUtils.uiAutomation().adoptShellPermissionIdentity();"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/permissions/Permissions.java"
+            line="242"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 27): `android.app.UiAutomation#adoptShellPermissionIdentity`"
+        errorLine1="            ShellCommandUtils.uiAutomation().adoptShellPermissionIdentity("
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/permissions/Permissions.java"
+            line="244"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 31 (current min is 27): `android.app.UiAutomation#executeShellCommandRw`"
+        errorLine1="        ParcelFileDescriptor[] fds = uiAutomation().executeShellCommandRw(command);"
+        errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/utils/ShellCommandUtils.java"
+            line="156"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level R (current min is 27): `java.util.Set#of`"
+        errorLine1="        managedProfileMutableUserType.mBaseType = Set.of(UserType.BaseType.PROFILE);"
+        errorLine2="                                                      ~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/users/Users.java"
+            line="213"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level R (current min is 27): `java.util.Set#of`"
+        errorLine1="                Set.of(UserType.BaseType.FULL, UserType.BaseType.SYSTEM);"
+        errorLine2="                    ~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/users/Users.java"
+            line="224"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level R (current min is 27): `java.util.Set#of`"
+        errorLine1="        managedProfileMutableUserType.mBaseType = Set.of(UserType.BaseType.FULL);"
+        errorLine2="                                                      ~~">
+        <location
+            file="cts/common/device-side/bedstead/nene/src/main/java/com/android/bedstead/nene/users/Users.java"
+            line="234"
+            column="55"/>
+    </issue>
+
+</issues>
diff --git a/common/device-side/bedstead/testapp/Android.bp b/common/device-side/bedstead/testapp/Android.bp
index e9ced93..5b325c4 100644
--- a/common/device-side/bedstead/testapp/Android.bp
+++ b/common/device-side/bedstead/testapp/Android.bp
@@ -37,7 +37,16 @@
 
 python_binary_host {
     name: "index_testapps",
-    defaults: ["base_default"],
+    version: {
+        py2: {
+            enabled: false,
+            embedded_launcher: false,
+        },
+        py3: {
+            enabled: true,
+            embedded_launcher: true,
+        },
+    },
     main: "tools/index/index_testapps.py",
     srcs: [
         "tools/index/index_testapps.py",
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/BlockingCallback.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/BlockingCallback.java
index 38fcee7..2b694bf 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/BlockingCallback.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/BlockingCallback.java
@@ -20,6 +20,7 @@
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * Subclass this to create a blocking version of a callback. For example:
@@ -41,11 +42,11 @@
     private static final int DEFAULT_TIMEOUT_SECONDS = 120;
 
     private final CountDownLatch mLatch = new CountDownLatch(1);
-    private E mValue = null;
+    private AtomicReference<E> mValue = new AtomicReference<>();
 
     /** Call this method from the callback method to mark the response as received. */
     protected void callbackTriggered(E value) {
-        mValue = value;
+        mValue.set(value);
         mLatch.countDown();
     }
 
@@ -69,6 +70,6 @@
         if (!mLatch.await(timeout, unit)) {
             fail("Callback was not received");
         }
-        return mValue;
+        return mValue.get();
     }
 }
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/PropertyUtil.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/PropertyUtil.java
index c5933a7..352175a 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/PropertyUtil.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/PropertyUtil.java
@@ -46,6 +46,7 @@
     private static final String TAG_DEV_KEYS = "dev-keys";
     private static final String VENDOR_SDK_VERSION = "ro.vendor.build.version.sdk";
     private static final String VNDK_VERSION = "ro.vndk.version";
+    private static final String CAMERAX_EXTENSIONS_ENABLED = "ro.camerax.extensions.enabled";
 
     public static final String GOOGLE_SETTINGS_QUERY =
             "content query --uri content://com.google.settings/partner";
@@ -69,6 +70,14 @@
     }
 
     /**
+     * Return the CameraX extensions enabled property value. If the read-only property is unset,
+     * the default value returned will be 'false'.
+     */
+    public static boolean areCameraXExtensionsEnabled() {
+        return getPropertyBoolean(CAMERAX_EXTENSIONS_ENABLED);
+    }
+
+    /**
      * Return the first API level for this product. If the read-only property is unset,
      * this means the first API level is the current API level, and the current API level
      * is returned.
@@ -186,6 +195,17 @@
     }
 
     /**
+     * Retrieves the desired boolean property, returning false if not found.
+     */
+    public static boolean getPropertyBoolean(String property) {
+        String value = getProperty(property);
+        if (value == null) {
+            return false;
+        }
+        return Boolean.parseBoolean(value);
+    }
+
+    /**
      * Retrieves the desired integer property, returning INT_VALUE_IF_UNSET if not found.
      */
     public static int getPropertyInt(String property) {
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 24ec8c4..2685691 100644
--- a/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java
+++ b/hostsidetests/appcompat/strictjavapackages/src/android/compat/sjp/cts/StrictJavaPackagesTest.java
@@ -89,6 +89,7 @@
                     "Landroid/annotation/MainThread;",
                     "Landroid/annotation/NonNull;",
                     "Landroid/annotation/Nullable;",
+                    "Landroid/annotation/RequiresNoPermission;",
                     "Landroid/annotation/RequiresPermission;",
                     "Landroid/annotation/RequiresPermission$Read;",
                     "Landroid/annotation/RequiresPermission$Write;",
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/ApkVerityInstallTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/ApkVerityInstallTest.java
index f829175..15e1279 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/ApkVerityInstallTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/ApkVerityInstallTest.java
@@ -29,7 +29,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -290,7 +289,6 @@
     }
 
     @Test
-    @Ignore("IncFs does not support STATX_ATTR_VERITY")
     public void testInstallBaseWithFsvSigIncrementally() throws Exception {
         assumeSecurityModelCompat();
         assumeIncrementalDeliveryFeature();
@@ -304,7 +302,6 @@
     }
 
     @Test
-    @Ignore("IncFs does not support STATX_ATTR_VERITY")
     public void testInstallEverythingWithFsvSigIncrementally() throws Exception {
         assumeSecurityModelCompat();
         assumeIncrementalDeliveryFeature();
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
index 59e6838..67e4080 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
@@ -93,8 +93,15 @@
     private static final Config MEDIA_29 = new Config("CtsMediaStorageApp29.apk",
             "com.android.cts.mediastorageapp29", MEDIA_CLAZZ);
 
-    private static final String PERM_READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";
-    private static final String PERM_WRITE_EXTERNAL_STORAGE = "android.permission.WRITE_EXTERNAL_STORAGE";
+    private static final String PERM_ACCESS_MEDIA_LOCATION =
+            "android.permission.ACCESS_MEDIA_LOCATION";
+    private static final String PERM_READ_EXTERNAL_STORAGE =
+            "android.permission.READ_EXTERNAL_STORAGE";
+    private static final String PERM_WRITE_EXTERNAL_STORAGE =
+            "android.permission.WRITE_EXTERNAL_STORAGE";
+
+    private static final String APP_OPS_MANAGE_EXTERNAL_STORAGE = "android:manage_external_storage";
+    private static final String APP_OPS_MANAGE_MEDIA = "android:manage_media";
 
     /** Copied from PackageManager*/
     private static final String FEATURE_AUTOMOTIVE = "android.hardware.type.automotive";
@@ -721,6 +728,165 @@
         }
     }
 
+    /**
+     * Check the behavior when the app calls MediaStore#createTrashRequest,
+     * MediaStore#createDeleteRequest or MediaStore#createWriteRequest, the user
+     * click the deny button on confirmation dialog.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCreateRequest_userDenied() throws Exception {
+        installPackage(MEDIA.apk);
+
+        int user = getDevice().getCurrentUser();
+
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalationWithDenied_RequestWrite", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalationWithDenied_RequestDelete", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalationWithDenied_RequestTrash", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalationWithDenied_RequestUnTrash", user);
+    }
+
+    /**
+     * If the app is NOT granted {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
+     * and {@link android.Manifest.permission#MANAGE_EXTERNAL_STORAGE}
+     * when it calls MediaStore#createTrashRequest,
+     * MediaStore#createDeleteRequest, or MediaStore#createWriteRequest,
+     * the system will show the user confirmation dialog.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCreateRequest_noRESAndMES_showConfirmDialog() throws Exception {
+        installPackage(MEDIA.apk);
+
+        int user = getDevice().getCurrentUser();
+
+        // grant permissions
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_ACCESS_MEDIA_LOCATION,
+        }, true);
+        // revoke permissions
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_READ_EXTERNAL_STORAGE,
+                PERM_WRITE_EXTERNAL_STORAGE,
+        }, false);
+
+
+        // revoke the app ops permission
+        updateAppOp(MEDIA.pkg, user, APP_OPS_MANAGE_EXTERNAL_STORAGE, false);
+
+        // grant the app ops permission
+        updateAppOp(MEDIA.pkg, user, APP_OPS_MANAGE_MEDIA, true);
+
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestWrite_showConfirmDialog", user);
+    }
+
+    /**
+     * If the app is NOT granted {@link android.Manifest.permission#MANAGE_MEDIA},
+     * when it calls MediaStore#createTrashRequest,
+     * MediaStore#createDeleteRequest, or MediaStore#createWriteRequest,
+     * the system will show the user confirmation dialog.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCreateRequest_noMANAGEMEDIA_showConfirmDialog() throws Exception {
+        installPackage(MEDIA.apk);
+
+        int user = getDevice().getCurrentUser();
+        // grant permissions
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_READ_EXTERNAL_STORAGE,
+                PERM_ACCESS_MEDIA_LOCATION,
+        }, true);
+
+        // revoke the app ops permission
+        updateAppOp(MEDIA.pkg, user, APP_OPS_MANAGE_MEDIA, false);
+
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestWrite_showConfirmDialog", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestTrash_showConfirmDialog", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestDelete_showConfirmDialog", user);
+    }
+
+    /**
+     * If the app is granted {@link android.Manifest.permission#MANAGE_MEDIA},
+     * {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}, without
+     * {@link android.Manifest.permission#ACCESS_MEDIA_LOCATION},
+     * when it calls MediaStore#createTrashRequest or
+     * MediaStore#createDeleteRequest, The system will NOT show the user
+     * confirmation dialog. When it calls MediaStore#createWriteRequest, the
+     * system will show the user confirmation dialog.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCreateRequest_withNoAML_showConfirmDialog() throws Exception {
+        installPackage(MEDIA.apk);
+
+        int user = getDevice().getCurrentUser();
+        // grant permissions
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_READ_EXTERNAL_STORAGE,
+        }, true);
+        // revoke permission
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_ACCESS_MEDIA_LOCATION,
+        }, false);
+
+        // grant the app ops permission
+        updateAppOp(MEDIA.pkg, user, APP_OPS_MANAGE_MEDIA, true);
+
+        // show confirm dialog in requestWrite
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestWrite_showConfirmDialog", user);
+
+        // not show confirm dialog in requestTrash and requestDelete
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestTrash_notShowConfirmDialog", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestDelete_notShowConfirmDialog", user);
+    }
+
+    /**
+     * If the app is granted {@link android.Manifest.permission#MANAGE_MEDIA},
+     * {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}, and
+     * {@link android.Manifest.permission#ACCESS_MEDIA_LOCATION},
+     * when it calls MediaStore#createWriteRequest, MediaStore#createTrashRequest or
+     * MediaStore#createDeleteRequest, the system will NOT show the user confirmation dialog.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testCreateRequest_withPermission_notShowConfirmDialog() throws Exception {
+        installPackage(MEDIA.apk);
+
+        int user = getDevice().getCurrentUser();
+        // grant permissions
+        updatePermissions(MEDIA.pkg, user, new String[] {
+                PERM_READ_EXTERNAL_STORAGE,
+                PERM_ACCESS_MEDIA_LOCATION,
+        }, true);
+
+        // revoke the app ops permission
+        updateAppOp(MEDIA.pkg, user, APP_OPS_MANAGE_MEDIA, true);
+
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestWrite_notShowConfirmDialog", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestTrash_notShowConfirmDialog", user);
+        runDeviceTests(MEDIA.pkg, MEDIA.clazz,
+                "testMediaEscalation_RequestDelete_notShowConfirmDialog", user);
+    }
+
     private <T extends MessageLite> T getDump(Parser<T> parser, String command) throws Exception {
         final CollectingByteOutputReceiver receiver = new CollectingByteOutputReceiver();
         getDevice().executeShellCommand(command, receiver);
diff --git a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/TEST_MAPPING b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/TEST_MAPPING
index 90a93b0..b08a98e 100644
--- a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/TEST_MAPPING
+++ b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-    "presubmit": [
+    "presubmit-large": [
         {
             "name": "CtsAppSecurityHostTestCases",
             "options": [
diff --git a/hostsidetests/appsecurity/test-apps/MediaStorageApp/AndroidManifest.xml b/hostsidetests/appsecurity/test-apps/MediaStorageApp/AndroidManifest.xml
index 4b09ae5..64f7657 100644
--- a/hostsidetests/appsecurity/test-apps/MediaStorageApp/AndroidManifest.xml
+++ b/hostsidetests/appsecurity/test-apps/MediaStorageApp/AndroidManifest.xml
@@ -36,6 +36,9 @@
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
          android:targetPackage="com.android.cts.mediastorageapp"/>
 
+    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
+    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.MANAGE_MEDIA"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
diff --git a/hostsidetests/appsecurity/test-apps/MediaStorageApp/TEST_MAPPING b/hostsidetests/appsecurity/test-apps/MediaStorageApp/TEST_MAPPING
index 90a93b0..b08a98e 100644
--- a/hostsidetests/appsecurity/test-apps/MediaStorageApp/TEST_MAPPING
+++ b/hostsidetests/appsecurity/test-apps/MediaStorageApp/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-    "presubmit": [
+    "presubmit-large": [
         {
             "name": "CtsAppSecurityHostTestCases",
             "options": [
diff --git a/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/GetResultActivity.java b/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/GetResultActivity.java
index a4ea510..4d42a34 100644
--- a/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/GetResultActivity.java
+++ b/hostsidetests/appsecurity/test-apps/MediaStorageApp/src/com/android/cts/mediastorageapp/GetResultActivity.java
@@ -66,12 +66,12 @@
     public Result getResult() {
         final Result result;
         try {
-            result = sResult.poll(30, TimeUnit.SECONDS);
+            result = sResult.poll(40, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
         }
         if (result == null) {
-            throw new IllegalStateException("Activity didn't receive a Result in 30 seconds");
+            throw new IllegalStateException("Activity didn't receive a Result in 40 seconds");
         }
         return result;
     }
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 8c4f29c..5b30cd1 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
@@ -26,7 +26,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeTrue;
 
 import android.app.Activity;
 import android.app.Instrumentation;
@@ -482,14 +481,44 @@
 
     @Test
     public void testMediaEscalation_RequestWrite() throws Exception {
-        doMediaEscalation_RequestWrite(MediaStorageTest::createAudio);
-        doMediaEscalation_RequestWrite(MediaStorageTest::createVideo);
-        doMediaEscalation_RequestWrite(MediaStorageTest::createImage);
-        doMediaEscalation_RequestWrite(MediaStorageTest::createPlaylist);
-        doMediaEscalation_RequestWrite(MediaStorageTest::createSubtitle);
+        doMediaEscalation_RequestWrite(true /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
     }
 
-    private void doMediaEscalation_RequestWrite(Callable<Uri> create) throws Exception {
+    @Test
+    public void testMediaEscalationWithDenied_RequestWrite() throws Exception {
+        doMediaEscalation_RequestWrite(false /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestWrite_showConfirmDialog() throws Exception {
+        doMediaEscalation_RequestWrite(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, true /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestWrite_notShowConfirmDialog() throws Exception {
+        doMediaEscalation_RequestWrite(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    private void doMediaEscalation_RequestWrite(boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
+        doMediaEscalation_RequestWrite(MediaStorageTest::createAudio, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestWrite(MediaStorageTest::createVideo, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestWrite(MediaStorageTest::createImage, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestWrite(MediaStorageTest::createPlaylist, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestWrite(MediaStorageTest::createSubtitle, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+    }
+
+    private void doMediaEscalation_RequestWrite(Callable<Uri> create, boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
         final Uri red = create.call();
         clearMediaOwner(red, mUserId);
 
@@ -498,30 +527,102 @@
         } catch (SecurityException expected) {
         }
 
-        doEscalation(MediaStore.createWriteRequest(mContentResolver, Arrays.asList(red)));
+        if (allowAccess) {
+            doEscalation(MediaStore.createWriteRequest(mContentResolver, Arrays.asList(red)),
+                    true /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
 
-        try (ParcelFileDescriptor pfd = mContentResolver.openFileDescriptor(red, "w")) {
+            try (ParcelFileDescriptor pfd = mContentResolver.openFileDescriptor(red, "w")) {
+            }
+        } else {
+            doEscalation(MediaStore.createWriteRequest(mContentResolver, Arrays.asList(red)),
+                    false /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            try (ParcelFileDescriptor pfd = mContentResolver.openFileDescriptor(red, "w")) {
+                fail("Expected write access to be blocked");
+            } catch (SecurityException expected) {
+            }
         }
     }
 
     @Test
-    public void testMediaEscalation_RequestTrash() throws Exception {
-        doMediaEscalation_RequestTrash(MediaStorageTest::createAudio);
-        doMediaEscalation_RequestTrash(MediaStorageTest::createVideo);
-        doMediaEscalation_RequestTrash(MediaStorageTest::createImage);
-        doMediaEscalation_RequestTrash(MediaStorageTest::createPlaylist);
-        doMediaEscalation_RequestTrash(MediaStorageTest::createSubtitle);
+    public void testMediaEscalationWithDenied_RequestUnTrash() throws Exception {
+        doMediaEscalationWithDenied_RequestUnTrash(MediaStorageTest::createAudio);
+        doMediaEscalationWithDenied_RequestUnTrash(MediaStorageTest::createVideo);
+        doMediaEscalationWithDenied_RequestUnTrash(MediaStorageTest::createImage);
+        doMediaEscalationWithDenied_RequestUnTrash(MediaStorageTest::createPlaylist);
+        doMediaEscalationWithDenied_RequestUnTrash(MediaStorageTest::createSubtitle);
     }
 
-    private void doMediaEscalation_RequestTrash(Callable<Uri> create) throws Exception {
+    private void doMediaEscalationWithDenied_RequestUnTrash(Callable<Uri> create) throws Exception {
         final Uri red = create.call();
         clearMediaOwner(red, mUserId);
 
         assertEquals("0", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
-        doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), true));
+        doEscalation(
+                MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), true));
         assertEquals("1", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
-        doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), false));
+        doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), false),
+                false /* allowAccess */, false /* shouldCheckDialogShownValue */,
+                false /* isDialogShownExpected */);
+        assertEquals("1", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
+    }
+
+    @Test
+    public void testMediaEscalation_RequestTrash() throws Exception {
+        doMediaEscalation_RequestTrash(true /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalationWithDenied_RequestTrash() throws Exception {
+        doMediaEscalation_RequestTrash(false /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestTrash_showConfirmDialog() throws Exception {
+        doMediaEscalation_RequestTrash(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, true /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestTrash_notShowConfirmDialog() throws Exception {
+        doMediaEscalation_RequestTrash(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    private void doMediaEscalation_RequestTrash(boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
+        doMediaEscalation_RequestTrash(MediaStorageTest::createAudio, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestTrash(MediaStorageTest::createVideo, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestTrash(MediaStorageTest::createImage, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestTrash(MediaStorageTest::createPlaylist, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestTrash(MediaStorageTest::createSubtitle, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+    }
+
+    private void doMediaEscalation_RequestTrash(Callable<Uri> create, boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
+        final Uri red = create.call();
+        clearMediaOwner(red, mUserId);
+
         assertEquals("0", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
+
+        if (allowAccess) {
+            doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), true),
+                    true /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            assertEquals("1", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
+            doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), false),
+                    true /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            assertEquals("0", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
+        } else {
+            doEscalation(MediaStore.createTrashRequest(mContentResolver, Arrays.asList(red), true),
+                    false /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            assertEquals("0", queryForSingleColumn(red, MediaColumns.IS_TRASHED));
+        }
     }
 
     @Test
@@ -546,23 +647,63 @@
 
     @Test
     public void testMediaEscalation_RequestDelete() throws Exception {
-        doMediaEscalation_RequestDelete(MediaStorageTest::createAudio);
-        doMediaEscalation_RequestDelete(MediaStorageTest::createVideo);
-        doMediaEscalation_RequestDelete(MediaStorageTest::createImage);
-        doMediaEscalation_RequestDelete(MediaStorageTest::createPlaylist);
-        doMediaEscalation_RequestDelete(MediaStorageTest::createSubtitle);
+        doMediaEscalation_RequestDelete(true /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
     }
 
-    private void doMediaEscalation_RequestDelete(Callable<Uri> create) throws Exception {
+    @Test
+    public void testMediaEscalationWithDenied_RequestDelete() throws Exception {
+        doMediaEscalation_RequestDelete(false /* allowAccess */,
+                false /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestDelete_showConfirmDialog() throws Exception {
+        doMediaEscalation_RequestDelete(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, true /* isDialogShownExpected */);
+    }
+
+    @Test
+    public void testMediaEscalation_RequestDelete_notShowConfirmDialog() throws Exception {
+        doMediaEscalation_RequestDelete(true /* allowAccess */,
+                true /* shouldCheckDialogShownValue */, false /* isDialogShownExpected */);
+    }
+
+    private void doMediaEscalation_RequestDelete(boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
+        doMediaEscalation_RequestDelete(MediaStorageTest::createAudio, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestDelete(MediaStorageTest::createVideo, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestDelete(MediaStorageTest::createImage, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestDelete(MediaStorageTest::createPlaylist, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+        doMediaEscalation_RequestDelete(MediaStorageTest::createSubtitle, allowAccess,
+                shouldCheckDialogShownValue, isDialogShownExpected);
+    }
+
+    private void doMediaEscalation_RequestDelete(Callable<Uri> create, boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
         final Uri red = create.call();
         clearMediaOwner(red, mUserId);
 
         try (Cursor c = mContentResolver.query(red, null, null, null)) {
             assertEquals(1, c.getCount());
         }
-        doEscalation(MediaStore.createDeleteRequest(mContentResolver, Arrays.asList(red)));
-        try (Cursor c = mContentResolver.query(red, null, null, null)) {
-            assertEquals(0, c.getCount());
+
+        if (allowAccess) {
+            doEscalation(MediaStore.createDeleteRequest(mContentResolver, Arrays.asList(red)),
+                    true /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            try (Cursor c = mContentResolver.query(red, null, null, null)) {
+                assertEquals(0, c.getCount());
+            }
+        } else {
+            doEscalation(MediaStore.createDeleteRequest(mContentResolver, Arrays.asList(red)),
+                    false /* allowAccess */, shouldCheckDialogShownValue, isDialogShownExpected);
+            try (Cursor c = mContentResolver.query(red, null, null, null)) {
+                assertEquals(1, c.getCount());
+            }
         }
     }
 
@@ -571,6 +712,12 @@
     }
 
     private void doEscalation(PendingIntent pi) throws Exception {
+        doEscalation(pi, true /* allowAccess */, false /* shouldCheckDialogShownValue */,
+                false /* isDialogShownExpectedExpected */);
+    }
+
+    private void doEscalation(PendingIntent pi, boolean allowAccess,
+            boolean shouldCheckDialogShownValue, boolean isDialogShownExpected) throws Exception {
         // Try launching the action to grant ourselves access
         final Instrumentation inst = InstrumentationRegistry.getInstrumentation();
         final Intent intent = new Intent(inst.getContext(), GetResultActivity.class);
@@ -582,22 +729,43 @@
         device.executeShellCommand("wm dismiss-keyguard");
 
         final GetResultActivity activity = (GetResultActivity) inst.startActivitySync(intent);
-        device.waitForIdle();
+        // Wait for the UI Thread to become idle.
+        inst.waitForIdleSync();
         activity.clearResult();
+        device.waitForIdle();
         activity.startIntentSenderForResult(pi.getIntentSender(), 42, null, 0, 0, 0);
 
         device.waitForIdle();
+        final long timeout = 5_000;
+        if (allowAccess) {
+            // Some dialogs may have granted access automatically, so we're willing
+            // to keep rolling forward if we can't find our grant button
+            final UiSelector grant = new UiSelector().textMatches("(?i)Allow");
+            final boolean grantExists = new UiObject(grant).waitForExists(timeout);
 
-        // Some dialogs may have granted access automatically, so we're willing
-        // to keep rolling forward if we can't find our grant button
-        final UiSelector grant = new UiSelector().textMatches("(?i)Allow");
-        if (new UiObject(grant).waitForExists(2_000)) {
-            device.findObject(grant).click();
+            if (shouldCheckDialogShownValue) {
+                assertThat(grantExists).isEqualTo(isDialogShownExpected);
+            }
+
+            if (grantExists) {
+                device.findObject(grant).click();
+            }
+            final GetResultActivity.Result res = activity.getResult();
+            // Verify that we now have access
+            assertEquals(Activity.RESULT_OK, res.resultCode);
+        } else {
+            // fine the Deny button
+            final UiSelector deny = new UiSelector().textMatches("(?i)Deny");
+            final boolean denyExists = new UiObject(deny).waitForExists(timeout);
+
+            assertThat(denyExists).isTrue();
+
+            device.findObject(deny).click();
+
+            final GetResultActivity.Result res = activity.getResult();
+            // Verify that we don't have access
+            assertEquals(Activity.RESULT_CANCELED, res.resultCode);
         }
-
-        // Verify that we now have access
-        final GetResultActivity.Result res = activity.getResult();
-        assertEquals(Activity.RESULT_OK, res.resultCode);
     }
 
     private static Uri createAudio() throws IOException {
@@ -676,7 +844,7 @@
         final ContentResolver resolver = InstrumentationRegistry.getTargetContext()
                 .getContentResolver();
         try (Cursor c = resolver.query(uri, new String[] { column }, null, null)) {
-            assertEquals(c.getCount(), 1);
+            assertEquals(1, c.getCount());
             assertTrue(c.moveToFirst());
             return c.getString(0);
         }
diff --git a/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/TEST_MAPPING b/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/TEST_MAPPING
index 90a93b0..b08a98e 100644
--- a/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/TEST_MAPPING
+++ b/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-    "presubmit": [
+    "presubmit-large": [
         {
             "name": "CtsAppSecurityHostTestCases",
             "options": [
diff --git a/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/TEST_MAPPING b/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/TEST_MAPPING
index 90a93b0..b08a98e 100644
--- a/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/TEST_MAPPING
+++ b/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-    "presubmit": [
+    "presubmit-large": [
         {
             "name": "CtsAppSecurityHostTestCases",
             "options": [
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/feature_rose/lint-baseline.xml b/hostsidetests/appsecurity/test-apps/SplitApp/feature_rose/lint-baseline.xml
new file mode 100644
index 0000000..06f2943
--- /dev/null
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/feature_rose/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`android:statusBarColor` requires API level 21 (current min is 4)"
+        errorLine1="        &lt;item name=&quot;android:statusBarColor&quot;>@color/rose_status_bar_color&lt;/item>"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/hostsidetests/appsecurity/test-apps/SplitApp/feature_rose/res/values/styles.xml"
+            line="21"
+            column="15"/>
+    </issue>
+
+</issues>
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/feature_warm/lint-baseline.xml b/hostsidetests/appsecurity/test-apps/SplitApp/feature_warm/lint-baseline.xml
new file mode 100644
index 0000000..5e46a6b
--- /dev/null
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/feature_warm/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`android:statusBarColor` requires API level 21 (current min is 4)"
+        errorLine1="        &lt;item name=&quot;android:statusBarColor&quot;>@color/warm_status_bar_color&lt;/item>"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/hostsidetests/appsecurity/test-apps/SplitApp/feature_warm/res/values/styles.xml"
+            line="21"
+            column="15"/>
+    </issue>
+
+</issues>
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/lint-baseline.xml b/hostsidetests/appsecurity/test-apps/SplitApp/lint-baseline.xml
new file mode 100644
index 0000000..8a6a9c6
--- /dev/null
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/lint-baseline.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`@android:style/Theme.Material` requires API level 21 (current min is 4)"
+        errorLine1="    &lt;style name=&quot;Theme_Base&quot; parent=&quot;@android:style/Theme.Material&quot;>"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/hostsidetests/appsecurity/test-apps/SplitApp/res/values/styles.xml"
+            line="18"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="`android:navigationBarColor` requires API level 21 (current min is 4)"
+        errorLine1="        &lt;item name=&quot;android:navigationBarColor&quot;>@color/navigation_bar_color&lt;/item>"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/hostsidetests/appsecurity/test-apps/SplitApp/res/values/styles.xml"
+            line="21"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="`android:statusBarColor` requires API level 21 (current min is 4)"
+        errorLine1="        &lt;item name=&quot;android:statusBarColor&quot;>@color/status_bar_color&lt;/item>"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/hostsidetests/appsecurity/test-apps/SplitApp/res/values/styles.xml"
+            line="22"
+            column="15"/>
+    </issue>
+
+</issues>
diff --git a/hostsidetests/appsecurity/test-apps/StorageStatsApp/src/com/android/cts/storagestatsapp/StorageStatsTest.java b/hostsidetests/appsecurity/test-apps/StorageStatsApp/src/com/android/cts/storagestatsapp/StorageStatsTest.java
index 9ca02fb..3bfa0ec 100644
--- a/hostsidetests/appsecurity/test-apps/StorageStatsApp/src/com/android/cts/storagestatsapp/StorageStatsTest.java
+++ b/hostsidetests/appsecurity/test-apps/StorageStatsApp/src/com/android/cts/storagestatsapp/StorageStatsTest.java
@@ -81,7 +81,7 @@
      * option are enabled.
      */
     public void testVerify() throws Exception {
-        if (Build.VERSION.FIRST_SDK_INT >= Build.VERSION_CODES.P) {
+        if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.P) {
             final StorageStatsManager stats = getContext()
                     .getSystemService(StorageStatsManager.class);
             assertTrue("Devices that first ship with P or newer must enable quotas to "
diff --git a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/TEST_MAPPING b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/TEST_MAPPING
index 90a93b0..b08a98e 100644
--- a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/TEST_MAPPING
+++ b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-    "presubmit": [
+    "presubmit-large": [
         {
             "name": "CtsAppSecurityHostTestCases",
             "options": [
diff --git a/hostsidetests/blobstore/Android.bp b/hostsidetests/blobstore/Android.bp
index 6c8055f..61b9972 100644
--- a/hostsidetests/blobstore/Android.bp
+++ b/hostsidetests/blobstore/Android.bp
@@ -55,3 +55,51 @@
     "general-tests"
   ]
 }
+
+android_test_helper_app {
+  name: "CtsBlobStoreHostTestHelperPrivA",
+  srcs:  ["test-apps/BlobStoreHostTestHelper/src/**/*.java"],
+  static_libs: [
+    "compatibility-device-util-axt",
+    "androidx.test.ext.junit",
+    "androidx.test.rules",
+    "BlobStoreTestUtils",
+    "truth-prebuilt",
+    "testng",
+  ],
+  manifest : "test-apps/BlobStoreHostTestHelper/AndroidManifest_withPrivPerm.xml",
+  aaptflags: [
+    "--rename-manifest-package com.android.cts.device.blobA",
+    "--rename-instrumentation-target-package com.android.cts.device.blobA"
+  ],
+  sdk_version: "test_current",
+  // Tag this module as a cts test artifact
+  test_suites: [
+    "cts",
+    "general-tests"
+  ]
+}
+
+android_test_helper_app {
+  name: "CtsBlobStoreHostTestHelperPrivB",
+  srcs:  ["test-apps/BlobStoreHostTestHelper/src/**/*.java"],
+  static_libs: [
+    "compatibility-device-util-axt",
+    "androidx.test.ext.junit",
+    "androidx.test.rules",
+    "BlobStoreTestUtils",
+    "truth-prebuilt",
+    "testng",
+  ],
+  manifest : "test-apps/BlobStoreHostTestHelper/AndroidManifest_withPrivPerm.xml",
+  aaptflags: [
+    "--rename-manifest-package com.android.cts.device.blobB",
+    "--rename-instrumentation-target-package com.android.cts.device.blobB",
+  ],
+  sdk_version: "test_current",
+  // Tag this module as a cts test artifact
+  test_suites: [
+    "cts",
+    "general-tests"
+  ]
+}
diff --git a/hostsidetests/blobstore/AndroidTest.xml b/hostsidetests/blobstore/AndroidTest.xml
index b1b6d63..6460e1f 100644
--- a/hostsidetests/blobstore/AndroidTest.xml
+++ b/hostsidetests/blobstore/AndroidTest.xml
@@ -25,6 +25,9 @@
     </test>
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="test-file-name" value="CtsBlobStoreHostTestHelper.apk" />
+        <option name="test-file-name" value="CtsBlobStoreHostTestHelperPrivA.apk" />
+        <option name="test-file-name" value="CtsBlobStoreHostTestHelperPrivB.apk" />
+        <option name="install-arg" value="-t" />
         <option name="cleanup-apks" value="true" />
     </target_preparer>
 </configuration>
diff --git a/hostsidetests/blobstore/src/com/android/cts/host/blob/BaseBlobStoreHostTest.java b/hostsidetests/blobstore/src/com/android/cts/host/blob/BaseBlobStoreHostTest.java
index 8fefcb2..0ed223f 100644
--- a/hostsidetests/blobstore/src/com/android/cts/host/blob/BaseBlobStoreHostTest.java
+++ b/hostsidetests/blobstore/src/com/android/cts/host/blob/BaseBlobStoreHostTest.java
@@ -30,6 +30,12 @@
     protected static final String TARGET_APK = "CtsBlobStoreHostTestHelper.apk";
     protected static final String TARGET_PKG = "com.android.cts.device.blob";
 
+    protected static final String TARGET_APK_A = "CtsBlobStoreHostTestHelperPrivA.apk";
+    protected static final String TARGET_PKG_A = "com.android.cts.device.blobA";
+
+    protected static final String TARGET_APK_B = "CtsBlobStoreHostTestHelperPrivB.apk";
+    protected static final String TARGET_PKG_B = "com.android.cts.device.blobB";
+
     private static final long TIMEOUT_BOOT_COMPLETE_MS = 120_000;
     private static final long DEFAULT_INSTRUMENTATION_TIMEOUT_MS = 900_000; // 15min
 
diff --git a/hostsidetests/blobstore/src/com/android/cts/host/blob/BlobStoreMultiUserTest.java b/hostsidetests/blobstore/src/com/android/cts/host/blob/BlobStoreMultiUserTest.java
index d8cc1a0..ffd5da4 100644
--- a/hostsidetests/blobstore/src/com/android/cts/host/blob/BlobStoreMultiUserTest.java
+++ b/hostsidetests/blobstore/src/com/android/cts/host/blob/BlobStoreMultiUserTest.java
@@ -45,8 +45,10 @@
         mSecondaryUserId = getDevice().createUser("Test_User");
         assertThat(getDevice().startUser(mSecondaryUserId)).isTrue();
 
-        installPackageAsUser(TARGET_APK, true /* grantPermissions */, mPrimaryUserId);
-        installPackageAsUser(TARGET_APK, true /* grantPermissions */, mSecondaryUserId);
+        for (String apk : new String[] {TARGET_APK, TARGET_APK_A, TARGET_APK_B}) {
+            installPackageAsUser(apk, true /* grantPermissions */, mPrimaryUserId, "-t");
+            installPackageAsUser(apk, true /* grantPermissions */, mSecondaryUserId, "-t");
+        }
     }
 
     @After
@@ -84,4 +86,34 @@
         runDeviceTestAsUser(TARGET_PKG, TEST_CLASS, "testOpenBlob_shouldThrow", args,
                 mSecondaryUserId);
     }
+
+    @Test
+    public void testBlobAccessAcrossUsers() throws Exception {
+        Map<String, String> args = createArgs(Pair.create(KEY_ALLOW_PUBLIC, String.valueOf(1)));
+        // Commit a blob.
+        runDeviceTestAsUser(TARGET_PKG_A, TEST_CLASS, "testCommitBlob", args,
+                mPrimaryUserId);
+        Map<String, String> argsFromLastTestRun = createArgsFromLastTestRun();
+        // Verify that previously committed blob can be accessed.
+        runDeviceTestAsUser(TARGET_PKG, TEST_CLASS, "testOpenBlob", argsFromLastTestRun,
+                mPrimaryUserId);
+        // Verify that previously committed blob cannot be access from another user.
+        runDeviceTestAsUser(TARGET_PKG, TEST_CLASS, "testOpenBlob_shouldThrow", argsFromLastTestRun,
+                mSecondaryUserId);
+
+        // Verify that previously committed blob can be accessed from another user holding
+        // a priv permission.
+        runDeviceTestAsUser(TARGET_PKG_A, TEST_CLASS, "testOpenBlob", argsFromLastTestRun,
+                mSecondaryUserId);
+        runDeviceTestAsUser(TARGET_PKG_B, TEST_CLASS, "testOpenBlob", argsFromLastTestRun,
+                mSecondaryUserId);
+
+        // Recommit the blob on another user
+        argsFromLastTestRun.putAll(args);
+        runDeviceTestAsUser(TARGET_PKG_B, TEST_CLASS, "testRecommitBlob", argsFromLastTestRun,
+                mSecondaryUserId);
+        // Any package on another user should be able to access the blob
+        runDeviceTestAsUser(TARGET_PKG, TEST_CLASS, "testOpenBlob", argsFromLastTestRun,
+                mSecondaryUserId);
+    }
 }
diff --git a/hostsidetests/scopedstorage/signature/AndroidManifest.xml b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/AndroidManifest_withPrivPerm.xml
similarity index 68%
rename from hostsidetests/scopedstorage/signature/AndroidManifest.xml
rename to hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/AndroidManifest_withPrivPerm.xml
index 1f808f8..fb06cdf 100644
--- a/hostsidetests/scopedstorage/signature/AndroidManifest.xml
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/AndroidManifest_withPrivPerm.xml
@@ -14,16 +14,16 @@
   ~ 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.signature" >
-    <uses-permission android:name="android.permission.ACCESS_MTP" />
-    <application>
+          package="com.android.cts.device.blob">
+
+    <uses-permission android:name="android.permission.ACCESS_BLOBS_ACROSS_USERS" />
+
+    <application android:testOnly="true">
         <uses-library android:name="android.test.runner" />
     </application>
 
-    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
-                     android:targetPackage="android.scopedstorage.cts.signature"
-                     android:label="Signature app tests for scoped storage"/>
-
-</manifest>
+    <instrumentation
+            android:name="androidx.test.runner.AndroidJUnitRunner"
+            android:targetPackage="com.android.cts.device.blob"  />
+</manifest>
\ No newline at end of file
diff --git a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
index b01be92..03d16cc 100644
--- a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
@@ -26,6 +26,7 @@
 import android.os.ParcelFileDescriptor;
 
 import com.android.utils.blob.FakeBlobData;
+import com.android.utils.blob.Utils;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -116,6 +117,28 @@
                 () -> mBlobStoreManager.openBlob(blobHandle));
     }
 
+    @Test
+    public void testRecommitBlob() throws Exception {
+        final BlobHandle blobHandle = getBlobHandleFromArgs();
+        try (ParcelFileDescriptor pfd = mBlobStoreManager.openBlob(blobHandle)) {
+            assertThat(pfd).isNotNull();
+
+            final long sessionId = createSession(blobHandle);
+            assertThat(sessionId).isGreaterThan(0L);
+            try (BlobStoreManager.Session session = mBlobStoreManager.openSession(sessionId)) {
+                Utils.writeToSession(session, pfd);
+                if (getShouldAllowPublicFromArgs()) {
+                    session.allowPublicAccess();
+                }
+
+                final CompletableFuture<Integer> callback = new CompletableFuture<>();
+                session.commit(mContext.getMainExecutor(), callback::complete);
+                assertThat(callback.get(TIMEOUT_COMMIT_CALLBACK_MS, TimeUnit.MILLISECONDS))
+                        .isEqualTo(0);
+            }
+        }
+    }
+
     private void addSessionIdToResults(long sessionId) {
         final Bundle results = new Bundle();
         results.putLong(KEY_SESSION_ID, sessionId);
diff --git a/hostsidetests/calllog/app/src/android/provider/cts/contacts/testapp/CallLogDirectBootTest.java b/hostsidetests/calllog/app/src/android/provider/cts/contacts/testapp/CallLogDirectBootTest.java
index d16f0bd..d8ca24f 100644
--- a/hostsidetests/calllog/app/src/android/provider/cts/contacts/testapp/CallLogDirectBootTest.java
+++ b/hostsidetests/calllog/app/src/android/provider/cts/contacts/testapp/CallLogDirectBootTest.java
@@ -63,7 +63,8 @@
             Pair<Uri, CallLog.CallComposerLoggingException> result;
             try (InputStream inputStream =
                          mDe.getResources().openRawResource(R.drawable.cupcake)) {
-                CallLog.storeCallComposerPictureAsUser(mDe, android.os.Process.myUserHandle(),
+                CallLog.storeCallComposerPicture(
+                        mDe.createContextAsUser(android.os.Process.myUserHandle(), 0),
                         inputStream,
                         Executors.newSingleThreadExecutor(),
                         new OutcomeReceiver<Uri, CallLog.CallComposerLoggingException>() {
diff --git a/hostsidetests/calllog/src/android/provider/cts/contacts/hostside/ShadowCallLogTest.java b/hostsidetests/calllog/src/android/provider/cts/contacts/hostside/ShadowCallLogTest.java
index 086cf80..272a3df 100644
--- a/hostsidetests/calllog/src/android/provider/cts/contacts/hostside/ShadowCallLogTest.java
+++ b/hostsidetests/calllog/src/android/provider/cts/contacts/hostside/ShadowCallLogTest.java
@@ -29,12 +29,14 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.io.File;
 
 @RunWith(DeviceJUnit4ClassRunner.class)
+@Ignore("Runtime too long and may lock up device when it fails")
 public class ShadowCallLogTest extends BaseHostJUnit4Test {
     private static final String TAG = ShadowCallLogTest.class.getSimpleName();
 
diff --git a/hostsidetests/devicepolicy/app/CertInstaller/src/com/android/cts/certinstaller/DirectDelegatedCertInstallerTest.java b/hostsidetests/devicepolicy/app/CertInstaller/src/com/android/cts/certinstaller/DirectDelegatedCertInstallerTest.java
index caa08f7..fa7a21e 100644
--- a/hostsidetests/devicepolicy/app/CertInstaller/src/com/android/cts/certinstaller/DirectDelegatedCertInstallerTest.java
+++ b/hostsidetests/devicepolicy/app/CertInstaller/src/com/android/cts/certinstaller/DirectDelegatedCertInstallerTest.java
@@ -31,6 +31,7 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.Process;
 import android.security.AttestedKeyPair;
 import android.security.KeyChain;
 import android.security.keystore.KeyGenParameterSpec;
@@ -51,6 +52,7 @@
 import java.security.cert.CertificateFactory;
 import java.security.spec.PKCS8EncodedKeySpec;
 import java.util.List;
+import java.util.Map;
 
 /*
  * Tests the delegated certificate installer functionality.
@@ -236,7 +238,7 @@
                 /* requestAccess= */ true);
 
         assertThat(mDpm.getKeyPairGrants(TEST_ALIAS))
-                .isEqualTo(singleton(singleton(getContext().getPackageName())));
+                .isEqualTo(Map.of(Process.myUid(), singleton(getContext().getPackageName())));
     }
 
     public void testIsWifiGrant_default() {
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/latest/AndroidManifest.xml b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/latest/AndroidManifest.xml
index 2af83d7..e691e20 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/latest/AndroidManifest.xml
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/latest/AndroidManifest.xml
@@ -31,6 +31,7 @@
     <uses-permission android:name="android.permission.SET_WALLPAPER"/>
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
     <uses-permission android:name="android.permission.CAMERA"/>
+    <uses-permission android:name="android.permission.MODIFY_QUIET_MODE"/>
     <!-- Needed to read the serial number during Device ID attestation tests -->
     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/DevicePolicyLoggingTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/DevicePolicyLoggingTest.java
index 3acce6e..22c17a2 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/DevicePolicyLoggingTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/DevicePolicyLoggingTest.java
@@ -186,9 +186,9 @@
         mDevicePolicyManager.setUninstallBlocked(ADMIN_RECEIVER_COMPONENT, PACKAGE_NAME, false);
     }
 
-    public void testSetEnterpriseNetworkPreferenceEnabledLogged() {
-        mDevicePolicyManager.setEnterpriseNetworkPreferenceEnabled(true);
-        mDevicePolicyManager.setEnterpriseNetworkPreferenceEnabled(false);
+    public void testSetPreferentialNetworkServiceEnabledLogged() {
+        mDevicePolicyManager.setPreferentialNetworkServiceEnabled(true);
+        mDevicePolicyManager.setPreferentialNetworkServiceEnabled(false);
     }
 
     public void testDisallowAdjustVolumeMutedLogged() {
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
index 8b464fe..95d6b9c 100755
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
@@ -37,6 +37,7 @@
 import android.keystore.cts.AuthorizationList;
 import android.net.Uri;
 import android.os.Build;
+import android.os.Process;
 import android.security.AttestedKeyPair;
 import android.security.KeyChain;
 import android.security.KeyChainAliasCallback;
@@ -49,8 +50,6 @@
 
 import com.android.compatibility.common.util.FakeKeys.FAKE_RSA_1;
 
-import com.google.common.collect.Sets;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -74,6 +73,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -755,7 +756,6 @@
         }
     }
 
-
     public void testCanSetKeyPairCert() throws Exception {
         final String alias = "com.android.test.set-ec-1";
         try {
@@ -854,7 +854,7 @@
                 TEST_ALIAS, /* requestAccess= */ true);
 
         assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS))
-                .isEqualTo(singleton(singleton(getWho().getPackageName())));
+                .isEqualTo(Map.of(Process.myUid(), singleton(getWho().getPackageName())));
     }
 
     public void testGetKeyPairGrants_GrantedExplicitly() {
@@ -863,7 +863,7 @@
         mDevicePolicyManager.grantKeyPairToApp(getWho(), TEST_ALIAS, getWho().getPackageName());
 
         assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS))
-                .isEqualTo(singleton(singleton(getWho().getPackageName())));
+                .isEqualTo(Map.of(Process.myUid(), singleton(getWho().getPackageName())));
     }
 
     public void testGetKeyPairGrants_Revoked() {
@@ -874,23 +874,27 @@
         assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS)).isEmpty();
     }
 
-    public void testGetKeyPairGrants_SharedUid() {
+    public void testGetKeyPairGrants_SharedUid() throws Exception {
         mDevicePolicyManager.installKeyPair(getWho(), mFakePrivKey, new Certificate[]{mFakeCert},
                 TEST_ALIAS, /* requestAccess= */ false);
         mDevicePolicyManager.grantKeyPairToApp(getWho(), TEST_ALIAS, SHARED_UID_APP1_PKG);
+        final int sharedUid = mContext.getPackageManager()
+                .getApplicationInfo(SHARED_UID_APP1_PKG, 0).uid;
 
         assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS))
-                .isEqualTo(singleton(Sets.newHashSet(SHARED_UID_APP1_PKG, SHARED_UID_APP2_PKG)));
+                .isEqualTo(Map.of(sharedUid, Set.of(SHARED_UID_APP1_PKG, SHARED_UID_APP2_PKG)));
     }
 
-    public void testGetKeyPairGrants_DifferentUids() {
+    public void testGetKeyPairGrants_DifferentUids() throws Exception {
         mDevicePolicyManager.installKeyPair(getWho(), mFakePrivKey, new Certificate[]{mFakeCert},
                 TEST_ALIAS, /* requestAccess= */ true);
         mDevicePolicyManager.grantKeyPairToApp(getWho(), TEST_ALIAS, SHARED_UID_APP1_PKG);
+        final int sharedUid = mContext.getPackageManager()
+                .getApplicationInfo(SHARED_UID_APP1_PKG, 0).uid;
 
-        assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS)).isEqualTo(Sets.newHashSet(
-                Sets.newHashSet(SHARED_UID_APP1_PKG, SHARED_UID_APP2_PKG),
-                singleton(getWho().getPackageName())));
+        assertThat(mDevicePolicyManager.getKeyPairGrants(TEST_ALIAS)).isEqualTo(Map.of(
+                Process.myUid(), singleton(getWho().getPackageName()),
+                sharedUid, Set.of(SHARED_UID_APP1_PKG, SHARED_UID_APP2_PKG)));
     }
 
     public void testIsWifiGrant_default() {
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/LockTaskTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/LockTaskTest.java
index 5ab2307..35e3ee2 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/LockTaskTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/LockTaskTest.java
@@ -24,6 +24,8 @@
 import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_OVERVIEW;
 import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_SYSTEM_INFO;
 
+import static com.google.common.truth.Truth.assertWithMessage;
+
 import static org.junit.Assert.assertArrayEquals;
 import static org.testng.Assert.assertThrows;
 
@@ -43,9 +45,10 @@
 import android.view.KeyEvent;
 
 import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
 
 import java.time.Duration;
+import java.util.HashSet;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 public class LockTaskTest extends BaseDeviceAdminTest {
@@ -179,6 +182,48 @@
         assertFalse(mDevicePolicyManager.isLockTaskPermitted(TEST_PACKAGE));
     }
 
+    // When OEM defines policy-exempt apps, they are permitted on lock task mode
+    public void testIsLockTaskPermittedIncludesPolicyExemptApps() {
+        Set<String> policyExemptApps = mDevicePolicyManager.getPolicyExemptApps();
+        if (policyExemptApps.isEmpty()) {
+            Log.v(TAG, "OEM doesn't define any policy-exempt app");
+            return;
+        }
+
+        for (String app : policyExemptApps) {
+            assertWithMessage("isLockTaskPermitted(%s)", app)
+                    .that(mDevicePolicyManager.isLockTaskPermitted(app)).isTrue();
+        }
+    }
+
+    // Setting and unsetting the lock task packages when the OEM defines policy-exempt apps
+    public void testSetLockTaskPackagesIgnoresExemptApps() {
+        Set<String> policyExemptApps = mDevicePolicyManager.getPolicyExemptApps();
+        if (policyExemptApps.isEmpty()) {
+            Log.v(TAG, "OEM doesn't define any policy exempt app");
+            return;
+        }
+
+        assertWithMessage("lock task packages initially")
+                .that(mDevicePolicyManager.getLockTaskPackages(ADMIN_COMPONENT)).isEmpty();
+
+
+        String[] packages = new String[] { TEST_PACKAGE };
+        Set<String> expectedLockTaskPackages = new HashSet<>(policyExemptApps);
+        expectedLockTaskPackages.add(TEST_PACKAGE);
+
+        mDevicePolicyManager.setLockTaskPackages(ADMIN_COMPONENT, packages);
+
+        assertWithMessage("lock task packages after adding %s", TEST_PACKAGE)
+                .that(mDevicePolicyManager.getLockTaskPackages(ADMIN_COMPONENT)).asList()
+                .containsExactlyElementsIn(expectedLockTaskPackages);
+
+
+        mDevicePolicyManager.setLockTaskPackages(ADMIN_COMPONENT, new String[0]);
+        assertWithMessage("lock task packages after reset")
+                .that(mDevicePolicyManager.getLockTaskPackages(ADMIN_COMPONENT)).isEmpty();
+    }
+
     // Setting and unsetting the lock task features. The actual UI behavior is tested with CTS
     // verifier.
     public void testSetLockTaskFeatures() {
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PersonalAppsSuspensionTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PersonalAppsSuspensionTest.java
index e4f97fa..6fcd364 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PersonalAppsSuspensionTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PersonalAppsSuspensionTest.java
@@ -26,6 +26,9 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.os.Process;
+import android.os.UserHandle;
+import android.os.UserManager;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
@@ -33,6 +36,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -69,6 +73,28 @@
     }
 
     @Test
+    public void testEnableQuietMode() {
+        requestQuietModeEnabledForProfile(true);
+    }
+
+    @Test
+    public void testDisableQuietMode() {
+        requestQuietModeEnabledForProfile(false);
+    }
+
+    private void requestQuietModeEnabledForProfile(boolean enabled) {
+        final UserManager userManager = UserManager.get(mContext);
+        final List<UserHandle> users = userManager.getUserProfiles();
+
+        // Should get primary user itself and its profile.
+        assertThat(users.size()).isEqualTo(2);
+        final UserHandle profileHandle =
+                users.get(0).equals(Process.myUserHandle()) ? users.get(1) : users.get(0);
+
+        userManager.requestQuietModeEnabled(enabled, profileHandle);
+    }
+
+    @Test
     public void testComplianceAcknowledgementRequiredReceived() {
         final SharedPreferences pref =
                 mContext.getSharedPreferences(COMPLIANCE_ACK_PREF_NAME, Context.MODE_PRIVATE);
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/EnterpriseNetworkPreferenceStatusTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PreferentialNetworkServiceStatusTest.java
similarity index 61%
rename from hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/EnterpriseNetworkPreferenceStatusTest.java
rename to hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PreferentialNetworkServiceStatusTest.java
index b118b2d..191704a 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/EnterpriseNetworkPreferenceStatusTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PreferentialNetworkServiceStatusTest.java
@@ -19,8 +19,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-public class EnterpriseNetworkPreferenceStatusTest extends BaseDeviceAdminTest {
-    private static final String TAG = "EnterpriseNetworkPreferenceStatusTest";
+public class PreferentialNetworkServiceStatusTest extends BaseDeviceAdminTest {
+    private static final String TAG = "PreferentialNetworkServiceStatusTest";
 
     @Override
     public void setUp() throws Exception {
@@ -32,14 +32,14 @@
         super.tearDown();
     }
 
-    public void testGetSetEnterpriseNetworkPreferenceStatus() throws Exception {
+    public void testGetSetPreferentialNetworkServiceStatus() throws Exception {
         // Assert default status is true
-        assertTrue(mDevicePolicyManager.isEnterpriseNetworkPreferenceEnabled());
+        assertTrue(mDevicePolicyManager.isPreferentialNetworkServiceEnabled());
 
-        mDevicePolicyManager.setEnterpriseNetworkPreferenceEnabled(false);
-        assertFalse(mDevicePolicyManager.isEnterpriseNetworkPreferenceEnabled());
+        mDevicePolicyManager.setPreferentialNetworkServiceEnabled(false);
+        assertFalse(mDevicePolicyManager.isPreferentialNetworkServiceEnabled());
 
-        mDevicePolicyManager.setEnterpriseNetworkPreferenceEnabled(true);
-        assertTrue(mDevicePolicyManager.isEnterpriseNetworkPreferenceEnabled());
+        mDevicePolicyManager.setPreferentialNetworkServiceEnabled(true);
+        assertTrue(mDevicePolicyManager.isPreferentialNetworkServiceEnabled());
     }
 }
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/ResetPasswordWithTokenTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/ResetPasswordWithTokenTest.java
index b1f5f9f..a1ccb12 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/ResetPasswordWithTokenTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/ResetPasswordWithTokenTest.java
@@ -351,7 +351,7 @@
         resetComplexPasswordRestrictions();
 
         String caseDescription = "minimum Letters=0";
-        assertPasswordSucceeds("1234", caseDescription);
+        assertPasswordFails("1234", caseDescription); // Numeric PIN not allowed
         assertPasswordSucceeds("a123", caseDescription);
         assertPasswordSucceeds("abc1", caseDescription);
         assertPasswordSucceeds("abcd", caseDescription);
@@ -390,7 +390,7 @@
         assertPasswordSucceeds("abcd", caseDescription);
         assertPasswordSucceeds("1abc", caseDescription);
         assertPasswordSucceeds("123a", caseDescription);
-        assertPasswordSucceeds("1234", caseDescription);
+        assertPasswordFails("1234", caseDescription); // Numeric PIN not allowed
         assertPasswordFails("123", caseDescription); // too short
 
         mDevicePolicyManager.setPasswordMinimumNumeric(ADMIN_RECEIVER_COMPONENT, 1);
@@ -399,7 +399,7 @@
         assertPasswordFails("abcd", caseDescription);
         assertPasswordSucceeds("1abc", caseDescription);
         assertPasswordSucceeds("123a", caseDescription);
-        assertPasswordSucceeds("1234", caseDescription);
+        assertPasswordFails("1234", caseDescription); // Numeric PIN not allowed
         assertPasswordFails("123", caseDescription); // too short
 
         mDevicePolicyManager.setPasswordMinimumNumeric(ADMIN_RECEIVER_COMPONENT, 3);
@@ -408,7 +408,7 @@
         assertPasswordFails("abcd", caseDescription);
         assertPasswordFails("1abc", caseDescription);
         assertPasswordSucceeds("123a", caseDescription);
-        assertPasswordSucceeds("1234", caseDescription);
+        assertPasswordFails("1234", caseDescription); // Numeric PIN not allowed
         assertPasswordFails("123", caseDescription); // too short
     }
 
diff --git a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/AdminActionBookkeepingTest.java b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/AdminActionBookkeepingTest.java
index 9fc7078..401a2e7 100644
--- a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/AdminActionBookkeepingTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/AdminActionBookkeepingTest.java
@@ -15,21 +15,33 @@
  */
 package com.android.cts.deviceowner;
 
+import static com.google.common.truth.Truth.assertWithMessage;
+
 import android.app.PendingIntent;
 import android.content.ContentResolver;
 import android.os.Process;
+import android.os.UserHandle;
 import android.provider.Settings;
+import android.util.Log;
 
 import com.android.cts.devicepolicy.TestCertificates;
 
+import com.google.common.collect.Range;
+
 import java.io.ByteArrayInputStream;
 import java.security.KeyStore;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateFactory;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 public class AdminActionBookkeepingTest extends BaseDeviceOwnerTest {
+
+    private static final String TAG = AdminActionBookkeepingTest.class.getSimpleName();
+
+    private static final int NOTIFICATION_TIMEOUT_MS = 5 * 60_000; // 5 minutes
+
     @Override
     protected void tearDown() throws Exception {
         mDevicePolicyManager.setSecurityLoggingEnabled(getWho(), false);
@@ -43,7 +55,9 @@
      * Test: Retrieving security logs should update the corresponding timestamp.
      */
     public void testRetrieveSecurityLogs() throws Exception {
-        Thread.sleep(1);
+        Log.i(TAG, "testRetrieveSecurityLogs()");
+
+        sleep(1);
         final long previousTimestamp = mDevicePolicyManager.getLastSecurityLogRetrievalTime();
 
         mDevicePolicyManager.setSecurityLoggingEnabled(getWho(), true);
@@ -53,11 +67,10 @@
         long timeAfter = System.currentTimeMillis();
 
         final long firstTimestamp = mDevicePolicyManager.getLastSecurityLogRetrievalTime();
-        assertTrue(firstTimestamp > previousTimestamp);
-        assertTrue(firstTimestamp >= timeBefore);
-        assertTrue(firstTimestamp <= timeAfter);
 
-        Thread.sleep(2);
+        assertTimeStamps(timeBefore, previousTimestamp, firstTimestamp, timeAfter);
+
+        sleep(2);
         timeBefore = System.currentTimeMillis();
         final boolean preBootSecurityLogsRetrieved =
                 mDevicePolicyManager.retrievePreRebootSecurityLogs(getWho()) != null;
@@ -67,13 +80,12 @@
         if (preBootSecurityLogsRetrieved) {
             // If the device supports pre-boot security logs, verify that retrieving them updates
             // the timestamp.
-            assertTrue(secondTimestamp > firstTimestamp);
-            assertTrue(secondTimestamp >= timeBefore);
-            assertTrue(secondTimestamp <= timeAfter);
+            assertTimeStamps(timeBefore, firstTimestamp, secondTimestamp, timeAfter);
         } else {
             // If the device does not support pre-boot security logs, verify that the attempt to
             // retrieve them does not update the timestamp.
-            assertEquals(firstTimestamp, secondTimestamp);
+            assertWithMessage("timestamp when device does not support pre-boot security logs")
+                    .that(firstTimestamp).isEqualTo(secondTimestamp);
         }
     }
 
@@ -81,11 +93,13 @@
      * Test: Requesting a bug report should update the corresponding timestamp.
      */
     public void testRequestBugreport() throws Exception {
+        Log.i(TAG, "testRequestBugreport()");
+
         // This test leaves a notification which will block future tests that request bug reports
         // to fix this - we dismiss the bug report before returning
         CountDownLatch notificationDismissedLatch = initTestRequestBugreport();
 
-        Thread.sleep(1);
+        sleep(1);
         final long previousTimestamp = mDevicePolicyManager.getLastBugReportRequestTime();
 
         final long timeBefore = System.currentTimeMillis();
@@ -93,9 +107,7 @@
         final long timeAfter = System.currentTimeMillis();
 
         final long newTimestamp = mDevicePolicyManager.getLastBugReportRequestTime();
-        assertTrue(newTimestamp > previousTimestamp);
-        assertTrue(newTimestamp >= timeBefore);
-        assertTrue(newTimestamp <= timeAfter);
+        assertTimeStamps(timeBefore, previousTimestamp, newTimestamp, timeAfter);
 
         cleanupTestRequestBugreport(notificationDismissedLatch);
     }
@@ -103,6 +115,7 @@
     private CountDownLatch initTestRequestBugreport() {
         CountDownLatch notificationDismissedLatch = new CountDownLatch(1);
         NotificationListener.getInstance().addListener((sbt) -> {
+            Log.i(TAG, "Received notification: " + sbt);
             // The notification we are looking for is the one which confirms the bug report is
             // ready and asks for consent to send it
             if (sbt.getPackageName().equals("android") &&
@@ -113,7 +126,9 @@
                     sbt.getNotification().actions[0].actionIntent.send();
                     notificationDismissedLatch.countDown();
                 } catch (PendingIntent.CanceledException e) {
-                    fail("Could not dismiss bug report notification");
+                    String msg = "Could not dismiss bug report notification";
+                    Log.e(TAG, msg, e);
+                    fail(msg);
                 }
             }
         });
@@ -122,7 +137,13 @@
 
     private void cleanupTestRequestBugreport(CountDownLatch notificationDismissedLatch)
             throws Exception {
-        notificationDismissedLatch.await();
+        Log.d(TAG, "Waiting " + NOTIFICATION_TIMEOUT_MS + "ms for bugreport notification");
+        if (!notificationDismissedLatch.await(NOTIFICATION_TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+            String msg = "Didn't receive bugreport notification in " + NOTIFICATION_TIMEOUT_MS
+                    + " ms";
+            Log.e(TAG, msg);
+            fail(msg);
+        }
         NotificationListener.getInstance().clearListeners();
     }
 
@@ -130,7 +151,9 @@
      * Test: Retrieving network logs should update the corresponding timestamp.
      */
     public void testGetLastNetworkLogRetrievalTime() throws Exception {
-        Thread.sleep(1);
+        Log.i(TAG, "testGetLastNetworkLogRetrievalTime()");
+
+        sleep(1);
         final long previousTimestamp = mDevicePolicyManager.getLastSecurityLogRetrievalTime();
 
         mDevicePolicyManager.setNetworkLoggingEnabled(getWho(), true);
@@ -140,9 +163,7 @@
         long timeAfter = System.currentTimeMillis();
 
         final long newTimestamp = mDevicePolicyManager.getLastNetworkLogRetrievalTime();
-        assertTrue(newTimestamp > previousTimestamp);
-        assertTrue(newTimestamp >= timeBefore);
-        assertTrue(newTimestamp <= timeAfter);
+        assertTimeStamps(timeBefore, previousTimestamp, newTimestamp, timeAfter);
     }
 
     /**
@@ -150,48 +171,63 @@
      * managing the device.
      */
     public void testDeviceOwnerOrganizationName() throws Exception {
+        Log.i(TAG, "testDeviceOwnerOrganizationName()");
+
         mDevicePolicyManager.setOrganizationName(getWho(), null);
-        assertNull(mDevicePolicyManager.getDeviceOwnerOrganizationName());
+        assertWithMessage("dpm.getDeviceOwnerOrganizationName()")
+                .that(mDevicePolicyManager.getDeviceOwnerOrganizationName()).isNull();
 
         mDevicePolicyManager.setOrganizationName(getWho(), "organization");
-        assertEquals("organization", mDevicePolicyManager.getDeviceOwnerOrganizationName());
+        assertWithMessage("dpm.getDeviceOwnerOrganizationName()")
+                .that(mDevicePolicyManager.getDeviceOwnerOrganizationName())
+                .isEqualTo("organization");
 
         mDevicePolicyManager.setOrganizationName(getWho(), null);
-        assertNull(mDevicePolicyManager.getDeviceOwnerOrganizationName());
+        assertWithMessage("dpm.getDeviceOwnerOrganizationName()")
+                .that(mDevicePolicyManager.getDeviceOwnerOrganizationName()).isNull();
     }
 
     /**
      * Test: When a Device Owner is set, isDeviceManaged() should return true.
      */
     public void testIsDeviceManaged() throws Exception {
-        assertTrue(mDevicePolicyManager.isDeviceManaged());
+        Log.i(TAG, "testIsDeviceManaged()");
+
+        assertWithMessage("dpm.isDeviceManaged()").that(mDevicePolicyManager.isDeviceManaged())
+                .isTrue();
     }
 
     /**
      * Test: It should be recored whether the Device Owner or the user set the current IME.
      */
     public void testIsDefaultInputMethodSet() throws Exception {
-        final String setting = Settings.Secure.DEFAULT_INPUT_METHOD;
-        final ContentResolver resolver = getContext().getContentResolver();
-        final String ime = Settings.Secure.getString(resolver, setting);
+        Log.i(TAG, "testIsDefaultInputMethodSet()");
 
-        Settings.Secure.putString(resolver, setting, "com.test.1");
-        Thread.sleep(500);
-        assertFalse(mDevicePolicyManager.isCurrentInputMethodSetByOwner());
+        final String setting = Settings.Secure.DEFAULT_INPUT_METHOD;
+        final String ime = getSecureSettings(setting);
+
+        setSecureSettings(setting, "com.test.1");
+        sleep(500);
+        assertWithMessage("dpm.isCurrentInputMethodSetByOwner()")
+                .that(mDevicePolicyManager.isCurrentInputMethodSetByOwner()).isFalse();
 
         mDevicePolicyManager.setSecureSetting(getWho(), setting, "com.test.2");
-        Thread.sleep(500);
-        assertTrue(mDevicePolicyManager.isCurrentInputMethodSetByOwner());
+        sleep(500);
+        assertWithMessage("%s.isCurrentInputMethodSetByOwner()", mDevicePolicyManager)
+                .that(mDevicePolicyManager.isCurrentInputMethodSetByOwner()).isTrue();
 
-        Settings.Secure.putString(resolver, setting, ime);
-        Thread.sleep(500);
-        assertFalse(mDevicePolicyManager.isCurrentInputMethodSetByOwner());
+        setSecureSettings(setting, ime);
+        sleep(500);
+        assertWithMessage("%s.isCurrentInputMethodSetByOwner()", mDevicePolicyManager)
+                .that(mDevicePolicyManager.isCurrentInputMethodSetByOwner()).isFalse();
     }
 
     /**
      * Test: It should be recored whether the Device Owner or the user installed a CA cert.
      */
     public void testGetPolicyInstalledCaCerts() throws Exception {
+        Log.i(TAG, "testGetPolicyInstalledCaCerts()");
+
         final byte[] rawCert = TestCertificates.TEST_CA.getBytes();
         final Certificate cert = CertificateFactory.getInstance("X.509")
                 .generateCertificate(new ByteArrayInputStream(rawCert));
@@ -199,10 +235,12 @@
         // Install a CA cert.
         KeyStore keyStore = KeyStore.getInstance("AndroidCAStore");
         keyStore.load(null, null);
-        assertNull(keyStore.getCertificateAlias(cert));
-        assertTrue(mDevicePolicyManager.installCaCert(getWho(), rawCert));
+        assertWithMessage("keystore.getCertificateAlias()").that(keyStore.getCertificateAlias(cert))
+                .isNull();
+        assertWithMessage("dpm.installCaCert()")
+                .that(mDevicePolicyManager.installCaCert(getWho(), rawCert)).isTrue();
         final String alias = keyStore.getCertificateAlias(cert);
-        assertNotNull(alias);
+        assertWithMessage("keystore.getCertificateAlias()").that(alias).isNotNull();
 
         // Verify that the CA cert was marked as installed by the Device Owner.
         verifyOwnerInstalledStatus(alias, true);
@@ -215,9 +253,44 @@
     }
 
     private void verifyOwnerInstalledStatus(String alias, boolean expectOwnerInstalled) {
+        final UserHandle user = Process.myUserHandle();
         final List<String> ownerInstalledCerts =
-                mDevicePolicyManager.getOwnerInstalledCaCerts(Process.myUserHandle());
-        assertNotNull(ownerInstalledCerts);
-        assertEquals(expectOwnerInstalled, ownerInstalledCerts.contains(alias));
+                mDevicePolicyManager.getOwnerInstalledCaCerts(user);
+        assertWithMessage("dpm.getOwnerInstalledCaCerts(%s)", user).that(ownerInstalledCerts)
+                .isNotNull();
+        if (expectOwnerInstalled) {
+            assertWithMessage("dpm.getOwnerInstalledCaCerts(%s)", user).that(ownerInstalledCerts)
+                    .contains(alias);
+        } else {
+            assertWithMessage("dpm.getOwnerInstalledCaCerts(%s)", user).that(ownerInstalledCerts)
+                    .doesNotContain(alias);
+        }
+    }
+
+    private void sleep(int durationMs) throws InterruptedException {
+        Log.v(TAG, "Sleeping for " + durationMs + " ms on thread " + Thread.currentThread());
+        Thread.sleep(durationMs);
+        Log.v(TAG, "Woke up");
+    }
+
+    private void assertTimeStamps(long before, long timeStamp1, long timeStamp2, long after) {
+        assertWithMessage("first and second timestamp order").that(timeStamp2)
+                .isGreaterThan(timeStamp1);
+        assertWithMessage("second timestamp range").that(timeStamp2)
+                .isIn(Range.closed(before, after));
+    }
+
+    private void setSecureSettings(String name, String value) {
+        final ContentResolver resolver = getContext().getContentResolver();
+        Log.d(TAG, "Setting '" + name + "'='" + value + "' on user " + getContext().getUserId());
+        Settings.Secure.putString(resolver, name , value);
+        Log.v(TAG, "Set");
+    }
+
+    private String getSecureSettings(String name) {
+        final ContentResolver resolver = getContext().getContentResolver();
+        String value = Settings.Secure.getString(resolver, name);
+        Log.d(TAG, "Got '" + name + "' for user " + getContext().getUserId() + ": " + value);
+        return value;
     }
 }
diff --git a/hostsidetests/devicepolicy/app/TestLauncher/Android.bp b/hostsidetests/devicepolicy/app/TestLauncher/Android.bp
deleted file mode 100644
index f13f2bd..0000000
--- a/hostsidetests/devicepolicy/app/TestLauncher/Android.bp
+++ /dev/null
@@ -1,32 +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 {
-    default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-android_test_helper_app {
-    name: "TestLauncher",
-    defaults: ["cts_defaults"],
-    srcs: ["src/**/*.java"],
-    static_libs: [
-        "cts-devicepolicy-suspensionchecker",
-    ],
-    test_suites: [
-        "arcts",
-        "cts",
-        "general-tests",
-        "mts",
-    ],
-}
diff --git a/hostsidetests/devicepolicy/app/TestLauncher/AndroidManifest.xml b/hostsidetests/devicepolicy/app/TestLauncher/AndroidManifest.xml
deleted file mode 100644
index 596fcd0..0000000
--- a/hostsidetests/devicepolicy/app/TestLauncher/AndroidManifest.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 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="com.android.cts.testlauncher">
-    <application android:label="Test Launcher">
-        <activity android:name="android.app.Activity"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.HOME"/>
-                <category android:name="android.intent.category.DEFAULT"/>
-            </intent-filter>
-        </activity>
-        <activity android:name=".QuietModeToggleActivity"
-             android:exported="true"/>
-    </application>
-
-    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
-         android:targetPackage="com.android.cts.testlauncher">
-        <meta-data android:name="listener"
-             android:value="com.android.cts.runner.CtsTestRunListener"/>
-    </instrumentation>
-</manifest>
diff --git a/hostsidetests/devicepolicy/app/TestLauncher/src/com/android/cts/dummylauncher/QuietModeToggleActivity.java b/hostsidetests/devicepolicy/app/TestLauncher/src/com/android/cts/dummylauncher/QuietModeToggleActivity.java
deleted file mode 100644
index fd2a280..0000000
--- a/hostsidetests/devicepolicy/app/TestLauncher/src/com/android/cts/dummylauncher/QuietModeToggleActivity.java
+++ /dev/null
@@ -1,62 +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 com.android.cts.testlauncher;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Process;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.util.Log;
-
-import java.util.List;
-
-public class QuietModeToggleActivity extends Activity {
-    private static final String TAG = "QuietModeToggleActivity";
-    private static final String EXTRA_QUIET_MODE_STATE =
-            "com.android.cts.testactivity.QUIET_MODE_STATE";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        toggleQuietMode();
-        finish();
-    }
-
-    private void toggleQuietMode() {
-        final boolean quietModeState = getIntent().getBooleanExtra(EXTRA_QUIET_MODE_STATE, false);
-        final UserManager userManager = UserManager.get(this);
-
-        final List<UserHandle> users = userManager.getUserProfiles();
-        if (users.size() != 2) {
-            Log.e(TAG, "Unexpected number of profiles: " + users.size());
-            return;
-        }
-
-        final UserHandle profileHandle =
-                users.get(0).equals(Process.myUserHandle()) ? users.get(1) : users.get(0);
-
-        final String quietModeStateString = quietModeState ? "enabled" : "disabled";
-        if (userManager.isQuietModeEnabled(profileHandle) == quietModeState) {
-            Log.w(TAG, "Quiet mode is already " + quietModeStateString);
-            return;
-        }
-
-        userManager.requestQuietModeEnabled(quietModeState, profileHandle);
-        Log.i(TAG, "Quiet mode for user " + profileHandle + " was set to " + quietModeStateString);
-    }
-}
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/AccountCheckHostSideTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/AccountCheckHostSideTest.java
index 17154bc..7078bf9 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/AccountCheckHostSideTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/AccountCheckHostSideTest.java
@@ -18,6 +18,7 @@
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
 
 import android.platform.test.annotations.LargeTest;
 
@@ -28,6 +29,12 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+/**
+ * Set of tests to test setting DO and PO when there is account on the user.
+ *
+ * <p>For example, setting DO or PO shall fail at DPMS.hasIncompatibleAccountsOrNonAdbNoLock when
+ * there was incompatible account on the user.
+ */
 public class AccountCheckHostSideTest extends BaseDevicePolicyTest {
     private static final String APK_NON_TEST_ONLY = "CtsAccountCheckNonTestOnlyOwnerApp.apk";
     private static final String APK_TEST_ONLY = "CtsAccountCheckTestOnlyOwnerApp.apk";
@@ -48,10 +55,40 @@
     private static final String TEST_CLASS =
             "com.android.cts.devicepolicy.accountcheck.AccountCheckTest";
 
+    private static final String DISALLOW_MODIFY_ACCOUNTS = "no_modify_accounts";
+
+    private boolean mDeviceOwnerCanHaveAccounts;
+    private boolean mProfileOwnerCanHaveAccounts;
+    private int mProfileOwnerUserId;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mProfileOwnerUserId = mPrimaryUserId;
+        mDeviceOwnerCanHaveAccounts = !isRestrictionSetOnUser(mDeviceOwnerUserId,
+                DISALLOW_MODIFY_ACCOUNTS);
+        // Optimization to avoid running dumpsys again
+        if (mProfileOwnerUserId == mDeviceOwnerUserId) {
+            mProfileOwnerCanHaveAccounts = mDeviceOwnerCanHaveAccounts;
+        } else {
+            mProfileOwnerCanHaveAccounts = !isRestrictionSetOnUser(mProfileOwnerUserId,
+                    DISALLOW_MODIFY_ACCOUNTS);
+        }
+        CLog.d("mDeviceOwnerUserId: " +  mDeviceOwnerUserId
+                + " mDeviceOwnerCanHaveAccounts: " + mDeviceOwnerCanHaveAccounts
+                + " mProfileOwnerUserId: " + mProfileOwnerUserId
+                + " mProfileOwnerCanHaveAccounts: " + mProfileOwnerCanHaveAccounts);
+        assumeTrue("Neither primary user or device owner user is allowed to add accounts",
+                mDeviceOwnerCanHaveAccounts || mProfileOwnerCanHaveAccounts);
+    }
+
     @Override
     public void tearDown() throws Exception {
         if (getDevice().getInstalledPackageNames().contains(PACKAGE_AUTH)) {
-            runCleanupTestOnlyOwnerAllowingFailure();
+            runCleanupTestOnlyOwnerAllowingFailure(mProfileOwnerUserId);
+            if (mDeviceOwnerUserId != mProfileOwnerUserId) {
+                runCleanupTestOnlyOwnerAllowingFailure(mDeviceOwnerUserId);
+            }
             runCleanupNonTestOnlyOwnerAllowingFailure();
 
             // This shouldn't be needed since we're uninstalling the authenticator,
@@ -67,16 +104,23 @@
     }
 
     private void runTest(String method) throws Exception {
-        runDeviceTests(PACKAGE_AUTH, TEST_CLASS, method);
+        runTestAsUser(method, mProfileOwnerUserId);
+        if (mDeviceOwnerCanHaveAccounts && mProfileOwnerUserId != mDeviceOwnerUserId) {
+            runTestAsUser(method, mDeviceOwnerUserId);
+        }
     }
 
-    private void runCleanupTestOnlyOwner() throws Exception {
-        assertTrue(removeAdmin(OWNER_TEST_ONLY, mPrimaryUserId));
+    private void runTestAsUser(String method, int userId) throws Exception {
+        runDeviceTestsAsUser(PACKAGE_AUTH, TEST_CLASS, method, userId);
     }
 
-    private void runCleanupTestOnlyOwnerAllowingFailure() throws Exception {
+    private void runCleanupTestOnlyOwner(int userId) throws Exception {
+        assertTrue(removeAdmin(OWNER_TEST_ONLY, userId));
+    }
+
+    private void runCleanupTestOnlyOwnerAllowingFailure(int userId) throws Exception {
         try {
-            runCleanupTestOnlyOwner();
+            runCleanupTestOnlyOwner(userId);
         } catch (AssertionError ignore) {
         }
     }
@@ -104,35 +148,47 @@
     }
 
     private void assertTestOnlyInstallable() throws Exception {
-        setDeviceOwnerOrFail(OWNER_TEST_ONLY, mPrimaryUserId);
-        runCleanupTestOnlyOwner();
-
-        setProfileOwnerOrFail(OWNER_TEST_ONLY, mPrimaryUserId);
-        runCleanupTestOnlyOwner();
+        if (mDeviceOwnerCanHaveAccounts) {
+            setDeviceOwnerOrFail(OWNER_TEST_ONLY, mDeviceOwnerUserId);
+            runCleanupTestOnlyOwner(mDeviceOwnerUserId);
+        }
+        if (mProfileOwnerCanHaveAccounts) {
+            setProfileOwnerOrFail(OWNER_TEST_ONLY, mProfileOwnerUserId);
+            runCleanupTestOnlyOwner(mProfileOwnerUserId);
+        }
     }
 
     private void assertNonTestOnlyInstallable() throws Exception {
-        setDeviceOwnerOrFail(OWNER_NON_TEST_ONLY, mPrimaryUserId);
-        runCleanupNonTestOnlyOwner();
-
-        setProfileOwnerOrFail(OWNER_NON_TEST_ONLY, mPrimaryUserId);
-        runCleanupNonTestOnlyOwner();
+        if (mDeviceOwnerCanHaveAccounts) {
+            setDeviceOwnerOrFail(OWNER_NON_TEST_ONLY, mDeviceOwnerUserId);
+            runCleanupNonTestOnlyOwner();
+        }
+        if (mProfileOwnerCanHaveAccounts) {
+            setProfileOwnerOrFail(OWNER_NON_TEST_ONLY, mProfileOwnerUserId);
+            runCleanupNonTestOnlyOwner();
+        }
     }
 
     private void assertTestOnlyNotInstallable() throws Exception {
-        setDeviceOwnerExpectingFailure(OWNER_TEST_ONLY, mPrimaryUserId);
-        runCleanupTestOnlyOwnerAllowingFailure();
-
-        setProfileOwnerExpectingFailure(OWNER_TEST_ONLY, mPrimaryUserId);
-        runCleanupTestOnlyOwnerAllowingFailure();
+        if (mDeviceOwnerCanHaveAccounts) {
+            setDeviceOwnerExpectingFailure(OWNER_TEST_ONLY, mDeviceOwnerUserId);
+            runCleanupTestOnlyOwnerAllowingFailure(mDeviceOwnerUserId);
+        }
+        if (mProfileOwnerCanHaveAccounts) {
+            setProfileOwnerExpectingFailure(OWNER_TEST_ONLY, mProfileOwnerUserId);
+            runCleanupTestOnlyOwnerAllowingFailure(mProfileOwnerUserId);
+        }
     }
 
     private void assertNonTestOnlyNotInstallable() throws Exception {
-        setDeviceOwnerExpectingFailure(OWNER_NON_TEST_ONLY, mPrimaryUserId);
-        runCleanupNonTestOnlyOwnerAllowingFailure();
-
-        setProfileOwnerExpectingFailure(OWNER_NON_TEST_ONLY, mPrimaryUserId);
-        runCleanupNonTestOnlyOwnerAllowingFailure();
+        if (mDeviceOwnerCanHaveAccounts) {
+            setDeviceOwnerExpectingFailure(OWNER_NON_TEST_ONLY, mDeviceOwnerUserId);
+            runCleanupNonTestOnlyOwnerAllowingFailure();
+        }
+        if (mProfileOwnerCanHaveAccounts) {
+            setProfileOwnerExpectingFailure(OWNER_NON_TEST_ONLY, mProfileOwnerUserId);
+            runCleanupNonTestOnlyOwnerAllowingFailure();
+        }
     }
 
     private boolean hasAccounts() throws Exception {
@@ -151,14 +207,28 @@
         return Integer.parseInt(count) > 0;
     }
 
+    /**
+     * This set of tests will test whether DO and PO can be set on the user when
+     * there is/are different types of accounts added on the target test user.
+     */
     @Test
     @LargeTest
     public void testAccountCheck() throws Exception {
-        installAppAsUser(APK_AUTH, mPrimaryUserId);
-        installAppAsUser(APK_NON_TEST_ONLY, mPrimaryUserId);
-        installAppAsUser(APK_TEST_ONLY, mPrimaryUserId);
+        installAppAsUser(APK_AUTH, mProfileOwnerUserId);
+        installAppAsUser(APK_NON_TEST_ONLY, mProfileOwnerUserId);
+        installAppAsUser(APK_TEST_ONLY, mProfileOwnerUserId);
+        runCleanupTestOnlyOwnerAllowingFailure(mProfileOwnerUserId);
 
-        runCleanupTestOnlyOwnerAllowingFailure();
+        // For tests in headless system user mode, test packages need to be installed for
+        // system user even for PO tests since PO will be set via adb command which will require
+        // TestAuthenticator installed on system user.
+        if (mDeviceOwnerUserId != mProfileOwnerUserId) {
+            installAppAsUser(APK_AUTH, mDeviceOwnerUserId);
+            installAppAsUser(APK_NON_TEST_ONLY, mDeviceOwnerUserId);
+            installAppAsUser(APK_TEST_ONLY, mDeviceOwnerUserId);
+            runCleanupTestOnlyOwnerAllowingFailure(mDeviceOwnerUserId);
+        }
+
         runCleanupNonTestOnlyOwnerAllowingFailure();
         removeAllAccountsAllowingFailure();
         try {
@@ -244,11 +314,11 @@
      */
     @Test
     public void testInheritTestOnly() throws Exception {
-        installAppAsUser(APK_TEST_ONLY, mPrimaryUserId);
+        installAppAsUser(APK_TEST_ONLY, mDeviceOwnerUserId);
 
         // Set as DO.
         try {
-            setDeviceOwnerOrFail(OWNER_TEST_ONLY, mPrimaryUserId);
+            setDeviceOwnerOrFail(OWNER_TEST_ONLY, mDeviceOwnerUserId);
         } catch (Throwable e) {
             CLog.e("Unable to install DO, can't continue the test. Skipping.  hasAccounts="
                     + hasAccounts());
@@ -257,17 +327,17 @@
         try {
 
             // Override with a package that's not test-only.
-            installAppAsUser(APK_TEST_ONLY_UPDATE, mPrimaryUserId);
+            installAppAsUser(APK_TEST_ONLY_UPDATE, mDeviceOwnerUserId);
 
             // But DPMS keeps the original test-only flag, so it's still removable.
-            runCleanupTestOnlyOwner();
+            runCleanupTestOnlyOwner(mDeviceOwnerUserId);
 
             return;
         } catch (Throwable e) {
             // If failed, re-install the APK with test-only=true.
             try {
-                installAppAsUser(APK_TEST_ONLY, mPrimaryUserId);
-                runCleanupTestOnlyOwner();
+                installAppAsUser(APK_TEST_ONLY, mDeviceOwnerUserId);
+                runCleanupTestOnlyOwner(mDeviceOwnerUserId);
             } catch (Exception inner) {
                 CLog.e("Unable to clean up after a failure: " + e.getMessage());
             }
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/BaseDevicePolicyTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/BaseDevicePolicyTest.java
index c28da3b..9e852a5 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/BaseDevicePolicyTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/BaseDevicePolicyTest.java
@@ -507,6 +507,13 @@
             stopUserAsync(userId);
         }
         for (int userId : usersCreatedByTests) {
+            removeTestAddedUser(userId);
+        }
+    }
+
+    private void removeTestAddedUser(int userId) throws Exception  {
+        // Don't remove system user or initial user.
+        if (userId != USER_SYSTEM && userId != mInitialUserId) {
             removeUser(userId);
         }
     }
@@ -798,9 +805,8 @@
     protected void setProfileOwnerOrFail(String componentName, int userId)
             throws Exception {
         if (!setProfileOwner(componentName, userId, /*expectFailure*/ false)) {
-            if (userId != 0) { // don't remove system user.
-                removeUser(userId);
-            }
+            // Don't remove system user or initial user that tests require to run on.
+            removeTestAddedUser(userId);
             fail("Failed to set profile owner");
         }
     }
@@ -808,9 +814,7 @@
     protected void setProfileOwnerExpectingFailure(String componentName, int userId)
             throws Exception {
         if (setProfileOwner(componentName, userId, /* expectFailure =*/ true)) {
-            if (userId != 0) { // don't remove system user.
-                removeUser(userId);
-            }
+            removeTestAddedUser(userId);
             fail("Setting profile owner should have failed.");
         }
     }
@@ -1199,6 +1203,57 @@
                 + "broadcasts to user 0", deviceAdminPkg, userId);
         executeShellCommand("pm grant --user %d %s android.permission.INTERACT_ACROSS_USERS",
                 userId, deviceAdminPkg);
+
+        CLog.i("Granting WRITE_SECURE_SETTINGS package (%s) on user %d as some tests might need it",
+                deviceAdminPkg, userId);
+        executeShellCommand("pm grant --user %d %s android.permission.WRITE_SECURE_SETTINGS",
+                userId, deviceAdminPkg);
+    }
+
+    /** Find effective restriction for user */
+    protected boolean isRestrictionSetOnUser(int userId, String restriction) throws Exception {
+        String commandOutput = getDevice().executeShellCommand("dumpsys user");
+        String[] outputLines = commandOutput.split("\\n");
+        Pattern userPattern = Pattern.compile("(^.*)UserInfo\\{" + userId + ":.*$");
+        Pattern restrictionPattern = Pattern.compile("(^.*)Effective\\srestrictions\\:.*$");
+
+        boolean userFound = false;
+        boolean restrictionsFound = false;
+        int lastIndent = -1;
+
+        for (String line : outputLines) {
+            // Starting a new block of user infos
+            if (!line.startsWith(" ".repeat(lastIndent + 1))) {
+                CLog.d("User %d restrictions found, no matched restriction.", userId);
+                return false;
+            }
+            //First, try matching user pattern
+            Matcher userMatcher = userPattern.matcher(line);
+            if (userMatcher.find()) {
+                CLog.d("User %d found in dumpsys, finding restrictions.", userId);
+                userFound = true;
+                lastIndent = userMatcher.group(1).length();
+            }
+
+            // Second, try matching restriction
+            Matcher restrictionMatcher = restrictionPattern.matcher(line);
+            if (userFound && restrictionMatcher.find()) {
+                CLog.d("User %d restrictions found, finding exact restriction.", userId);
+                restrictionsFound = true;
+                lastIndent = restrictionMatcher.group(1).length();
+            }
+
+            if (restrictionsFound && line.contains(restriction)) {
+                return true;
+            }
+        }
+        if (!userFound) {
+            CLog.e("User %d not found in dumpsys.", userId);
+        }
+        if (!restrictionsFound) {
+            CLog.d("User %d found in dumpsys, but restrictions not found.", userId);
+        }
+        return false;
     }
 
     /**
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAdminFeaturesCheckerRule.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAdminFeaturesCheckerRule.java
index e75056f..b66099e 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAdminFeaturesCheckerRule.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAdminFeaturesCheckerRule.java
@@ -206,5 +206,7 @@
     @Retention(RetentionPolicy.RUNTIME)
     @Target({ElementType.METHOD})
     public static @interface TemporaryIgnoreOnHeadlessSystemUserMode {
+        String bugId();
+        String reason();
     }
 }
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
index 0177cf3..d994718 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
@@ -100,13 +100,15 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "185498043",
+            reason = "automotive doesn't have IProxyService")
     public void testProxyStaticProxyTest() throws Exception {
         executeDeviceOwnerTest("proxy.StaticProxyTest");
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "185498043",
+            reason = "automotive doesn't have IProxyService")
     public void testProxyPacProxyTest() throws Exception {
         executeDeviceOwnerTest("proxy.PacProxyTest");
     }
@@ -453,7 +455,6 @@
 
     @FlakyTest(bugId = 127101449)
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testWifiConfigLockdown() throws Exception {
         assumeHasWifiFeature();
 
@@ -470,7 +471,6 @@
      * Execute WifiSetHttpProxyTest as device owner.
      */
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testWifiSetHttpProxyTest() throws Exception {
         assumeHasWifiFeature();
         try (LocationModeSetter locationModeSetter = new LocationModeSetter(getDevice())) {
@@ -501,7 +501,6 @@
 
     // Execute HardwarePropertiesManagerTest as a device owner.
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testHardwarePropertiesManagerAsDeviceOwner() throws Exception {
 
         executeDeviceTestMethod(".HardwarePropertiesManagerTest", "testHardwarePropertiesManager");
@@ -533,7 +532,6 @@
 
     @FlakyTest(bugId = 137096267)
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testAdminActionBookkeeping() throws Exception {
         executeDeviceOwnerTest("AdminActionBookkeepingTest");
         assertMetricsLogged(getDevice(), () -> {
@@ -552,7 +550,6 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testBluetoothRestriction() throws Exception {
         executeDeviceOwnerTest("BluetoothRestrictionTest");
     }
@@ -563,7 +560,8 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "185523465",
+            reason = "need to decide how to support it")
     public void testSetLocationEnabled() throws Exception {
         executeDeviceOwnerTest("SetLocationEnabledTest");
     }
@@ -579,7 +577,6 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testDisallowFactoryReset() throws Exception {
         int adminVersion = 24;
         changeUserRestrictionOrFail("no_factory_reset", true, mPrimaryUserId,
@@ -608,7 +605,6 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testDeviceOwnerCanGetDeviceIdentifiers() throws Exception {
         // The Device Owner should have access to all device identifiers.
         executeDeviceTestMethod(".DeviceIdentifiersTest",
@@ -616,7 +612,6 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testPackageInstallCache() throws Exception {
         CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(getBuild());
         final File apk = buildHelper.getTestFile(TEST_APP_APK);
@@ -727,7 +722,6 @@
 
     @FlakyTest(bugId = 134487729)
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testPrivateDnsPolicy() throws Exception {
         executeDeviceOwnerTest("PrivateDnsPolicyTest");
     }
@@ -767,7 +761,6 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     public void testNoHiddenActivityFoundTest() throws Exception {
         try {
             // Install app to primary user
@@ -913,7 +906,6 @@
                 "testListForegroundAffiliatedUsers_onlyForegroundUser");
     }
 
-    @TemporaryIgnoreOnHeadlessSystemUserMode
     @Test
     public void testWifiNetworkConfigurationWithoutFineLocationPermission() throws Exception {
         getDevice().executeShellCommand(String.format(
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedDeviceOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedDeviceOwnerTest.java
index ad6ca63..2b49d1c 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedDeviceOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedDeviceOwnerTest.java
@@ -118,6 +118,18 @@
     }
 
     @Test
+    public void testIsLockTaskPermitted_includesPolicyExemptApps() throws Exception {
+        runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".LockTaskTest",
+                "testIsLockTaskPermittedIncludesPolicyExemptApps", mDeviceOwnerUserId);
+    }
+
+    @Test
+    public void testLockTask_policyExemptApps() throws Exception {
+        runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".LockTaskTest",
+                "testSetLockTaskPackagesIgnoresExemptApps", mDeviceOwnerUserId);
+    }
+
+    @Test
     public void testDelegatedCertInstallerDeviceIdAttestation() throws Exception {
         setUpDelegatedCertInstallerAndRunTests(() ->
                 runDeviceTestsAsUser("com.android.cts.certinstaller",
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedManagedProfileOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedManagedProfileOwnerTest.java
index cc7e599..bb1a66b 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedManagedProfileOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/MixedManagedProfileOwnerTest.java
@@ -138,22 +138,22 @@
     }
 
     @Test
-    public void testSetGetEnterpriseNetworkPreferenceStatus() throws Exception {
-        executeDeviceTestMethod(".EnterpriseNetworkPreferenceStatusTest",
-                "testGetSetEnterpriseNetworkPreferenceStatus");
+    public void testSetGetPreferentialNetworkServiceStatus() throws Exception {
+        executeDeviceTestMethod(".PreferentialNetworkServiceStatusTest",
+                "testGetSetPreferentialNetworkServiceStatus");
     }
 
     @Test
-    public void testSetEnterpriseNetworkPreferenceStatusLogged() throws Exception {
+    public void testSetPreferentialNetworkServiceStatusLogged() throws Exception {
         DevicePolicyEventLogVerifier.assertMetricsLogged(getDevice(), () -> {
             executeDeviceTestMethod(".DevicePolicyLoggingTest",
-                    "testSetEnterpriseNetworkPreferenceEnabledLogged");
+                    "testSetPreferentialNetworkServiceEnabledLogged");
         }, new DevicePolicyEventWrapper.Builder(
-                EventId.SET_ENTERPRISE_NETWORK_PREFERENCE_ENABLED_VALUE)
+                EventId.SET_PREFERENTIAL_NETWORK_SERVICE_ENABLED_VALUE)
                 .setBoolean(true)
                 .build(),
         new DevicePolicyEventWrapper.Builder(
-                EventId.SET_ENTERPRISE_NETWORK_PREFERENCE_ENABLED_VALUE)
+                EventId.SET_PREFERENTIAL_NETWORK_SERVICE_ENABLED_VALUE)
                 .setBoolean(false)
                 .build());
     }
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/OrgOwnedProfileOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/OrgOwnedProfileOwnerTest.java
index 0fd3f3d..408ca48 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/OrgOwnedProfileOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/OrgOwnedProfileOwnerTest.java
@@ -65,19 +65,11 @@
     private static final String TEST_LAUNCHER_APK = "TestLauncher.apk";
     private static final String TEST_LAUNCHER_COMPONENT =
             "com.android.cts.testlauncher/android.app.Activity";
-    private static final String QUIET_MODE_TOGGLE_ACTIVITY =
-            "com.android.cts.testlauncher/.QuietModeToggleActivity";
-    private static final String EXTRA_QUIET_MODE_STATE =
-            "com.android.cts.testactivity.QUIET_MODE_STATE";
     public static final String SUSPENSION_CHECKER_CLASS =
             "com.android.cts.suspensionchecker.ActivityLaunchTest";
 
-    private static final String ACTION_ACKNOWLEDGEMENT_REQUIRED =
-            "com.android.cts.deviceandprofileowner.action.ACKNOWLEDGEMENT_REQUIRED";
-    private static final String ACTION_ARGUMENT = "broadcast-action";
-
     private static final String USER_IS_NOT_STARTED = "User is not started";
-    private static final long USER_STOP_TIMEOUT_SEC = 30;
+    private static final long USER_STOP_TIMEOUT_SEC = 60;
 
     protected int mUserId;
     private static final String DISALLOW_CONFIG_LOCATION = "no_config_location";
@@ -608,22 +600,15 @@
         runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                 "testSetManagedProfileMaximumTimeOff1Sec", mUserId);
 
-        final String defaultLauncher = getDefaultLauncher();
-        try {
-            installAppAsUser(TEST_LAUNCHER_APK, true, true, mPrimaryUserId);
-            setAndStartLauncher(TEST_LAUNCHER_COMPONENT);
-            toggleQuietMode(true);
-            // Verify that at some point personal app becomes impossible to launch.
-            runDeviceTestsAsUser(DEVICE_ADMIN_PKG, SUSPENSION_CHECKER_CLASS,
-                    "testWaitForActivityNotLaunchable", mPrimaryUserId);
-            toggleQuietMode(false);
-            // Ensure the profile is properly started before wipe broadcast is sent in teardown.
-            waitForUserUnlock(mUserId);
-            runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
-                    "testPersonalAppsSuspendedByTimeout", mUserId);
-        } finally {
-            setAndStartLauncher(defaultLauncher);
-        }
+        toggleQuietMode(true);
+        // Verify that at some point personal app becomes impossible to launch.
+        runDeviceTestsAsUser(DEVICE_ADMIN_PKG, SUSPENSION_CHECKER_CLASS,
+                "testWaitForActivityNotLaunchable", mPrimaryUserId);
+        toggleQuietMode(false);
+        // Ensure the profile is properly started before wipe broadcast is sent in teardown.
+        waitForUserUnlock(mUserId);
+        runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
+                "testPersonalAppsSuspendedByTimeout", mUserId);
     }
 
     @Test
@@ -634,10 +619,7 @@
         runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                 "testSetManagedProfileMaximumTimeOff1Year", mUserId);
 
-        final String defaultLauncher = getDefaultLauncher();
         try {
-            installAppAsUser(TEST_LAUNCHER_APK, true, true, mPrimaryUserId);
-            setAndStartLauncher(TEST_LAUNCHER_COMPONENT);
             toggleQuietMode(true);
             waitForUserStopped(mUserId);
             toggleQuietMode(false);
@@ -652,7 +634,6 @@
                     "testComplianceAcknowledgementNotRequired", mUserId);
 
         } finally {
-            setAndStartLauncher(defaultLauncher);
             runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                     "testClearComplianceSharedPreference", mUserId);
         }
@@ -669,10 +650,7 @@
         runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                 "testSetOverrideOnComplianceAcknowledgementRequired", mUserId);
 
-        final String defaultLauncher = getDefaultLauncher();
         try {
-            installAppAsUser(TEST_LAUNCHER_APK, true, true, mPrimaryUserId);
-            setAndStartLauncher(TEST_LAUNCHER_COMPONENT);
             toggleQuietMode(true);
             waitForUserStopped(mUserId);
             toggleQuietMode(false);
@@ -686,7 +664,6 @@
             runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                     "testAcknowledgeCompliance", mUserId);
         } finally {
-            setAndStartLauncher(defaultLauncher);
             runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
                     "testClearComplianceSharedPreference", mUserId);
         }
@@ -786,18 +763,8 @@
     }
 
     private void toggleQuietMode(boolean quietModeEnable) throws Exception {
-        final String str;
-        // TV launcher uses intent filter priority to prevent 3p launchers replacing it
-        // this causes the activity that toggles quiet mode to be suspended
-        // and the profile would never start
-        if (isTv()) {
-            str = quietModeEnable ? String.format("am stop-user -f %d", mUserId)
-                    : String.format("am start-user %d", mUserId);
-        } else {
-            str = String.format("am start-activity -n %s --ez %s %s",
-                    QUIET_MODE_TOGGLE_ACTIVITY, EXTRA_QUIET_MODE_STATE, quietModeEnable);
-        }
-        executeShellCommand(str);
+        runDeviceTestsAsUser(DEVICE_ADMIN_PKG, ".PersonalAppsSuspensionTest",
+                quietModeEnable ? "testEnableQuietMode" : "testDisableQuietMode", mPrimaryUserId);
     }
 
     private void setAndStartLauncher(String component) throws Exception {
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ProfileOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ProfileOwnerTest.java
index b2f93d8..eae5c48 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ProfileOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ProfileOwnerTest.java
@@ -57,19 +57,22 @@
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode // TODO(b/183020176): decide if it's needed or fix it
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "183020176",
+            reason = "decide if it's needed or fix it")
     public void testManagement() throws Exception {
         executeProfileOwnerTest("ManagementTest");
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode // TODO(b/183020176): decide if it's needed or fix it
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "183020176",
+            reason = "decide if it's needed or fix it")
     public void testAdminActionBookkeeping() throws Exception {
         executeProfileOwnerTest("AdminActionBookkeepingTest");
     }
 
     @Test
-    @TemporaryIgnoreOnHeadlessSystemUserMode // TODO(b/183020176): decide if it's needed or fix it
+    @TemporaryIgnoreOnHeadlessSystemUserMode(bugId = "183020176",
+            reason = "decide if it's needed or fix it")
     public void testAppUsageObserver() throws Exception {
         executeProfileOwnerTest("AppUsageObserverTest");
     }
diff --git a/hostsidetests/hdmicec/README.md b/hostsidetests/hdmicec/README.md
index 4364e6c..b774e46 100644
--- a/hostsidetests/hdmicec/README.md
+++ b/hostsidetests/hdmicec/README.md
@@ -20,7 +20,13 @@
 *   HDMI Display (aka a TV) with CEC disabled to avoid interference, or an HDMI fake plug
 
 It is recommended that the playback device has an HDMI physical address of `1.0.0.0` while running
-the tests.
+the tests. In case the DUT takes a physical address other than `1.0.0.0` and this is unavoidable,
+the tests can be configured to expect a different physical address by appending these arguments to
+the tradefed command:
+```
+--module-arg CtsHdmiCecHostTestCases:set-option:cec-phy-addr:<address_in_decimal>
+```
+Thus, for a device that is taking an address `3.0.0.0`, pass `12288` as the `cec-phy-addr` argument.
 
 The CEC adapter may also be installed in-between the TV and the playback device.
 
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
index d774d27..2f19320 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/BaseHdmiCecCtsTest.java
@@ -240,7 +240,7 @@
 
     public boolean isLanguageEditable() throws Exception {
         String val = getDevice().executeShellCommand(
-                "getprop ro.hdmi.cec.source.set_menu_language.enabled");
+                "getprop ro.hdmi.set_menu_language");
         return val.trim().equals("true") ? true : false;
     }
 }
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/tv/HdmiCecSystemInformationTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/tv/HdmiCecSystemInformationTest.java
new file mode 100644
index 0000000..777c5ca
--- /dev/null
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/tv/HdmiCecSystemInformationTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.hdmicec.cts.tv;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.hdmicec.cts.BaseHdmiCecCtsTest;
+import android.hdmicec.cts.CecMessage;
+import android.hdmicec.cts.CecOperand;
+import android.hdmicec.cts.LogicalAddress;
+
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.junit.runner.RunWith;
+
+import java.util.Locale;
+
+/** HDMI CEC system information tests (Section 11.1.6) */
+@RunWith(DeviceJUnit4ClassRunner.class)
+public final class HdmiCecSystemInformationTest extends BaseHdmiCecCtsTest {
+
+    @Rule
+    public RuleChain ruleChain =
+            RuleChain.outerRule(CecRules.requiresCec(this))
+                    .around(CecRules.requiresLeanback(this))
+                    .around(CecRules.requiresDeviceType(this, LogicalAddress.TV))
+                    .around(hdmiCecClient);
+
+    public HdmiCecSystemInformationTest() {
+        super(LogicalAddress.TV);
+    }
+
+    /**
+     * Test 11.1.6-5
+     *
+     * <p>Tests that the device responds correctly to a {@code <Get Menu Language>} message coming
+     * from various logical addresses (1, 3, 4, 5, 13, 14 and 15).
+     */
+    @Test
+    public void cect_11_1_6_5_DutRespondsToGetMenuLanguage() throws Exception {
+        final String tvLanguage = new Locale(extractLanguage(getSystemLocale())).getISO3Language();
+        String message;
+        LogicalAddress sources[] = {
+            LogicalAddress.RECORDER_1,
+            LogicalAddress.TUNER_1,
+            LogicalAddress.PLAYBACK_1,
+            LogicalAddress.AUDIO_SYSTEM,
+            LogicalAddress.RESERVED_2,
+            LogicalAddress.SPECIFIC_USE,
+            LogicalAddress.BROADCAST
+        };
+        for (LogicalAddress source : sources) {
+            hdmiCecClient.sendCecMessage(source, CecOperand.GET_MENU_LANGUAGE);
+            message = hdmiCecClient.checkExpectedOutput(CecOperand.SET_MENU_LANGUAGE);
+            assertThat(CecMessage.getAsciiString(message)).isEqualTo(tvLanguage);
+        }
+    }
+}
diff --git a/hostsidetests/jvmti/base/host/src/android/jvmti/cts/JvmtiHostTest.java b/hostsidetests/jvmti/base/host/src/android/jvmti/cts/JvmtiHostTest.java
index 0fee0ec..cecb6ed 100644
--- a/hostsidetests/jvmti/base/host/src/android/jvmti/cts/JvmtiHostTest.java
+++ b/hostsidetests/jvmti/base/host/src/android/jvmti/cts/JvmtiHostTest.java
@@ -77,9 +77,17 @@
         mAbi = arg0;
     }
 
+    // Constant returned to indicate get-current-user failed. See comment at/near
+    // https://cs.android.com/android/_/android/platform/tools/tradefederation/+/android11-release:device_build_interfaces/com/android/tradefed/device/ITestDevice.java;l=780
+    private static final int GET_USER_FAILURE = -10000;
+
+    // Try getting current user and throw an exception immediately if we fail.
     @Override
     protected void setUp() throws Exception {
         mCurrentUser = getDevice().getCurrentUser();
+        if (mCurrentUser == GET_USER_FAILURE) {
+            throw new RuntimeException("am get-current-user failed!");
+        }
     }
 
     public void testJvmti() throws Exception {
diff --git a/hostsidetests/media/app/MediaMetricsTest/Android.bp b/hostsidetests/media/app/MediaMetricsTest/Android.bp
index 7ac3324..3e7d643 100644
--- a/hostsidetests/media/app/MediaMetricsTest/Android.bp
+++ b/hostsidetests/media/app/MediaMetricsTest/Android.bp
@@ -16,6 +16,25 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+cc_test_library {
+    name: "libCtsMediaMetricsHostTestAppJni",
+    srcs: ["jni/aaudio_stream.cpp"],
+    cflags: [
+        "-Wall",
+        "-Werror",
+    ],
+    header_libs: ["jni_headers"],
+    shared_libs: [
+        "libaaudio",
+    ],
+    static_libs: [
+        "libnativetesthelper_jni",
+    ],
+    stl: "c++_static",
+    gtest: false,
+    sdk_version: "current",
+}
+
 android_test_helper_app {
     name: "CtsMediaMetricsHostTestApp",
     defaults: ["cts_defaults"],
@@ -26,10 +45,14 @@
     srcs: [
         "src/**/*.java",
     ],
+    jni_libs: [
+        "libCtsMediaMetricsHostTestAppJni",
+    ],
     static_libs: [
         "androidx.test.rules",
         "truth-prebuilt",
     ],
     sdk_version: "test_current",
     min_sdk_version: "30",
+    compile_multilib: "both",
 }
diff --git a/hostsidetests/media/app/MediaMetricsTest/AndroidManifest.xml b/hostsidetests/media/app/MediaMetricsTest/AndroidManifest.xml
index fc46782..78b5954 100644
--- a/hostsidetests/media/app/MediaMetricsTest/AndroidManifest.xml
+++ b/hostsidetests/media/app/MediaMetricsTest/AndroidManifest.xml
@@ -18,6 +18,7 @@
      package="android.media.metrics.cts"
      android:targetSandboxVersion="2">
 
+    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
     <uses-sdk android:minSdkVersion="30"/>
 
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
diff --git a/hostsidetests/media/app/MediaMetricsTest/jni/aaudio_stream.cpp b/hostsidetests/media/app/MediaMetricsTest/jni/aaudio_stream.cpp
new file mode 100644
index 0000000..699d9ea
--- /dev/null
+++ b/hostsidetests/media/app/MediaMetricsTest/jni/aaudio_stream.cpp
@@ -0,0 +1,68 @@
+/*
+ * 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.
+ *
+ */
+
+#define LOG_NDEBUG 0
+#define LOG_TAG "AAudioStreamAtom-JNI"
+
+#include <jni.h>
+
+#include <aaudio/AAudio.h>
+#include <gtest/gtest.h>
+
+void tryOpeningStream(aaudio_direction_t direction, aaudio_performance_mode_t performanceMode) {
+    AAudioStreamBuilder *builder = nullptr;
+    ASSERT_EQ(AAUDIO_OK, AAudio_createStreamBuilder(&builder));
+    ASSERT_NE(nullptr, builder);
+    AAudioStreamBuilder_setDirection(builder, direction);
+    AAudioStreamBuilder_setPerformanceMode(builder, performanceMode);
+
+    AAudioStream *stream = nullptr;
+    ASSERT_EQ(AAUDIO_OK, AAudioStreamBuilder_openStream(builder, &stream));
+    ASSERT_NE(nullptr, stream);
+    ASSERT_EQ(direction, AAudioStream_getDirection(stream));
+
+    ASSERT_EQ(AAUDIO_OK, AAudioStream_requestStart(stream));
+    ASSERT_EQ(AAUDIO_OK, AAudioStream_requestStop(stream));
+
+    // Cleanup
+    ASSERT_EQ(AAUDIO_OK, AAudioStreamBuilder_delete(builder));
+    ASSERT_EQ(AAUDIO_OK, AAudioStream_close(stream));
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_android_media_metrics_cts_MediaMetricsAtomHostSideTests_testAAudioMmapOutputStream(
+        JNIEnv *, jobject /* this */) {
+    tryOpeningStream(AAUDIO_DIRECTION_OUTPUT, AAUDIO_PERFORMANCE_MODE_LOW_LATENCY);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_android_media_metrics_cts_MediaMetricsAtomHostSideTests_testAAudioMmapInputStream(
+        JNIEnv *, jobject /* this */) {
+    tryOpeningStream(AAUDIO_DIRECTION_INPUT, AAUDIO_PERFORMANCE_MODE_LOW_LATENCY);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_android_media_metrics_cts_MediaMetricsAtomHostSideTests_testAAudioLegacyOutputStream(
+        JNIEnv *, jobject /* this */) {
+    tryOpeningStream(AAUDIO_DIRECTION_OUTPUT, AAUDIO_PERFORMANCE_MODE_NONE);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_android_media_metrics_cts_MediaMetricsAtomHostSideTests_testAAudioLegacyInputStream(
+        JNIEnv *, jobject /* this */) {
+    tryOpeningStream(AAUDIO_DIRECTION_INPUT, AAUDIO_PERFORMANCE_MODE_NONE);
+}
diff --git a/hostsidetests/media/app/MediaMetricsTest/src/android/media/metrics/cts/MediaMetricsAtomHostSideTests.java b/hostsidetests/media/app/MediaMetricsTest/src/android/media/metrics/cts/MediaMetricsAtomHostSideTests.java
index a252fa7..442386d 100644
--- a/hostsidetests/media/app/MediaMetricsTest/src/android/media/metrics/cts/MediaMetricsAtomHostSideTests.java
+++ b/hostsidetests/media/app/MediaMetricsTest/src/android/media/metrics/cts/MediaMetricsAtomHostSideTests.java
@@ -36,6 +36,10 @@
 
 public class MediaMetricsAtomHostSideTests {
 
+    static {
+        System.loadLibrary("CtsMediaMetricsHostTestAppJni");
+    }
+
     @Test
     public void testPlaybackStateEvent() throws Exception {
         Context context = InstrumentationRegistry.getContext();
@@ -149,4 +153,28 @@
         assertThat(idObj).isNotEqualTo(null);
         assertThat(idObj.getStringId().length()).isGreaterThan(0);
     }
+
+    /**
+     * Open aaudio mmap output stream and then close
+     */
+    @Test
+    public native void testAAudioMmapOutputStream();
+
+    /**
+     * Open aaudio mmap input stream and then close
+     */
+    @Test
+    public native void testAAudioMmapInputStream();
+
+    /**
+     * Open aaudio legacy output stream and then close
+     */
+    @Test
+    public native void testAAudioLegacyOutputStream();
+
+    /**
+     * Open aaudio legacy input stream and then close
+     */
+    @Test
+    public native void testAAudioLegacyInputStream();
 }
diff --git a/hostsidetests/media/src/android/media/metrics/cts/MediaMetricsAtomTests.java b/hostsidetests/media/src/android/media/metrics/cts/MediaMetricsAtomTests.java
index 313bc16..defde84 100644
--- a/hostsidetests/media/src/android/media/metrics/cts/MediaMetricsAtomTests.java
+++ b/hostsidetests/media/src/android/media/metrics/cts/MediaMetricsAtomTests.java
@@ -32,11 +32,16 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Base64;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 public class MediaMetricsAtomTests extends DeviceTestCase implements IBuildReceiver {
     public static final String TEST_APK = "CtsMediaMetricsHostTestApp.apk";
     public static final String TEST_PKG = "android.media.metrics.cts";
+    private static final String FEATURE_AUDIO_OUTPUT = "android.hardware.audio.output";
+    private static final String FEATURE_MICROPHONE = "android.hardware.microphone";
+    private static final int MAX_BUFFER_CAPACITY = 30 * 1024 * 1024; // 30M
     private IBuildInfo mCtsBuild;
 
     @Override
@@ -221,4 +226,94 @@
         List<StatsLog.EventMetricData> data = ReportUtils.getEventMetricDataList(getDevice());
         assertThat(data.size()).isEqualTo(0);
    }
+
+    private void validateAAudioStreamAtom(int direction) throws Exception {
+        Set<Integer> directionSet = new HashSet<>(Arrays.asList(direction));
+        List<Set<Integer>> directionList = Arrays.asList(directionSet);
+
+        List<StatsLog.EventMetricData> data = ReportUtils.getEventMetricDataList(getDevice());
+        AtomTestUtils.assertStatesOccurred(directionList, data, 0,
+                atom -> atom.getMediametricsAaudiostreamReported().getDirection().getNumber());
+
+        for (StatsLog.EventMetricData event : data) {
+            AtomsProto.MediametricsAAudioStreamReported atom =
+                    event.getAtom().getMediametricsAaudiostreamReported();
+            assertThat(atom.getBufferCapacity()).isGreaterThan(0);
+            assertThat(atom.getBufferCapacity()).isLessThan(MAX_BUFFER_CAPACITY);
+            assertThat(atom.getBufferSize()).isGreaterThan(0);
+            assertThat(atom.getBufferSize()).isAtMost(atom.getBufferCapacity());
+            assertThat(atom.getFramesPerBurst()).isGreaterThan(0);
+            assertThat(atom.getFramesPerBurst()).isLessThan(atom.getBufferCapacity());
+        }
+    }
+
+    private void runAAudioTestAndValidate(
+            String requiredFeature, int direction, String testFunctionName) throws Exception {
+        if (!DeviceUtils.hasFeature(getDevice(), requiredFeature)) {
+            return;
+        }
+        ConfigUtils.uploadConfigForPushedAtom(getDevice(), DeviceUtils.STATSD_ATOM_TEST_PKG,
+                AtomsProto.Atom.MEDIAMETRICS_AAUDIOSTREAM_REPORTED_FIELD_NUMBER);
+
+        DeviceUtils.runDeviceTests(
+                getDevice(),
+                TEST_PKG,
+                "android.media.metrics.cts.MediaMetricsAtomHostSideTests",
+                testFunctionName);
+        Thread.sleep(AtomTestUtils.WAIT_TIME_LONG);
+
+        validateAAudioStreamAtom(direction);
+    }
+
+    /**
+     * The test try to create and then close aaudio input stream with mmap path via media metrics
+     * atom host side test app on the DUT.
+     * After that, the event metric data for MediametricsAAudioStreamReported is pushed to verify
+     * the data is collected correctly.
+     */
+    public void testAAudioMmapInputStream() throws Exception {
+        runAAudioTestAndValidate(
+                FEATURE_MICROPHONE,
+                AtomsProto.MediametricsAAudioStreamReported.Direction.DIRECTION_INPUT_VALUE,
+                "testAAudioMmapInputStream");
+    }
+
+    /**
+     * The test try to create and then close aaudio output stream with mmap path via media metrics
+     * atom host side test app on the DUT.
+     * After that, the event metric data for MediametricsAAudioStreamReported is pushed to verify
+     * the data is collected correctly.
+     */
+    public void testAAudioMmapOutputStream() throws Exception {
+        runAAudioTestAndValidate(
+                FEATURE_AUDIO_OUTPUT,
+                AtomsProto.MediametricsAAudioStreamReported.Direction.DIRECTION_OUTPUT_VALUE,
+                "testAAudioMmapOutputStream");
+    }
+
+    /**
+     * The test try to create and then close aaudio input stream with legacy path via media metrics
+     * atom host side test app on the DUT.
+     * After that, the event metric data for MediametricsAAudioStreamReported is pushed to verify
+     * the data is collected correctly.
+     */
+    public void testAAudioLegacyInputStream() throws Exception {
+        runAAudioTestAndValidate(
+                FEATURE_MICROPHONE,
+                AtomsProto.MediametricsAAudioStreamReported.Direction.DIRECTION_INPUT_VALUE,
+                "testAAudioLegacyInputStream");
+    }
+
+    /**
+     * The test try to create and then close aaudio output stream with legacy path via media metrics
+     * atom host side test app on the DUT.
+     * After that, the event metric data for MediametricsAAudioStreamReported is pushed to verify
+     * the data is collected correctly.
+     */
+    public void testAAudioLegacyOutputStream() throws Exception {
+        runAAudioTestAndValidate(
+                FEATURE_AUDIO_OUTPUT,
+                AtomsProto.MediametricsAAudioStreamReported.Direction.DIRECTION_OUTPUT_VALUE,
+                "testAAudioLegacyOutputStream");
+    }
 }
diff --git a/hostsidetests/multiuser/TEST_MAPPING b/hostsidetests/multiuser/TEST_MAPPING
index 592aaad..f130cf2 100644
--- a/hostsidetests/multiuser/TEST_MAPPING
+++ b/hostsidetests/multiuser/TEST_MAPPING
@@ -1,5 +1,5 @@
 {
-  "presubmit": [
+  "presubmit-large": [
     {
       "name": "CtsMultiUserHostTestCases"
     }
diff --git a/hostsidetests/packagemanager/domainverification/apps/calling/src/com/android/cts/packagemanager/verify/domain/callingapp/DomainVerificationIntentHostTimedTests.kt b/hostsidetests/packagemanager/domainverification/apps/calling/src/com/android/cts/packagemanager/verify/domain/callingapp/DomainVerificationIntentHostTimedTests.kt
index 0d2a790..0526f2e 100644
--- a/hostsidetests/packagemanager/domainverification/apps/calling/src/com/android/cts/packagemanager/verify/domain/callingapp/DomainVerificationIntentHostTimedTests.kt
+++ b/hostsidetests/packagemanager/domainverification/apps/calling/src/com/android/cts/packagemanager/verify/domain/callingapp/DomainVerificationIntentHostTimedTests.kt
@@ -28,7 +28,7 @@
 import org.junit.runners.Parameterized
 
 @RunWith(Parameterized::class)
-class DomainVerificationIntentHostTimedTests : DomainVerificationIntentTestBase() {
+class DomainVerificationIntentHostTimedTests : DomainVerificationIntentTestBase(DOMAIN_1) {
 
     @Test
     fun multipleVerifiedTakeLastFirstInstall() {
diff --git a/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentInvalidHostTests.kt b/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentInvalidHostTests.kt
new file mode 100644
index 0000000..f57d599
--- /dev/null
+++ b/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentInvalidHostTests.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.cts.packagemanager.verify.domain.device
+
+import com.android.cts.packagemanager.verify.domain.android.DomainUtils.DECLARING_PKG_1_COMPONENT
+import com.android.cts.packagemanager.verify.domain.android.DomainUtils.DECLARING_PKG_2_COMPONENT
+import com.android.cts.packagemanager.verify.domain.android.DomainVerificationIntentTestBase
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+@RunWith(Parameterized::class)
+class DomainVerificationIntentInvalidHostTests :
+    DomainVerificationIntentTestBase("invalid1", assertResolvesToBrowsersInBefore = false) {
+
+    @Test
+    fun launchInvalidHttpUri() {
+        assertResolvesTo(browsers + DECLARING_PKG_1_COMPONENT + DECLARING_PKG_2_COMPONENT)
+    }
+}
diff --git a/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentStandaloneTests.kt b/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentStandaloneTests.kt
index 8923993..dd456fa 100644
--- a/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentStandaloneTests.kt
+++ b/hostsidetests/packagemanager/domainverification/device/src/com/android/cts/packagemanager/verify/domain/device/DomainVerificationIntentStandaloneTests.kt
@@ -30,7 +30,7 @@
 import org.junit.runners.Parameterized
 
 @RunWith(Parameterized::class)
-class DomainVerificationIntentStandaloneTests : DomainVerificationIntentTestBase() {
+class DomainVerificationIntentStandaloneTests : DomainVerificationIntentTestBase(DOMAIN_1) {
 
     @Test
     fun launchVerified() {
diff --git a/hostsidetests/packagemanager/domainverification/lib/constants/android/src/com/android/cts/packagemanager/verify/domain/android/DomainVerificationIntentTestBase.kt b/hostsidetests/packagemanager/domainverification/lib/constants/android/src/com/android/cts/packagemanager/verify/domain/android/DomainVerificationIntentTestBase.kt
index 7c02587..283332c 100644
--- a/hostsidetests/packagemanager/domainverification/lib/constants/android/src/com/android/cts/packagemanager/verify/domain/android/DomainVerificationIntentTestBase.kt
+++ b/hostsidetests/packagemanager/domainverification/lib/constants/android/src/com/android/cts/packagemanager/verify/domain/android/DomainVerificationIntentTestBase.kt
@@ -30,7 +30,6 @@
 import com.android.cts.packagemanager.verify.domain.java.DomainUtils
 import com.android.cts.packagemanager.verify.domain.java.DomainUtils.DECLARING_PKG_NAME_1
 import com.android.cts.packagemanager.verify.domain.java.DomainUtils.DECLARING_PKG_NAME_2
-import com.android.cts.packagemanager.verify.domain.java.DomainUtils.DOMAIN_1
 import com.android.cts.packagemanager.verify.domain.java.DomainUtils.DOMAIN_UNHANDLED
 import com.google.common.truth.Truth.assertThat
 import org.junit.After
@@ -40,7 +39,10 @@
 import org.junit.runners.Parameterized
 
 @RunWith(Parameterized::class)
-abstract class DomainVerificationIntentTestBase {
+abstract class DomainVerificationIntentTestBase(
+    private val domain: String,
+    private val assertResolvesToBrowsersInBefore: Boolean = true
+) {
 
     companion object {
 
@@ -65,7 +67,7 @@
 
     @Before
     fun findBrowsers() {
-        intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://$DOMAIN_1"))
+        intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://$domain"))
             .applyIntentVariant(intentVariant)
 
         browsers = Intent(Intent.ACTION_VIEW, Uri.parse("https://$DOMAIN_UNHANDLED"))
@@ -88,7 +90,10 @@
         }
 
         this.allResults = allResults
-        assertResolvesTo(browsers)
+
+        if (assertResolvesToBrowsersInBefore) {
+            assertResolvesTo(browsers)
+        }
     }
 
     @Before
@@ -103,19 +108,19 @@
 
     protected fun assertResolvesTo(result: ComponentName) = assertResolvesTo(listOf(result))
 
-    protected fun assertResolvesTo(packageNames: Collection<ComponentName>) {
+    protected fun assertResolvesTo(components: Collection<ComponentName>) {
         // Pass MATCH_DEFAULT_ONLY to mirror startActivity resolution
         assertThat(packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
             .map { it.activityInfo }
             .map { ComponentName(it.packageName, it.name) })
-            .containsExactlyElementsIn(packageNames)
+            .containsExactlyElementsIn(components)
 
         if (intent.hasCategory(Intent.CATEGORY_DEFAULT)) {
             // Verify explicit DEFAULT mirrors MATCH_DEFAULT_ONLY
             assertThat(packageManager.queryIntentActivities(intent, 0)
                 .map { it.activityInfo }
                 .map { ComponentName(it.packageName, it.name) })
-                .containsExactlyElementsIn(packageNames)
+                .containsExactlyElementsIn(components)
         } else {
             // Verify that non-DEFAULT match returns all results
             assertThat(packageManager.queryIntentActivities(intent, 0)
diff --git a/hostsidetests/scopedstorage/Android.bp b/hostsidetests/scopedstorage/Android.bp
index c2c0e82..7fa469b 100644
--- a/hostsidetests/scopedstorage/Android.bp
+++ b/hostsidetests/scopedstorage/Android.bp
@@ -170,17 +170,6 @@
     ]
 }
 
-android_test {
-    name: "SignatureStorageTest",
-    manifest: "signature/AndroidManifest.xml",
-    srcs: ["signature/src/**/*.java"],
-    static_libs: ["truth-prebuilt", "cts-scopedstorage-lib"],
-    compile_multilib: "both",
-    test_suites: ["general-tests", "mts", "cts"],
-    sdk_version: "test_current",
-    certificate: "platform",
-}
-
 java_test_host {
     name: "CtsScopedStorageCoreHostTest",
     srcs:  [
diff --git a/hostsidetests/scopedstorage/AndroidManifest.xml b/hostsidetests/scopedstorage/AndroidManifest.xml
index 9c3653b..2f16b9c 100644
--- a/hostsidetests/scopedstorage/AndroidManifest.xml
+++ b/hostsidetests/scopedstorage/AndroidManifest.xml
@@ -20,7 +20,6 @@
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
-    <uses-permission android:name="android.permission.ACCESS_MTP" />
     <application android:requestRawExternalStorageAccess="true">
         <uses-library android:name="android.test.runner" />
     </application>
diff --git a/hostsidetests/scopedstorage/AndroidTest.xml b/hostsidetests/scopedstorage/AndroidTest.xml
index 560ad48..8749087 100644
--- a/hostsidetests/scopedstorage/AndroidTest.xml
+++ b/hostsidetests/scopedstorage/AndroidTest.xml
@@ -23,7 +23,6 @@
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="ScopedStorageTest.apk" />
-        <option name="test-file-name" value="SignatureStorageTest.apk" />
         <option name="test-file-name" value="LegacyStorageTest.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppA.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppB.apk" />
diff --git a/hostsidetests/scopedstorage/PublicVolumeTest.xml b/hostsidetests/scopedstorage/PublicVolumeTest.xml
index e6c1cee..1dc4017 100644
--- a/hostsidetests/scopedstorage/PublicVolumeTest.xml
+++ b/hostsidetests/scopedstorage/PublicVolumeTest.xml
@@ -18,7 +18,6 @@
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="ScopedStorageTest.apk" />
-        <option name="test-file-name" value="SignatureStorageTest.apk" />
         <option name="test-file-name" value="LegacyStorageTest.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppA.apk" />
         <option name="test-file-name" value="CtsScopedStorageTestAppB.apk" />
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageBaseDeviceTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageBaseDeviceTest.java
index 5299188..7cad3db 100644
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageBaseDeviceTest.java
+++ b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageBaseDeviceTest.java
@@ -25,6 +25,7 @@
 import static androidx.test.InstrumentationRegistry.getContext;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
 import android.provider.MediaStore;
 import android.scopedstorage.cts.lib.TestUtils;
@@ -35,6 +36,8 @@
 import java.util.List;
 
 class ScopedStorageBaseDeviceTest {
+    private static final String VOLUME_PUBLIC = "volume_public";
+
     @BeforeClass
     public static void setup() throws Exception {
         createPublicVolume();
@@ -44,9 +47,11 @@
     private static void createPublicVolume() throws Exception {
         if (TestUtils.getCurrentPublicVolumeName() == null) {
             TestUtils.createNewPublicVolume();
+            assertWithMessage("Expected newly created public volume name to be not null")
+                    .that(TestUtils.getCurrentPublicVolumeName())
+                    .isNotNull();
         }
     }
-
     private static void setupStorage() throws Exception {
         if (!getContext().getPackageManager().isInstantApp()) {
             pollForExternalStorageState();
@@ -60,7 +65,11 @@
             resetDefaultExternalStorageVolume();
             TestUtils.assertDefaultVolumeIsPrimary();
         } else {
-            setExternalStorageVolume(volumeName);
+            final String publicVolumeName = TestUtils.getCurrentPublicVolumeName();
+            assertWithMessage("Expected public volume name to be not null")
+                    .that(publicVolumeName)
+                    .isNotNull();
+            setExternalStorageVolume(publicVolumeName);
             TestUtils.assertDefaultVolumeIsPublic();
         }
         setupDefaultDirectories();
@@ -69,7 +78,7 @@
     static List<String> getTestParameters() {
         return Arrays.asList(
                 MediaStore.VOLUME_EXTERNAL,
-                TestUtils.getCurrentPublicVolumeName()
+                VOLUME_PUBLIC
         );
     }
 }
diff --git a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java
index 17f5bc7..014c516 100644
--- a/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java
+++ b/hostsidetests/scopedstorage/device/src/android/scopedstorage/cts/device/ScopedStorageDeviceTest.java
@@ -35,6 +35,7 @@
 import static android.scopedstorage.cts.lib.TestUtils.assertCantRenameFile;
 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;
@@ -125,6 +126,7 @@
 import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Intent;
+import android.content.pm.ProviderInfo;
 import android.database.Cursor;
 import android.media.ExifInterface;
 import android.net.Uri;
@@ -133,6 +135,8 @@
 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.system.ErrnoException;
 import android.system.Os;
@@ -3069,6 +3073,35 @@
         testTransformsDirCommon(file);
     }
 
+
+    /**
+     * Test mount modes for a platform signed app with ACCESS_MTP permission.
+     */
+    @Test
+    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
+    public void testExternalStorageProviderAndDownloadsProvider() throws Exception {
+        assertWritableMountModeForProvider(DocumentsContract.EXTERNAL_STORAGE_PROVIDER_AUTHORITY);
+        assertWritableMountModeForProvider(DocumentsContract.DOWNLOADS_PROVIDER_AUTHORITY);
+    }
+
+    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 Uri shareAndGetRedactedUri(File file, TestApp testApp) {
         final Uri redactedUri = getRedactedUri(file);
         getContext().grantUriPermission(testApp.getPackageName(), redactedUri,
diff --git a/hostsidetests/scopedstorage/host/src/android/scopedstorage/cts/host/ScopedStorageHostTest.java b/hostsidetests/scopedstorage/host/src/android/scopedstorage/cts/host/ScopedStorageHostTest.java
index 7eba789..f1236b6 100644
--- a/hostsidetests/scopedstorage/host/src/android/scopedstorage/cts/host/ScopedStorageHostTest.java
+++ b/hostsidetests/scopedstorage/host/src/android/scopedstorage/cts/host/ScopedStorageHostTest.java
@@ -59,15 +59,6 @@
             .setDisableIsolatedStorage(true));
     }
 
-    /**
-     * Runs the given phase of SignatureStorageTest by calling into the device.
-     * Throws an exception if the test phase fails.
-     */
-    void runDeviceTestWithPlatformSignature(String phase) throws Exception {
-        assertThat(runDeviceTests("android.scopedstorage.cts.signature",
-                "android.scopedstorage.cts.signature.SignatureStorageTest", phase)).isTrue();
-    }
-
     private void setupExternalStorage() throws Exception {
         if (!mIsExternalStorageSetup) {
             runDeviceTest("setupExternalStorage");
@@ -158,21 +149,6 @@
     }
 
     @Test
-    public void testMTPAppWithoutPlatformSignatureCannotAccessAndroidDirs() throws Exception {
-        runDeviceTest("testMTPAppWithoutPlatformSignatureCannotAccessAndroidDirs");
-    }
-
-    @Test
-    public void testMTPAppWithPlatformSignatureCanAccessAndroidDirs() throws Exception {
-        runDeviceTestWithPlatformSignature("testMTPAppWithPlatformSignatureCanAccessAndroidDirs");
-    }
-
-    @Test
-    public void testExternalStorageProviderAndDownloadsProvider() throws Exception {
-        runDeviceTest("testExternalStorageProviderAndDownloadsProvider");
-    }
-
-    @Test
     public void testManageExternalStorageQueryOtherAppsFile() throws Exception {
         allowAppOps("android:manage_external_storage");
         try {
diff --git a/hostsidetests/scopedstorage/signature/src/android/scopedstorage/cts/signature/SignatureStorageTest.java b/hostsidetests/scopedstorage/signature/src/android/scopedstorage/cts/signature/SignatureStorageTest.java
deleted file mode 100644
index 0c29dab..0000000
--- a/hostsidetests/scopedstorage/signature/src/android/scopedstorage/cts/signature/SignatureStorageTest.java
+++ /dev/null
@@ -1,77 +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.signature;
-
-import static android.scopedstorage.cts.lib.TestUtils.adoptShellPermissionIdentity;
-import static android.scopedstorage.cts.lib.TestUtils.assertCanAccessPrivateAppAndroidDataDir;
-import static android.scopedstorage.cts.lib.TestUtils.assertCanAccessPrivateAppAndroidObbDir;
-import static android.scopedstorage.cts.lib.TestUtils.assertMountMode;
-import static android.scopedstorage.cts.lib.TestUtils.dropShellPermissionIdentity;
-
-import static androidx.test.InstrumentationRegistry.getContext;
-
-import android.os.storage.StorageManager;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.cts.install.lib.TestApp;
-
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Runs the scoped storage tests as Signature app on primary external storage.
- *
- * <p>These tests are also run on a public volume by {@link PublicVolumeTest}.
- */
-@RunWith(AndroidJUnit4.class)
-public class SignatureStorageTest {
-    static final String THIS_PACKAGE_NAME = getContext().getPackageName();
-    // 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");
-    /**
-     * 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 NONMEDIA_FILE_NAME = "SignatureStorageTest_file_" + NONCE + ".pdf";
-    /**
-     * Test that signature apps with ACCESS_MTP can access app's private directories in
-     * Android/data and Android/obb
-     */
-    @Test
-    @Ignore("b/183377919")
-    public void testMTPAppWithPlatformSignatureCanAccessAndroidDirs() throws Exception {
-        adoptShellPermissionIdentity(android.Manifest.permission.ACCESS_MTP);
-        try {
-            assertCanAccessPrivateAppAndroidDataDir(true /*canAccess*/, APP_B_NO_PERMS,
-                    THIS_PACKAGE_NAME, NONMEDIA_FILE_NAME);
-            assertCanAccessPrivateAppAndroidObbDir(true /*canAccess*/, APP_B_NO_PERMS,
-                    THIS_PACKAGE_NAME, NONMEDIA_FILE_NAME);
-            final int uid = getContext().getPackageManager().getPackageUid(THIS_PACKAGE_NAME, 0);
-            assertMountMode(THIS_PACKAGE_NAME, uid,
-                    StorageManager.MOUNT_MODE_EXTERNAL_ANDROID_WRITABLE);
-        } finally {
-            dropShellPermissionIdentity();
-        }
-    }
-}
diff --git a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
index 48ab8cd..78fc347 100644
--- a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
+++ b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
@@ -76,13 +76,11 @@
 
 import android.Manifest;
 import android.app.WallpaperManager;
-import android.content.pm.ProviderInfo;
 import android.net.Uri;
 import android.os.Environment;
 import android.os.ParcelFileDescriptor;
 import android.os.storage.StorageManager;
 import android.platform.test.annotations.AppModeInstant;
-import android.provider.DocumentsContract;
 import android.provider.MediaStore;
 import android.system.ErrnoException;
 import android.system.Os;
@@ -178,33 +176,6 @@
     }
 
     @Test
-    public void testMTPAppWithoutPlatformSignatureCannotAccessAndroidDirs() throws Exception {
-        // TODO(b/183377919): Grant ACCESS_MTP permission via Shell
-        assertCanAccessPrivateAppAndroidDataDir(false /*canAccess*/, APP_B_NO_PERMS,
-                THIS_PACKAGE_NAME, NONMEDIA_FILE_NAME);
-        assertCanAccessPrivateAppAndroidObbDir(false /*canAccess*/, APP_B_NO_PERMS,
-                THIS_PACKAGE_NAME, NONMEDIA_FILE_NAME);
-    }
-
-    /**
-     * Test mount modes for ExternalStorageProvider and DownloadsProvider.
-     */
-    @Test
-    public void testExternalStorageProviderAndDownloadsProvider() throws Exception {
-        assertWritableMountModeForProvider(DocumentsContract.EXTERNAL_STORAGE_PROVIDER_AUTHORITY);
-        assertWritableMountModeForProvider(DocumentsContract.DOWNLOADS_PROVIDER_AUTHORITY);
-    }
-
-    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);
-    }
-
-    @Test
     public void testManageExternalStorageCanCreateFilesAnywhere() throws Exception {
         pollForManageExternalStorageAllowed();
 
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/Android.bp b/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/Android.bp
new file mode 100644
index 0000000..9bf90d3
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/Android.bp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ *
+ */
+
+cc_test {
+    name: "CVE-2020-0072",
+    defaults: ["cts_hostsidetests_securitybulletin_defaults"],
+    srcs: [
+        "poc.cpp",
+    ],
+    compile_multilib: "64",
+    shared_libs: [
+        "libnfc-nci",
+    ],
+    include_dirs: [
+        "system/nfc/src/nfc/include",
+        "system/nfc/src/gki/common",
+        "system/nfc/src/gki/ulinux",
+        "system/nfc/src/include",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/poc.cpp b/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/poc.cpp
new file mode 100644
index 0000000..048c6c7
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2020-0072/poc.cpp
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+#include "../includes/common.h"
+#include <stdlib.h>
+
+#include <nfc_api.h>
+#include <rw_int.h>
+
+#define NUM_BYTES 1
+
+extern tRW_CB rw_cb;
+void rw_init(void);
+void rw_t2t_handle_rsp(uint8_t *p_data);
+
+void poc_cback(tRW_EVENT event, tRW_DATA *p_rw_data) {
+  (void)event;
+  (void)p_rw_data;
+}
+
+int main() {
+  tRW_T2T_CB *p_t2t = &rw_cb.tcb.t2t;
+  rw_init();
+  rw_cb.p_cback = &poc_cback;
+  p_t2t->state = RW_T2T_STATE_DETECT_TLV;
+  p_t2t->tlv_detect = TAG_LOCK_CTRL_TLV;
+  p_t2t->substate = RW_T2T_SUBSTATE_WAIT_READ_TLV_VALUE;
+  p_t2t->found_tlv = TAG_LOCK_CTRL_TLV;
+  p_t2t->bytes_count = NUM_BYTES;
+  p_t2t->tlv_value[1] = 0;
+  int index = p_t2t->num_lock_tlvs;
+  uint8_t data[T2T_READ_DATA_LEN];
+  rw_t2t_handle_rsp(data);
+  int ret = (p_t2t->lock_tlv[index].num_bits == p_t2t->tlv_value[1])
+                ? EXIT_VULNERABLE
+                : EXIT_SUCCESS;
+  return ret;
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/Android.bp b/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/Android.bp
new file mode 100644
index 0000000..7119250
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/Android.bp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ *
+ */
+
+cc_test {
+    name: "CVE-2021-0473",
+    defaults: ["cts_hostsidetests_securitybulletin_defaults"],
+    srcs: [
+        "poc.cpp",
+    ],
+    compile_multilib: "64",
+    shared_libs: [
+        "libnfc-nci",
+    ],
+    include_dirs: [
+        "system/nfc/src/nfc/include",
+        "system/nfc/src/gki/common",
+        "system/nfc/src/gki/ulinux",
+        "system/nfc/src/include",
+    ],
+}
diff --git a/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/poc.cpp b/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/poc.cpp
new file mode 100644
index 0000000..d7650ad
--- /dev/null
+++ b/hostsidetests/securitybulletin/securityPatch/CVE-2021-0473/poc.cpp
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+
+#include "../includes/common.h"
+#include <dlfcn.h>
+#include <nfc_int.h>
+#include <rw_int.h>
+#include <vector>
+
+using namespace std;
+
+extern tRW_CB rw_cb;
+extern tNFC_CB nfc_cb;
+void rw_init(void);
+
+tNFC_STATUS rw_t3t_select(uint8_t peerNfcID[NCI_RF_F_UID_LEN],
+                          uint8_t mrtiCheck, uint8_t mrtiUpdate);
+
+static void (*real_GKI_freebuf)(void *ptr) = nullptr;
+static void *(*real_GKI_getpoolbuf)(uint8_t pool_id) = nullptr;
+bool kIsInitialized = false;
+bool kIsVulnerable = false;
+
+struct myPtr {
+  void *ptr = nullptr;
+  bool isFreed = false;
+};
+
+struct myPtr vulnerablePtr;
+
+enum {
+  RW_T3T_STATE_NOT_ACTIVATED,
+  RW_T3T_STATE_IDLE,
+  RW_T3T_STATE_COMMAND_PENDING
+};
+
+void poc_cback(tRW_EVENT, tRW_DATA *) {}
+
+void GKI_start_timer(uint8_t, int32_t, bool) {}
+
+void GKI_stop_timer(uint8_t) {}
+
+void init(void) {
+  real_GKI_freebuf = (void (*)(void *))dlsym(RTLD_NEXT, "_Z11GKI_freebufPv");
+  if (!real_GKI_freebuf) {
+    return;
+  }
+  real_GKI_getpoolbuf =
+      (void *(*)(uint8_t))dlsym(RTLD_NEXT, "_Z14GKI_getpoolbufh");
+  if (!real_GKI_freebuf) {
+    return;
+  }
+  kIsInitialized = true;
+}
+
+void *GKI_getpoolbuf(uint8_t pool_id) {
+  if (!kIsInitialized) {
+    init();
+  }
+  void *ptr = real_GKI_getpoolbuf(pool_id);
+  if (pool_id == NFC_RW_POOL_ID) {
+    vulnerablePtr.ptr = ptr;
+  }
+  return ptr;
+}
+
+void GKI_freebuf(void *ptr) {
+  if (!kIsInitialized) {
+    init();
+  }
+  if (ptr == vulnerablePtr.ptr) {
+    if (vulnerablePtr.isFreed) {
+      kIsVulnerable = true;
+    } else {
+      vulnerablePtr.isFreed = true;
+    }
+  }
+  real_GKI_freebuf(ptr);
+}
+
+int main() {
+  tRW_T3T_CB *p_t3t = &rw_cb.tcb.t3t;
+
+  GKI_init();
+  rw_init();
+  rw_cb.p_cback = &poc_cback;
+
+  uint8_t peerNfcID[NCI_RF_F_UID_LEN];
+  uint8_t mrtiCheck = 1, mrtiUpdate = 1;
+  if (rw_t3t_select(peerNfcID, mrtiCheck, mrtiUpdate) != NFC_STATUS_OK) {
+    return EXIT_FAILURE;
+  }
+
+  tNFC_CONN p_data = {};
+  NFC_HDR nfcHdr = {};
+  p_data.data.p_data = &nfcHdr;
+
+  tNFC_CONN_CB *p_cb = &nfc_cb.conn_cb[NFC_RF_CONN_ID];
+  p_t3t->rw_state = RW_T3T_STATE_COMMAND_PENDING;
+
+  uint8_t conn_id = NFC_RF_CONN_ID;
+  tNFC_CONN_EVT event = NFC_ERROR_CEVT;
+  p_cb->p_cback(conn_id, event, &p_data);
+  return (kIsVulnerable) ? EXIT_VULNERABLE : EXIT_SUCCESS;
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/AdbUtils.java b/hostsidetests/securitybulletin/src/android/security/cts/AdbUtils.java
index eaba89f..912ba28 100644
--- a/hostsidetests/securitybulletin/src/android/security/cts/AdbUtils.java
+++ b/hostsidetests/securitybulletin/src/android/security/cts/AdbUtils.java
@@ -68,6 +68,7 @@
         ITestDevice device;
         CrashUtils.Config config;
         List<String> inputFiles = Collections.emptyList();
+        boolean checkCrash = true;
 
         pocConfig(String binaryName, ITestDevice device) {
             this.binaryName = binaryName;
@@ -688,10 +689,12 @@
                 removeResources(inputFiles, testConfig.inputFilesDestination, testConfig.device);
             }
         }
-        if (testConfig.config == null) {
-            testConfig.config = new CrashUtils.Config();
+        if(testConfig.checkCrash) {
+            if (testConfig.config == null) {
+                testConfig.config = new CrashUtils.Config();
+            }
+            assertNoCrashes(testConfig.device, testConfig.config);
         }
-        assertNoCrashes(testConfig.device, testConfig.config);
     }
 
     /**
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2020_0072.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2020_0072.java
new file mode 100644
index 0000000..4f355d3
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2020_0072.java
@@ -0,0 +1,40 @@
+/*
+ * 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.security.cts;
+
+import android.platform.test.annotations.SecurityTest;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2020_0072 extends SecurityTestCase {
+
+    /**
+     * b/147310271
+     * Vulnerability Behaviour: EXIT_VULNERABLE (113)
+     */
+    @SecurityTest(minPatchLevel = "2020-04")
+    @Test
+    public void testPocCVE_2020_0072() throws Exception {
+        AdbUtils.assumeHasNfc(getDevice());
+        pocPusher.only64();
+        AdbUtils.pocConfig testConfig = new AdbUtils.pocConfig("CVE-2020-0072", getDevice());
+        testConfig.checkCrash = false;
+        AdbUtils.runPocAssertNoCrashesNotVulnerable(testConfig);
+    }
+}
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/CVE_2021_0473.java b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2021_0473.java
new file mode 100644
index 0000000..d2dc169
--- /dev/null
+++ b/hostsidetests/securitybulletin/src/android/security/cts/CVE_2021_0473.java
@@ -0,0 +1,40 @@
+/*
+ * 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.security.cts;
+
+import android.platform.test.annotations.SecurityTest;
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class CVE_2021_0473 extends SecurityTestCase {
+
+    /**
+     * b/179687208
+     * Vulnerability Behavior: EXIT_VULNERABLE (113)
+     */
+    @SecurityTest(minPatchLevel = "2021-05")
+    @Test
+    public void testPocCVE_2021_0473() throws Exception {
+        AdbUtils.assumeHasNfc(getDevice());
+        pocPusher.only64();
+        AdbUtils.pocConfig testConfig = new AdbUtils.pocConfig("CVE-2021-0473", getDevice());
+        testConfig.checkCrash = false;
+        AdbUtils.runPocAssertNoCrashesNotVulnerable(testConfig);
+    }
+}
diff --git a/hostsidetests/settings/app/DeviceOwnerApp/Android.bp b/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
index 4b4f661..ec63294 100644
--- a/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
+++ b/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
@@ -38,6 +38,7 @@
         "ub-uiautomator",
         "truth-prebuilt",
         "cts-wm-util",
+        "DpmWrapper",
     ],
     // tag this module as a cts test artifact
     test_suites: [
diff --git a/hostsidetests/settings/app/DeviceOwnerApp/AndroidManifest.xml b/hostsidetests/settings/app/DeviceOwnerApp/AndroidManifest.xml
index be53c0c..049e294 100644
--- a/hostsidetests/settings/app/DeviceOwnerApp/AndroidManifest.xml
+++ b/hostsidetests/settings/app/DeviceOwnerApp/AndroidManifest.xml
@@ -17,6 +17,11 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.google.android.cts.deviceowner">
 
+    <!-- TODO(b/176993670): needed by DevicePolicyManagerWrapper to send ordered broadcast from
+         current user to system user on devices running on headless system user mode. Should be
+         removed once tests are refactored to use the proper IPC between theses users.  -->
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
+
     <application android:label="Privacy Settings for Device Owner CTS host side app"
          android:testOnly="true">
 
@@ -40,6 +45,11 @@
                 <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
+
+         <!--  TODO(b/176993670): remove if DpmWrapperManagerWrapper goes away -->
+        <receiver android:name="com.android.bedstead.dpmwrapper.TestAppCallbacksReceiver"
+             android:exported="true">
+        </receiver>
     </application>
 
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
diff --git a/hostsidetests/settings/app/DeviceOwnerApp/src/com/google/android/cts/deviceowner/DeviceOwnerTest.java b/hostsidetests/settings/app/DeviceOwnerApp/src/com/google/android/cts/deviceowner/DeviceOwnerTest.java
index 6581614..ede4b88 100644
--- a/hostsidetests/settings/app/DeviceOwnerApp/src/com/google/android/cts/deviceowner/DeviceOwnerTest.java
+++ b/hostsidetests/settings/app/DeviceOwnerApp/src/com/google/android/cts/deviceowner/DeviceOwnerTest.java
@@ -17,6 +17,8 @@
 
 import static android.server.wm.WindowManagerState.STATE_RESUMED;
 
+import static com.google.common.truth.Truth.assertWithMessage;
+
 import android.app.admin.DeviceAdminReceiver;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -30,24 +32,44 @@
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.Until;
 import android.test.InstrumentationTestCase;
+import android.util.Log;
+
 import androidx.test.InstrumentationRegistry;
 
+import com.android.bedstead.dpmwrapper.DeviceOwnerHelper;
+import com.android.bedstead.dpmwrapper.TestAppSystemServiceFactory;
+import com.android.compatibility.common.util.enterprise.DeviceAdminReceiverUtils;
+
 /**
  * Class for device-owner based tests.
  *
  * <p>This class handles making sure that the test is the device owner and that it has an active
  * admin registered if necessary. The admin component can be accessed through {@link #getWho()}.
  */
-public class DeviceOwnerTest extends InstrumentationTestCase {
+public final class DeviceOwnerTest extends InstrumentationTestCase {
 
-    public static final int TIMEOUT = 2000;
+    private static final String TAG = DeviceOwnerTest.class.getSimpleName();
+
+    private static final String WORK_POLICY_INFO_TEXT = "Your work policy info";
+
+    public static final int TIMEOUT_MS = 2_000;
 
     protected Context mContext;
     protected UiDevice mDevice;
 
     /** Device Admin receiver for DO. */
-    public static class BasicAdminReceiver extends DeviceAdminReceiver {
-        /* empty */
+    public static final class BasicAdminReceiver extends DeviceAdminReceiver {
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // Ignore intents used by DpmWrapper IPC between current and system users
+            if (DeviceOwnerHelper.runManagerMethod(this, context, intent)) return;
+
+            // Hack used to manually disable the admin during development
+            if (DeviceAdminReceiverUtils.disableSelf(context, intent)) return;
+
+            super.onReceive(context, intent);
+        }
     }
 
     static final String PACKAGE_NAME = DeviceOwnerTest.class.getPackage().getName();
@@ -64,15 +86,19 @@
         mContext = getInstrumentation().getContext();
         mDevice = UiDevice.getInstance(getInstrumentation());
         mPackageManager = mContext.getPackageManager();
-        mDevicePolicyManager =
-                (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
+        mDevicePolicyManager = TestAppSystemServiceFactory.getDevicePolicyManager(mContext,
+                BasicAdminReceiver.class);
 
         mIsDeviceOwner = mDevicePolicyManager.isDeviceOwnerApp(PACKAGE_NAME);
+        Log.d(TAG, "setup(): dpm=" + mDevicePolicyManager + ", isDO: " + mIsDeviceOwner);
+
         if (mIsDeviceOwner) {
-            assertTrue(mDevicePolicyManager.isAdminActive(RECEIVER_COMPONENT));
+            assertWithMessage("isAdminActive(%s)", RECEIVER_COMPONENT)
+                    .that(mDevicePolicyManager.isAdminActive(RECEIVER_COMPONENT)).isTrue();
 
             // Note DPM.getDeviceOwner() now always returns null on non-DO users as of NYC.
-            assertEquals(PACKAGE_NAME, mDevicePolicyManager.getDeviceOwner());
+            assertWithMessage("%s.getDeviceOwner()", mDevicePolicyManager)
+                    .that(mDevicePolicyManager.getDeviceOwner()).isEqualTo(PACKAGE_NAME);
         }
 
         try {
@@ -93,7 +119,7 @@
     protected void tearDown() throws Exception {
         mDevice.pressBack();
         mDevice.pressHome();
-        mDevice.waitForIdle(TIMEOUT); // give UI time to finish animating
+        mDevice.waitForIdle(TIMEOUT_MS); // give UI time to finish animating
     }
 
     private boolean launchPrivacyAndCheckWorkPolicyInfo() throws Exception {
@@ -101,9 +127,11 @@
         launchSettingsPage(InstrumentationRegistry.getContext(), Settings.ACTION_PRIVACY_SETTINGS);
 
         // Wait for loading permission usage data.
-        mDevice.waitForIdle(TIMEOUT);
+        mDevice.waitForIdle(TIMEOUT_MS);
 
-        return (null != mDevice.wait(Until.findObject(By.text("Your work policy info")), TIMEOUT));
+        Log.d(TAG, "Waiting " + TIMEOUT_MS + "ms for the '" + WORK_POLICY_INFO_TEXT + "' message");
+
+        return (null != mDevice.wait(Until.findObject(By.text(WORK_POLICY_INFO_TEXT)), TIMEOUT_MS));
     }
 
     private void launchSettingsPage(Context ctx, String pageName) throws Exception {
@@ -128,15 +156,24 @@
                         PackageManager.DONT_KILL_APP);
     }
 
+    private void launchPrivacySettingsAndAssertWorkPolicyInfoIsShowing() throws Exception {
+        assertWithMessage("Work policy info (%s) on settings entry", WORK_POLICY_INFO_TEXT)
+                .that(launchPrivacyAndCheckWorkPolicyInfo()).isTrue();
+    }
+
+    private void launchPrivacySettingsAndAssertWorkPolicyInfoIsNotShowing() throws Exception {
+        assertWithMessage("Work policy info (%s) on settings entry", WORK_POLICY_INFO_TEXT)
+                .that(launchPrivacyAndCheckWorkPolicyInfo()).isFalse();
+    }
+
     /**
      * If the app is the active device owner and has work policy info, then we should have a Privacy
      * entry for it.
      */
     public void testDeviceOwnerWithInfo() throws Exception {
-        assertTrue(mIsDeviceOwner);
-        assertTrue(
-                "Couldn't find work policy info settings entry",
-                launchPrivacyAndCheckWorkPolicyInfo());
+        assertWithMessage("is device owner").that(mIsDeviceOwner).isTrue();
+
+        launchPrivacySettingsAndAssertWorkPolicyInfoIsShowing();
     }
 
     /**
@@ -144,11 +181,11 @@
      * have a Privacy entry for it.
      */
     public void testDeviceOwnerWithoutInfo() throws Exception {
-        assertTrue(mIsDeviceOwner);
+        assertWithMessage("is device owner").that(mIsDeviceOwner).isTrue();
+
         disableWorkPolicyInfoActivity();
-        assertFalse(
-                "Work policy info settings entry shouldn't be present",
-                launchPrivacyAndCheckWorkPolicyInfo());
+
+        launchPrivacySettingsAndAssertWorkPolicyInfoIsNotShowing();
     }
 
     /**
@@ -156,10 +193,9 @@
      * policy info.
      */
     public void testNonDeviceOwnerWithInfo() throws Exception {
-        assertFalse(mIsDeviceOwner);
-        assertFalse(
-                "Work policy info settings entry shouldn't be present",
-                launchPrivacyAndCheckWorkPolicyInfo());
+        assertWithMessage("is device owner").that(mIsDeviceOwner).isFalse();
+
+        launchPrivacySettingsAndAssertWorkPolicyInfoIsNotShowing();
     }
 
     /**
@@ -167,10 +203,10 @@
      * not have a Privacy entry for work policy info.
      */
     public void testNonDeviceOwnerWithoutInfo() throws Exception {
-        assertFalse(mIsDeviceOwner);
+        assertWithMessage("is device owner").that(mIsDeviceOwner).isFalse();
+
         disableWorkPolicyInfoActivity();
-        assertFalse(
-                "Work policy info settings entry shouldn't be present",
-                launchPrivacyAndCheckWorkPolicyInfo());
+
+        launchPrivacySettingsAndAssertWorkPolicyInfoIsNotShowing();
     }
 }
diff --git a/hostsidetests/settings/src/com/google/android/cts/settings/PrivacyDeviceOwnerTest.java b/hostsidetests/settings/src/com/google/android/cts/settings/PrivacyDeviceOwnerTest.java
index da7d873..8bac012 100644
--- a/hostsidetests/settings/src/com/google/android/cts/settings/PrivacyDeviceOwnerTest.java
+++ b/hostsidetests/settings/src/com/google/android/cts/settings/PrivacyDeviceOwnerTest.java
@@ -21,6 +21,7 @@
 import com.android.ddmlib.testrunner.TestResult.TestStatus;
 import com.android.tradefed.build.IBuildInfo;
 import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.result.CollectingTestListener;
 import com.android.tradefed.result.TestDescription;
@@ -47,6 +48,9 @@
     private static final String ADMIN_RECEIVER_TEST_CLASS = ".DeviceOwnerTest$BasicAdminReceiver";
     private static final String CLEAR_DEVICE_OWNER_TEST_CLASS = ".ClearDeviceOwnerTest";
 
+    // TODO (b/174775905) move to ITestDevice.
+    private static final int USER_SYSTEM = 0;
+
     /**
      * The defined timeout (in milliseconds) is used as a maximum waiting time when expecting the
      * command output from the device. At any time, if the shell command does not output anything
@@ -66,6 +70,9 @@
     protected boolean mHasFeature;
     protected IBuildInfo mCtsBuild;
 
+    private int mDeviceOwnerUserId;
+    private int mTestUserId;
+
     @Override
     public void setBuild(IBuildInfo buildInfo) {
         mCtsBuild = buildInfo;
@@ -76,8 +83,19 @@
         super.setUp();
 
         mHasFeature = hasDeviceFeature("android.software.device_admin");
-        if (mHasFeature) {
-            installPackage(DEVICE_OWNER_APK);
+        if (!mHasFeature) return;
+
+        mTestUserId = getDevice().getCurrentUser();
+        if (isHeadlessSystemUserMode()) {
+            mDeviceOwnerUserId = USER_SYSTEM;
+        } else {
+            mDeviceOwnerUserId = mTestUserId;
+        }
+
+        installPackage(mDeviceOwnerUserId, DEVICE_OWNER_APK);
+
+        if (isHeadlessSystemUserMode()) {
+            grantDpmWrapperPermissions(mTestUserId);
         }
     }
 
@@ -137,20 +155,22 @@
                 runDeviceTests(DEVICE_OWNER_PKG, testClass, testMethodName));
     }
 
-    protected void installPackage(String appFileName)
+    protected void installPackage(int userId, String appFileName)
             throws FileNotFoundException, DeviceNotAvailableException {
-        CLog.d("Installing app " + appFileName);
+        CLog.d("Installing app %s on user %d", appFileName, userId);
         CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(mCtsBuild);
         List<String> extraArgs = new LinkedList<>();
         extraArgs.add("-t");
         String result =
                 getDevice()
-                        .installPackage(
+                        .installPackageForUser(
                                 buildHelper.getTestFile(appFileName),
                                 true,
                                 true,
+                                userId,
                                 extraArgs.toArray(new String[extraArgs.size()]));
-        assertNull("Failed to install " + appFileName + ": " + result, result);
+        assertNull("Failed to install " + appFileName + " on user " + userId + ": " + result,
+                result);
     }
 
     protected boolean runDeviceTests(
@@ -172,7 +192,9 @@
         }
 
         CollectingTestListener listener = new CollectingTestListener();
-        boolean runResult = getDevice().runInstrumentationTests(testRunner, listener);
+        CLog.i("Running %s.%s on user %d", testClassName, testMethodName, mTestUserId);
+        boolean runResult = getDevice().runInstrumentationTestsAsUser(testRunner, mTestUserId,
+                listener);
 
         final TestRunResult result = listener.getCurrentRunResults();
         if (result.isRunFailure()) {
@@ -234,4 +256,30 @@
         }
         return result;
     }
+
+    protected void grantDpmWrapperPermissions(int userId) throws Exception {
+        // TODO(b/176993670): INTERACT_ACROSS_USERS is needed by DevicePolicyManagerWrapper to
+        // get the current user; the permission is available on mDeviceOwnerUserId because it
+        // was installed with -g, but not on mPrimaryUserId as the app is intalled by code
+        // (DPMS.manageUserUnchecked(), which don't grant it (as this is a privileged permission
+        // that's not available to 3rd party apps). If we get rid of DevicePolicyManagerWrapper,
+        // we won't need to grant it anymore.
+        CLog.i("Granting INTERACT_ACROSS_USERS to DO %s on user %d as it will need to send ordered "
+                + "broadcasts to user 0", DEVICE_OWNER_PKG, userId);
+        getDevice().executeShellCommand("pm grant --user " + userId + " " + DEVICE_OWNER_PKG
+                + " android.permission.INTERACT_ACROSS_USERS");
+    }
+
+    // TODO (b/174775905) remove after exposing the check from ITestDevice.
+    boolean isHeadlessSystemUserMode() throws DeviceNotAvailableException {
+        return isHeadlessSystemUserMode(getDevice());
+    }
+
+    // TODO (b/174775905) remove after exposing the check from ITestDevice.
+    public static boolean isHeadlessSystemUserMode(ITestDevice device)
+            throws DeviceNotAvailableException {
+        final String result = device
+                .executeShellCommand("getprop ro.fw.mu.headless_system_user").trim();
+        return "true".equalsIgnoreCase(result);
+    }
 }
diff --git a/hostsidetests/statsdatom/src/android/cts/statsdatom/incremental/AppErrorAtomTests.java b/hostsidetests/statsdatom/src/android/cts/statsdatom/incremental/AppErrorAtomTests.java
index 6cc063d..e3204d2 100644
--- a/hostsidetests/statsdatom/src/android/cts/statsdatom/incremental/AppErrorAtomTests.java
+++ b/hostsidetests/statsdatom/src/android/cts/statsdatom/incremental/AppErrorAtomTests.java
@@ -60,6 +60,10 @@
 
     @Before
     public void setUp() throws Exception {
+        if (!getDevice().hasFeature(FEATURE_INCREMENTAL_DELIVERY)) {
+            return;
+        }
+        super.setUp();
         ConfigUtils.removeConfig(getDevice());
         ReportUtils.clearReports(getDevice());
         CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(mCtsBuild);
@@ -94,6 +98,7 @@
         }
         getDevice().uninstallPackage(DeviceUtils.STATSD_ATOM_TEST_PKG);
         assertFalse(getDevice().isPackageInstalled(DeviceUtils.STATSD_ATOM_TEST_PKG));
+        super.tearDown();
     }
 
     public void testAppCrashOnIncremental() throws Exception {
diff --git a/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/ConfigUtils.java b/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/ConfigUtils.java
index 0452161..5671afb 100644
--- a/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/ConfigUtils.java
+++ b/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/ConfigUtils.java
@@ -71,6 +71,7 @@
                 // TODO(b/134091167): Fix bluetooth source name issue in Auto platform.
                 .addAllowedLogSource("com.android.bluetooth")
                 .addAllowedLogSource("AID_LMKD")
+                .addAllowedLogSource("AID_MEDIA")
                 .addAllowedLogSource("AID_RADIO")
                 .addAllowedLogSource("AID_ROOT")
                 .addAllowedLogSource("AID_STATSD")
diff --git a/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/DeviceUtils.java b/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/DeviceUtils.java
index e937823..4f2f897 100644
--- a/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/DeviceUtils.java
+++ b/hostsidetests/statsdatom/src/android/cts/statsdatom/lib/DeviceUtils.java
@@ -352,6 +352,10 @@
         return device.executeShellCommand("getprop " + prop).replace("\n", "");
     }
 
+    public static boolean isDebuggable(ITestDevice device) throws Exception {
+        return Integer.parseInt(getProperty(device, "ro.debuggable")) == 1;
+    }
+
     public static boolean checkDeviceFor(ITestDevice device, String methodName) throws Exception {
         try {
             runDeviceTestsOnStatsdApp(device, ".Checkers", methodName);
diff --git a/hostsidetests/statsdatom/src/android/cts/statsdatom/statsd/UidAtomTests.java b/hostsidetests/statsdatom/src/android/cts/statsdatom/statsd/UidAtomTests.java
index 0d377ec..81fe295 100644
--- a/hostsidetests/statsdatom/src/android/cts/statsdatom/statsd/UidAtomTests.java
+++ b/hostsidetests/statsdatom/src/android/cts/statsdatom/statsd/UidAtomTests.java
@@ -83,6 +83,7 @@
     private static final String FEATURE_LEANBACK_ONLY = "android.software.leanback_only";
     private static final String FEATURE_LOCATION_GPS = "android.hardware.location.gps";
     private static final String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
+    private static final String FEATURE_TV = "android.hardware.type.television";
 
     private IBuildInfo mCtsBuild;
 
@@ -208,6 +209,12 @@
     }
 
     public void testAppCrashOccurredNative() throws Exception {
+        if (DeviceUtils.hasFeature(getDevice(), FEATURE_TV)
+                && DeviceUtils.isDebuggable(getDevice())) {
+            // Skip TVs that are debuggable because ActivityManager does not properly terminate
+            // the activity in the event of a native crash.
+            return;
+        }
         final int atomTag = Atom.APP_CRASH_OCCURRED_FIELD_NUMBER;
         ConfigUtils.uploadConfigForPushedAtomWithUid(getDevice(), DeviceUtils.STATSD_ATOM_TEST_PKG,
                 atomTag,  /*uidInAttributionChain=*/false);
diff --git a/tests/AlarmManager/src/android/alarmmanager/cts/ExactAlarmsTest.java b/tests/AlarmManager/src/android/alarmmanager/cts/ExactAlarmsTest.java
index 373b8a2..aa415cd 100644
--- a/tests/AlarmManager/src/android/alarmmanager/cts/ExactAlarmsTest.java
+++ b/tests/AlarmManager/src/android/alarmmanager/cts/ExactAlarmsTest.java
@@ -184,6 +184,8 @@
     }
 
     @Test
+    // TODO (b/185181884): Remove once standby buckets can be reliably manipulated from tests.
+    @Ignore("Cannot reliably test bucket manipulation yet")
     public void exactAlarmPermissionElevatesBucket() throws Exception {
         mDeviceConfigHelper.without("exact_alarm_deny_list").commitAndAwaitPropagation();
 
diff --git a/tests/MediaProviderTranscode/src/android/mediaprovidertranscode/cts/TranscodeTest.java b/tests/MediaProviderTranscode/src/android/mediaprovidertranscode/cts/TranscodeTest.java
index 8c132e7..7fa8f1f 100644
--- a/tests/MediaProviderTranscode/src/android/mediaprovidertranscode/cts/TranscodeTest.java
+++ b/tests/MediaProviderTranscode/src/android/mediaprovidertranscode/cts/TranscodeTest.java
@@ -97,9 +97,11 @@
 
     @Before
     public void setUp() throws Exception {
-        Assume.assumeTrue(SystemProperties.getBoolean("sys.fuse.transcode_enabled", false));
-        // TODO(b/182846329): GSI doesn't support transcoding yet, maybe a transcoding issue
-        Assume.assumeFalse(SystemProperties.get("ro.product.system.device").contains("generic"));
+        Assume.assumeTrue("Media transcoding disabled",
+                SystemProperties.getBoolean("sys.fuse.transcode_enabled", false));
+        // TODO(b/182846329): GSI doesn't support transcoding yet
+        Assume.assumeFalse(
+                "Using GSI", SystemProperties.get("ro.build.product").contains("generic"));
 
         TranscodeTestUtils.pollForExternalStorageState();
         TranscodeTestUtils.grantPermission(getContext().getPackageName(),
diff --git a/tests/accessibility/src/android/view/accessibility/cts/AccessibilityShortcutTargetActivity.java b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityShortcutTargetActivity.java
index 921a769..95f17f8 100644
--- a/tests/accessibility/src/android/view/accessibility/cts/AccessibilityShortcutTargetActivity.java
+++ b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityShortcutTargetActivity.java
@@ -16,16 +16,13 @@
 
 package android.view.accessibility.cts;
 
-import android.app.Activity;
-import android.app.KeyguardManager;
-import android.content.Context;
 import android.os.Bundle;
 import android.view.accessibility.cts.R;
 
 /**
  * The accessibility shortcut target activity.
  */
-public class AccessibilityShortcutTargetActivity extends Activity {
+public class AccessibilityShortcutTargetActivity extends AccessibilityTestActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/tests/accessibility/src/android/view/accessibility/cts/AccessibilityTestActivity.java b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityTestActivity.java
new file mode 100644
index 0000000..95fe97b
--- /dev/null
+++ b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityTestActivity.java
@@ -0,0 +1,36 @@
+/*
+ * 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.view.accessibility.cts;
+
+import android.app.Activity;
+import android.app.KeyguardManager;
+import android.os.Bundle;
+
+public abstract class AccessibilityTestActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        turnOnScreen();
+        super.onCreate(savedInstanceState);
+    }
+
+    private void turnOnScreen() {
+        setTurnScreenOn(true);
+        setShowWhenLocked(true);
+        KeyguardManager keyguardManager = getSystemService(KeyguardManager.class);
+        keyguardManager.requestDismissKeyguard(this, null);
+    }
+}
diff --git a/tests/accessibility/src/android/view/accessibility/cts/DummyActivity.java b/tests/accessibility/src/android/view/accessibility/cts/DummyActivity.java
index b184fe8..ef70887 100644
--- a/tests/accessibility/src/android/view/accessibility/cts/DummyActivity.java
+++ b/tests/accessibility/src/android/view/accessibility/cts/DummyActivity.java
@@ -16,7 +16,4 @@
 
 package android.view.accessibility.cts;
 
-import android.app.Activity;
-
-public class DummyActivity extends Activity {
-}
+public class DummyActivity extends AccessibilityTestActivity {}
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEmbeddedDisplayTest.java b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEmbeddedDisplayTest.java
index 30b878c..03324b8 100644
--- a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEmbeddedDisplayTest.java
+++ b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEmbeddedDisplayTest.java
@@ -247,7 +247,7 @@
         assertNotNull(mEmbeddedDisplayActivity);
     }
 
-    public static class EmbeddedDisplayParentActivity extends Activity {
+    public static class EmbeddedDisplayParentActivity extends AccessibilityTestActivity {
         private ActivityView mActivityView;
 
         @Override
diff --git a/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java b/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
index e10ea6b..b0ff422 100644
--- a/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
+++ b/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
@@ -116,17 +116,17 @@
         assertTrue(mDevicePolicyManager.isAdminActive(mComponent));
     }
 
-    public void testSetGetEnterpriseNetworkPreferenceEnabled() {
+    public void testSetGetPreferentialNetworkServiceEnabled() {
         if (!mDeviceAdmin) {
-            Log.w(TAG, "Skipping testSetGetEnterpriseNetworkPreferenceEnabled");
+            Log.w(TAG, "Skipping testSetGetPreferentialNetworkServiceEnabled");
             return;
         }
         try {
             mDevicePolicyManager.clearProfileOwner(DeviceAdminInfoTest.getProfileOwnerComponent());
             assertThrows(SecurityException.class,
-                    () -> mDevicePolicyManager.setEnterpriseNetworkPreferenceEnabled(true));
+                    () -> mDevicePolicyManager.setPreferentialNetworkServiceEnabled(true));
             assertThrows(SecurityException.class,
-                    () -> mDevicePolicyManager.isEnterpriseNetworkPreferenceEnabled());
+                    () -> mDevicePolicyManager.isPreferentialNetworkServiceEnabled());
         }  catch (SecurityException se) {
             Log.w(TAG, "Test is not a profile owner and there is no need to clear.");
         } finally {
diff --git a/tests/app/Android.bp b/tests/app/Android.bp
index f34ff7a..b3e421b 100644
--- a/tests/app/Android.bp
+++ b/tests/app/Android.bp
@@ -88,6 +88,9 @@
     min_sdk_version: "14",
     manifest: "DownloadManagerApi28Test/AndroidManifest.xml",
     test_config: "DownloadManagerApi28Test/AndroidTest.xml",
+    lint: {
+    	baseline_filename: "lint-baseline-api-28.xml",
+    },
 }
 
 android_test {
@@ -122,6 +125,9 @@
     min_sdk_version: "14",
     manifest: "DownloadManagerInstallerTest/AndroidManifest.xml",
     test_config: "DownloadManagerInstallerTest/AndroidTest.xml",
+    lint: {
+    	baseline_filename: "lint-baseline-installer.xml",
+    },
 }
 
 android_test {
diff --git a/tests/app/app/src/android/app/stubs/BubbledActivity.java b/tests/app/app/src/android/app/stubs/BubbledActivity.java
index 79530a5..f498038 100644
--- a/tests/app/app/src/android/app/stubs/BubbledActivity.java
+++ b/tests/app/app/src/android/app/stubs/BubbledActivity.java
@@ -17,7 +17,6 @@
 package android.app.stubs;
 
 import android.app.Activity;
-import android.content.Intent;
 import android.content.LocusId;
 import android.os.Bundle;
 
@@ -27,8 +26,6 @@
  */
 public class BubbledActivity extends Activity {
 
-    boolean mIsBubbled = false;
-
     public static final String EXTRA_LOCUS_ID = "EXTRA_ID_LOCUS_ID";
     private LocusId mLocusId;
 
@@ -37,17 +34,12 @@
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
 
-        mIsBubbled = getIntent().getBooleanExtra(Intent.EXTRA_IS_BUBBLED, false);
         Bundle b = getIntent().getExtras();
         String locus = b != null ? b.getString(EXTRA_LOCUS_ID, null) : null;
         mLocusId = locus != null ? new LocusId(locus) : null;
         setLocusContext(mLocusId, null /* bundle */);
     }
 
-    public boolean isBubbled() {
-        return mIsBubbled;
-    }
-
     public LocusId getLocusId() {
         return mLocusId;
     }
diff --git a/tests/app/lint-baseline-api-28.xml b/tests/app/lint-baseline-api-28.xml
new file mode 100644
index 0000000..57e7aee
--- /dev/null
+++ b/tests/app/lint-baseline-api-28.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`@android:style/Theme.Material.Dialog` requires API level 21 (current min is 14)"
+        errorLine1="    &lt;style name=&quot;DialogTheme_Test&quot; parent=&quot;@android:style/Theme.Material.Dialog&quot;>"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/app/res/values/styles.xml"
+            line="168"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="View requires API level 21 (current min is 14): `&lt;Toolbar>`"
+        errorLine1="&lt;Toolbar android:id=&quot;@+id/toolbar&quot;"
+        errorLine2=" ~~~~~~~">
+        <location
+            file="cts/tests/app/app/res/layout/toolbar_activity.xml"
+            line="23"
+            column="2"/>
+    </issue>
+
+</issues>
diff --git a/tests/app/lint-baseline-installer.xml b/tests/app/lint-baseline-installer.xml
new file mode 100644
index 0000000..57e7aee
--- /dev/null
+++ b/tests/app/lint-baseline-installer.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`@android:style/Theme.Material.Dialog` requires API level 21 (current min is 14)"
+        errorLine1="    &lt;style name=&quot;DialogTheme_Test&quot; parent=&quot;@android:style/Theme.Material.Dialog&quot;>"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/app/res/values/styles.xml"
+            line="168"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="View requires API level 21 (current min is 14): `&lt;Toolbar>`"
+        errorLine1="&lt;Toolbar android:id=&quot;@+id/toolbar&quot;"
+        errorLine2=" ~~~~~~~">
+        <location
+            file="cts/tests/app/app/res/layout/toolbar_activity.xml"
+            line="23"
+            column="2"/>
+    </issue>
+
+</issues>
diff --git a/tests/app/lint-baseline.xml b/tests/app/lint-baseline.xml
new file mode 100644
index 0000000..9bd7004
--- /dev/null
+++ b/tests/app/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="`&lt;vector>` requires API level 21 (current min is 14) or building with Android Gradle plugin 1.4 or higher"
+        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
+        errorLine2=" ~~~~~~">
+        <location
+            file="cts/tests/app/res/drawable/ic_android.xml"
+            line="17"
+            column="2"/>
+    </issue>
+
+</issues>
diff --git a/tests/app/shared/lint-baseline.xml b/tests/app/shared/lint-baseline.xml
new file mode 100644
index 0000000..83c4740
--- /dev/null
+++ b/tests/app/shared/lint-baseline.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `new java.util.concurrent.CompletableFuture`"
+        errorLine1="            new CompletableFuture&lt;>();"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/AppAccessibilityService.java"
+            line="36"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.content.Context#getSystemService`"
+        errorLine1="        mWindowManager = getSystemService(WindowManager.class);"
+        errorLine2="                         ~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/AppAccessibilityService.java"
+            line="54"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.concurrent.CompletableFuture#obtrudeValue`"
+        errorLine1="        sServiceFuture.obtrudeValue(this);"
+        errorLine2="                       ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/AppAccessibilityService.java"
+            line="71"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `new java.util.concurrent.CompletableFuture`"
+        errorLine1="        sServiceFuture = new CompletableFuture&lt;>();"
+        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/AppAccessibilityService.java"
+            line="86"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.content.Context#getSystemService`"
+        errorLine1="        mNotificationManager = getSystemService(NotificationManager.class);"
+        errorLine2="                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/CloseSystemDialogsTestService.java"
+            line="60"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `new android.app.Notification.Builder`"
+        errorLine1="                new Notification.Builder(this, NOTIFICATION_CHANNEL_ID)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/CloseSystemDialogsTestService.java"
+            line="135"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.app.Notification.Builder#build`"
+        errorLine1="                        .build();"
+        errorLine2="                         ~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/CloseSystemDialogsTestService.java"
+            line="138"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `new android.app.NotificationChannel`"
+        errorLine1="        NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID,"
+        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/CloseSystemDialogsTestService.java"
+            line="139"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationManager#createNotificationChannel`"
+        errorLine1="        mNotificationManager.createNotificationChannel(notificationChannel);"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/CloseSystemDialogsTestService.java"
+            line="141"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.app.Activity#requireViewById`"
+        errorLine1="        get() = requireViewById&lt;FrameLayout>(R.id.content).getChildAt(0)"
+        errorLine2="                ~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/app/shared/src/android/app/stubs/shared/NotificationHostActivity.kt"
+            line="39"
+            column="17"/>
+    </issue>
+
+</issues>
diff --git a/tests/app/src/android/app/cts/BroadcastOptionsTest.java b/tests/app/src/android/app/cts/BroadcastOptionsTest.java
index ee976da..c3b4e89 100644
--- a/tests/app/src/android/app/cts/BroadcastOptionsTest.java
+++ b/tests/app/src/android/app/cts/BroadcastOptionsTest.java
@@ -20,6 +20,7 @@
 import static junit.framework.Assert.assertNull;
 
 import android.app.BroadcastOptions;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.PowerExemptionManager;
 
@@ -146,4 +147,19 @@
 
         assertBroadcastOption_noTemporaryAppAllowList(bo);
     }
+
+    @Test
+    public void testMaxManifestReceiverApiLevel() {
+        final BroadcastOptions bo = BroadcastOptions.makeBasic();
+        // No MaxManifestReceiverApiLevel set, the default value should be CUR_DEVELOPMENT.
+        assertEquals(Build.VERSION_CODES.CUR_DEVELOPMENT, bo.getMaxManifestReceiverApiLevel());
+
+        // Set MaxManifestReceiverApiLevel to P.
+        bo.setMaxManifestReceiverApiLevel(Build.VERSION_CODES.P);
+        assertEquals(Build.VERSION_CODES.P, bo.getMaxManifestReceiverApiLevel());
+
+        // Clone the BroadcastOptions and check it too.
+        final BroadcastOptions cloned = cloneViaBundle(bo);
+        assertEquals(Build.VERSION_CODES.P, bo.getMaxManifestReceiverApiLevel());
+    }
 }
diff --git a/tests/app/src/android/app/cts/NotificationManagerTest.java b/tests/app/src/android/app/cts/NotificationManagerTest.java
index 2b769af..3f37566 100644
--- a/tests/app/src/android/app/cts/NotificationManagerTest.java
+++ b/tests/app/src/android/app/cts/NotificationManagerTest.java
@@ -61,9 +61,11 @@
 
 import static org.hamcrest.CoreMatchers.hasItem;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertThrows;
 
 import android.Manifest;
 import android.app.ActivityManager;
+import android.app.ActivityOptions;
 import android.app.AutomaticZenRule;
 import android.app.Instrumentation;
 import android.app.KeyguardManager;
@@ -3669,14 +3671,7 @@
             createDynamicShortcut();
             setUpNotifListener();
 
-            // Make a bubble
             SendBubbleActivity a = startSendBubbleActivity();
-            a.sendBubble(BUBBLE_NOTIF_ID,
-                    false /* autoExpand */,
-                    false /* suppressNotif */,
-                    true /* suppressBubble */);
-
-            verifyNotificationBubbleState(BUBBLE_NOTIF_ID, true /* shouldBeBubble */);
 
             // Prep to find bubbled activity
             Class clazz = BubbledActivity.class;
@@ -3690,10 +3685,8 @@
 
             verifyNotificationBubbleState(BUBBLE_NOTIF_ID, true /* shouldBeBubble */);
 
-            InstrumentationRegistry.getInstrumentation().waitForIdleSync();
-
             BubbledActivity activity = (BubbledActivity) monitor.waitForActivity();
-            assertTrue(activity.isBubbled());
+            assertTrue(activity.isLaunchedFromBubble());
         } finally {
             deleteShortcuts();
             cleanupSendBubbleActivity();
@@ -3715,14 +3708,7 @@
             createDynamicShortcut();
             setUpNotifListener();
 
-            // Make a bubble
             SendBubbleActivity a = startSendBubbleActivity();
-            a.sendBubble(BUBBLE_NOTIF_ID,
-                    false /* autoExpand */,
-                    false /* suppressNotif */,
-                    true /* suppressBubble */);
-
-            verifyNotificationBubbleState(BUBBLE_NOTIF_ID, true /* shouldBeBubble */);
 
             // Prep to find bubbled activity
             Class clazz = BubbledActivity.class;
@@ -3732,17 +3718,16 @@
                     new Instrumentation.ActivityMonitor(clazz.getName(), result, false);
             InstrumentationRegistry.getInstrumentation().addMonitor(monitor);
 
-            a.sendBubble(BUBBLE_NOTIF_ID,
-                    true /* autoExpand */,
+            a.sendBubble(BUBBLE_NOTIF_ID, true /* autoExpand */,
                     false /* suppressNotif */,
-                    true /* useShortcut */);
+                    false /* suppressBubble */,
+                    true /* useShortcut */,
+                    true /* setLocus */);
 
             verifyNotificationBubbleState(BUBBLE_NOTIF_ID, true /* shouldBeBubble */);
 
-            InstrumentationRegistry.getInstrumentation().waitForIdleSync();
-
             BubbledActivity activity = (BubbledActivity) monitor.waitForActivity();
-            assertTrue(activity.isBubbled());
+            assertTrue(activity.isLaunchedFromBubble());
         } finally {
             deleteShortcuts();
             cleanupSendBubbleActivity();
@@ -4042,6 +4027,27 @@
         }
     }
 
+    /** Verifies that a regular activity can't specify a bubble in ActivityOptions */
+    public void testNotificationManagerBubble_launchBubble_activityOptions_fails()
+            throws Exception {
+        try {
+            // Start test activity
+            SendBubbleActivity activity = startSendBubbleActivity();
+            assertFalse(activity.isLaunchedFromBubble());
+
+            // Should have exception
+            assertThrows(SecurityException.class, () -> {
+                Intent i = new Intent(mContext, BubbledActivity.class);
+                ActivityOptions options = ActivityOptions.makeBasic();
+                Bundle b = options.toBundle();
+                b.putBoolean("android.activity.launchTypeBubble", true);
+                activity.startActivity(i, b);
+            });
+        } finally {
+            cleanupSendBubbleActivity();
+        }
+    }
+
     public void testOriginalChannelImportance() {
         NotificationChannel channel = new NotificationChannel(mId, "my channel", IMPORTANCE_HIGH);
 
diff --git a/tests/app/src/android/app/cts/NotificationTemplateTest.kt b/tests/app/src/android/app/cts/NotificationTemplateTest.kt
index c3c85d9..0917767 100644
--- a/tests/app/src/android/app/cts/NotificationTemplateTest.kt
+++ b/tests/app/src/android/app/cts/NotificationTemplateTest.kt
@@ -556,6 +556,28 @@
         }
     }
 
+    fun testCallStyle_forIncomingCall_isVideo_hasCorrectActions() {
+        val namedPerson = Person.Builder().setName("Named Person").build()
+        val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID)
+                .setSmallIcon(R.drawable.ic_media_play)
+                .setStyle(Notification.CallStyle
+                        .forIncomingCall(namedPerson, pendingIntent, pendingIntent)
+                        .setIsVideo(true))
+        val notification = builder.build()
+        assertThat(notification).isNotNull()
+        assertThat(notification.extras.getBoolean(Notification.EXTRA_CALL_IS_VIDEO)).isTrue()
+        val answerText = mContext.getString(
+                getAndroidRString("call_notification_answer_video_action"))
+        val declineText = mContext.getString(getAndroidRString("call_notification_decline_action"))
+        val hangUpText = mContext.getString(getAndroidRString("call_notification_hang_up_action"))
+        val views = builder.createBigContentView()
+        checkViews(views) {
+            assertThat(requireViewWithText(answerText).visibility).isEqualTo(View.VISIBLE)
+            assertThat(requireViewWithText(declineText).visibility).isEqualTo(View.VISIBLE)
+            assertThat(findViewWithText(hangUpText)).isNull()
+        }
+    }
+
     @SmallTest
     fun testCallStyle_forOngoingCall_validatesArguments() {
         val namedPerson = Person.Builder().setName("Named Person").build()
diff --git a/tests/app/src/android/app/cts/UserHandleTest.java b/tests/app/src/android/app/cts/UserHandleTest.java
index 4f4b829..ec7cc40 100644
--- a/tests/app/src/android/app/cts/UserHandleTest.java
+++ b/tests/app/src/android/app/cts/UserHandleTest.java
@@ -60,15 +60,15 @@
     public void testGetUid() {
         assertEquals(
                 UserHandle.getUid(UserHandle.USER_ALL, TEST_APP_ID),
-                UserHandle.getUid(UserHandle.ALL, TEST_APP_ID));
+                UserHandle.ALL.getUid(TEST_APP_ID));
         assertEquals(
                 UserHandle.getUid(UserHandle.USER_SYSTEM, TEST_APP_ID),
-                UserHandle.getUid(UserHandle.SYSTEM, TEST_APP_ID));
+                UserHandle.SYSTEM.getUid(TEST_APP_ID));
         assertEquals(
-                UserHandle.getUid(UserHandle.USER_ALL, TEST_APP_ID),
+                UserHandle.ALL.getUid(TEST_APP_ID),
                 UserHandle.getUid(UserHandle.ALL.getIdentifier(), TEST_APP_ID));
         assertEquals(
-                UserHandle.getUid(UserHandle.USER_SYSTEM, TEST_APP_ID),
+                UserHandle.SYSTEM.getUid(TEST_APP_ID),
                 UserHandle.getUid(UserHandle.SYSTEM.getIdentifier(), TEST_APP_ID));
     }
 }
diff --git a/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchMigratorTest.java b/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchMigratorTest.java
new file mode 100644
index 0000000..f0a916d1
--- /dev/null
+++ b/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchMigratorTest.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright 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.app.appsearch.cts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.annotation.NonNull;
+import android.app.appsearch.GenericDocument;
+import android.app.appsearch.Migrator;
+
+import org.junit.Test;
+
+public class AppSearchMigratorTest {
+
+    @Test
+    public void testOnUpgrade() {
+        Migrator migrator =
+                new Migrator() {
+                    @Override
+                    public boolean shouldMigrate(int currentVersion, int finalVersion) {
+                        return true;
+                    }
+
+                    @NonNull
+                    @Override
+                    public GenericDocument onUpgrade(
+                            int currentVersion,
+                            int finalVersion,
+                            @NonNull GenericDocument document) {
+                        return new GenericDocument.Builder<>(
+                                        document.getNamespace(),
+                                        document.getUri(),
+                                        document.getSchemaType())
+                                .setCreationTimestampMillis(document.getCreationTimestampMillis())
+                                .setScore(document.getScore())
+                                .setTtlMillis(document.getTtlMillis())
+                                .setPropertyString(
+                                        "migration",
+                                        "Upgrade the document from version "
+                                                + currentVersion
+                                                + " to version "
+                                                + finalVersion)
+                                .build();
+                    }
+
+                    @NonNull
+                    @Override
+                    public GenericDocument onDowngrade(
+                            int currentVersion,
+                            int finalVersion,
+                            @NonNull GenericDocument document) {
+                        return document;
+                    }
+                };
+
+        GenericDocument input =
+                new GenericDocument.Builder<>("namespace", "uri", "schemaType")
+                        .setCreationTimestampMillis(12345L)
+                        .setScore(100)
+                        .setTtlMillis(54321L)
+                        .build();
+
+        GenericDocument expected =
+                new GenericDocument.Builder<>("namespace", "uri", "schemaType")
+                        .setCreationTimestampMillis(12345L)
+                        .setScore(100)
+                        .setTtlMillis(54321L)
+                        .setPropertyString(
+                                "migration", "Upgrade the document from version 3 to version 5")
+                        .build();
+
+        GenericDocument output =
+                migrator.onUpgrade(/*currentVersion=*/ 3, /*finalVersion=*/ 5, input);
+        assertThat(output).isEqualTo(expected);
+    }
+
+    @Test
+    public void testOnDowngrade() {
+        Migrator migrator =
+                new Migrator() {
+                    @Override
+                    public boolean shouldMigrate(int currentVersion, int finalVersion) {
+                        return true;
+                    }
+
+                    @NonNull
+                    @Override
+                    public GenericDocument onUpgrade(
+                            int currentVersion,
+                            int finalVersion,
+                            @NonNull GenericDocument document) {
+                        return document;
+                    }
+
+                    @NonNull
+                    @Override
+                    public GenericDocument onDowngrade(
+                            int currentVersion,
+                            int finalVersion,
+                            @NonNull GenericDocument document) {
+                        return new GenericDocument.Builder<>(
+                                        document.getNamespace(),
+                                        document.getUri(),
+                                        document.getSchemaType())
+                                .setCreationTimestampMillis(document.getCreationTimestampMillis())
+                                .setScore(document.getScore())
+                                .setTtlMillis(document.getTtlMillis())
+                                .setPropertyString(
+                                        "migration",
+                                        "Downgrade the document from version "
+                                                + currentVersion
+                                                + " to version "
+                                                + finalVersion)
+                                .build();
+                    }
+                };
+
+        GenericDocument input =
+                new GenericDocument.Builder<>("namespace", "uri", "schemaType")
+                        .setCreationTimestampMillis(12345L)
+                        .setScore(100)
+                        .setTtlMillis(54321L)
+                        .build();
+
+        GenericDocument expected =
+                new GenericDocument.Builder<>("namespace", "uri", "schemaType")
+                        .setCreationTimestampMillis(12345L)
+                        .setScore(100)
+                        .setTtlMillis(54321L)
+                        .setPropertyString(
+                                "migration", "Downgrade the document from version 6 to version 4")
+                        .build();
+
+        GenericDocument output =
+                migrator.onDowngrade(/*currentVersion=*/ 6, /*finalVersion=*/ 4, input);
+        assertThat(output).isEqualTo(expected);
+    }
+}
diff --git a/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchSessionCtsTestBase.java b/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchSessionCtsTestBase.java
index c018951..dd445e0 100644
--- a/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchSessionCtsTestBase.java
+++ b/tests/appsearch/src/com/android/cts/appsearch/external/AppSearchSessionCtsTestBase.java
@@ -57,7 +57,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.ArrayList;
diff --git a/tests/appsearch/src/com/android/cts/appsearch/external/GenericDocumentCtsTest.java b/tests/appsearch/src/com/android/cts/appsearch/external/GenericDocumentCtsTest.java
index 121438d..92094c3 100644
--- a/tests/appsearch/src/com/android/cts/appsearch/external/GenericDocumentCtsTest.java
+++ b/tests/appsearch/src/com/android/cts/appsearch/external/GenericDocumentCtsTest.java
@@ -279,11 +279,22 @@
     }
 
     @Test
+    public void testDocument_setEmptyValues() {
+        GenericDocument document =
+                new GenericDocument.Builder<>("namespace", "uri1", "schemaType1")
+                        .setPropertyBoolean("testKey")
+                        .build();
+        assertThat(document.getPropertyBooleanArray("testKey")).isEmpty();
+    }
+
+    @Test
     public void testDocumentInvalid() {
         GenericDocument.Builder<?> builder =
                 new GenericDocument.Builder<>("namespace", "uri1", "schemaType1");
+        String nullString = null;
+
         expectThrows(
                 IllegalArgumentException.class,
-                () -> builder.setPropertyBoolean("test", new boolean[] {}));
+                () -> builder.setPropertyString("testKey", "string1", nullString));
     }
 }
diff --git a/tests/autofillservice/AndroidTest.xml b/tests/autofillservice/AndroidTest.xml
index 7aec376..3186d47 100644
--- a/tests/autofillservice/AndroidTest.xml
+++ b/tests/autofillservice/AndroidTest.xml
@@ -65,10 +65,4 @@
     <option name="collect-on-run-ended-only" value="true" />
     <option name="clean-up" value="false" />
   </metrics_collector>
-  <!-- Automotive tests run on user 10 -->
-  <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
-    <option name="directory-keys" value="/storage/emulated/10/CtsAutoFillServiceTestCases" />
-    <option name="collect-on-run-ended-only" value="true" />
-    <option name="clean-up" value="false" />
-  </metrics_collector>
 </configuration>
diff --git a/tests/autofillservice/res/raw/scenery.jpg b/tests/autofillservice/res/raw/scenery.jpg
deleted file mode 100644
index 7d1f5e1..0000000
--- a/tests/autofillservice/res/raw/scenery.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/autofillservice/src/android/autofillservice/cts/commontests/ClientSuggestionsCommonTestCase.java b/tests/autofillservice/src/android/autofillservice/cts/commontests/ClientSuggestionsCommonTestCase.java
index af4dea1..442ef4b 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/commontests/ClientSuggestionsCommonTestCase.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/commontests/ClientSuggestionsCommonTestCase.java
@@ -23,10 +23,12 @@
 import android.autofillservice.cts.R;
 import android.autofillservice.cts.activities.ClientSuggestionsActivity;
 import android.autofillservice.cts.testcore.AutofillActivityTestRule;
+import android.autofillservice.cts.testcore.CannedFillResponse;
 import android.autofillservice.cts.testcore.CannedFillResponse.CannedDataset;
 import android.autofillservice.cts.testcore.ClientAutofillRequestCallback;
 import android.autofillservice.cts.testcore.OneTimeTextWatcher;
 import android.autofillservice.cts.testcore.UiBot;
+import android.os.Bundle;
 import android.platform.test.annotations.AppModeFull;
 import android.widget.EditText;
 
@@ -78,12 +80,162 @@
     }
 
     @Test
+    public void testAutoFillNoDatasets_fallbackDefaultService() throws Exception {
+        // Set service.
+        enableService();
+
+        // Set expectations.
+        sReplier.addResponse(new CannedDataset.Builder()
+                .setField(ID_USERNAME, "dude")
+                .setField(ID_PASSWORD, "sweet")
+                .setPresentation("The Dude", isInlineMode())
+                .build());
+
+        mClientReplier.addResponse(NO_RESPONSE);
+
+        // Trigger autofill.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdle();
+        sReplier.getNextFillRequest();
+        mClientReplier.assertReceivedRequest();
+
+        mActivity.expectAutoFill("dude", "sweet");
+
+        // Select the dataset.
+        mUiBot.selectDataset("The Dude");
+
+        // Check the results.
+        mActivity.assertAutoFilled();
+    }
+
+    @Test
+    @AppModeFull(reason = "testAutoFillNoDatasets_fallbackDefaultService() is enough")
+    public void testManualRequestAfterFallbackDefaultService() throws Exception {
+        // Set service.
+        enableService();
+
+        // Set expectations.
+        sReplier.addResponse(new CannedDataset.Builder()
+                .setField(ID_USERNAME, "dude")
+                .setField(ID_PASSWORD, "sweet")
+                .setPresentation("The Dude", isInlineMode())
+                .build());
+
+        mClientReplier.addResponse(NO_RESPONSE);
+
+        // Trigger autofill.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdle();
+        sReplier.getNextFillRequest();
+        mClientReplier.assertReceivedRequest();
+
+        // The dataset shown.
+        mUiBot.assertDatasets("The Dude");
+
+        // Set expectations.
+        sReplier.addResponse(new CannedDataset.Builder()
+                .setField(ID_USERNAME, "DUDE")
+                .setField(ID_PASSWORD, "SWEET")
+                .setPresentation("THE DUDE", isInlineMode())
+                .build());
+
+        // Trigger autofill.
+        mActivity.forceAutofillOnUsername();
+        mUiBot.waitForIdle();
+        sReplier.getNextFillRequest();
+        mClientReplier.assertNoUnhandledFillRequests();
+
+        mActivity.expectAutoFill("DUDE", "SWEET");
+
+        // Select the dataset.
+        mUiBot.selectDataset("THE DUDE");
+
+        // Check the results.
+        mActivity.assertAutoFilled();
+    }
+
+    @Test
+    @AppModeFull(reason = "testAutoFillNoDatasets_fallbackDefaultService() is enough")
+    public void testNewFieldAddedAfterFallbackDefaultService() throws Exception {
+        // Set service.
+        enableService();
+
+        // Set expectations.
+        sReplier.addResponse(new CannedDataset.Builder()
+                .setField(ID_USERNAME, "dude")
+                .setField(ID_PASSWORD, "sweet")
+                .setPresentation("The Dude", isInlineMode())
+                .build());
+
+        mClientReplier.addResponse(NO_RESPONSE);
+
+        // Trigger autofill.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdle();
+        sReplier.getNextFillRequest();
+        mClientReplier.assertReceivedRequest();
+
+        // The dataset shown.
+        mUiBot.assertDatasets("The Dude");
+
+        // Try again, in a field that was added after the first request
+        final EditText child = new EditText(mActivity);
+        child.setId(R.id.empty);
+        mActivity.addChild(child, ID_EMPTY);
+        final OneTimeTextWatcher watcher = new OneTimeTextWatcher("child", child,
+                "new view on the block");
+        child.addTextChangedListener(watcher);
+        sReplier.addResponse(new CannedDataset.Builder()
+                .setField(ID_USERNAME, "dude")
+                .setField(ID_PASSWORD, "sweet")
+                .setField(ID_EMPTY, "new view on the block")
+                .setPresentation("The Dude", isInlineMode())
+                .build());
+
+        mActivity.syncRunOnUiThread(() -> child.requestFocus());
+        mUiBot.waitForIdle();
+        sReplier.getNextFillRequest();
+        mClientReplier.assertNoUnhandledFillRequests();
+
+        mActivity.expectAutoFill("dude", "sweet");
+
+        // Select the dataset.
+        mUiBot.selectDataset("The Dude");
+        mUiBot.waitForIdle();
+
+        // Check the results.
+        mActivity.assertAutoFilled();
+        watcher.assertAutoFilled();
+    }
+
+    @Test
+    public void testNoDatasetsAfterFallbackDefaultService() throws Exception {
+        // Set service.
+        enableService();
+
+        // Set expectations.
+        sReplier.addResponse(NO_RESPONSE);
+        mClientReplier.addResponse(NO_RESPONSE);
+
+        // Trigger autofill.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdle();
+
+        mClientReplier.assertReceivedRequest();
+        sReplier.getNextFillRequest();
+
+        // Make sure UI is not shown.
+        mUiBot.assertNoDatasetsEver();
+    }
+
+    @Test
+    @AppModeFull(reason = "testAutoFillOneDataset() is enough")
     public void testAutoFillNoDatasets() throws Exception {
         // Set service.
         enableService();
 
         // Set expectations.
-        mClientReplier.addResponse(NO_RESPONSE);
+        setEmptyClientResponse();
 
         // Trigger autofill.
         mUiBot.selectByRelativeId(ID_USERNAME);
@@ -101,7 +253,7 @@
         enableService();
 
         // Set expectations.
-        mClientReplier.addResponse(NO_RESPONSE);
+        setEmptyClientResponse();
 
         // Trigger autofill.
         mUiBot.selectByRelativeId(ID_USERNAME);
@@ -151,4 +303,10 @@
             }
         };
     }
+
+    private void setEmptyClientResponse() {
+        mClientReplier.addResponse(new CannedFillResponse.Builder()
+                .setExtras(new Bundle())
+                .build());
+    }
 }
diff --git a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedContentTest.java b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedContentTest.java
index eaad897..a8800c8 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedContentTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedContentTest.java
@@ -21,7 +21,6 @@
 import static android.autofillservice.cts.testcore.CannedFillResponse.NO_RESPONSE;
 import static android.autofillservice.cts.testcore.Helper.ID_USERNAME;
 
-import android.autofillservice.cts.R;
 import android.autofillservice.cts.activities.AugmentedAuthActivity;
 import android.autofillservice.cts.activities.AugmentedLoginActivity;
 import android.autofillservice.cts.commontests.AugmentedAutofillAutoActivityLaunchTestCase;
@@ -31,14 +30,9 @@
 import android.content.ClipData;
 import android.content.ContentResolver;
 import android.content.IntentSender;
-import android.content.res.AssetFileDescriptor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.platform.test.annotations.Presubmit;
-import android.provider.MediaStore;
 import android.service.autofill.Dataset;
-import android.util.Log;
 import android.view.ContentInfo;
 import android.view.OnReceiveContentListener;
 import android.view.View;
@@ -120,8 +114,8 @@
     @Test
     public void testFillContent_contentUri() throws Exception {
         final String suggestionTitle = "Sample Image";
-        final Uri suggestionUri = createSampleImageInMediaStore();
-        final String suggestionMimeType = mContentResolver.getType(suggestionUri);
+        final Uri suggestionUri = sampleContentUri();
+        final String suggestionMimeType = "image/png";
 
         // Set expectations
         final EditText targetField = mActivity.getUsername();
@@ -154,8 +148,8 @@
     @Test
     public void testFillContent_contentUri_authFlow() throws Exception {
         final String suggestionTitle = "Sample Image";
-        final Uri suggestionUri = createSampleImageInMediaStore();
-        final String suggestionMimeType = mContentResolver.getType(suggestionUri);
+        final Uri suggestionUri = sampleContentUri();
+        final String suggestionMimeType = "image/png";
 
         // Set expectations
         final EditText targetField = mActivity.getUsername();
@@ -235,14 +229,9 @@
                 .build();
     }
 
-    private Uri createSampleImageInMediaStore() {
+    private static Uri sampleContentUri() {
         String uniqueSuffix = System.currentTimeMillis() + "_" + SUFFIX_COUNTER.getAndIncrement();
-        String title = "Scenery " + uniqueSuffix;
-        String description = "Scenery description " + uniqueSuffix;
-        Bitmap src = BitmapFactory.decodeResource(mContext.getResources(), R.raw.scenery);
-        String uriStr = MediaStore.Images.Media.insertImage(mContentResolver, src,
-                title, description);
-        return Uri.parse(uriStr);
+        return Uri.parse(ContentResolver.SCHEME_CONTENT + "://example/" + uniqueSuffix);
     }
 
     private static final class MyContentReceiver implements OnReceiveContentListener {
@@ -259,7 +248,6 @@
                 }
                 ClipData.Item item = clip.getItemAt(i);
                 if (item.getUri() != null) {
-                    receiveUri(view, item.getUri());
                     sb.append(TEXT_FILLED_FOR_URI);
                 } else {
                     sb.append(item.getText());
@@ -268,17 +256,5 @@
             ((TextView) view).setText(sb.toString());
             return null;
         }
-
-        private void receiveUri(View view, Uri uri) {
-            ContentResolver contentResolver = view.getContext().getContentResolver();
-            try (AssetFileDescriptor fd = contentResolver.openAssetFileDescriptor(uri, "r")) {
-                long sizeInBytes = fd.getLength();
-                String mimeType = contentResolver.getType(uri);
-                Log.d(TAG, "Read URI [" + uri + "] of type [" + mimeType + "]: " + sizeInBytes
-                        + " bytes");
-            } catch (Exception e) {
-                throw new IllegalStateException("Cannot read URI: " + uri, e);
-            }
-        }
     }
 }
diff --git a/tests/camera/src/android/hardware/camera2/cts/CameraExtensionCharacteristicsTest.java b/tests/camera/src/android/hardware/camera2/cts/CameraExtensionCharacteristicsTest.java
index 4c778a4..5f8c8f9 100644
--- a/tests/camera/src/android/hardware/camera2/cts/CameraExtensionCharacteristicsTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/CameraExtensionCharacteristicsTest.java
@@ -27,6 +27,8 @@
 
 import androidx.test.InstrumentationRegistry;
 
+import com.android.compatibility.common.util.PropertyUtil;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -123,6 +125,7 @@
 
     @Test
     public void testExtensionAvailability() throws Exception {
+        boolean extensionsAdvertised = false;
         for (String id : mTestRule.getCameraIdsUnderTest()) {
             StaticMetadata staticMeta =
                     new StaticMetadata(mTestRule.getCameraManager().getCameraCharacteristics(id));
@@ -133,6 +136,9 @@
                     mTestRule.getCameraManager().getCameraExtensionCharacteristics(id);
             ArrayList<Integer> unsupportedExtensions = new ArrayList<>(EXTENSIONS);
             List<Integer> supportedExtensions = extensionChars.getSupportedExtensions();
+            if (!extensionsAdvertised && !supportedExtensions.isEmpty()) {
+                extensionsAdvertised = true;
+            }
             for (Integer extension : supportedExtensions) {
                 verifySupportedExtension(extensionChars, id, extension, SurfaceTexture.class);
                 unsupportedExtensions.remove(extension);
@@ -143,6 +149,10 @@
                 verifyUnsupportedExtension(extensionChars, extension, SurfaceTexture.class);
             }
         }
+        boolean extensionsEnabledProp = PropertyUtil.areCameraXExtensionsEnabled();
+        assertEquals("Extensions system property : " + extensionsEnabledProp + " does not match " +
+                "with the advertised extensions: " + extensionsAdvertised, extensionsEnabledProp,
+                extensionsAdvertised);
     }
 
     @Test
diff --git a/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java b/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
index c334724..d015959 100644
--- a/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
@@ -669,7 +669,7 @@
             // Radial distortion doesn't need to be present for new devices, or old devices that
             // opt in the new lens distortion tag.
             CameraCharacteristics c = staticInfo.getCharacteristics();
-            if (Build.VERSION.FIRST_SDK_INT > Build.VERSION_CODES.O_MR1 ||
+            if (Build.VERSION.DEVICE_INITIAL_SDK_INT > Build.VERSION_CODES.O_MR1 ||
                     c.get(CameraCharacteristics.LENS_DISTORTION) != null) {
                 waiverKeys.add(CaptureResult.LENS_RADIAL_DISTORTION);
             }
diff --git a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
index e792521..d30349e 100644
--- a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
@@ -2549,7 +2549,7 @@
     private float[] getLensDistortion(CameraCharacteristics c) {
         float[] distortion = null;
         float[] newDistortion = c.get(CameraCharacteristics.LENS_DISTORTION);
-        if (Build.VERSION.FIRST_SDK_INT > Build.VERSION_CODES.O_MR1 || newDistortion != null) {
+        if (Build.VERSION.DEVICE_INITIAL_SDK_INT > Build.VERSION_CODES.O_MR1 || newDistortion != null) {
             // New devices need to use fixed radial distortion definition; old devices can
             // opt-in to it
             if (newDistortion != null && newDistortion.length == 5) {
diff --git a/tests/devicepolicy/Android.bp b/tests/devicepolicy/Android.bp
index a71dec7..9ae1302 100644
--- a/tests/devicepolicy/Android.bp
+++ b/tests/devicepolicy/Android.bp
@@ -38,8 +38,5 @@
         "vts10",
         "general-tests",
     ],
-    test_options: {
-        extra_test_configs: ["DevicePolicyWorkProfileTest.xml", "DevicePolicySecondaryUserTest.xml"]
-    },
     sdk_version: "test_current",
 }
diff --git a/tests/devicepolicy/AndroidTest.xml b/tests/devicepolicy/AndroidTest.xml
index 2cff288..1e16d2e 100644
--- a/tests/devicepolicy/AndroidTest.xml
+++ b/tests/devicepolicy/AndroidTest.xml
@@ -21,6 +21,7 @@
     <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="multiuser" />
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="cleanup-apks" value="true" />
         <option name="install-arg" value="-t" />
diff --git a/tests/devicepolicy/DevicePolicySecondaryUserTest.xml b/tests/devicepolicy/DevicePolicySecondaryUserTest.xml
deleted file mode 100644
index 798f52e..0000000
--- a/tests/devicepolicy/DevicePolicySecondaryUserTest.xml
+++ /dev/null
@@ -1,39 +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.
-  -->
-<configuration description="Config for CTS Device Policy test cases on a secondary user">
-    <option name="test-suite-tag" value="cts" />
-    <option name="config-descriptor:metadata" key="component" value="framework" />
-    <!-- Instant apps can never be device admin / profile owner / device owner so positive tests
-         here are not applicable -->
-    <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="not_secondary_user" />
-    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-t" />
-        <option name="test-file-name" value="CtsDevicePolicyTestCases.apk" />
-    </target_preparer>
-    <target_preparer class="com.android.tradefed.targetprep.RunOnSecondaryUserTargetPreparer">
-        <option name="test-package-name" value="android.devicepolicy.cts" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
-        <option name="package" value="android.devicepolicy.cts" />
-        <option name="include-annotation" value="com.android.bedstead.harrier.annotations.RequireRunOnSecondaryUser" />
-        <!--        <option name="instrumentation-arg" key="skip-test-teardown" value="true" />-->
-        <option name="hidden-api-checks" value="false" />
-    </test>
-</configuration>
\ No newline at end of file
diff --git a/tests/devicepolicy/DevicePolicyWorkProfileTest.xml b/tests/devicepolicy/DevicePolicyWorkProfileTest.xml
deleted file mode 100644
index 1e45241..0000000
--- a/tests/devicepolicy/DevicePolicyWorkProfileTest.xml
+++ /dev/null
@@ -1,38 +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.
--->
-<configuration description="Config for CTS Device Policy test cases on a work profile">
-    <option name="test-suite-tag" value="cts" />
-    <option name="config-descriptor:metadata" key="component" value="framework" />
-    <!-- Instant apps can never be device admin / profile owner / device owner so positive tests
-         here are not applicable -->
-    <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="not_secondary_user" />
-    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-t" />
-        <option name="test-file-name" value="CtsDevicePolicyTestCases.apk" />
-    </target_preparer>
-    <target_preparer class="com.android.tradefed.targetprep.RunOnWorkProfileTargetPreparer">
-        <option name="test-package-name" value="android.devicepolicy.cts" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
-        <option name="package" value="android.devicepolicy.cts" />
-        <option name="include-annotation" value="com.android.bedstead.harrier.annotations.RequireRunOnWorkProfile" />
-<!--        <option name="instrumentation-arg" key="skip-test-teardown" value="true" />-->
-        <option name="hidden-api-checks" value="false" />
-    </test>
-</configuration>
\ No newline at end of file
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/AdminPermissionControlParamsTests.java b/tests/devicepolicy/src/android/devicepolicy/cts/AdminPermissionControlParamsTests.java
index 1719c94..f7eb651 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/AdminPermissionControlParamsTests.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/AdminPermissionControlParamsTests.java
@@ -23,14 +23,13 @@
 import android.os.Parcel;
 import android.permission.AdminPermissionControlParams;
 
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.annotations.Postsubmit;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public class AdminPermissionControlParamsTests {
     private static final String PKG = "somePackage";
     private static final String PERMISSION = "somePackage";
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/AppUriAuthenticationPolicyTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/AppUriAuthenticationPolicyTest.java
index 388178d..b990f6b 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/AppUriAuthenticationPolicyTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/AppUriAuthenticationPolicyTest.java
@@ -24,16 +24,17 @@
 import android.os.Parcel;
 import android.security.AppUriAuthenticationPolicy;
 
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 
+import com.android.bedstead.harrier.BedsteadJUnit4;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.util.Map;
 
 @SmallTest
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public final class AppUriAuthenticationPolicyTest {
 
     private final static String PACKAGE_NAME = "com.android.test";
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/CredentialManagementAppTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/CredentialManagementAppTest.java
index ff33035..d70179a 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/CredentialManagementAppTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/CredentialManagementAppTest.java
@@ -39,10 +39,10 @@
 import android.security.keystore.KeyProperties;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
 import com.android.activitycontext.ActivityContext;
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.annotations.Postsubmit;
 import com.android.compatibility.common.util.BlockingCallback;
 import com.android.compatibility.common.util.FakeKeys;
@@ -67,7 +67,7 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public class CredentialManagementAppTest {
 
     private static final PrivateKey PRIVATE_KEY =
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/CrossProfileAppsTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/CrossProfileAppsTest.java
index e867aae..c7e8c07 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/CrossProfileAppsTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/CrossProfileAppsTest.java
@@ -19,10 +19,8 @@
 import static com.android.bedstead.harrier.DeviceState.UserType.PRIMARY_USER;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
-import static junit.framework.Assert.assertNotNull;
-
-import static org.junit.Assert.assertEquals;
 import static org.testng.Assert.assertThrows;
 
 import android.content.ComponentName;
@@ -32,13 +30,13 @@
 import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.uiautomator.By;
 import androidx.test.uiautomator.UiDevice;
 import androidx.test.uiautomator.UiObject2;
 import androidx.test.uiautomator.Until;
 
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
 import com.android.bedstead.harrier.annotations.EnsureHasSecondaryUser;
 import com.android.bedstead.harrier.annotations.EnsureHasWorkProfile;
@@ -46,17 +44,21 @@
 import com.android.bedstead.harrier.annotations.RequireRunOnPrimaryUser;
 import com.android.bedstead.harrier.annotations.RequireRunOnSecondaryUser;
 import com.android.bedstead.harrier.annotations.RequireRunOnWorkProfile;
+import com.android.bedstead.harrier.annotations.enterprise.PositivePolicyTest;
+import com.android.bedstead.harrier.annotations.parameterized.IncludeRunOnNonAffiliatedDeviceOwnerSecondaryUser;
+import com.android.bedstead.harrier.policies.TestPolicy;
 
 import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public final class CrossProfileAppsTest {
 
     private static final String ID_USER_TEXTVIEW =
@@ -160,11 +162,12 @@
                 .wait(
                         Until.findObject(By.res(ID_USER_TEXTVIEW)),
                         TIMEOUT_WAIT_UI);
-        assertNotNull("Failed to start activity in target user", textView);
+        assertWithMessage("Failed to start activity in target user")
+                .that(textView).isNotNull();
         // Look for the text in textview, it should be the serial number of target user.
-        assertEquals("Activity is started in wrong user",
-                String.valueOf(sUserManager.getSerialNumberForUser(user)),
-                textView.getText());
+        assertWithMessage("Activity is started in wrong user")
+                .that(textView.getText())
+                .isEqualTo(String.valueOf(sUserManager.getSerialNumberForUser(user)));
     }
 
     @Test
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
index b17ec08..c28b2c9 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
@@ -40,13 +40,13 @@
 import android.provider.Settings;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
 import com.android.bedstead.deviceadminapp.DeviceAdminApp;
-import com.android.bedstead.harrier.annotations.Postsubmit;
-import com.android.bedstead.harrier.annotations.EnsureHasNoWorkProfile;
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
+import com.android.bedstead.harrier.annotations.EnsureHasNoWorkProfile;
+import com.android.bedstead.harrier.annotations.Postsubmit;
 import com.android.bedstead.harrier.annotations.RequireFeatures;
 import com.android.bedstead.harrier.annotations.RequireRunOnPrimaryUser;
 import com.android.bedstead.nene.TestApis;
@@ -65,7 +65,7 @@
 import java.util.concurrent.Callable;
 import java.util.stream.Collectors;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public final class DevicePolicyManagerTest {
     private static final Context sContext = ApplicationProvider.getApplicationContext();
     private static final DevicePolicyManager sDevicePolicyManager =
@@ -560,7 +560,6 @@
         }
     }
 
-
     @RequireFeatures(PackageManager.FEATURE_DEVICE_ADMIN)
     @Test
     public void getPolicyExemptAppsCanOnlyBeDefinedOnAutomotiveBuilds() throws Exception {
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/LauncherAppsTests.java b/tests/devicepolicy/src/android/devicepolicy/cts/LauncherAppsTests.java
index 46cf1ec..a7dfc6f 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/LauncherAppsTests.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/LauncherAppsTests.java
@@ -25,12 +25,13 @@
 import android.os.Process;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.bedstead.harrier.BedsteadJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public final class LauncherAppsTests {
     private final Context sContext = ApplicationProvider.getApplicationContext();
     private final LauncherApps sLauncherApps = sContext.getSystemService(LauncherApps.class);
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/NegativeCallAuthorizationTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/NegativeCallAuthorizationTest.java
index 53b58e5..a759dcd 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/NegativeCallAuthorizationTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/NegativeCallAuthorizationTest.java
@@ -23,9 +23,9 @@
 import android.content.pm.PackageManager;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
 import com.android.bedstead.harrier.annotations.RequireFeatures;
 
@@ -42,7 +42,7 @@
  * so it is critical that the app is not owner. These APIs are tested here.
  */
 @SmallTest
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public class NegativeCallAuthorizationTest {
     private static final String ALIAS = "some-alias";
     private static final Context sContext = ApplicationProvider.getApplicationContext();
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/StartProfilesTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/StartProfilesTest.java
index 614f41c..e710611 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/StartProfilesTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/StartProfilesTest.java
@@ -19,7 +19,6 @@
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assume.assumeTrue;
 import static org.testng.Assert.assertThrows;
 
 import android.app.ActivityManager;
@@ -27,14 +26,12 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.os.UserHandle;
 import android.os.UserManager;
-import android.util.ArraySet;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.DeviceState;
 import com.android.bedstead.harrier.annotations.EnsureHasSecondaryUser;
 import com.android.bedstead.harrier.annotations.EnsureHasTvProfile;
@@ -54,7 +51,7 @@
 
 import java.util.function.Function;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(BedsteadJUnit4.class)
 public final class StartProfilesTest {
 
     // We set this to 30 seconds because if the total test time goes over 66 seconds then it causes
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/UnsafeStateExceptionTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/UnsafeStateExceptionTest.java
index 1a37e41..16b9c59 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/UnsafeStateExceptionTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/UnsafeStateExceptionTest.java
@@ -24,11 +24,14 @@
 
 import android.app.admin.UnsafeStateException;
 
+import com.android.bedstead.harrier.BedsteadJUnit4;
 import com.android.bedstead.harrier.annotations.Postsubmit;
 
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
 // TODO(b/174859111): move to automotive-specific section
+@RunWith(BedsteadJUnit4.class)
 public final class UnsafeStateExceptionTest {
 
     private static final int VALID_OPERATION = Integer.MAX_VALUE; // Value doesn't really matter...
diff --git a/tests/devicestate/AndroidTest.xml b/tests/devicestate/AndroidTest.xml
index 3b7eadd..ca0266c 100644
--- a/tests/devicestate/AndroidTest.xml
+++ b/tests/devicestate/AndroidTest.xml
@@ -39,10 +39,4 @@
         <option name="collect-on-run-ended-only" value="true" />
         <option name="clean-up" value="false" />
     </metrics_collector>
-    <!-- Automotive tests run on user 10 -->
-    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
-        <option name="directory-keys" value="/storage/emulated/10/CtsDeviceStateManagerTestCases" />
-        <option name="collect-on-run-ended-only" value="true" />
-        <option name="clean-up" value="false" />
-    </metrics_collector>
 </configuration>
diff --git a/tests/framework/base/windowmanager/AndroidManifest.xml b/tests/framework/base/windowmanager/AndroidManifest.xml
index 6789804..6ce8352 100644
--- a/tests/framework/base/windowmanager/AndroidManifest.xml
+++ b/tests/framework/base/windowmanager/AndroidManifest.xml
@@ -258,7 +258,10 @@
              android:launchMode="singleTask"
              android:taskAffinity=".t1"/>
         <activity android:name="android.server.wm.intent.Activities$SingleInstancePerTaskActivity"
-                  android:launchMode="singleInstancePerTask"/>
+             android:launchMode="singleInstancePerTask"/>
+        <activity android:name="android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity"
+             android:launchMode="singleInstancePerTask"
+             android:documentLaunchMode="never"/>
         <activity android:name="android.server.wm.intent.Activities$TaskAffinity1Activity"
              android:allowTaskReparenting="true"
              android:launchMode="standard"
@@ -475,6 +478,15 @@
             <meta-data android:name="android.supports_size_changes"
                        android:value="true"/>
         </activity>
+
+        <service android:name="android.server.wm.WindowContextTests$TestWindowService"
+                 android:exported="true"
+                 android:enabled="true" />
+        <activity android:name="android.server.wm.WindowContextTests$TestActivity"
+                  android:exported="true"
+                  android:resizeableActivity="true"
+                  android:supportsPictureInPicture="true"
+                  android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|colorMode|density|touchscreen"/>
     </application>
 
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
diff --git a/tests/framework/base/windowmanager/OWNERS b/tests/framework/base/windowmanager/OWNERS
index d5c5d31..aa788b8 100644
--- a/tests/framework/base/windowmanager/OWNERS
+++ b/tests/framework/base/windowmanager/OWNERS
@@ -1,2 +1,31 @@
-# Bug component: 316125
-include platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS
\ No newline at end of file
+# animation & tranistion
+# Bug template url: https://b.corp.google.com/issues/new?component=316275&template=1018192 = per-file *Transition*, SplashscreenTests.java
+# foldables
+# Bug template url: https://b.corp.google.com/issues/new?component=943781&template=1502790 = per-file *WindowContext*, *WindowMetrics*
+# insets & cutout
+# Bug template url: https://b.corp.google.com/issues/new?component=339570&template=1037597 = per-file *Inset*, *Cutout*, *RoundedCorner*, ForceRelayoutTest.java
+# shell
+# Bug template url: https://b.corp.google.com/issues/new?component=928594&template=1490782 = per-file DragDropTest.java
+# surface
+# Bug template url: https://b.corp.google.com/issues/new?component=316245&template=1018194 = per-file DisplayHashManagerTest.java, *Surface*
+# activity
+# Bug template url: https://b.corp.google.com/issues/new?component=316020&template=1018174 = per-file *Config*, Activity*, AmStartOptionsTests.java, AspectRatioTests.java, AssistantStackTests.java, CloseOnOutsideTests.java
+# multi-display
+# Bug template url: https://b.corp.google.com/issues/new?component=316280&template=1018196 = per-file MultiDisplay*, *DisplayTest*, PresentationTest.java
+# pip
+# Bug template url: https://b.corp.google.com/issues/new?component=316251&template=1018197 = per-file PinnedStackTests.java
+# bubbles
+# Bug template url: https://b.corp.google.com/issues/new?component=555586&template=1210986 = per-file ActivityViewTest.java
+# split-screen
+# Bug template url: https://b.corp.google.com/issues/new?component=928697&template=1490890 = per-file MultiWindowTests.java, ReplaceWindowTests.java
+# app-compat
+# Bug template url: https://b.corp.google.com/issues/new?component=970984&template=1516678 = per-file *Compat*, DeprecatedTargetSdkTest.java, DisplaySizeTest.java, PrereleaseSdkTest.java
+# freeform
+# Bug template url: https://b.corp.google.com/issues/new?component=929241&template=1490914 = per-file *Freeform*
+# input
+# Bug template url: https://b.corp.google.com/issues/new?component=136048&template=115201 = per-file *Input*, *Touch*
+# Ime
+# Bug template url: https://b.corp.google.com/issues/new?component=34867&template=195938 = per-file *Ime*
+# others
+# Bug template url: https://b.corp.google.com/issues/new?component=316125&template=1018199
+include platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS
diff --git a/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-10.json b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-10.json
new file mode 100644
index 0000000..4d3da8d
--- /dev/null
+++ b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-10.json
@@ -0,0 +1,45 @@
+{
+    "comment": "Verify the SingleInstancePerTask with documentLaunchMode-never Activity won't be started in new task via NEW_DOCUMENT",
+    "setup": {
+        "initialIntents": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ],
+        "act": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_NEW_DOCUMENT",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ]
+    },
+    "initialState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            }
+        ]
+    },
+    "endState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-11.json b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-11.json
new file mode 100644
index 0000000..fe99a1b
--- /dev/null
+++ b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-11.json
@@ -0,0 +1,45 @@
+{
+    "comment": "Verify the SingleInstancePerTask with documentLaunchMode-never Activity won't be started in new task via NEW_DOCUMENT and MULTIPLE_TASK",
+    "setup": {
+        "initialIntents": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ],
+        "act": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_NEW_DOCUMENT | FLAG_ACTIVITY_MULTIPLE_TASK",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ]
+    },
+    "initialState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            }
+        ]
+    },
+    "endState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-12.json b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-12.json
new file mode 100644
index 0000000..46616b3
--- /dev/null
+++ b/tests/framework/base/windowmanager/intent_tests/singleInstancePerTask/test-12.json
@@ -0,0 +1,53 @@
+{
+    "comment": "Verify the SingleInstancePerTask with documentLaunchMode-never Activity can be created in a new task with MULTIPLE_TASK flag",
+    "setup": {
+        "initialIntents": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ],
+        "act": [
+            {
+                "flags": "FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK",
+                "class": "android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                "package": "android.server.wm.cts",
+                "startForResult": false
+            }
+        ]
+    },
+    "initialState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            }
+        ]
+    },
+    "endState": {
+        "tasks": [
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "RESUMED"
+                    }
+                ]
+            },
+            {
+                "activities": [
+                    {
+                        "name": "android.server.wm.cts/android.server.wm.intent.Activities$SingleInstancePerTaskDocumentNeverActivity",
+                        "state": "STOPPED"
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/tests/framework/base/windowmanager/jetpack/OWNERS b/tests/framework/base/windowmanager/jetpack/OWNERS
new file mode 100644
index 0000000..72fa917
--- /dev/null
+++ b/tests/framework/base/windowmanager/jetpack/OWNERS
@@ -0,0 +1,2 @@
+# Bug template url: https://b.corp.google.com/issues/new?component=812646&template=1393556
+akulian@google.com
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java b/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
index 94a2cad..abde1df 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
@@ -64,7 +64,6 @@
 import android.os.SystemClock;
 import android.platform.test.annotations.Presubmit;
 import android.server.wm.CommandSession.ActivitySessionClient;
-import android.server.wm.ConfigChangeTests.FontScaleSession;
 import android.support.test.metricshelper.MetricsAsserts;
 import android.util.EventLog.Event;
 
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/ConfigChangeTests.java b/tests/framework/base/windowmanager/src/android/server/wm/ConfigChangeTests.java
index 515f737..a546e21 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/ConfigChangeTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/ConfigChangeTests.java
@@ -235,17 +235,8 @@
         }
     }
 
-    /** Helper class to save, set, and restore font_scale preferences. */
-    static class FontScaleSession extends SettingsSession<Float> {
-        FontScaleSession() {
-            super(Settings.System.getUriFor(Settings.System.FONT_SCALE),
-                    Settings.System::getFloat,
-                    Settings.System::putFloat);
-        }
-    }
-
     private void testChangeFontScale(ComponentName activityName, boolean relaunch) {
-        final FontScaleSession fontScaleSession = mObjectTracker.manage(new FontScaleSession());
+        final FontScaleSession fontScaleSession = createFontScaleSession();
         fontScaleSession.set(1.0f);
         separateTestJournal();
         launchActivity(activityName);
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/PinnedStackTests.java b/tests/framework/base/windowmanager/src/android/server/wm/PinnedStackTests.java
index f5cd8f1..4fc4c3a 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/PinnedStackTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/PinnedStackTests.java
@@ -81,6 +81,7 @@
 import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.lessThanOrEqualTo;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
@@ -167,14 +168,14 @@
     }
 
     @Test
-    public void testMinimumDeviceSize() throws Exception {
+    public void testMinimumDeviceSize() {
         mWmState.assertDeviceDefaultDisplaySizeForMultiWindow(
                 "Devices supporting picture-in-picture must be larger than the default minimum"
                         + " task size");
     }
 
     @Test
-    public void testEnterPictureInPictureMode() throws Exception {
+    public void testEnterPictureInPictureMode() {
         pinnedStackTester(getAmStartCmd(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true")),
                 PIP_ACTIVITY, PIP_ACTIVITY, false /* isFocusable */);
     }
@@ -182,7 +183,7 @@
     // This test is black-listed in cts-known-failures.xml (b/35314835).
     @Ignore
     @Test
-    public void testAlwaysFocusablePipActivity() throws Exception {
+    public void testAlwaysFocusablePipActivity() {
         pinnedStackTester(getAmStartCmd(ALWAYS_FOCUSABLE_PIP_ACTIVITY),
                 ALWAYS_FOCUSABLE_PIP_ACTIVITY, ALWAYS_FOCUSABLE_PIP_ACTIVITY,
                 true /* isFocusable */);
@@ -191,14 +192,14 @@
     // This test is black-listed in cts-known-failures.xml (b/35314835).
     @Ignore
     @Test
-    public void testLaunchIntoPinnedStack() throws Exception {
+    public void testLaunchIntoPinnedStack() {
         pinnedStackTester(getAmStartCmd(LAUNCH_INTO_PINNED_STACK_PIP_ACTIVITY),
                 LAUNCH_INTO_PINNED_STACK_PIP_ACTIVITY, ALWAYS_FOCUSABLE_PIP_ACTIVITY,
                 true /* isFocusable */);
     }
 
     @Test
-    public void testNonTappablePipActivity() throws Exception {
+    public void testNonTappablePipActivity() {
         // Launch the tap-to-finish activity at a specific place
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true"),
                 extraString(EXTRA_TAP_TO_FINISH, "true"));
@@ -239,7 +240,7 @@
     }
 
     @Test
-    public void testEnterPipToOtherOrientation() throws Exception {
+    public void testEnterPipToOtherOrientation() {
         // Launch a portrait only app on the fullscreen stack
         launchActivity(TEST_ACTIVITY,
                 extraString(EXTRA_FIXED_ORIENTATION, String.valueOf(ORIENTATION_PORTRAIT)));
@@ -280,7 +281,7 @@
 
     @Test
     @SecurityTest(minPatchLevel="2021-03")
-    public void testEnterPipWithTinyMinimalSize() throws Exception {
+    public void testEnterPipWithTinyMinimalSize() {
         // Launch a PiP activity with minimal size specified and smaller than allowed minimum
         launchActivity(PIP_ACTIVITY_WITH_TINY_MINIMAL_SIZE, extraString(EXTRA_ENTER_PIP, "true"));
         // Wait for animation complete since we are comparing size
@@ -303,16 +304,16 @@
     }
 
     @Test
-    public void testEnterPipAspectRatioMin() throws Exception {
+    public void testEnterPipAspectRatioMin() {
         testEnterPipAspectRatio(MIN_ASPECT_RATIO_NUMERATOR, MIN_ASPECT_RATIO_DENOMINATOR);
     }
 
     @Test
-    public void testEnterPipAspectRatioMax() throws Exception {
+    public void testEnterPipAspectRatioMax() {
         testEnterPipAspectRatio(MAX_ASPECT_RATIO_NUMERATOR, MAX_ASPECT_RATIO_DENOMINATOR);
     }
 
-    private void testEnterPipAspectRatio(int num, int denom) throws Exception {
+    private void testEnterPipAspectRatio(int num, int denom) {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -331,16 +332,16 @@
     }
 
     @Test
-    public void testResizePipAspectRatioMin() throws Exception {
+    public void testResizePipAspectRatioMin() {
         testResizePipAspectRatio(MIN_ASPECT_RATIO_NUMERATOR, MIN_ASPECT_RATIO_DENOMINATOR);
     }
 
     @Test
-    public void testResizePipAspectRatioMax() throws Exception {
+    public void testResizePipAspectRatioMax() {
         testResizePipAspectRatio(MAX_ASPECT_RATIO_NUMERATOR, MAX_ASPECT_RATIO_DENOMINATOR);
     }
 
-    private void testResizePipAspectRatio(int num, int denom) throws Exception {
+    private void testResizePipAspectRatio(int num, int denom) {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -357,18 +358,18 @@
     }
 
     @Test
-    public void testEnterPipExtremeAspectRatioMin() throws Exception {
+    public void testEnterPipExtremeAspectRatioMin() {
         testEnterPipExtremeAspectRatio(MIN_ASPECT_RATIO_NUMERATOR,
                 BELOW_MIN_ASPECT_RATIO_DENOMINATOR);
     }
 
     @Test
-    public void testEnterPipExtremeAspectRatioMax() throws Exception {
+    public void testEnterPipExtremeAspectRatioMax() {
         testEnterPipExtremeAspectRatio(ABOVE_MAX_ASPECT_RATIO_NUMERATOR,
                 MAX_ASPECT_RATIO_DENOMINATOR);
     }
 
-    private void testEnterPipExtremeAspectRatio(int num, int denom) throws Exception {
+    private void testEnterPipExtremeAspectRatio(int num, int denom) {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -381,18 +382,18 @@
     }
 
     @Test
-    public void testSetPipExtremeAspectRatioMin() throws Exception {
+    public void testSetPipExtremeAspectRatioMin() {
         testSetPipExtremeAspectRatio(MIN_ASPECT_RATIO_NUMERATOR,
                 BELOW_MIN_ASPECT_RATIO_DENOMINATOR);
     }
 
     @Test
-    public void testSetPipExtremeAspectRatioMax() throws Exception {
+    public void testSetPipExtremeAspectRatioMax() {
         testSetPipExtremeAspectRatio(ABOVE_MAX_ASPECT_RATIO_NUMERATOR,
                 MAX_ASPECT_RATIO_DENOMINATOR);
     }
 
-    private void testSetPipExtremeAspectRatio(int num, int denom) throws Exception {
+    private void testSetPipExtremeAspectRatio(int num, int denom) {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -415,7 +416,7 @@
     }
 
     @Test
-    public void testDisallowPipLaunchFromStoppedActivity() throws Exception {
+    public void testDisallowPipLaunchFromStoppedActivity() {
         // Launch the bottom pip activity which will launch a new activity on top and attempt to
         // enter pip when it is stopped
         launchActivity(PIP_ON_STOP_ACTIVITY);
@@ -428,7 +429,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPicture() throws Exception {
+    public void testAutoEnterPictureInPicture() {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -444,7 +445,7 @@
 
     @Test
     public void testAutoEnterPictureInPictureOnUserLeaveHintWhenPipRequestedNotOverridden()
-            throws Exception {
+            {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -477,7 +478,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPictureOnPictureInPictureRequested() throws Exception {
+    public void testAutoEnterPictureInPictureOnPictureInPictureRequested() {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -509,7 +510,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPictureLaunchActivity() throws Exception {
+    public void testAutoEnterPictureInPictureLaunchActivity() {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -529,7 +530,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPictureFinish() throws Exception {
+    public void testAutoEnterPictureInPictureFinish() {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -543,7 +544,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPictureAspectRatio() throws Exception {
+    public void testAutoEnterPictureInPictureAspectRatio() {
         // Launch the PIP activity on pause, and set the aspect ratio
         launchActivity(PIP_ACTIVITY,
                 extraString(EXTRA_ENTER_PIP_ON_PAUSE, "true"),
@@ -565,7 +566,7 @@
     }
 
     @Test
-    public void testAutoEnterPictureInPictureOverPip() throws Exception {
+    public void testAutoEnterPictureInPictureOverPip() {
         // Launch another PIP activity
         launchActivity(LAUNCH_INTO_PINNED_STACK_PIP_ACTIVITY);
         waitForEnterPip(ALWAYS_FOCUSABLE_PIP_ACTIVITY);
@@ -585,7 +586,7 @@
     }
 
     @Test
-    public void testDismissPipWhenLaunchNewOne() throws Exception {
+    public void testDismissPipWhenLaunchNewOne() {
         // Launch another PIP activity
         launchActivity(LAUNCH_INTO_PINNED_STACK_PIP_ACTIVITY);
         waitForEnterPip(ALWAYS_FOCUSABLE_PIP_ACTIVITY);
@@ -599,7 +600,7 @@
     }
 
     @Test
-    public void testDisallowMultipleTasksInPinnedStack() throws Exception {
+    public void testDisallowMultipleTasksInPinnedStack() {
         // Launch a test activity so that we have multiple fullscreen tasks
         launchActivity(TEST_ACTIVITY);
 
@@ -622,7 +623,7 @@
     }
 
     @Test
-    public void testPipUnPipOverHome() throws Exception {
+    public void testPipUnPipOverHome() {
         // Launch a task behind home to assert that the next fullscreen task isn't visible when
         // leaving PiP.
         launchActivity(TEST_ACTIVITY);
@@ -643,7 +644,7 @@
     }
 
     @Test
-    public void testPipUnPipOverApp() throws Exception {
+    public void testPipUnPipOverApp() {
         // Launch a test activity so that we're not over home
         launchActivity(TEST_ACTIVITY);
 
@@ -661,7 +662,7 @@
     }
 
     @Test
-    public void testRemovePipWithNoFullscreenOrFreeformStack() throws Exception {
+    public void testRemovePipWithNoFullscreenOrFreeformStack() {
         // Launch a pip activity
         launchActivity(PIP_ACTIVITY);
         int windowingMode = mWmState.getTaskByActivity(PIP_ACTIVITY).getWindowingMode();
@@ -675,7 +676,7 @@
     }
 
     @Test
-    public void testRemovePipWithVisibleFullscreenOrFreeformStack() throws Exception {
+    public void testRemovePipWithVisibleFullscreenOrFreeformStack() {
         // Launch a fullscreen/freeform activity, and a pip activity over that
         launchActivity(TEST_ACTIVITY);
         launchActivity(PIP_ACTIVITY);
@@ -691,7 +692,7 @@
     }
 
     @Test
-    public void testRemovePipWithHiddenFullscreenOrFreeformStack() throws Exception {
+    public void testRemovePipWithHiddenFullscreenOrFreeformStack() {
         // Launch a fullscreen/freeform activity, return home and while the fullscreen/freeform
         // stack is hidden, launch a pip activity over home
         launchActivity(TEST_ACTIVITY);
@@ -708,7 +709,7 @@
     }
 
     @Test
-    public void testMovePipToBackWithNoFullscreenOrFreeformStack() throws Exception {
+    public void testMovePipToBackWithNoFullscreenOrFreeformStack() {
         // Start with a clean slate, remove all the stacks but home
         removeRootTasksWithActivityTypes(ALL_ACTIVITY_TYPE_BUT_HOME);
 
@@ -725,7 +726,7 @@
     }
 
     @Test
-    public void testMovePipToBackWithVisibleFullscreenOrFreeformStack() throws Exception {
+    public void testMovePipToBackWithVisibleFullscreenOrFreeformStack() {
         // Launch a fullscreen/freeform activity, and a pip activity over that
         launchActivity(TEST_ACTIVITY);
         launchActivity(PIP_ACTIVITY);
@@ -741,7 +742,7 @@
     }
 
     @Test
-    public void testMovePipToBackWithHiddenFullscreenOrFreeformStack() throws Exception {
+    public void testMovePipToBackWithHiddenFullscreenOrFreeformStack() {
         // Launch a fullscreen/freeform activity, return home and while the fullscreen/freeform
         // stack is hidden, launch a pip activity over home
         launchActivity(TEST_ACTIVITY);
@@ -758,7 +759,7 @@
     }
 
     @Test
-    public void testPinnedStackAlwaysOnTop() throws Exception {
+    public void testPinnedStackAlwaysOnTop() {
         // Launch activity into pinned stack and assert it's on top.
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true"));
         waitForEnterPip(PIP_ACTIVITY);
@@ -777,7 +778,7 @@
     }
 
     @Test
-    public void testAppOpsDenyPipOnPause() throws Exception {
+    public void testAppOpsDenyPipOnPause() {
         try (final AppOpsSession appOpsSession = new AppOpsSession(PIP_ACTIVITY)) {
             // Disable enter-pip and try to enter pip
             appOpsSession.setOpToMode(APP_OPS_OP_ENTER_PICTURE_IN_PICTURE, APP_OPS_MODE_IGNORED);
@@ -793,15 +794,60 @@
     }
 
     @Test
-    public void testEnterPipFromTaskWithMultipleActivities() throws Exception {
+    public void testEnterPipFromTaskWithMultipleActivities() {
         // Try to enter picture-in-picture from an activity that has more than one activity in the
         // task and ensure that it works
         launchActivity(LAUNCH_ENTER_PIP_ACTIVITY);
         waitForEnterPip(PIP_ACTIVITY);
+
+        final ActivityTask task = mWmState.getTaskByActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        assertEquals(1, task.mActivities.size());
         assertPinnedStackExists();
     }
 
     @Test
+    public void testPipFromTaskWithMultipleActivitiesAndExpandPip() {
+        // Try to enter picture-in-picture from an activity that has more than one activity in the
+        // task and ensure pinned task can go back to its original task when expand to fullscreen
+        launchActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        waitForEnterPip(PIP_ACTIVITY);
+
+        mBroadcastActionTrigger.expandPip();
+        waitForExitPipToFullscreen(PIP_ACTIVITY);
+
+        final ActivityTask task = mWmState.getTaskByActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        assertEquals(2, task.mActivities.size());
+    }
+
+    @Test
+    public void testPipFromTaskWithMultipleActivitiesAndDismissPip() {
+        // Try to enter picture-in-picture from an activity that has more than one activity in the
+        // task and ensure flags on original task get reset after dismissing pip
+        launchActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        waitForEnterPip(PIP_ACTIVITY);
+
+        mBroadcastActionTrigger.doAction(ACTION_FINISH);
+        waitForPinnedStackRemoved();
+
+        final ActivityTask task = mWmState.getTaskByActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        assertFalse(task.mHasChildPipActivity);
+    }
+
+    @Test
+    public void testPipFromTaskWithMultipleActivitiesAndRemoveOriginalTask() {
+        // Try to enter picture-in-picture from an activity that has more than one activity in the
+        // task and ensure pinned task is removed when the original task vanishes
+        launchActivity(LAUNCH_ENTER_PIP_ACTIVITY);
+        waitForEnterPip(PIP_ACTIVITY);
+
+        final int originalTaskId = mWmState.getTaskByActivity(LAUNCH_ENTER_PIP_ACTIVITY).mTaskId;
+        removeRootTask(originalTaskId);
+        waitForPinnedStackRemoved();
+
+        assertPinnedStackDoesNotExist();
+    }
+
+    @Test
     public void testLaunchStoppedActivityWithPiPInSameProcessPreQ() {
         // Try to enter picture-in-picture from an activity that has more than one activity in the
         // task and ensure that it works, for pre-Q app
@@ -826,7 +872,7 @@
     }
 
     @Test
-    public void testEnterPipWithResumeWhilePausingActivityNoStop() throws Exception {
+    public void testEnterPipWithResumeWhilePausingActivityNoStop() {
         /*
          * Launch the resumeWhilePausing activity and ensure that the PiP activity did not get
          * stopped and actually went into the pinned stack.
@@ -854,7 +900,7 @@
     }
 
     @Test
-    public void testDisallowEnterPipActivityLocked() throws Exception {
+    public void testDisallowEnterPipActivityLocked() {
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP_ON_PAUSE, "true"));
         ActivityTask task = mWmState.getStackByActivity(PIP_ACTIVITY);
 
@@ -879,7 +925,7 @@
     }
 
     @Test
-    public void testConfigurationChangeOrderDuringTransition() throws Exception {
+    public void testConfigurationChangeOrderDuringTransition() {
         // Launch a PiP activity and ensure configuration change only happened once, and that the
         // configuration change happened after the picture-in-picture and multi-window callbacks
         launchActivity(PIP_ACTIVITY, WINDOWING_MODE_FULLSCREEN);
@@ -960,7 +1006,7 @@
     }
 
     @Test
-    public void testStopBeforeMultiWindowCallbacksOnDismiss() throws Exception {
+    public void testStopBeforeMultiWindowCallbacksOnDismiss() {
         // Launch a PiP activity
         launchActivity(PIP_ACTIVITY);
         int windowingMode = mWmState.getTaskByActivity(PIP_ACTIVITY).getWindowingMode();
@@ -1001,7 +1047,7 @@
     }
 
     @Test
-    public void testPreventSetAspectRatioWhileExpanding() throws Exception {
+    public void testPreventSetAspectRatioWhileExpanding() {
         // Launch the PiP activity
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true"));
         waitForEnterPip(PIP_ACTIVITY);
@@ -1014,7 +1060,7 @@
     }
 
     @Test
-    public void testSetRequestedOrientationWhilePinned() throws Exception {
+    public void testSetRequestedOrientationWhilePinned() {
         assumeTrue("Skipping test: no orientation request support", supportsOrientationRequest());
         // Launch the PiP activity fixed as portrait, and enter picture-in-picture
         launchActivity(PIP_ACTIVITY, WINDOWING_MODE_FULLSCREEN,
@@ -1043,7 +1089,7 @@
     }
 
     @Test
-    public void testWindowButtonEntersPip() throws Exception {
+    public void testWindowButtonEntersPip() {
         assumeTrue(!mWmState.isHomeRecentsComponent());
 
         // Launch the PiP activity trigger the window button, ensure that we have entered PiP
@@ -1054,7 +1100,7 @@
     }
 
     @Test
-    public void testFinishPipActivityWithTaskOverlay() throws Exception {
+    public void testFinishPipActivityWithTaskOverlay() {
         // Launch PiP activity
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true"));
         waitForEnterPip(PIP_ACTIVITY);
@@ -1075,7 +1121,7 @@
     }
 
     @Test
-    public void testNoResumeAfterTaskOverlayFinishes() throws Exception {
+    public void testNoResumeAfterTaskOverlayFinishes() {
         // Launch PiP activity
         launchActivity(PIP_ACTIVITY, extraString(EXTRA_ENTER_PIP, "true"));
         waitForEnterPip(PIP_ACTIVITY);
@@ -1114,7 +1160,7 @@
     }
 
     @Test
-    public void testLaunchTaskByComponentMatchMultipleTasks() throws Exception {
+    public void testLaunchTaskByComponentMatchMultipleTasks() {
         // Launch a fullscreen activity which will launch a PiP activity in a new task with the same
         // affinity
         launchActivity(TEST_ACTIVITY_WITH_SAME_AFFINITY);
@@ -1137,7 +1183,7 @@
     }
 
     @Test
-    public void testLaunchTaskByAffinityMatchMultipleTasks() throws Exception {
+    public void testLaunchTaskByAffinityMatchMultipleTasks() {
         // Launch a fullscreen activity which will launch a PiP activity in a new task with the same
         // affinity, and also launch another activity in the same task, while finishing itself. As
         // a result, the task will not have a component matching the same activity as what it was
@@ -1169,7 +1215,7 @@
     }
 
     @Test
-    public void testLaunchTaskByAffinityMatchSingleTask() throws Exception {
+    public void testLaunchTaskByAffinityMatchSingleTask() {
         // Launch an activity into the pinned stack with a fixed affinity
         launchActivityNoWait(TEST_ACTIVITY_WITH_SAME_AFFINITY,
                 extraString(EXTRA_ENTER_PIP, "true"),
@@ -1191,7 +1237,7 @@
 
     /** Test that reported display size corresponds to fullscreen after exiting PiP. */
     @Test
-    public void testDisplayMetricsPinUnpin() throws Exception {
+    public void testDisplayMetricsPinUnpin() {
         separateTestJournal();
         launchActivity(TEST_ACTIVITY);
         final int defaultWindowingMode = mWmState
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/WindowContextTests.java b/tests/framework/base/windowmanager/src/android/server/wm/WindowContextTests.java
index 36f9890..c556cd9 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/WindowContextTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/WindowContextTests.java
@@ -16,9 +16,13 @@
 
 package android.server.wm;
 
+import static android.server.wm.WindowManagerTestBase.startActivity;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -29,13 +33,19 @@
 import android.content.ServiceConnection;
 import android.content.res.Configuration;
 import android.graphics.Rect;
+import android.os.Binder;
 import android.os.IBinder;
 import android.platform.test.annotations.AppModeFull;
 import android.platform.test.annotations.Presubmit;
+import android.server.wm.WindowContextTests.TestWindowService.TestToken;
 import android.view.View;
 import android.view.WindowManager;
+import android.window.WindowProviderService;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.rule.ServiceTestRule;
 
 import org.junit.Test;
 
@@ -126,7 +136,7 @@
 
         displayMetricsSession.changeDisplayMetrics(1.2 /* sizeRatio */, 1.1 /* densityRatio */);
 
-        // verify if there is a gicallback from the window context configuration change.
+        // verify if there is a callback from the window context configuration change.
         assertTrue(callbacks.mLatch.await(4, TimeUnit.SECONDS));
         Rect bounds = callbacks.mConfiguration.windowConfiguration.getBounds();
         assertBoundsEquals(displayMetricsSession.getDisplayMetrics(), bounds);
@@ -134,6 +144,140 @@
         windowContext.unregisterComponentCallbacks(callbacks);
     }
 
+    /**
+     * Verifies if window context on the secondary display receives global configuration changes.
+     */
+    @Test
+    public void testWindowContextGlobalConfigChanges() {
+        final TestComponentCallbacks callbacks = new TestComponentCallbacks();
+        final WindowManagerState.DisplayContent display = createManagedVirtualDisplaySession()
+                .setPublicDisplay(true).createDisplay();
+        final FontScaleSession fontScaleSession = createFontScaleSession();
+        final Context windowContext = createWindowContext(display.mId);
+
+        windowContext.registerComponentCallbacks(callbacks);
+
+        final float expectedFontScale = fontScaleSession.get() + 0.3f;
+        fontScaleSession.set(expectedFontScale);
+
+        // We don't rely on latch to verify the result because we may receive two configuration
+        // changes. One may from that WindowContext attaches to a DisplayArea although it is before
+        // ComponentCallback registration), the other is from font the scale change, which is what
+        // we want to verify.
+        waitForOrFail("Font scale must be " + expectedFontScale + ","
+                + " but was " + callbacks.mConfiguration.fontScale, () ->
+                expectedFontScale == callbacks.mConfiguration.fontScale);
+
+        windowContext.unregisterComponentCallbacks(callbacks);
+    }
+
+    /**
+     * Verify the {@link WindowProviderService} lifecycle:
+     * <ul>
+     *     <li>In {@link WindowProviderService#onCreate()}, register to the DisplayArea with
+     *     given value from {@link WindowProviderService#getWindowType()} and
+     *     {@link WindowProviderService#getWindowContextOptions()}} and receive a
+     *     {@link Configuration} update which matches DisplayArea's metrics.</li>
+     *     <li>After {@link WindowProviderService#attachToWindowToken(IBinder)}, the
+     *     {@link WindowProviderService} must be switched to register to the Window Token and
+     *     receive a configuration update which matches Window Token's metrics.</li>
+     * </ul>
+     */
+    @Test
+    public void testWindowProviderServiceLifecycle() throws Exception {
+        // Start an activity for WindowProviderService to attach
+        TestActivity activity = startActivity(TestActivity.class);
+        final ComponentName activityName = activity.getComponentName();
+
+        // If the device supports multi-window, make this Activity to multi-window mode.
+        // In this way, we can verify if the WindowProviderService's metrics matches
+        // the split-screen Activity's metrics, which is different from TaskDisplayArea's metrics.
+        if (supportsSplitScreenMultiWindow()) {
+            mWmState.computeState(activityName);
+
+            putActivityInPrimarySplit(activityName);
+
+            activity.waitAndAssertConfigurationChanged();
+        }
+
+        // Obtain the TestWindowService instance.
+        final Context context = ApplicationProvider.getApplicationContext();
+        final Intent intent = new Intent(context, TestWindowService.class);
+        final ServiceTestRule serviceRule = new ServiceTestRule();
+        try {
+            TestToken token = (TestToken) serviceRule.bindService(intent);
+            final TestWindowService service = token.getService();
+
+            final WindowManagerState.DisplayArea da = mWmState.getTaskDisplayArea(activityName);
+            final Rect daBounds = da.mFullConfiguration.windowConfiguration.getBounds();
+            final Rect maxDaBounds = da.mFullConfiguration.windowConfiguration.getMaxBounds();
+
+            waitAndAssertWindowMetricsBoundsMatches(service, daBounds, maxDaBounds,
+                    "WindowProviderService bounds must match DisplayArea bounds.");
+
+            // Obtain the Activity's token and attach it to TestWindowService.
+            final IBinder windowToken = activity.getWindow().getAttributes().token;
+            service.attachToWindowToken(windowToken);
+
+            final WindowManager wm = activity.getWindowManager();
+            final Rect currentBounds = wm.getCurrentWindowMetrics().getBounds();
+            final Rect maxBounds = wm.getMaximumWindowMetrics().getBounds();
+
+            // After TestWindowService attaches the Activity's token, which is also a WindowToken,
+            // it is expected to receive a config update which matches the WindowMetrics of
+            // the Activity.
+            waitAndAssertWindowMetricsBoundsMatches(service, currentBounds, maxBounds,
+                    "WindowProviderService bounds must match WindowToken bounds.");
+        } finally {
+            serviceRule.unbindService();
+        }
+    }
+
+    private void waitAndAssertWindowMetricsBoundsMatches(Context context, Rect currentBounds,
+            Rect maxBounds, String message) {
+        final WindowManager wm = context.getSystemService(WindowManager.class);
+        waitForOrFail(message, () -> {
+            final Rect currentWindowBounds = wm.getCurrentWindowMetrics().getBounds();
+            final Rect maxWindowBounds = wm.getMaximumWindowMetrics().getBounds();
+            return currentBounds.equals(currentWindowBounds) && maxBounds.equals(maxWindowBounds);
+        });
+    }
+
+    public static class TestActivity extends WindowManagerTestBase.FocusableActivity {
+        final CountDownLatch mLatch = new CountDownLatch(1);
+
+        @Override
+        public void onConfigurationChanged(@NonNull Configuration newConfig) {
+            super.onConfigurationChanged(newConfig);
+            mLatch.countDown();
+        }
+
+        private void waitAndAssertConfigurationChanged() throws Exception {
+            assertThat(mLatch.await(4, TimeUnit.SECONDS)).isTrue();
+        }
+    }
+
+    public static class TestWindowService extends WindowProviderService {
+        private final IBinder mToken = new TestToken();
+
+        @Override
+        public int getWindowType() {
+            return TYPE_APPLICATION;
+        }
+
+        @Nullable
+        @Override
+        public IBinder onBind(Intent intent) {
+            return mToken;
+        }
+
+        public class TestToken extends Binder {
+            private TestWindowService getService() {
+                return TestWindowService.this;
+            }
+        }
+    }
+
     private static class TestComponentCallbacks implements ComponentCallbacks {
         private Configuration mConfiguration;
         private CountDownLatch mLatch = new CountDownLatch(1);
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java b/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
index a9cfac9..5dc7ffe 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
@@ -60,6 +60,9 @@
     public static class SingleInstancePerTaskActivity extends BaseActivity {
     }
 
+    public static class SingleInstancePerTaskDocumentNeverActivity extends BaseActivity {
+    }
+
     public static class TaskAffinity1Activity extends BaseActivity {
     }
 
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/intent/OWNERS b/tests/framework/base/windowmanager/src/android/server/wm/intent/OWNERS
new file mode 100644
index 0000000..b923e94
--- /dev/null
+++ b/tests/framework/base/windowmanager/src/android/server/wm/intent/OWNERS
@@ -0,0 +1,2 @@
+# Bug template url: https://b.corp.google.com/issues/new?component=316020&template=1018174
+louischang@google.com
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/lifecycle/OWNERS b/tests/framework/base/windowmanager/src/android/server/wm/lifecycle/OWNERS
new file mode 100644
index 0000000..1bcd73d
--- /dev/null
+++ b/tests/framework/base/windowmanager/src/android/server/wm/lifecycle/OWNERS
@@ -0,0 +1,2 @@
+# Bug template url: https://b.corp.google.com/issues/new?component=316020&template=1018174
+include /tests/framework/base/windowmanager/src/android/server/wm/intent/OWNERS
diff --git a/tests/framework/base/windowmanager/util/src/android/server/wm/ActivityManagerTestBase.java b/tests/framework/base/windowmanager/util/src/android/server/wm/ActivityManagerTestBase.java
index 1a575bc..e2e07ec 100644
--- a/tests/framework/base/windowmanager/util/src/android/server/wm/ActivityManagerTestBase.java
+++ b/tests/framework/base/windowmanager/util/src/android/server/wm/ActivityManagerTestBase.java
@@ -379,6 +379,10 @@
                     .putExtra(EXTRA_DISMISS_KEYGUARD_METHOD, true));
         }
 
+        void expandPip() {
+            mContext.sendBroadcast(createIntentWithAction(ACTION_EXPAND_PIP));
+        }
+
         void expandPipWithAspectRatio(String extraNum, String extraDenom) {
             mContext.sendBroadcast(createIntentWithAction(ACTION_EXPAND_PIP)
                     .putExtra(EXTRA_SET_ASPECT_RATIO_WITH_DELAY_NUMERATOR, extraNum)
@@ -691,6 +695,11 @@
         waitForIdle();
     }
 
+    protected void removeRootTask(int taskId) {
+        runWithShellPermission(() -> mAtm.removeTask(taskId));
+        waitForIdle();
+    }
+
     public static String executeShellCommand(String command) {
         log("Shell command: " + command);
         try {
@@ -1235,6 +1244,11 @@
                 new SystemAlertWindowAppOpSession(mContext.getOpPackageName(), MODE_ALLOWED));
     }
 
+    /** @see ObjectTracker#manage(AutoCloseable) */
+    protected FontScaleSession createFontScaleSession() {
+        return mObjectTracker.manage(new FontScaleSession());
+    }
+
     /**
      * Test @Rule class that disables screen doze settings before each test method running and
      * restoring to initial values after test method finished.
@@ -1646,6 +1660,15 @@
         }
     }
 
+    /** Helper class to save, set, and restore font_scale preferences. */
+    protected static class FontScaleSession extends SettingsSession<Float> {
+        FontScaleSession() {
+            super(Settings.System.getUriFor(Settings.System.FONT_SCALE),
+                    Settings.System::getFloat,
+                    Settings.System::putFloat);
+        }
+    }
+
     /**
      * Returns whether the test device respects settings of locked user rotation mode.
      *
diff --git a/tests/framework/base/windowmanager/util/src/android/server/wm/WindowManagerState.java b/tests/framework/base/windowmanager/util/src/android/server/wm/WindowManagerState.java
index 4d63091..7cb7164 100644
--- a/tests/framework/base/windowmanager/util/src/android/server/wm/WindowManagerState.java
+++ b/tests/framework/base/windowmanager/util/src/android/server/wm/WindowManagerState.java
@@ -1292,6 +1292,7 @@
         private int mSurfaceHeight;
         boolean mCreatedByOrganizer;
         String mAffinity;
+        boolean mHasChildPipActivity;
 
         ActivityTask(TaskProto proto) {
             super(proto.windowContainer);
@@ -1312,6 +1313,7 @@
             mSurfaceHeight = proto.surfaceHeight;
             mCreatedByOrganizer = proto.createdByOrganizer;
             mAffinity = proto.affinity;
+            mHasChildPipActivity = proto.hasChildPipActivity;
 
             if (proto.resumedActivity != null) {
                 mResumedActivity = proto.resumedActivity.title;
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
index e621832..f98dc93 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
@@ -42,6 +42,7 @@
 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.app.AlertDialog;
 import android.app.Instrumentation;
@@ -59,6 +60,7 @@
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.WindowInsetsController;
+import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethod;
 import android.view.inputmethod.InputMethodManager;
@@ -601,6 +603,12 @@
     private void runRestoreImeVisibility(TestSoftInputMode mode, boolean expectImeVisible)
             throws Exception {
         final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+        final WindowManager wm = instrumentation.getContext().getSystemService(WindowManager.class);
+        // As restoring IME visibility behavior is only available when TaskSnapshot mechanism
+        // enabled, skip the test when TaskSnapshot is not supported.
+        assumeTrue("Restoring IME visibility not available when TaskSnapshot unsupported",
+                wm.isTaskSnapshotSupported());
+
         try (MockImeSession imeSession = MockImeSession.create(
                 instrumentation.getContext(), instrumentation.getUiAutomation(),
                 new ImeSettings.Builder())) {
diff --git a/tests/location/location_gnss/src/android/location/cts/gnss/GnssLocationValuesTest.java b/tests/location/location_gnss/src/android/location/cts/gnss/GnssLocationValuesTest.java
index 6ea9477..e00e760 100644
--- a/tests/location/location_gnss/src/android/location/cts/gnss/GnssLocationValuesTest.java
+++ b/tests/location/location_gnss/src/android/location/cts/gnss/GnssLocationValuesTest.java
@@ -106,18 +106,17 @@
               "When speed is greater than 0, all GNSS locations generated by "
                       + "the LocationManager must have bearing accuracies.",
               location.hasBearingAccuracy());
-      if (location.hasBearingAccuracy()) {
-        softAssert.assertOrWarnTrue(/* strict= */ YEAR_2017_CAPABILITY_ENFORCED,
-                "Bearing Accuracy should be greater than 0.",
-                location.getBearingAccuracyDegrees() > 0);
-      }
     }
-
+    if (location.hasBearingAccuracy()) {
+      softAssert.assertOrWarnTrue(/* strict= */ true,
+              "Bearing Accuracy should be greater than 0.",
+              location.getBearingAccuracyDegrees() > 0);
+    }
     softAssert.assertOrWarnTrue(/* strict= */ YEAR_2017_CAPABILITY_ENFORCED,
             "All GNSS locations generated by the LocationManager "
                     + "must have a speed accuracy.", location.hasSpeedAccuracy());
     if (location.hasSpeedAccuracy()) {
-      softAssert.assertOrWarnTrue(/* strict= */ YEAR_2017_CAPABILITY_ENFORCED,
+      softAssert.assertOrWarnTrue(/* strict= */ true,
               "Speed Accuracy should be greater than 0.",
               location.getSpeedAccuracyMetersPerSecond() > 0);
     }
@@ -125,7 +124,7 @@
             "All GNSS locations generated by the LocationManager "
                     + "must have a vertical accuracy.", location.hasVerticalAccuracy());
     if (location.hasVerticalAccuracy()) {
-      softAssert.assertOrWarnTrue(/* strict= */ YEAR_2017_CAPABILITY_ENFORCED,
+      softAssert.assertOrWarnTrue(/* strict= */ true,
               "Vertical Accuracy should be greater than 0.",
               location.getVerticalAccuracyMeters() > 0);
     }
diff --git a/tests/media/src/android/mediav2/cts/EncoderProfileLevelTest.java b/tests/media/src/android/mediav2/cts/EncoderProfileLevelTest.java
index 07e0914..6a5630e 100644
--- a/tests/media/src/android/mediav2/cts/EncoderProfileLevelTest.java
+++ b/tests/media/src/android/mediav2/cts/EncoderProfileLevelTest.java
@@ -797,6 +797,15 @@
                         Log.w(LOG_TAG, "Skip validation after muxing for mime = " + mMime);
                         continue;
                     }
+                    // TODO (b/184889671) aac for profile AACObjectHE fails validation
+                    // TODO (b/184890155) aac for profile AACObjectLD, AACObjectELD fails validation
+                    if (mMime.equals(MediaFormat.MIMETYPE_AUDIO_AAC) &&
+                                profile != AACObjectLC) {
+                        Log.w(LOG_TAG, "Skip validation after muxing for mime = " + mMime +
+                                " profile " + profile);
+                        continue;
+                    }
+
                     for (int muxerFormat = MediaMuxer.OutputFormat.MUXER_OUTPUT_FIRST;
                          muxerFormat <= MediaMuxer.OutputFormat.MUXER_OUTPUT_LAST; muxerFormat++) {
                         if (!MuxerTest.isCodecContainerPairValid(mMime, muxerFormat)) continue;
diff --git a/tests/tests/content/app/Android.bp b/tests/netlegacy22.api/Android.bp
similarity index 65%
rename from tests/tests/content/app/Android.bp
rename to tests/netlegacy22.api/Android.bp
index 0a6a258..7c43905 100644
--- a/tests/tests/content/app/Android.bp
+++ b/tests/netlegacy22.api/Android.bp
@@ -1,4 +1,4 @@
-// Copyright (C) 2020 The Android Open Source Project
+// 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.
@@ -12,18 +12,30 @@
 // 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: "CtsNetTestCasesLegacyApi22",
 
-android_test_helper_app {
-    name: "CtsContentTestsHelperApp",
-    manifest: "AndroidManifest.xml",
+    defaults: [
+        "cts_defaults",
+        "framework-connectivity-test-defaults",
+    ],
+
     srcs: ["src/**/*.java"],
+
+    platform_apis: true,
+
+    static_libs: [
+        "ctstestrunner-axt",
+        "compatibility-device-util-axt",
+
+    ],
+
+    libs: ["android.test.base"],
+
     // Tag this module as a cts test artifact
     test_suites: [
         "cts",
         "general-tests",
     ],
-    sdk_version: "test_current",
+
 }
diff --git a/tests/netlegacy22.api/Android.mk b/tests/netlegacy22.api/Android.mk
deleted file mode 100644
index 53c910d..0000000
--- a/tests/netlegacy22.api/Android.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2015 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := tests
-# and when built explicitly put it in the data partition
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := CtsNetTestCasesLegacyApi22
-
-LOCAL_SDK_VERSION := 22
-
-LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner-axt compatibility-device-util-axt
-
-# Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts general-tests
-
-include $(BUILD_CTS_PACKAGE)
diff --git a/tests/netlegacy22.api/AndroidManifest.xml b/tests/netlegacy22.api/AndroidManifest.xml
index a9411cc..e062e14 100644
--- a/tests/netlegacy22.api/AndroidManifest.xml
+++ b/tests/netlegacy22.api/AndroidManifest.xml
@@ -18,6 +18,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.netlegacy22.api.cts">
 
+    <uses-sdk android:targetSdkVersion="22" />
+
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
diff --git a/tests/netlegacy22.api/OWNERS b/tests/netlegacy22.api/OWNERS
index 3fcbaf3..9b1555e 100644
--- a/tests/netlegacy22.api/OWNERS
+++ b/tests/netlegacy22.api/OWNERS
@@ -1,2 +1,3 @@
 # Bug component: 31808
-include ../tests/net/OWNERS
+set noparent
+include platform/packages/modules/Connectivity:/tests/cts/OWNERS
diff --git a/tests/netlegacy22.api/TEST_MAPPING b/tests/netlegacy22.api/TEST_MAPPING
new file mode 100644
index 0000000..38a8470
--- /dev/null
+++ b/tests/netlegacy22.api/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+  "postsubmit": [
+    {
+      "name": "CtsNetTestCasesLegacyApi22"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/netlegacy22.api/src/android/net/cts/legacy/api22/ConnectivityManagerLegacyTest.java b/tests/netlegacy22.api/src/android/net/cts/legacy/api22/ConnectivityManagerLegacyTest.java
index 4a8a2ad..b7880c7 100644
--- a/tests/netlegacy22.api/src/android/net/cts/legacy/api22/ConnectivityManagerLegacyTest.java
+++ b/tests/netlegacy22.api/src/android/net/cts/legacy/api22/ConnectivityManagerLegacyTest.java
@@ -50,6 +50,7 @@
     private static final String HOST_ADDRESS1 = "192.0.2.1";
     private static final String HOST_ADDRESS2 = "192.0.2.2";
     private static final String HOST_ADDRESS3 = "192.0.2.3";
+    private static final String HOST_ADDRESS4 = "192.0.2.4";
 
     // These are correct as of API level 22, which is what we target here.
     private static final int APN_REQUEST_FAILED = 3;
@@ -163,8 +164,13 @@
             assertTrue("Couldn't requestRouteToHost using HIPRI.",
                     mCm.requestRouteToHost(TYPE_MOBILE_HIPRI, ipv4AddrToInt(HOST_ADDRESS1)));
 
+            assertTrue("Couldn't requestRouteToHostAddress using HIPRI.",
+                    mCm.requestRouteToHostAddress(TYPE_MOBILE_HIPRI,
+                            InetAddress.getByName(HOST_ADDRESS3)));
+
             checkSourceAddress(HOST_ADDRESS1, TYPE_MOBILE);
             checkSourceAddress(HOST_ADDRESS2, TYPE_WIFI);
+            checkSourceAddress(HOST_ADDRESS3, TYPE_MOBILE);
 
             // TODO check dns selection
 
@@ -282,7 +288,7 @@
 
             try {
                 assertTrue("Network type " + type,
-                        mCm.requestRouteToHost(type, ipv4AddrToInt(HOST_ADDRESS3)) == expectToWork);
+                        mCm.requestRouteToHost(type, ipv4AddrToInt(HOST_ADDRESS4)) == expectToWork);
             } catch (Exception e) {
                 Log.d(TAG, "got exception in requestRouteToHost for type " + type);
                 assertFalse("Exception received for type " + type, expectToWork);
@@ -291,6 +297,6 @@
             //TODO verify route table
         }
 
-        assertFalse(mCm.requestRouteToHost(-1, ipv4AddrToInt(HOST_ADDRESS1)));
+        assertFalse(mCm.requestRouteToHost(-1, ipv4AddrToInt(HOST_ADDRESS4)));
     }
 }
diff --git a/tests/providerui/src/android/providerui/cts/MediaStoreUiTest.java b/tests/providerui/src/android/providerui/cts/MediaStoreUiTest.java
index 49876de..4342810 100644
--- a/tests/providerui/src/android/providerui/cts/MediaStoreUiTest.java
+++ b/tests/providerui/src/android/providerui/cts/MediaStoreUiTest.java
@@ -32,6 +32,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.AssetFileDescriptor;
+import android.database.Cursor;
 import android.net.Uri;
 import android.os.Environment;
 import android.os.FileUtils;
@@ -49,6 +50,7 @@
 import android.support.test.uiautomator.UiObject;
 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.system.Os;
@@ -82,6 +84,8 @@
 
     private static final int REQUEST_CODE = 42;
     private static final long TIMEOUT_MILLIS = 30 * DateUtils.SECOND_IN_MILLIS;
+    private static final String MEDIA_DOCUMENTS_PROVIDER_AUTHORITY =
+            "com.android.providers.media.documents";
 
     private Instrumentation mInstrumentation;
     private Context mContext;
@@ -91,6 +95,7 @@
     private File mFile;
     private Uri mMediaStoreUri;
     private String mTargetPackageName;
+    private String mDocumentsUiPackageId;
 
     @Parameter(0)
     public String mVolumeName;
@@ -105,6 +110,12 @@
         mInstrumentation = InstrumentationRegistry.getInstrumentation();
         mContext = InstrumentationRegistry.getTargetContext();
         mDevice = UiDevice.getInstance(mInstrumentation);
+        final PackageManager pm = mContext.getPackageManager();
+        final Intent intent2 = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+        intent2.addCategory(Intent.CATEGORY_OPENABLE);
+        intent2.setType("*/*");
+        final ResolveInfo ri = pm.resolveActivity(intent2, 0);
+        mDocumentsUiPackageId = ri.activityInfo.packageName;
 
         final Intent intent = new Intent(mContext, GetResultActivity.class);
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -174,7 +185,7 @@
     }
 
     @Test
-    public void testGetDocumentUri_Symmetry() throws Exception {
+    public void testGetDocumentUri_Symmetry_ExternalStorageProvider() throws Exception {
         if (!supportsHardware()) return;
 
         prepareFile();
@@ -192,6 +203,99 @@
         assertNotNull(mediaUri);
 
         assertEquals(mMediaStoreUri, mediaUri);
+        assertAccessToMediaUri(mediaUri, mFile);
+    }
+
+    @Test
+    public void testGetMediaUriAccess_MediaDocumentsProvider() throws Exception {
+        if (!supportsHardware()) return;
+
+        prepareFile();
+        clearDocumentsUi();
+        final Intent intent = new Intent();
+        intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
+        intent.addCategory(Intent.CATEGORY_OPENABLE);
+        intent.setType("*/*");
+        mActivity.startActivityForResult(intent, REQUEST_CODE);
+        mDevice.waitForIdle();
+
+        findDocument(mFile.getName()).click();
+        final Result result = mActivity.getResult();
+        final Uri uri = result.data.getData();
+        assertEquals(MEDIA_DOCUMENTS_PROVIDER_AUTHORITY, uri.getAuthority());
+        final Uri mediaUri = MediaStore.getMediaUri(mActivity, uri);
+
+        assertAccessToMediaUri(mediaUri, mFile);
+    }
+
+    private void assertAccessToMediaUri(Uri mediaUri, File file) {
+        final String[] projection = {MediaStore.MediaColumns.DISPLAY_NAME};
+        try (Cursor c = mContext.getContentResolver().query(
+                mediaUri, projection, null, null, null)) {
+            assertTrue(c.moveToFirst());
+            assertEquals(file.getName(), c.getString(0));
+        }
+    }
+
+    /**
+     * Clears the DocumentsUI package data.
+     */
+    protected void clearDocumentsUi() throws Exception {
+        executeShellCommand("pm clear " + getDocumentsUiPackageId());
+    }
+
+    private UiObject findDocument(String label) throws UiObjectNotFoundException {
+        final UiSelector docList = new UiSelector().resourceId(getDocumentsUiPackageId()
+                + ":id/dir_list");
+
+        // Wait for the first list item to appear
+        assertTrue("First list item",
+                new UiObject(docList.childSelector(new UiSelector()))
+                        .waitForExists(TIMEOUT_MILLIS));
+
+        try {
+            //Enforce to set the list mode
+            //Because UiScrollable can't reach the real bottom (when WEB_LINKABLE_FILE item)
+            // in grid mode when screen landscape mode
+            new UiObject(new UiSelector().resourceId(getDocumentsUiPackageId()
+                    + ":id/sub_menu_list")).click();
+            mDevice.waitForIdle();
+        }catch (UiObjectNotFoundException e){
+            //do nothing, already be in list mode.
+        }
+
+        // Repeat swipe gesture to find our item
+        // (UiScrollable#scrollIntoView does not seem to work well with SwipeRefreshLayout)
+        UiObject targetObject = new UiObject(docList.childSelector(new UiSelector().text(label)));
+        UiObject saveButton = findSaveButton();
+        int stepLimit = 10;
+        while (stepLimit-- > 0) {
+            if (targetObject.exists()) {
+                boolean targetObjectFullyVisible = !saveButton.exists()
+                        || targetObject.getVisibleBounds().bottom
+                        <= saveButton.getVisibleBounds().top;
+                if (targetObjectFullyVisible) {
+                    break;
+                }
+            }
+
+            mDevice.swipe(/* startX= */ mDevice.getDisplayWidth() / 2,
+                    /* startY= */ mDevice.getDisplayHeight() / 2,
+                    /* endX= */ mDevice.getDisplayWidth() / 2,
+                    /* endY= */ 0,
+                    /* steps= */ 40);
+        }
+        return targetObject;
+    }
+
+    private UiObject findSaveButton() throws UiObjectNotFoundException {
+        return new UiObject(new UiSelector().resourceId(
+                getDocumentsUiPackageId() + ":id/container_save")
+                .childSelector(new UiSelector().resourceId("android:id/button1")));
+    }
+
+    private String getDocumentsUiPackageId() {
+        return mDocumentsUiPackageId;
     }
 
     private boolean supportsHardware() {
diff --git a/tests/signature/api-check/Android.bp b/tests/signature/api-check/Android.bp
index 3f686c2..5e7ff3b 100644
--- a/tests/signature/api-check/Android.bp
+++ b/tests/signature/api-check/Android.bp
@@ -70,12 +70,6 @@
     static_libs: ["cts-api-signature-test"],
 }
 
-// Access the hiddenapi-flags.csv file produced by the build.
-hiddenapi_flags {
-    name: "cts-hiddenapi-flags-csv",
-    filename: "hiddenapi-flags.csv",
-}
-
 filegroup {
     name: "cts-api-hiddenapi-filter-csv",
     srcs: [
@@ -88,7 +82,7 @@
     name: "hiddenapi-blocklist-check-defaults",
     defaults: ["signature-api-check-defaults"],
     java_resources: [
-        ":cts-hiddenapi-flags-csv",
+        ":platform-bootclasspath{hiddenapi-flags.csv}",
         ":cts-api-hiddenapi-filter-csv"
     ],
     jni_libs: [
diff --git a/tests/signature/api-check/shared-libs-api/src/android/signature/cts/api/SignatureMultiLibsTest.java b/tests/signature/api-check/shared-libs-api/src/android/signature/cts/api/SignatureMultiLibsTest.java
index f74a027..4c0a31a 100644
--- a/tests/signature/api-check/shared-libs-api/src/android/signature/cts/api/SignatureMultiLibsTest.java
+++ b/tests/signature/api-check/shared-libs-api/src/android/signature/cts/api/SignatureMultiLibsTest.java
@@ -42,7 +42,7 @@
         runWithTestResultObserver(mResultObserver -> {
 
             ApiComplianceChecker complianceChecker =
-                    new ApiComplianceChecker(mResultObserver, classProvider);
+                    new ApiComplianceChecker(mResultObserver, mClassProvider);
 
             ApiDocumentParser apiDocumentParser = new ApiDocumentParser(TAG);
 
diff --git a/tests/signature/api-check/src/java/android/signature/cts/api/AbstractApiTest.java b/tests/signature/api-check/src/java/android/signature/cts/api/AbstractApiTest.java
index 1e96910..9707dd8 100644
--- a/tests/signature/api-check/src/java/android/signature/cts/api/AbstractApiTest.java
+++ b/tests/signature/api-check/src/java/android/signature/cts/api/AbstractApiTest.java
@@ -26,17 +26,13 @@
 import android.signature.cts.VirtualPath.LocalFilePath;
 import android.signature.cts.VirtualPath.ResourcePath;
 import android.util.Log;
-import java.io.File;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.util.EnumSet;
 import java.util.stream.Stream;
 import java.util.zip.ZipFile;
 import repackaged.android.test.InstrumentationTestCase;
@@ -50,7 +46,7 @@
 
     private TestResultObserver mResultObserver;
 
-    ClassProvider classProvider;
+    ClassProvider mClassProvider;
 
     protected String getGlobalExemptions() {
         return Settings.Global.getString(
@@ -90,7 +86,7 @@
         // out known inaccessible classes.
         // Note that com.android.internal.R.* inner classes are also excluded as they are
         // not part of API though exist in the runtime.
-        classProvider = new ExcludingClassProvider(
+        mClassProvider = new ExcludingClassProvider(
                 new BootClassPathClassesProvider(),
                 name -> name != null && name.startsWith("com.android.internal.R."));
 
diff --git a/tests/signature/api-check/src/java/android/signature/cts/api/BaseKillswitchTest.java b/tests/signature/api-check/src/java/android/signature/cts/api/BaseKillswitchTest.java
index 2337ced..10907d0 100644
--- a/tests/signature/api-check/src/java/android/signature/cts/api/BaseKillswitchTest.java
+++ b/tests/signature/api-check/src/java/android/signature/cts/api/BaseKillswitchTest.java
@@ -18,8 +18,6 @@
 
 import java.util.function.Predicate;
 
-import android.os.Bundle;
-import android.provider.Settings;
 import android.signature.cts.DexField;
 import android.signature.cts.DexMember;
 import android.signature.cts.DexMemberChecker;
@@ -127,8 +125,8 @@
                 }
 
             };
-            classProvider.getAllClasses().forEach(klass -> {
-                classProvider.getAllMembers(klass)
+            mClassProvider.getAllClasses().forEach(klass -> {
+                mClassProvider.getAllMembers(klass)
                         .filter(memberFilter)
                         .forEach(member -> {
                             DexMemberChecker.checkSingleMember(member, reflection, jni, observer);
diff --git a/tests/signature/api-check/src/java/android/signature/cts/api/SignatureTest.java b/tests/signature/api-check/src/java/android/signature/cts/api/SignatureTest.java
index 440430d..2ef70ca 100644
--- a/tests/signature/api-check/src/java/android/signature/cts/api/SignatureTest.java
+++ b/tests/signature/api-check/src/java/android/signature/cts/api/SignatureTest.java
@@ -58,7 +58,7 @@
         runWithTestResultObserver(mResultObserver -> {
             Set<JDiffClassDescription> unexpectedClasses = loadUnexpectedClasses();
             for (JDiffClassDescription classDescription : unexpectedClasses) {
-                Class<?> unexpectedClass = findUnexpectedClass(classDescription, classProvider);
+                Class<?> unexpectedClass = findUnexpectedClass(classDescription, mClassProvider);
                 if (unexpectedClass != null) {
                     mResultObserver.notifyFailure(
                             FailureType.UNEXPECTED_CLASS,
@@ -68,7 +68,7 @@
             }
 
             ApiComplianceChecker complianceChecker =
-                    new ApiComplianceChecker(mResultObserver, classProvider);
+                    new ApiComplianceChecker(mResultObserver, mClassProvider);
 
             // Load classes from any API files that form the base which the expected APIs extend.
             loadBaseClasses(complianceChecker);
diff --git a/tests/signature/api-check/system-annotation/src/java/android/signature/cts/api/AnnotationTest.java b/tests/signature/api-check/system-annotation/src/java/android/signature/cts/api/AnnotationTest.java
index efefdd5..3090d60 100644
--- a/tests/signature/api-check/system-annotation/src/java/android/signature/cts/api/AnnotationTest.java
+++ b/tests/signature/api-check/system-annotation/src/java/android/signature/cts/api/AnnotationTest.java
@@ -36,13 +36,13 @@
 
     private static final String TAG = AnnotationTest.class.getSimpleName();
 
-    private String[] expectedApiFiles;
-    private String annotationForExactMatch;
+    private String[] mExpectedApiFiles;
+    private String mAnnotationForExactMatch;
 
     @Override
     protected void initializeFromArgs(Bundle instrumentationArgs) throws Exception {
-        expectedApiFiles = getCommaSeparatedList(instrumentationArgs, "expected-api-files");
-        annotationForExactMatch = instrumentationArgs.getString("annotation-for-exact-match");
+        mExpectedApiFiles = getCommaSeparatedList(instrumentationArgs, "expected-api-files");
+        mAnnotationForExactMatch = instrumentationArgs.getString("annotation-for-exact-match");
     }
 
     /**
@@ -78,11 +78,11 @@
             };
             runWithTestResultObserver(resultObserver -> {
                 AnnotationChecker complianceChecker = new AnnotationChecker(resultObserver,
-                        classProvider, annotationForExactMatch, filter);
+                        mClassProvider, mAnnotationForExactMatch, filter);
 
                 ApiDocumentParser apiDocumentParser = new ApiDocumentParser(TAG);
 
-                parseApiResourcesAsStream(apiDocumentParser, expectedApiFiles)
+                parseApiResourcesAsStream(apiDocumentParser, mExpectedApiFiles)
                         .forEach(complianceChecker::checkSignatureCompliance);
 
                 // After done parsing all expected API files, perform any deferred checks.
diff --git a/tests/tests/accounts/common/lint-baseline.xml b/tests/tests/accounts/common/lint-baseline.xml
new file mode 100644
index 0000000..6a95c6c
--- /dev/null
+++ b/tests/tests/accounts/common/lint-baseline.xml
@@ -0,0 +1,697 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#get`"
+        errorLine1="        AccountManager am = AccountManager.get(context);"
+        errorLine2="                                           ~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="81"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#getAuthenticatorTypes`"
+        errorLine1="        AuthenticatorDescription[] authenticators = am.getAuthenticatorTypes();"
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="82"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.AuthenticatorDescription#packageName`"
+        errorLine1="            if (a.packageName.equals(context.getPackageName())) {"
+        errorLine2="                ~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="88"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `new android.accounts.Account`"
+        errorLine1="                    Account account = new Account(name, a.type);"
+        errorLine2="                                      ~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="90"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.AuthenticatorDescription#type`"
+        errorLine1="                    Account account = new Account(name, a.type);"
+        errorLine2="                                                        ~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="90"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#addAccountExplicitly`"
+        errorLine1="                    am.addAccountExplicitly(account, Fixtures.PREFIX_PASSWORD + name, null);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="91"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#get`"
+        errorLine1="        AccountManager am = AccountManager.get(context);"
+        errorLine2="                                           ~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="99"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#getAuthenticatorTypes`"
+        errorLine1="        AuthenticatorDescription[] authenticators = am.getAuthenticatorTypes();"
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="100"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.AuthenticatorDescription#packageName`"
+        errorLine1="            if (a.packageName.equals(context.getPackageName())) {"
+        errorLine2="                ~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="106"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountManager#getAccountsByType`"
+        errorLine1="                Account[] accountsToRemove = am.getAccountsByType(a.type);"
+        errorLine2="                                                ~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="107"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.AuthenticatorDescription#type`"
+        errorLine1="                Account[] accountsToRemove = am.getAccountsByType(a.type);"
+        errorLine2="                                                                  ~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="107"
+            column="67"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 22 (current min is 1): `android.accounts.AccountManager#removeAccountExplicitly`"
+        errorLine1="                    am.removeAccountExplicitly(account);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/AuthenticatorContentProvider.java"
+            line="109"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/ConfirmCredentialsTx.java"
+            line="50"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `new android.accounts.Account`"
+        errorLine1="    public static final Account ACCOUNT_UNAFFILIATED_FIXTURE_SUCCESS = new Account("
+        errorLine2="                                                                       ~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/Fixtures.java"
+            line="53"
+            column="72"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `new android.accounts.Account`"
+        errorLine1="    public static final Account ACCOUNT_DEFAULT = new Account("
+        errorLine2="                                                  ~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/Fixtures.java"
+            line="57"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/GetAccountRemovalAllowedTx.java"
+            line="46"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/GetAuthTokenTx.java"
+            line="54"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/HasFeaturesTx.java"
+            line="57"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/StartUpdateCredentialsSessionTx.java"
+            line="50"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 5 (current min is 1): `android.accounts.AbstractAccountAuthenticator`"
+        errorLine1="public class TestAccountAuthenticator extends AbstractAccountAuthenticator {"
+        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="39"
+            column="47"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `new android.accounts.AbstractAccountAuthenticator`"
+        errorLine1="        super(context);"
+        errorLine2="        ~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="47"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `AccountAuthenticatorResponse` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="            intent.putExtra(Fixtures.KEY_CALLBACK, response);"
+        errorLine2="                                                   ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="89"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="                response.onResult(result);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="101"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="111"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        if (account.name.startsWith(Fixtures.PREFIX_NAME_SUCCESS)) {"
+        errorLine2="            ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="120"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="123"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="124"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        } else if (account.name.startsWith(Fixtures.PREFIX_NAME_INTERVENE)) {"
+        errorLine2="                   ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="125"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="129"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="130"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `AccountAuthenticatorResponse` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="            intent.putExtra(Fixtures.KEY_CALLBACK, response);"
+        errorLine2="                                                   ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="135"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="                response.onResult(result);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="147"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="158"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        if (account.name.startsWith(Fixtures.PREFIX_NAME_SUCCESS)) {"
+        errorLine2="            ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="167"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="174"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="175"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        } else if (account.name.startsWith(Fixtures.PREFIX_NAME_INTERVENE)) {"
+        errorLine2="                   ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="176"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="184"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="185"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `AccountAuthenticatorResponse` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="            intent.putExtra(Fixtures.KEY_CALLBACK, response);"
+        errorLine2="                                                   ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="190"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="                response.onResult(result);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="203"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="222"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        if (account.name.startsWith(Fixtures.PREFIX_NAME_SUCCESS)) {"
+        errorLine2="            ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="231"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="233"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                              ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="234"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        } else if (account.name.startsWith(Fixtures.PREFIX_NAME_INTERVENE)) {"
+        errorLine2="                   ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="235"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="238"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="            eventualActivityResultData.putExtra(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="239"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `AccountAuthenticatorResponse` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="            intent.putExtra(Fixtures.KEY_CALLBACK, response);"
+        errorLine2="                                                   ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="244"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="                response.onResult(result);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="256"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="266"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        if (account.name.startsWith(Fixtures.PREFIX_NAME_SUCCESS)) {"
+        errorLine2="            ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="274"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        } else if (account.name.startsWith(Fixtures.PREFIX_NAME_INTERVENE)) {"
+        errorLine2="                   ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="277"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `AccountAuthenticatorResponse` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="            intent.putExtra(Fixtures.KEY_CALLBACK, response);"
+        errorLine2="                                                   ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="284"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="                response.onResult(result);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="295"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAccountAuthenticator.java"
+            line="365"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `android.accounts.AccountAuthenticatorResponse#onResult`"
+        errorLine1="            response.onResult(result.getExtras());"
+        errorLine2="                     ~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestAuthenticatorActivity.java"
+            line="33"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 5 (current min is 1): `android.accounts.AbstractAccountAuthenticator`"
+        errorLine1="public class TestDefaultAuthenticator extends AbstractAccountAuthenticator {"
+        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestDefaultAuthenticator.java"
+            line="34"
+            column="47"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 5 (current min is 1): `new android.accounts.AbstractAccountAuthenticator`"
+        errorLine1="        super(context);"
+        errorLine2="        ~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestDefaultAuthenticator.java"
+            line="39"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        if (!mAccountType.equals(account.type)) {"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestDefaultAuthenticator.java"
+            line="108"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#name`"
+        errorLine1="        result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);"
+        errorLine2="                                                          ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestDefaultAuthenticator.java"
+            line="112"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 5 (current min is 1): `android.accounts.Account#type`"
+        errorLine1="        result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);"
+        errorLine2="                                                          ~~~~~~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/TestDefaultAuthenticator.java"
+            line="113"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `Account` to `Parcelable` requires API level 5 (current min is 1)"
+        errorLine1="        out.writeParcelable(account, flags);"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="cts/tests/tests/accounts/common/src/android/accounts/cts/common/tx/UpdateCredentialsTx.java"
+            line="54"
+            column="29"/>
+    </issue>
+
+</issues>
diff --git a/tests/tests/app.usage/Android.bp b/tests/tests/app.usage/Android.bp
index 48c225e..29ba591 100644
--- a/tests/tests/app.usage/Android.bp
+++ b/tests/tests/app.usage/Android.bp
@@ -37,6 +37,5 @@
     test_suites: [
         "cts",
         "general-tests",
-        "mts"
     ],
 }
diff --git a/tests/tests/app.usage/AndroidTest.xml b/tests/tests/app.usage/AndroidTest.xml
index 26b799d..3dbfb93 100644
--- a/tests/tests/app.usage/AndroidTest.xml
+++ b/tests/tests/app.usage/AndroidTest.xml
@@ -32,8 +32,4 @@
         <option name="runtime-hint" value="1m47s" />
         <option name="hidden-api-checks" value="false" />
     </test>
-
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
-        <option name="mainline-module-package-name" value="com.google.android.extservices" />
-    </object>
 </configuration>
diff --git a/tests/tests/app.usage/TestApp1/Android.bp b/tests/tests/app.usage/TestApp1/Android.bp
index ad9f9c8..cba5df5 100644
--- a/tests/tests/app.usage/TestApp1/Android.bp
+++ b/tests/tests/app.usage/TestApp1/Android.bp
@@ -37,7 +37,6 @@
     test_suites: [
         "cts",
         "general-tests",
-        "mts"
     ],
     sdk_version: "test_current"
 }
diff --git a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
index cd44651..c1a1eb7 100644
--- a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
+++ b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
@@ -238,7 +238,7 @@
 
     @AppModeFull(reason = "No usage events access in instant apps")
     @Test
-    public void testLastTimeComponentUsed_launchActivity() throws Exception {
+    public void testLastAnyTimeComponentUsed_launchActivity() throws Exception {
         mUiDevice.wakeUp();
         dismissKeyguard(); // also want to start out with the keyguard dismissed.
 
@@ -250,14 +250,14 @@
                 startTime, endTime);
         final UsageStats stats = map.get(mTargetPackage);
         assertNotNull(stats);
-        final long lastTimeComponentUsed = stats.getLastTimeComponentUsed();
+        final long lastTimeComponentUsed = stats.getLastTimeAnyComponentUsed();
         assertLessThan(startTime, lastTimeComponentUsed);
         assertLessThan(lastTimeComponentUsed, endTime);
     }
 
     @AppModeFull(reason = "No usage events access in instant apps")
     @Test
-    public void testLastTimeComponentUsedGlobal_launchActivity() throws Exception {
+    public void testLastTimeAnyComponentUsedGlobal_launchActivity() throws Exception {
         mUiDevice.wakeUp();
         dismissKeyguard();
 
diff --git a/tests/tests/appenumeration/app/source/src/android/appenumeration/cts/query/TestActivity.java b/tests/tests/appenumeration/app/source/src/android/appenumeration/cts/query/TestActivity.java
index c304806..7ed2055 100644
--- a/tests/tests/appenumeration/app/source/src/android/appenumeration/cts/query/TestActivity.java
+++ b/tests/tests/appenumeration/app/source/src/android/appenumeration/cts/query/TestActivity.java
@@ -37,6 +37,7 @@
 import static android.appenumeration.cts.Constants.EXTRA_FLAGS;
 import static android.appenumeration.cts.Constants.EXTRA_REMOTE_CALLBACK;
 import static android.appenumeration.cts.Constants.EXTRA_REMOTE_READY_CALLBACK;
+import static android.content.Intent.EXTRA_COMPONENT_NAME;
 import static android.content.Intent.EXTRA_RETURN_RESULT;
 import static android.content.pm.PackageManager.CERT_INPUT_RAW_X509;
 import static android.os.Process.INVALID_UID;
@@ -55,6 +56,7 @@
 import android.content.IntentSender;
 import android.content.ServiceConnection;
 import android.content.SyncAdapterType;
+import android.content.pm.LauncherApps;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
@@ -65,6 +67,7 @@
 import android.os.IBinder;
 import android.os.Parcelable;
 import android.os.PatternMatcher;
+import android.os.Process;
 import android.os.RemoteCallback;
 import android.util.SparseArray;
 
@@ -194,6 +197,11 @@
                         .getStringArray(Intent.EXTRA_PACKAGES);
                 awaitSuspendedPackagesBroadcast(remoteCallback, Arrays.asList(awaitPackages),
                         Intent.ACTION_PACKAGES_SUSPENDED, TIMEOUT_MS);
+            } else if (Constants.ACTION_LAUNCHER_APPS_IS_ACTIVITY_ENABLED.equals(action)) {
+                final String componentName = intent.getBundleExtra(EXTRA_DATA)
+                        .getString(EXTRA_COMPONENT_NAME);
+                sendIsActivityEnabled(remoteCallback, ComponentName.unflattenFromString(
+                        componentName));
             } else {
                 sendError(remoteCallback, new Exception("unknown action " + action));
             }
@@ -411,6 +419,18 @@
         finish();
     }
 
+    private void sendIsActivityEnabled(RemoteCallback remoteCallback, ComponentName componentName) {
+        final LauncherApps launcherApps = getSystemService(LauncherApps.class);
+        final Bundle result = new Bundle();
+        try {
+            result.putBoolean(EXTRA_RETURN_RESULT, launcherApps.isActivityEnabled(componentName,
+                    Process.myUserHandle()));
+        } catch (IllegalArgumentException e) {
+        }
+        remoteCallback.sendResult(result);
+        finish();
+    }
+
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
diff --git a/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java b/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
index 720ec4c..5c72fff 100644
--- a/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
+++ b/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
@@ -183,6 +183,8 @@
             PKG_BASE + "cts.action.GET_SYNCADAPTER_TYPES";
     public static final String ACTION_AWAIT_PACKAGES_SUSPENDED =
             PKG_BASE + "cts.action.AWAIT_PACKAGES_SUSPENDED";
+    public static final String ACTION_LAUNCHER_APPS_IS_ACTIVITY_ENABLED =
+            PKG_BASE + "cts.action.LAUNCHER_APPS_IS_ACTIVITY_ENABLED";
 
     public static final String EXTRA_REMOTE_CALLBACK = "remoteCallback";
     public static final String EXTRA_REMOTE_READY_CALLBACK = "remoteReadyCallback";
diff --git a/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java b/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
index 4d58580..5f74347 100644
--- a/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
+++ b/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
@@ -26,6 +26,7 @@
 import static android.appenumeration.cts.Constants.ACTION_GET_SYNCADAPTER_TYPES;
 import static android.appenumeration.cts.Constants.ACTION_HAS_SIGNING_CERTIFICATE;
 import static android.appenumeration.cts.Constants.ACTION_JUST_FINISH;
+import static android.appenumeration.cts.Constants.ACTION_LAUNCHER_APPS_IS_ACTIVITY_ENABLED;
 import static android.appenumeration.cts.Constants.ACTION_MANIFEST_ACTIVITY;
 import static android.appenumeration.cts.Constants.ACTION_MANIFEST_PROVIDER;
 import static android.appenumeration.cts.Constants.ACTION_MANIFEST_SERVICE;
@@ -95,6 +96,7 @@
 
 import static com.android.compatibility.common.util.ShellUtils.runShellCommand;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.arrayContainingInAnyOrder;
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
@@ -102,7 +104,6 @@
 import static org.hamcrest.Matchers.not;
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -630,7 +631,7 @@
     public void broadcastAdded_notVisibleDoesNotReceive() throws Exception {
         final Result result = sendCommand(QUERIES_NOTHING, TARGET_FILTERS,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_ADDED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_ADDED, /* waitForReady */ true);
         runShellCommand("pm install " + TARGET_FILTERS_APK);
         try {
             result.await();
@@ -644,7 +645,7 @@
     public void broadcastAdded_visibleReceives() throws Exception {
         final Result result = sendCommand(QUERIES_ACTIVITY_ACTION, TARGET_FILTERS,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_ADDED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_ADDED, /* waitForReady */ true);
         runShellCommand("pm install " + TARGET_FILTERS_APK);
         try {
             Assert.assertEquals(TARGET_FILTERS,
@@ -658,7 +659,7 @@
     public void reinstallTarget_broadcastRemoved_notVisibleDoesNotReceive() throws Exception {
         final Result result = sendCommand(QUERIES_NOTHING, TARGET_FILTERS,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ true);
         runShellCommand("pm install " + TARGET_FILTERS_APK);
         try {
             result.await();
@@ -672,7 +673,7 @@
     public void reinstallTarget_broadcastRemoved_visibleReceives() throws Exception {
         final Result result = sendCommand(QUERIES_ACTIVITY_ACTION, TARGET_FILTERS,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ true);
         runShellCommand("pm install " + TARGET_FILTERS_APK);
         try {
             Assert.assertEquals(TARGET_FILTERS,
@@ -687,7 +688,7 @@
         ensurePackageIsInstalled(TARGET_STUB, TARGET_STUB_APK);
         final Result result = sendCommand(QUERIES_NOTHING, TARGET_STUB,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ true);
         runShellCommand("pm uninstall " + TARGET_STUB);
         try {
             result.await();
@@ -702,7 +703,7 @@
         ensurePackageIsInstalled(TARGET_STUB, TARGET_STUB_APK);
         final Result result = sendCommand(QUERIES_NOTHING_PERM, TARGET_STUB,
                 /* targetUid */ INVALID_UID, /* intentExtra */ null,
-                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ false);
+                Constants.ACTION_AWAIT_PACKAGE_REMOVED, /* waitForReady */ true);
         runShellCommand("pm uninstall " + TARGET_STUB);
         try {
             Assert.assertEquals(TARGET_STUB,
@@ -776,6 +777,26 @@
                 this::getSyncAdapterTypes);
     }
 
+    @Test
+    public void launcherAppsIsActivityEnabled_queriesActivityAction_canSeeActivity()
+            throws Exception {
+        final ComponentName targetFilters = ComponentName.createRelative(TARGET_FILTERS,
+                ACTIVITY_CLASS_DUMMY_ACTIVITY);
+        assertThat(QUERIES_ACTIVITY_ACTION + " should be able to see " + targetFilters,
+                launcherAppsIsActivityEnabled(QUERIES_ACTIVITY_ACTION, targetFilters),
+                is(true));
+    }
+
+    @Test
+    public void launcherAppsIsActivityEnabled_queriesNothing_cannotSeeActivity()
+            throws Exception {
+        final ComponentName targetFilters = ComponentName.createRelative(TARGET_FILTERS,
+                ACTIVITY_CLASS_DUMMY_ACTIVITY);
+        assertThat(QUERIES_ACTIVITY_ACTION + " should not be able to see " + targetFilters,
+                launcherAppsIsActivityEnabled(QUERIES_NOTHING, targetFilters),
+                is(false));
+    }
+
     private void assertNotVisible(String sourcePackageName, String targetPackageName)
             throws Exception {
         if (!sGlobalFeatureEnabled) return;
@@ -1020,6 +1041,15 @@
         runShellCommand(cmd.toString());
     }
 
+    private boolean launcherAppsIsActivityEnabled(String sourcePackageName,
+            ComponentName componentName) throws Exception {
+        final Bundle extraData = new Bundle();
+        extraData.putString(Intent.EXTRA_COMPONENT_NAME, componentName.flattenToString());
+        final Bundle response = sendCommandBlocking(sourcePackageName, /* targetPackageName */ null,
+                extraData, ACTION_LAUNCHER_APPS_IS_ACTIVITY_ENABLED);
+        return response.getBoolean(Intent.EXTRA_RETURN_RESULT);
+    }
+
     interface Result {
         Bundle await() throws Exception;
     }
diff --git a/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml b/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
index debdb8e..0df2178 100644
--- a/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
+++ b/tests/tests/appop/AppWithTooManyAttributions/AndroidManifest.xml
@@ -19,7 +19,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.app.appops.cts.appwithtoomanyattributions">
 
-  <!-- 1000 attributions are allowed -->
+  <!-- 10000 attributions are allowed -->
   <attribution android:tag="f0" android:label="@string/dummyLabel" />
   <attribution android:tag="f1" android:label="@string/dummyLabel" />
   <attribution android:tag="f2" android:label="@string/dummyLabel" />
@@ -1020,6 +1020,9006 @@
   <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/AppOpsLoggingTest.kt b/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
index 8a99f0c..c044b6b 100644
--- a/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
+++ b/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
@@ -110,7 +110,6 @@
 )
 
 @AppModeFull(reason = "Test relies on other app to connect to. Instant apps can't see other apps")
-@Ignore("b/184491462")
 class AppOpsLoggingTest {
     private val context = InstrumentationRegistry.getInstrumentation().targetContext as Context
     private val appOpsManager = context.getSystemService(AppOpsManager::class.java)
@@ -669,6 +668,7 @@
      * Realistic end-to-end test for recording audio
      */
     @Test
+    @Ignore
     fun recordAudio() {
         val ar = AudioRecord.Builder()
                 .setContext(context.createAttributionContext(TEST_ATTRIBUTION_TAG)).build()
@@ -689,6 +689,7 @@
      * Realistic end-to-end test for recording low latency audio
      */
     @Test
+    @Ignore
     fun recordAudioLowLatency() {
         val ar = AudioRecord.Builder()
                 .setAudioAttributes(AudioAttributes.Builder()
@@ -712,6 +713,7 @@
      * Realistic end-to-end test for recording using the public native API with shared, low latency
      */
     @Test
+    @Ignore
     fun recordAudioNativeLowLatencyShared() {
         nativeStartStopAudioRecord(isShared = true, isLowLatency = true,
                 packageName = context.packageName, attributionTag = TEST_ATTRIBUTION_TAG)
@@ -727,6 +729,7 @@
      * mode
      */
     @Test
+    @Ignore
     fun recordAudioNativeLowLatencyExclusive() {
         nativeStartStopAudioRecord(isShared = false, isLowLatency = true,
                 packageName = context.packageName, attributionTag = TEST_ATTRIBUTION_TAG)
@@ -742,6 +745,7 @@
      * mode
      */
     @Test
+    @Ignore
     fun recordAudioNativeShared() {
         nativeStartStopAudioRecord(isShared = true, isLowLatency = false,
                 packageName = context.packageName, attributionTag = TEST_ATTRIBUTION_TAG)
diff --git a/tests/tests/car/Android.bp b/tests/tests/car/Android.bp
index c3e5890..56699e2 100644
--- a/tests/tests/car/Android.bp
+++ b/tests/tests/car/Android.bp
@@ -27,12 +27,16 @@
         // TODO: remove once Android migrates to JUnit 4.12,
         // which provides assertThrows
         "testng",
+        "libprotobuf-java-lite",
     ],
     libs: [
         "android.test.base",
         "android.car-test-stubs",
     ],
-    srcs: ["src/**/*.java"],
+    srcs: [
+        "src/**/*.java",
+        ":rotary-service-proto-source",
+    ],
     // Tag this module as a cts test artifact
     test_suites: [
         "cts",
diff --git a/tests/tests/car/src/android/car/cts/CarRotaryImeTest.java b/tests/tests/car/src/android/car/cts/CarRotaryImeTest.java
new file mode 100644
index 0000000..d1f9001
--- /dev/null
+++ b/tests/tests/car/src/android/car/cts/CarRotaryImeTest.java
@@ -0,0 +1,146 @@
+/*
+ * 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.car.cts;
+
+import static android.provider.Settings.Secure.ENABLED_INPUT_METHODS;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assume.assumeTrue;
+
+import android.app.UiAutomation;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.ParcelFileDescriptor;
+import android.provider.Settings;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.annotation.NonNull;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.car.rotary.RotaryProtos;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Arrays;
+
+public final class CarRotaryImeTest {
+    private static final ComponentName ROTARY_SERVICE_COMPONENT_NAME =
+            ComponentName.unflattenFromString("com.android.car.rotary/.RotaryService");
+
+    /** Hidden secure setting for disabled system IMEs. */
+    private static final String DISABLED_SYSTEM_INPUT_METHODS = "disabled_system_input_methods";
+
+    private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
+    private final ContentResolver mContentResolver = mContext.getContentResolver();
+    private final AccessibilityManager mAccessibilityManager =
+            mContext.getSystemService(AccessibilityManager.class);
+
+    /**
+     * Tests that, if a rotary input method is specified via the {@code rotary_input_method} string
+     * resource, it's the component name of an existing IME.
+     */
+    @Test
+    public void rotaryInputMethodValidIfSpecified() throws Exception {
+        assumeHasRotaryService();
+
+        String rotaryInputMethod = dumpsysRotaryServiceProto().getRotaryInputMethod();
+
+        assumeTrue("Rotary input method not specified, skipping test",
+                rotaryInputMethod != null && !rotaryInputMethod.isEmpty());
+        assertWithMessage("isValidIme(" + rotaryInputMethod + ")")
+                .that(isValidIme(rotaryInputMethod)).isTrue();
+    }
+
+    /**
+     * The default touch input method must be specified via the {@code default_touch_input_method}
+     * string resource, and it must be the component name of an existing IME.
+     */
+    @Ignore("TODO(b/184390443)")
+    @Test
+    public void defaultTouchInputMethodSpecifiedAndValid() throws Exception {
+        assumeHasRotaryService();
+
+        String defaultTouchInputMethod = dumpsysRotaryServiceProto().getDefaultTouchInputMethod();
+
+        assertWithMessage("defaultTouchInputMethod").that(defaultTouchInputMethod).isNotEmpty();
+        assertWithMessage("isValidIme(" + defaultTouchInputMethod + ")")
+                .that(isValidIme(defaultTouchInputMethod)).isTrue();
+    }
+
+    private RotaryProtos.RotaryService dumpsysRotaryServiceProto() throws IOException {
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation(
+                UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES);
+        ParcelFileDescriptor pfd = uiAutomation.executeShellCommand(
+                "dumpsys activity service " + ROTARY_SERVICE_COMPONENT_NAME.flattenToString()
+                        + " proto");
+        try (FileInputStream fis = new ParcelFileDescriptor.AutoCloseInputStream(pfd)) {
+            // TODO(b/184973707): Remove this code once ActivityManager supports dumping a service
+            //                    in proto format.
+            // Skip over:
+            //   SERVICE com.android.car.rotary/.RotaryService ... pid=... user=10
+            //   __Client:
+            //   ____
+            // where underscores represent spaces.
+            byte[] buffer = new byte[1];
+            while (fis.read(buffer) > 0 && buffer[0] != ':') {
+                // Do nothing.
+            }
+            // Skip carriage return and four space indent.
+            fis.skip(5);
+
+            return RotaryProtos.RotaryService.parseFrom(fis);
+        }
+    }
+
+    private void assumeHasRotaryService() {
+        assumeTrue("Rotary service not enabled; skipping test",
+                mAccessibilityManager.getInstalledAccessibilityServiceList().stream().anyMatch(
+                        accessibilityServiceInfo ->
+                                ROTARY_SERVICE_COMPONENT_NAME.equals(
+                                        accessibilityServiceInfo.getComponentName())));
+    }
+
+    /** Returns whether {@code flattenedComponentName} is an installed input method. */
+    private boolean isValidIme(@NonNull String flattenedComponentName) {
+        ComponentName componentName = ComponentName.unflattenFromString(flattenedComponentName);
+        return imeSettingContains(ENABLED_INPUT_METHODS, componentName)
+                || imeSettingContains(DISABLED_SYSTEM_INPUT_METHODS, componentName);
+    }
+
+    /**
+     * Fetches the secure setting {@code settingName} containing a colon-separated list of IMEs with
+     * their subtypes and returns whether {@code componentName} is one of the IMEs.
+     */
+    private boolean imeSettingContains(@NonNull String settingName,
+            @NonNull ComponentName componentName) {
+        String colonSeparatedComponentNamesWithSubtypes =
+                Settings.Secure.getString(mContentResolver, settingName);
+        if (colonSeparatedComponentNamesWithSubtypes == null) {
+            return false;
+        }
+        return Arrays.stream(colonSeparatedComponentNamesWithSubtypes.split(":"))
+                .map(componentNameWithSubtypes -> componentNameWithSubtypes.split(";"))
+                .anyMatch(componentNameAndSubtypes -> componentNameAndSubtypes.length >= 1
+                        && componentName.equals(
+                                ComponentName.unflattenFromString(componentNameAndSubtypes[0])));
+    }
+}
diff --git a/tests/tests/carrierapi/Android.bp b/tests/tests/carrierapi/Android.bp
index 5f5b61d..32b10e5 100644
--- a/tests/tests/carrierapi/Android.bp
+++ b/tests/tests/carrierapi/Android.bp
@@ -21,8 +21,8 @@
     defaults: ["cts_defaults"],
     static_libs: [
         "androidx.test.uiautomator_uiautomator",
-        "ctstestrunner-axt",
         "compatibility-device-util-axt",
+        "ctstestrunner-axt",
         "junit",
         "truth-prebuilt",
     ],
@@ -34,8 +34,8 @@
         "general-tests",
     ],
     libs: [
-        "android.test.runner",
         "android.test.base",
+        "android.test.runner",
     ],
     // This  APK must be signed to match the test SIM's cert whitelist.
     // While "testkey" is the default, there are different per-device testkeys, so
diff --git a/tests/tests/carrierapi/AndroidTest.xml b/tests/tests/carrierapi/AndroidTest.xml
index 8d1174b..9b6d4fe 100644
--- a/tests/tests/carrierapi/AndroidTest.xml
+++ b/tests/tests/carrierapi/AndroidTest.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <configuration description="Config for CTS Carrier APIs test cases">
-  <option name="test-suite-tag" value="cts" />
+    <option name="test-suite-tag" value="cts" />
     <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
     <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
     <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/ApnDatabaseTest.java b/tests/tests/carrierapi/src/android/carrierapi/cts/ApnDatabaseTest.java
index 91ba3fc..59794c5 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/ApnDatabaseTest.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/ApnDatabaseTest.java
@@ -15,22 +15,19 @@
  */
 package android.carrierapi.cts;
 
-import static junit.framework.TestCase.assertEquals;
+import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 
 import android.content.ContentResolver;
 import android.content.ContentValues;
-import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteException;
 import android.net.Uri;
 import android.provider.Telephony.Carriers;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
@@ -42,17 +39,16 @@
 import java.util.Map;
 
 /**
- * Build, install and run the tests by running the commands below:
- *  make cts -j64
- *  cts-tradefed run cts -m CtsCarrierApiTestCases --test android.carrierapi.cts.ApnDatabaseTest
+ * Unit tests for the APN database exposed by {@link Carriers}.
+ *
+ * <p>Test using `atest CtsCarrierApiTestCases:ApnDatabaseTest` or `make cts -j64 && cts-tradefed
+ * run cts -m CtsCarrierApiTestCases --test android.carrierapi.cts.ApnDatabaseTest`
  */
 @RunWith(AndroidJUnit4.class)
-public class ApnDatabaseTest {
+public class ApnDatabaseTest extends BaseCarrierApiTest {
     private static final String TAG = "ApnDatabaseTest";
 
     private ContentResolver mContentResolver;
-    private PackageManager mPackageManager;
-    private boolean mHasCellular;
 
     private static final String NAME = "carrierName";
     private static final String APN = "apn";
@@ -72,25 +68,28 @@
     private static final String NETWORK_TYPE_BITMASK = "0";
     private static final String BEARER = "0";
 
-    private static final Map<String, String> APN_MAP = new HashMap<String,String>() {{
-        put(Carriers.NAME, NAME);
-        put(Carriers.APN, APN);
-        put(Carriers.PROXY, PROXY);
-        put(Carriers.PORT, PORT);
-        put(Carriers.MMSC, MMSC);
-        put(Carriers.MMSPROXY, MMSPROXY);
-        put(Carriers.MMSPORT, MMSPORT);
-        put(Carriers.NUMERIC, NUMERIC);
-        put(Carriers.USER, USER);
-        put(Carriers.PASSWORD, PASSWORD);
-        put(Carriers.AUTH_TYPE, AUTH_TYPE);
-        put(Carriers.TYPE, TYPE);
-        put(Carriers.PROTOCOL, PROTOCOL);
-        put(Carriers.ROAMING_PROTOCOL, ROAMING_PROTOCOL);
-        put(Carriers.CARRIER_ENABLED, CARRIER_ENABLED);
-        put(Carriers.NETWORK_TYPE_BITMASK, NETWORK_TYPE_BITMASK);
-        put(Carriers.BEARER, BEARER);
-    }};
+    private static final Map<String, String> APN_MAP =
+            new HashMap<String, String>() {
+                {
+                    put(Carriers.NAME, NAME);
+                    put(Carriers.APN, APN);
+                    put(Carriers.PROXY, PROXY);
+                    put(Carriers.PORT, PORT);
+                    put(Carriers.MMSC, MMSC);
+                    put(Carriers.MMSPROXY, MMSPROXY);
+                    put(Carriers.MMSPORT, MMSPORT);
+                    put(Carriers.NUMERIC, NUMERIC);
+                    put(Carriers.USER, USER);
+                    put(Carriers.PASSWORD, PASSWORD);
+                    put(Carriers.AUTH_TYPE, AUTH_TYPE);
+                    put(Carriers.TYPE, TYPE);
+                    put(Carriers.PROTOCOL, PROTOCOL);
+                    put(Carriers.ROAMING_PROTOCOL, ROAMING_PROTOCOL);
+                    put(Carriers.CARRIER_ENABLED, CARRIER_ENABLED);
+                    put(Carriers.NETWORK_TYPE_BITMASK, NETWORK_TYPE_BITMASK);
+                    put(Carriers.BEARER, BEARER);
+                }
+            };
 
     // Faked network type bitmask and its compatible bearer bitmask.
     private static final int NETWORK_TYPE_BITMASK_NUMBER = 1 << (13 - 1);
@@ -98,29 +97,16 @@
 
     @Before
     public void setUp() throws Exception {
-        mContentResolver = InstrumentationRegistry.getContext().getContentResolver();
-        mPackageManager = InstrumentationRegistry.getContext().getPackageManager();
-        // Checks whether the cellular stack should be running on this device.
-        mHasCellular = mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
-        if (!mHasCellular) {
-            Log.e(TAG, "No cellular support, all tests will be skipped.");
-        }
-    }
-
-    private void failMessage() {
-        fail("This test requires a SIM card with carrier privilege rule on it.\n" +
-                "Visit https://source.android.com/devices/tech/config/uicc.html");
+        mContentResolver = getContext().getContentResolver();
     }
 
     /**
-     * Test inserting, querying, updating and deleting values in carriers table.
-     * Verify that the inserted values match the result of the query and are deleted.
+     * Test inserting, querying, updating and deleting values in carriers table. Verify that the
+     * inserted values match the result of the query and are deleted.
      */
     @Test
     public void testValidCase() {
-        if (!mHasCellular) return;
         Uri uri = Carriers.CONTENT_URI;
-        // CONTENT_URI = Uri.parse("content://telephony/carriers");
         // Create A set of column_name/value pairs to add to the database.
         ContentValues contentValues = makeDefaultContentValues();
 
@@ -128,69 +114,84 @@
             // Insert the value into database.
             Log.d(TAG, "testInsertCarriers Inserting contentValues: " + contentValues.toString());
             Uri newUri = mContentResolver.insert(uri, contentValues);
-            assertNotNull("Failed to insert to table", newUri);
+            assertWithMessage("Failed to insert to table").that(newUri).isNotNull();
 
             // Get the values in table.
             final String selection = Carriers.NUMERIC + "=?";
-            String[] selectionArgs = { NUMERIC };
+            String[] selectionArgs = {NUMERIC};
             String[] apnProjection = APN_MAP.keySet().toArray(new String[APN_MAP.size()]);
-            Log.d(TAG, "testInsertCarriers query projection: " + Arrays.toString(apnProjection)
-                    + "\ntestInsertCarriers selection: " + selection
-                    + "\ntestInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            Cursor cursor = mContentResolver.query(
-                    uri, apnProjection, selection, selectionArgs, null);
+            Log.d(
+                    TAG,
+                    "testInsertCarriers query projection: "
+                            + Arrays.toString(apnProjection)
+                            + "\ntestInsertCarriers selection: "
+                            + selection
+                            + "\ntestInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            Cursor cursor =
+                    mContentResolver.query(uri, apnProjection, selection, selectionArgs, null);
 
             // Verify that the inserted value match the results of the query
-            assertNotNull("Failed to query the table", cursor);
-            assertEquals("Unexpected number of APNs returned by cursor",
-                    1, cursor.getCount());
+            assertWithMessage("Failed to query the table").that(cursor).isNotNull();
+            assertWithMessage("Unexpected number of APNs returned by cursor")
+                    .that(cursor.getCount())
+                    .isEqualTo(1);
             cursor.moveToFirst();
-            for (Map.Entry<String, String> entry: APN_MAP.entrySet()) {
-                assertEquals(
-                        "Unexpected value returned by cursor",
-                        cursor.getString(cursor.getColumnIndex(entry.getKey())), entry.getValue());
+            for (Map.Entry<String, String> entry : APN_MAP.entrySet()) {
+                assertWithMessage("Unexpected value returned by cursor")
+                        .that(cursor.getString(cursor.getColumnIndex(entry.getKey())))
+                        .isEqualTo(entry.getValue());
             }
 
             // update the apn
             final String newApn = "newapn";
             Log.d(TAG, "Update the APN field to: " + newApn);
             contentValues.put(Carriers.APN, newApn);
-            final int updateCount = mContentResolver.update(uri, contentValues, selection,
-                    selectionArgs);
-            assertEquals("Unexpected number of rows updated", 1, updateCount);
+            final int updateCount =
+                    mContentResolver.update(uri, contentValues, selection, selectionArgs);
+            assertWithMessage("Unexpected number of rows updated").that(updateCount).isEqualTo(1);
 
             // Verify the updated value
             cursor = mContentResolver.query(uri, apnProjection, selection, selectionArgs, null);
-            assertNotNull("Failed to query the table", cursor);
-            assertEquals("Unexpected number of APNs returned by cursor", 1, cursor.getCount());
+            assertWithMessage("Failed to query the table").that(cursor).isNotNull();
+            assertWithMessage("Unexpected number of APNs returned by cursor")
+                    .that(cursor.getCount())
+                    .isEqualTo(1);
             cursor.moveToFirst();
-            assertEquals("Unexpected value returned by cursor",
-                    cursor.getString(cursor.getColumnIndex(Carriers.APN)), newApn);
+            assertWithMessage("Unexpected value returned by cursor")
+                    .that(cursor.getString(cursor.getColumnIndex(Carriers.APN)))
+                    .isEqualTo(newApn);
 
             // delete test content
             final String selectionToDelete = Carriers.NUMERIC + "=?";
-            String[] selectionArgsToDelete = { NUMERIC };
-            Log.d(TAG, "testInsertCarriers deleting selection: " + selectionToDelete
-                    + "testInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            int numRowsDeleted = mContentResolver.delete(
-                    uri, selectionToDelete, selectionArgsToDelete);
-            assertEquals("Unexpected number of rows deleted",1, numRowsDeleted);
+            String[] selectionArgsToDelete = {NUMERIC};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers deleting selection: "
+                            + selectionToDelete
+                            + "testInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            int numRowsDeleted =
+                    mContentResolver.delete(uri, selectionToDelete, selectionArgsToDelete);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(numRowsDeleted)
+                    .isEqualTo(1);
 
             // verify that deleted values are gone
             cursor = mContentResolver.query(uri, apnProjection, selection, selectionArgs, null);
-            assertEquals("Unexpected number of rows deleted", 0, cursor.getCount());
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(cursor.getCount())
+                    .isEqualTo(0);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
     @Test
     public void testQueryConflictCase() {
-        if (!mHasCellular) return;
         String invalidColumn = "random";
         Uri uri = Carriers.CONTENT_URI;
-        // CONTENT_URI = Uri.parse("content://telephony/carriers");
-        // Create A set of column_name/value pairs to add to the database.
+        // Create a set of column_name/value pairs to add to the database.
         ContentValues contentValues = new ContentValues();
         contentValues.put(Carriers.NAME, NAME);
         contentValues.put(Carriers.APN, APN);
@@ -202,50 +203,57 @@
             // Insert the value into database.
             Log.d(TAG, "testInsertCarriers Inserting contentValues: " + contentValues.toString());
             Uri newUri = mContentResolver.insert(uri, contentValues);
-            assertNotNull("Failed to insert to table", newUri);
+            assertWithMessage("Failed to insert to table").that(newUri).isNotNull();
 
             // Try to get the value with invalid selection
-            final String[] testProjection =
-                    {
-                            Carriers.NAME,
-                            Carriers.APN,
-                            Carriers.PORT,
-                            Carriers.PROTOCOL,
-                            Carriers.NUMERIC,
-                    };
+            final String[] testProjection = {
+                Carriers.NAME, Carriers.APN, Carriers.PORT, Carriers.PROTOCOL, Carriers.NUMERIC,
+            };
             final String selection = invalidColumn + "=?";
-            String[] selectionArgs = { invalidColumn };
-            Log.d(TAG, "testInsertCarriers query projection: " + Arrays.toString(testProjection)
-                    + "\ntestInsertCarriers selection: " + selection
-                    + "\ntestInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            Cursor cursor = mContentResolver.query(
-                    uri, testProjection, selection, selectionArgs, null);
-            assertNull("Failed to query the table",cursor);
+            String[] selectionArgs = {invalidColumn};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers query projection: "
+                            + Arrays.toString(testProjection)
+                            + "\ntestInsertCarriers selection: "
+                            + selection
+                            + "\ntestInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            Cursor cursor =
+                    mContentResolver.query(uri, testProjection, selection, selectionArgs, null);
+            assertWithMessage("Failed to query the table").that(cursor).isNull();
 
             // delete test content
             final String selectionToDelete = Carriers.NAME + "=?";
-            String[] selectionArgsToDelete = { NAME };
-            Log.d(TAG, "testInsertCarriers deleting selection: " + selectionToDelete
-                    + "testInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            int numRowsDeleted = mContentResolver.delete(
-                    uri, selectionToDelete, selectionArgsToDelete);
-            assertEquals("Unexpected number of rows deleted", 1, numRowsDeleted);
+            String[] selectionArgsToDelete = {NAME};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers deleting selection: "
+                            + selectionToDelete
+                            + "testInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            int numRowsDeleted =
+                    mContentResolver.delete(uri, selectionToDelete, selectionArgsToDelete);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(numRowsDeleted)
+                    .isEqualTo(1);
 
             // verify that deleted values are gone
-            cursor = mContentResolver.query(
-                    uri, testProjection, selectionToDelete, selectionArgsToDelete, null);
-            assertEquals("Unexpected number of rows deleted", 0, cursor.getCount());
+            cursor =
+                    mContentResolver.query(
+                            uri, testProjection, selectionToDelete, selectionArgsToDelete, null);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(cursor.getCount())
+                    .isEqualTo(0);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
     @Test
     public void testUpdateConflictCase() {
-        if (!mHasCellular) return;
         Uri uri = Carriers.CONTENT_URI;
-        // CONTENT_URI = Uri.parse("content://telephony/carriers");
-        // Create A set of column_name/value pairs to add to the database.
+        // Create a set of column_name/value pairs to add to the database.
         ContentValues contentValues = new ContentValues();
         contentValues.put(Carriers.NAME, NAME);
         contentValues.put(Carriers.APN, APN);
@@ -257,63 +265,69 @@
             // Insert the value into database.
             Log.d(TAG, "testInsertCarriers Inserting contentValues: " + contentValues.toString());
             Uri newUri = mContentResolver.insert(uri, contentValues);
-            assertNotNull("Failed to insert to table", newUri);
+            assertWithMessage("Failed to insert to table").that(newUri).isNotNull();
 
             // Try to get the value with invalid selection
-            final String[] testProjection =
-                    {
-                            Carriers.NAME,
-                            Carriers.APN,
-                            Carriers.PORT,
-                            Carriers.PROTOCOL,
-                            Carriers.NUMERIC,
-                    };
+            final String[] testProjection = {
+                Carriers.NAME, Carriers.APN, Carriers.PORT, Carriers.PROTOCOL, Carriers.NUMERIC,
+            };
             String selection = Carriers.NAME + "=?";
-            String[] selectionArgs = { NAME };
-            Log.d(TAG, "testInsertCarriers query projection: " + Arrays.toString(testProjection)
-                    + "\ntestInsertCarriers selection: " + selection
-                    + "\ntestInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            Cursor cursor = mContentResolver.query(
-                    uri, testProjection, selection, selectionArgs, null);
-            assertEquals("Unexpected number of APNs returned by cursor",
-                    1, cursor.getCount());
+            String[] selectionArgs = {NAME};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers query projection: "
+                            + Arrays.toString(testProjection)
+                            + "\ntestInsertCarriers selection: "
+                            + selection
+                            + "\ntestInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            Cursor cursor =
+                    mContentResolver.query(uri, testProjection, selection, selectionArgs, null);
+            assertWithMessage("Unexpected number of APNs returned by cursor")
+                    .that(cursor.getCount())
+                    .isEqualTo(1);
 
             // Update the table with invalid column
             String invalidColumn = "random";
             contentValues.put(invalidColumn, invalidColumn);
-            try {
-                mContentResolver.update(uri, contentValues, selection, selectionArgs);
-                fail();
-            } catch (SQLiteException e) {
-                // Expected: If there's no such a column, an exception will be thrown and the
-                // Activity Manager will kill this process shortly.
-            }
+            // Expected: If there's no such a column, an exception will be thrown and
+            // ActivityManager will kill this process shortly.
+            assertThrows(
+                    SQLiteException.class,
+                    () -> mContentResolver.update(uri, contentValues, selection, selectionArgs));
 
             // delete test content
             final String selectionToDelete = Carriers.NAME + "=?";
-            String[] selectionArgsToDelete = { NAME };
-            Log.d(TAG, "testInsertCarriers deleting selection: " + selectionToDelete
-                    + "testInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            int numRowsDeleted = mContentResolver.delete(
-                    uri, selectionToDelete, selectionArgsToDelete);
-            assertEquals("Unexpected number of rows deleted", 1, numRowsDeleted);
+            String[] selectionArgsToDelete = {NAME};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers deleting selection: "
+                            + selectionToDelete
+                            + "testInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            int numRowsDeleted =
+                    mContentResolver.delete(uri, selectionToDelete, selectionArgsToDelete);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(numRowsDeleted)
+                    .isEqualTo(1);
 
             // verify that deleted values are gone
-            cursor = mContentResolver.query(
-                    uri, testProjection, selectionToDelete, selectionArgsToDelete, null);
-            assertEquals("Unexpected number of rows deleted", 0, cursor.getCount());
+            cursor =
+                    mContentResolver.query(
+                            uri, testProjection, selectionToDelete, selectionArgsToDelete, null);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(cursor.getCount())
+                    .isEqualTo(0);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
     @Test
     public void testDeleteConflictCase() {
-        if (!mHasCellular) return;
         String invalidColumn = "random";
         Uri uri = Carriers.CONTENT_URI;
-        // CONTENT_URI = Uri.parse("content://telephony/carriers");
-        // Create A set of column_name/value pairs to add to the database.
+        // Create a set of column_name/value pairs to add to the database.
         ContentValues contentValues = new ContentValues();
         contentValues.put(Carriers.NAME, NAME);
         contentValues.put(Carriers.APN, APN);
@@ -325,68 +339,84 @@
             // Insert the value into database.
             Log.d(TAG, "testInsertCarriers Inserting contentValues: " + contentValues.toString());
             Uri newUri = mContentResolver.insert(uri, contentValues);
-            assertNotNull("Failed to insert to table", newUri);
+            assertWithMessage("Failed to insert to table").that(newUri).isNotNull();
 
             // Get the values in table.
-            final String[] testProjection =
-                    {
-                            Carriers.NAME,
-                            Carriers.APN,
-                            Carriers.PORT,
-                            Carriers.PROTOCOL,
-                            Carriers.NUMERIC,
-                    };
+            final String[] testProjection = {
+                Carriers.NAME, Carriers.APN, Carriers.PORT, Carriers.PROTOCOL, Carriers.NUMERIC,
+            };
             String selection = Carriers.NAME + "=?";
-            String[] selectionArgs = { NAME };
-            Log.d(TAG, "testInsertCarriers query projection: " + Arrays.toString(testProjection)
-                    + "\ntestInsertCarriers selection: " + selection
-                    + "\ntestInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            Cursor cursor = mContentResolver.query(
-                    uri, testProjection, selection, selectionArgs, null);
-            assertEquals("Unexpected number of APNs returned by cursor", 1, cursor.getCount());
+            String[] selectionArgs = {NAME};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers query projection: "
+                            + Arrays.toString(testProjection)
+                            + "\ntestInsertCarriers selection: "
+                            + selection
+                            + "\ntestInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            Cursor cursor =
+                    mContentResolver.query(uri, testProjection, selection, selectionArgs, null);
+            assertWithMessage("Unexpected number of APNs returned by cursor")
+                    .that(cursor.getCount())
+                    .isEqualTo(1);
 
             // try to delete with invalid selection
-            String selectionToDelete = invalidColumn + "=?";
-            String[] selectionArgsToDelete = { invalidColumn };
-            Log.d(TAG, "testInsertCarriers deleting selection: " + selectionToDelete
-                    + "testInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
+            String invalidSelectionToDelete = invalidColumn + "=?";
+            String[] invalidSelectionArgsToDelete = {invalidColumn};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers deleting selection: "
+                            + invalidSelectionToDelete
+                            + "testInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
 
-            try {
-                mContentResolver.delete(uri, selectionToDelete, selectionArgsToDelete);
-                fail();
-            } catch (SQLiteException e) {
-                // Expected: If there's no such a column, an exception will be thrown and the
-                // Activity Manager will kill this process shortly.
-            }
+            // Expected: If there's no such a column, an exception will be thrown and
+            // ActivityManager will kill this process shortly.
+            assertThrows(
+                    SQLiteException.class,
+                    () ->
+                            mContentResolver.delete(
+                                    uri, invalidSelectionToDelete, invalidSelectionArgsToDelete));
 
             // verify that deleted value is still there
             selection = Carriers.NAME + "=?";
             selectionArgs[0] = NAME;
             cursor = mContentResolver.query(uri, testProjection, selection, selectionArgs, null);
-            assertEquals("Unexpected number of APNs returned by cursor", 1, cursor.getCount());
+            assertWithMessage("Unexpected number of APNs returned by cursor")
+                    .that(cursor.getCount())
+                    .isEqualTo(1);
 
             // delete test content
-            selectionToDelete = Carriers.NAME + "=?";
-            selectionArgsToDelete[0] = NAME;
-            Log.d(TAG, "testInsertCarriers deleting selection: " + selectionToDelete
-                    + "testInsertCarriers selectionArgs: " + Arrays.toString(selectionArgs));
-            int numRowsDeleted = mContentResolver.delete(
-                    uri, selectionToDelete, selectionArgsToDelete);
-            assertEquals("Unexpected number of rows deleted", 1, numRowsDeleted);
+            String selectionToDelete = Carriers.NAME + "=?";
+            String[] selectionArgsToDelete = {NAME};
+            Log.d(
+                    TAG,
+                    "testInsertCarriers deleting selection: "
+                            + selectionToDelete
+                            + "testInsertCarriers selectionArgs: "
+                            + Arrays.toString(selectionArgs));
+            int numRowsDeleted =
+                    mContentResolver.delete(uri, selectionToDelete, selectionArgsToDelete);
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(numRowsDeleted)
+                    .isEqualTo(1);
 
             // verify that deleted values are gone
             cursor = mContentResolver.query(uri, testProjection, selection, selectionArgs, null);
-            assertEquals("Unexpected number of rows deleted", 0, cursor.getCount());
+            assertWithMessage("Unexpected number of rows deleted")
+                    .that(cursor.getCount())
+                    .isEqualTo(0);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
     private ContentValues makeDefaultContentValues() {
         ContentValues contentValues = new ContentValues();
-        for (Map.Entry<String, String> entry: APN_MAP.entrySet()) {
+        for (Map.Entry<String, String> entry : APN_MAP.entrySet()) {
             contentValues.put(entry.getKey(), entry.getValue());
         }
         return contentValues;
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/BaseCarrierApiTest.java b/tests/tests/carrierapi/src/android/carrierapi/cts/BaseCarrierApiTest.java
new file mode 100644
index 0000000..b0b6504
--- /dev/null
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/BaseCarrierApiTest.java
@@ -0,0 +1,83 @@
+/*
+ * 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.carrierapi.cts;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assume.assumeTrue;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
+import androidx.test.InstrumentationRegistry;
+
+import com.android.compatibility.common.util.FeatureUtil;
+
+import org.junit.Before;
+
+/**
+ * Common test base to ensure uniform preconditions checking. This class will check for:
+ *
+ * <ol>
+ *   <li>{@link android.content.pm.PackageManager#FEATURE_TELEPHONY}
+ *   <li>A SIM that grants us carrier privileges is currently active in the device
+ * </ol>
+ *
+ * Just inherit from this class when writing your test, then you are able to assume in the subclass
+ * {@code Before} method that preconditions have all passed. The setup and test methods will not be
+ * executed if preconditions are not met.
+ */
+public abstract class BaseCarrierApiTest {
+    protected static final String NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE =
+            "This test requires a SIM card with carrier privilege rules on it.\n"
+                    + "Visit https://source.android.com/devices/tech/config/uicc.html";
+
+    protected Context getContext() {
+        return InstrumentationRegistry.getInstrumentation().getTargetContext();
+    }
+
+    private boolean mPreconditionsSatisfied = false;
+
+    protected boolean werePreconditionsSatisfied() {
+        return mPreconditionsSatisfied;
+    }
+
+    /**
+     * Subclasses do NOT need to explicitly call or override this method. Per the JUnit docs, a
+     * superclass {@code Before} method always executes before a subclass {@code Before} method.
+     *
+     * <p>If preconditions fail, neither the subclass {@code Before} method(s) nor the actual {@code
+     * Test} method will execute, but {@code After} methods will still execute. If a subclass does
+     * work in an {@code After} method, then it should first check {@link
+     * #werePreconditionsSatisfied} and return early without doing any work if it's {@code false}.
+     */
+    @Before
+    public void ensurePreconditionsMet() {
+        mPreconditionsSatisfied = false;
+        // Bail out if no cellular support.
+        assumeTrue(
+                "No cellular support, CarrierAPI."
+                        + getClass().getSimpleName()
+                        + " cases will be skipped",
+                FeatureUtil.hasTelephony());
+        // We must run with carrier privileges.
+        assertWithMessage(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE)
+                .that(getContext().getSystemService(TelephonyManager.class).hasCarrierPrivileges())
+                .isTrue();
+        mPreconditionsSatisfied = true;
+    }
+}
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/BugreportManagerTest.java b/tests/tests/carrierapi/src/android/carrierapi/cts/BugreportManagerTest.java
index b154865..4e5f4fa 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/BugreportManagerTest.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/BugreportManagerTest.java
@@ -22,17 +22,13 @@
 import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeTrue;
 
-import android.content.Context;
-import android.content.pm.PackageManager;
 import android.os.BugreportManager;
 import android.os.BugreportManager.BugreportCallback;
 import android.os.BugreportParams;
 import android.os.FileUtils;
 import android.os.ParcelFileDescriptor;
 import android.platform.test.annotations.SystemUserOnly;
-import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import androidx.test.InstrumentationRegistry;
@@ -68,7 +64,7 @@
  */
 @SystemUserOnly(reason = "BugreportManager requires calls to originate from the primary user")
 @RunWith(AndroidJUnit4.class)
-public class BugreportManagerTest {
+public class BugreportManagerTest extends BaseCarrierApiTest {
     private static final String TAG = "BugreportManagerTest";
 
     // See BugreportManagerServiceImpl#BUGREPORT_SERVICE.
@@ -86,7 +82,6 @@
 
     @Rule public TestName name = new TestName();
 
-    private TelephonyManager mTelephonyManager;
     private BugreportManager mBugreportManager;
     private File mBugreportFile;
     private ParcelFileDescriptor mBugreportFd;
@@ -95,19 +90,7 @@
 
     @Before
     public void setUp() throws Exception {
-        Context context = InstrumentationRegistry.getContext();
-        // Bail out if no cellular support.
-        assumeTrue(
-                "No cellular support, CarrierAPI.BugreportManagerTest cases will be skipped",
-                context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY));
-        // Fail the test if we don't have carrier privileges.
-        mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        assertWithMessage(
-                        "This test requires a SIM card with carrier privilege rules on it.\n"
-                                + "Visit https://source.android.com/devices/tech/config/uicc.html")
-                .that(mTelephonyManager.hasCarrierPrivileges())
-                .isTrue();
-        mBugreportManager = context.getSystemService(BugreportManager.class);
+        mBugreportManager = getContext().getSystemService(BugreportManager.class);
 
         killCurrentBugreportIfRunning();
         mBugreportFile = createTempFile("bugreport_" + name.getMethodName(), ".zip");
@@ -120,6 +103,8 @@
 
     @After
     public void tearDown() throws Exception {
+        if (!werePreconditionsSatisfied()) return;
+
         FileUtils.closeQuietly(mBugreportFd);
         FileUtils.closeQuietly(mScreenshotFd);
         killCurrentBugreportIfRunning();
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/CarrierApiTest.java b/tests/tests/carrierapi/src/android/carrierapi/cts/CarrierApiTest.java
index da46842..baae880 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/CarrierApiTest.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/CarrierApiTest.java
@@ -22,9 +22,10 @@
 import static android.telephony.IccOpenLogicalChannelResponse.INVALID_CHANNEL;
 import static android.telephony.IccOpenLogicalChannelResponse.STATUS_NO_ERROR;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assert.fail;
 
 import android.content.BroadcastReceiver;
 import android.content.ContentProviderClient;
@@ -32,8 +33,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.AsyncTask;
@@ -55,15 +54,21 @@
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
 import android.util.Base64;
 import android.util.Log;
 
+import androidx.test.runner.AndroidJUnit4;
+
 import com.android.compatibility.common.util.ShellIdentityUtils;
 
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
+import com.google.common.collect.Range;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -78,23 +83,27 @@
 
 import javax.annotation.Nonnull;
 
+/**
+ * Unit tests for various carrier-related APIs.
+ *
+ * <p>Test using `atest CtsCarrierApiTestCases:CarrierApiTest` or `make cts -j64 && cts-tradefed run
+ * cts -m CtsCarrierApiTestCases --test android.carrierapi.cts.CarrierApiTest`
+ */
 // TODO(b/130187425): Split CarrierApiTest apart to have separate test classes for functionality
-public class CarrierApiTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class CarrierApiTest extends BaseCarrierApiTest {
     private static final String TAG = "CarrierApiTest";
+
     private TelephonyManager mTelephonyManager;
     private CarrierConfigManager mCarrierConfigManager;
-    private PackageManager mPackageManager;
     private SubscriptionManager mSubscriptionManager;
     private ContentProviderClient mVoicemailProvider;
     private ContentProviderClient mStatusProvider;
     private Uri mVoicemailContentUri;
     private Uri mStatusContentUri;
-    private boolean hasCellular;
     private String selfPackageName;
-    private String selfCertHash;
     private HandlerThread mListenerThread;
 
-    private static final String FiDevCert = "24EB92CBB156B280FA4E1429A6ECEEB6E5C1BFE4";
     // The minimum allocatable logical channel number, per TS 102 221 Section 11.1.17.1
     private static final int MIN_LOGICAL_CHANNEL = 1;
     // The maximum allocatable logical channel number in the standard range, per TS 102 221 Section
@@ -163,37 +172,26 @@
 
     private static final int DSDS_PHONE_COUNT = 2;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mPackageManager = getContext().getPackageManager();
-        mTelephonyManager = (TelephonyManager)
-                getContext().getSystemService(Context.TELEPHONY_SERVICE);
-        hasCellular = hasCellular();
-        if (!hasCellular) {
-            Log.e(TAG, "No cellular support, all tests will be skipped.");
-            return;
-        }
-
-        mCarrierConfigManager = (CarrierConfigManager)
-                getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        mSubscriptionManager = (SubscriptionManager)
-                getContext().getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-        selfPackageName = getContext().getPackageName();
-        selfCertHash = getCertHash(selfPackageName);
+    @Before
+    public void setUp() throws Exception {
+        Context context = getContext();
+        mTelephonyManager = context.getSystemService(TelephonyManager.class);
+        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        selfPackageName = context.getPackageName();
         mVoicemailContentUri = VoicemailContract.Voicemails.buildSourceUri(selfPackageName);
-        mVoicemailProvider = getContext().getContentResolver()
-                .acquireContentProviderClient(mVoicemailContentUri);
+        mVoicemailProvider =
+                context.getContentResolver().acquireContentProviderClient(mVoicemailContentUri);
         mStatusContentUri = VoicemailContract.Status.buildSourceUri(selfPackageName);
-        mStatusProvider = getContext().getContentResolver()
-                .acquireContentProviderClient(mStatusContentUri);
+        mStatusProvider =
+                context.getContentResolver().acquireContentProviderClient(mStatusContentUri);
         mListenerThread = new HandlerThread("CarrierApiTest");
         mListenerThread.start();
     }
 
-    @Override
+    @After
     public void tearDown() throws Exception {
-        if (!hasCellular) return;
+        if (!werePreconditionsSatisfied()) return;
 
         mListenerThread.quit();
         try {
@@ -202,68 +200,34 @@
         } catch (Exception e) {
             Log.w(TAG, "Failed to clean up voicemail tables in tearDown", e);
         }
-        super.tearDown();
     }
 
-    /**
-     * Checks whether the cellular stack should be running on this device.
-     */
-    private boolean hasCellular() {
-        return mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) &&
-                mTelephonyManager.getPhoneCount() > 0;
-    }
-
-    private boolean isSimCardPresent() {
-        return mTelephonyManager.getSimState() != TelephonyManager.SIM_STATE_ABSENT;
-    }
-
-    private String getCertHash(String pkgName) {
-        try {
-            PackageInfo pInfo = mPackageManager.getPackageInfo(pkgName,
-                    PackageManager.GET_SIGNATURES | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS);
-            MessageDigest md = MessageDigest.getInstance("SHA-1");
-            return bytesToHexString(md.digest(pInfo.signatures[0].toByteArray()));
-        } catch (PackageManager.NameNotFoundException ex) {
-            Log.e(TAG, pkgName + " not found", ex);
-        } catch (NoSuchAlgorithmException ex) {
-            Log.e(TAG, "Algorithm SHA1 is not found.");
-        }
-        return "";
-    }
-
-    private void failMessage() {
-        if (FiDevCert.equalsIgnoreCase(selfCertHash)) {
-            fail("This test requires a Project Fi SIM card.");
-        } else {
-            fail("This test requires a SIM card with carrier privilege rule on it.\n" +
-                 "Cert hash: " + selfCertHash + "\n" +
-                 "Visit https://source.android.com/devices/tech/config/uicc.html");
-        }
-    }
-
+    @Test
     public void testSimCardPresent() {
-        if (!hasCellular) return;
-        assertTrue("This test requires SIM card.", isSimCardPresent());
+        assertWithMessage("This test requires a SIM card")
+                .that(mTelephonyManager.getSimState())
+                .isNotEqualTo(TelephonyManager.SIM_STATE_ABSENT);
     }
 
+    @Test
     public void testHasCarrierPrivileges() {
-        if (!hasCellular) return;
-        if (!mTelephonyManager.hasCarrierPrivileges()) {
-            failMessage();
-        }
+        assertWithMessage(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE)
+                .that(mTelephonyManager.hasCarrierPrivileges())
+                .isTrue();
     }
 
     private static void assertUpdateAvailableNetworkSuccess(int value) {
-        assertEquals(TelephonyManager.UPDATE_AVAILABLE_NETWORKS_SUCCESS, value);
+        assertThat(value).isEqualTo(TelephonyManager.UPDATE_AVAILABLE_NETWORKS_SUCCESS);
     }
 
     private static void assertUpdateAvailableNetworkNoOpportunisticSubAvailable(int value) {
-        assertEquals(
-                TelephonyManager.UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE, value);
+        assertThat(value)
+                .isEqualTo(
+                        TelephonyManager.UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE);
     }
 
     private static void assertSetOpportunisticSubSuccess(int value) {
-        assertEquals(TelephonyManager.SET_OPPORTUNISTIC_SUB_SUCCESS, value);
+        assertThat(value).isEqualTo(TelephonyManager.SET_OPPORTUNISTIC_SUB_SUCCESS);
     }
 
     private int getFirstActivateCarrierPrivilegedSubscriptionId() {
@@ -272,8 +236,8 @@
                 mSubscriptionManager.getActiveSubscriptionInfoList();
         if (subscriptionInfos != null) {
             for (SubscriptionInfo info : subscriptionInfos) {
-                TelephonyManager telephonyManager = mTelephonyManager.createForSubscriptionId(
-                        info.getSubscriptionId());
+                TelephonyManager telephonyManager =
+                        mTelephonyManager.createForSubscriptionId(info.getSubscriptionId());
                 if (telephonyManager.hasCarrierPrivileges()) {
                     subId = info.getSubscriptionId();
                     return subId;
@@ -283,15 +247,12 @@
         return subId;
     }
 
+    @Test
     public void testUpdateAvailableNetworksWithCarrierPrivilege() {
-        if (!hasCellular) return;
-
         int subIdWithCarrierPrivilege = getFirstActivateCarrierPrivilegedSubscriptionId();
-        int activeSubscriptionInfoCount = ShellIdentityUtils.invokeMethodWithShellPermissions(
-                mSubscriptionManager, (tm) -> tm.getActiveSubscriptionInfoCount());
-        if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
-            return;
-        }
+        int activeSubscriptionInfoCount =
+                ShellIdentityUtils.invokeMethodWithShellPermissions(
+                        mSubscriptionManager, (tm) -> tm.getActiveSubscriptionInfoCount());
         if (mTelephonyManager.getPhoneCount() == 1) {
             return;
         }
@@ -311,42 +272,52 @@
         List<String> mccMncs = new ArrayList<String>();
         List<Integer> bands = new ArrayList<Integer>();
         List<AvailableNetworkInfo> availableNetworkInfos = new ArrayList<AvailableNetworkInfo>();
-        Consumer<Integer> callbackSuccess =
-                CarrierApiTest::assertUpdateAvailableNetworkSuccess;
+        Consumer<Integer> callbackSuccess = CarrierApiTest::assertUpdateAvailableNetworkSuccess;
         Consumer<Integer> callbackNoOpportunisticSubAvailable =
                 CarrierApiTest::assertUpdateAvailableNetworkNoOpportunisticSubAvailable;
         Consumer<Integer> setOpCallbackSuccess = CarrierApiTest::assertSetOpportunisticSubSuccess;
-        if (subscriptionInfoList == null || subscriptionInfoList.size() == 0
+        if (subscriptionInfoList == null
+                || subscriptionInfoList.size() == 0
                 || !mSubscriptionManager.isActiveSubscriptionId(
                         subscriptionInfoList.get(0).getSubscriptionId())) {
             try {
-                AvailableNetworkInfo availableNetworkInfo = new AvailableNetworkInfo(
-                        subIdWithCarrierPrivilege, AvailableNetworkInfo.PRIORITY_HIGH, mccMncs,
-                        bands);
+                AvailableNetworkInfo availableNetworkInfo =
+                        new AvailableNetworkInfo(
+                                subIdWithCarrierPrivilege,
+                                AvailableNetworkInfo.PRIORITY_HIGH,
+                                mccMncs,
+                                bands);
                 availableNetworkInfos.add(availableNetworkInfo);
                 // Call updateAvailableNetworks without opportunistic subscription.
                 // callbackNoOpportunisticSubAvailable is expected to be triggered
                 // and the return value will be checked against
                 // UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE
-                mTelephonyManager.updateAvailableNetworks(availableNetworkInfos,
-                        AsyncTask.SERIAL_EXECUTOR, callbackNoOpportunisticSubAvailable);
+                mTelephonyManager.updateAvailableNetworks(
+                        availableNetworkInfos,
+                        AsyncTask.SERIAL_EXECUTOR,
+                        callbackNoOpportunisticSubAvailable);
             } finally {
                 // clear all the operations at the end of test.
                 availableNetworkInfos.clear();
-                mTelephonyManager.updateAvailableNetworks(availableNetworkInfos,
-                        AsyncTask.SERIAL_EXECUTOR, callbackNoOpportunisticSubAvailable);
+                mTelephonyManager.updateAvailableNetworks(
+                        availableNetworkInfos,
+                        AsyncTask.SERIAL_EXECUTOR,
+                        callbackNoOpportunisticSubAvailable);
             }
         } else {
             // This is case of DSDS phone, one active opportunistic subscription and one
             // active primary subscription.
             int resultSubId;
             try {
-                AvailableNetworkInfo availableNetworkInfo = new AvailableNetworkInfo(
-                        subscriptionInfoList.get(0).getSubscriptionId(),
-                        AvailableNetworkInfo.PRIORITY_HIGH, mccMncs, bands);
+                AvailableNetworkInfo availableNetworkInfo =
+                        new AvailableNetworkInfo(
+                                subscriptionInfoList.get(0).getSubscriptionId(),
+                                AvailableNetworkInfo.PRIORITY_HIGH,
+                                mccMncs,
+                                bands);
                 availableNetworkInfos.add(availableNetworkInfo);
-                mTelephonyManager.updateAvailableNetworks(availableNetworkInfos,
-                        AsyncTask.SERIAL_EXECUTOR, callbackSuccess);
+                mTelephonyManager.updateAvailableNetworks(
+                        availableNetworkInfos, AsyncTask.SERIAL_EXECUTOR, callbackSuccess);
                 // wait for the data change to take effect
                 waitForMs(500);
                 // Call setPreferredData and reconfirm with getPreferred data
@@ -357,19 +328,21 @@
                 // wait for the data change to take effect
                 waitForMs(500);
                 resultSubId = mTelephonyManager.getPreferredOpportunisticDataSubscription();
-                assertEquals(preferSubId, resultSubId);
+                assertThat(resultSubId).isEqualTo(preferSubId);
             } finally {
                 // clear all the operations at the end of test.
                 availableNetworkInfos.clear();
-                mTelephonyManager.updateAvailableNetworks(availableNetworkInfos,
-                        AsyncTask.SERIAL_EXECUTOR, callbackSuccess);
+                mTelephonyManager.updateAvailableNetworks(
+                        availableNetworkInfos, AsyncTask.SERIAL_EXECUTOR, callbackSuccess);
                 waitForMs(500);
                 mTelephonyManager.setPreferredOpportunisticDataSubscription(
-                        SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, false,
-                        AsyncTask.SERIAL_EXECUTOR, callbackSuccess);
+                        SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+                        false,
+                        AsyncTask.SERIAL_EXECUTOR,
+                        callbackSuccess);
                 waitForMs(500);
                 resultSubId = mTelephonyManager.getPreferredOpportunisticDataSubscription();
-                assertEquals(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, resultSubId);
+                assertThat(resultSubId).isEqualTo(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
             }
         }
     }
@@ -382,107 +355,145 @@
         }
     }
 
+    @Test
     public void testGetIccAuthentication() {
         // EAP-SIM rand is 16 bytes.
         String base64Challenge = "ECcTqwuo6OfY8ddFRboD9WM=";
         String base64Challenge2 = "EMNxjsFrPCpm+KcgCmQGnwQ=";
-        if (!hasCellular) return;
+
         try {
-            assertNull("getIccAuthentication should return null for empty data.",
-                    mTelephonyManager.getIccAuthentication(TelephonyManager.APPTYPE_USIM,
-                    TelephonyManager.AUTHTYPE_EAP_AKA, ""));
-            String response = mTelephonyManager.getIccAuthentication(TelephonyManager.APPTYPE_USIM,
-                    TelephonyManager.AUTHTYPE_EAP_SIM, base64Challenge);
-            assertTrue("Response to EAP-SIM Challenge must not be Null.", response != null);
+            assertWithMessage("getIccAuthentication should return null for empty data.")
+                    .that(
+                            mTelephonyManager.getIccAuthentication(
+                                    TelephonyManager.APPTYPE_USIM,
+                                    TelephonyManager.AUTHTYPE_EAP_AKA,
+                                    ""))
+                    .isNull();
+            String response =
+                    mTelephonyManager.getIccAuthentication(
+                            TelephonyManager.APPTYPE_USIM,
+                            TelephonyManager.AUTHTYPE_EAP_SIM,
+                            base64Challenge);
+            assertWithMessage("Response to EAP-SIM Challenge must not be Null.")
+                    .that(response)
+                    .isNotNull();
             // response is base64 encoded. After decoding, the value should be:
             // 1 length byte + SRES(4 bytes) + 1 length byte + Kc(8 bytes)
             byte[] result = android.util.Base64.decode(response, android.util.Base64.DEFAULT);
-            assertTrue("Result length must be 14 bytes.", 14 == result.length);
-            String response2 = mTelephonyManager.getIccAuthentication(TelephonyManager.APPTYPE_USIM,
-                    TelephonyManager.AUTHTYPE_EAP_SIM, base64Challenge2);
-            assertTrue("Two responses must be different.", !response.equals(response2));
+            assertThat(result).hasLength(14);
+            String response2 =
+                    mTelephonyManager.getIccAuthentication(
+                            TelephonyManager.APPTYPE_USIM,
+                            TelephonyManager.AUTHTYPE_EAP_SIM,
+                            base64Challenge2);
+            assertWithMessage("Two responses must be different")
+                    .that(response)
+                    .isNotEqualTo(response2);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     @SystemUserOnly(reason = "b/177921545, broadcast sent only to primary user")
     public void testSendDialerSpecialCode() {
-        if (!hasCellular) return;
-        try {
-            IntentReceiver intentReceiver = new IntentReceiver();
-            final IntentFilter intentFilter = new IntentFilter();
-            intentFilter.addAction(Telephony.Sms.Intents.SECRET_CODE_ACTION);
-            intentFilter.addDataScheme("android_secret_code");
-            getContext().registerReceiver(intentReceiver, intentFilter);
+        IntentReceiver intentReceiver = new IntentReceiver();
+        final IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(Telephony.Sms.Intents.SECRET_CODE_ACTION);
+        intentFilter.addDataScheme("android_secret_code");
 
+        Context context = getContext();
+        context.registerReceiver(intentReceiver, intentFilter);
+        try {
             mTelephonyManager.sendDialerSpecialCode("4636");
-            assertTrue("Did not receive expected Intent: " +
-                    Telephony.Sms.Intents.SECRET_CODE_ACTION,
-                    intentReceiver.waitForReceive());
+            assertWithMessage(
+                            "Did not receive expected Intent: "
+                                    + Telephony.Sms.Intents.SECRET_CODE_ACTION)
+                    .that(intentReceiver.waitForReceive())
+                    .isTrue();
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         } catch (InterruptedException e) {
             Log.d(TAG, "Broadcast receiver wait was interrupted.");
+        } finally {
+            context.unregisterReceiver(intentReceiver);
         }
     }
 
+    @Test
     public void testSubscriptionInfoListing() {
-        if (!hasCellular) return;
         try {
-            assertTrue("getActiveSubscriptionInfoCount() should be non-zero",
-                    mSubscriptionManager.getActiveSubscriptionInfoCount() > 0);
+            assertThat(mSubscriptionManager.getActiveSubscriptionInfoCount()).isGreaterThan(0);
             List<SubscriptionInfo> subInfoList =
                     mSubscriptionManager.getActiveSubscriptionInfoList();
-            assertNotNull("getActiveSubscriptionInfoList() returned null", subInfoList);
-            assertFalse("getActiveSubscriptionInfoList() returned an empty list",
-                    subInfoList.isEmpty());
+            assertWithMessage("getActiveSubscriptionInfoList() returned null")
+                    .that(subInfoList)
+                    .isNotNull();
+            assertWithMessage("getActiveSubscriptionInfoList() returned an empty list")
+                    .that(subInfoList)
+                    .isNotEmpty();
             for (SubscriptionInfo info : subInfoList) {
                 TelephonyManager tm =
                         mTelephonyManager.createForSubscriptionId(info.getSubscriptionId());
-                assertTrue("getActiveSubscriptionInfoList() returned an inaccessible subscription",
-                        tm.hasCarrierPrivileges());
+                assertWithMessage(
+                                "getActiveSubscriptionInfoList() returned an inaccessible"
+                                        + " subscription")
+                        .that(tm.hasCarrierPrivileges())
+                        .isTrue();
 
                 // Check other APIs to make sure they are accessible and return consistent info.
                 SubscriptionInfo infoForSlot =
                         mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(
                                 info.getSimSlotIndex());
-                assertNotNull("getActiveSubscriptionInfoForSimSlotIndex() returned null",
-                        infoForSlot);
-                assertEquals(
-                        "getActiveSubscriptionInfoForSimSlotIndex() returned inconsistent info",
-                        info.getSubscriptionId(), infoForSlot.getSubscriptionId());
+                assertWithMessage("getActiveSubscriptionInfoForSimSlotIndex() returned null")
+                        .that(infoForSlot)
+                        .isNotNull();
+                assertWithMessage(
+                                "getActiveSubscriptionInfoForSimSlotIndex() returned inconsistent"
+                                        + " info")
+                        .that(infoForSlot.getSubscriptionId())
+                        .isEqualTo(info.getSubscriptionId());
 
                 SubscriptionInfo infoForSubId =
                         mSubscriptionManager.getActiveSubscriptionInfo(info.getSubscriptionId());
-                assertNotNull("getActiveSubscriptionInfo() returned null", infoForSubId);
-                assertEquals("getActiveSubscriptionInfo() returned inconsistent info",
-                        info.getSubscriptionId(), infoForSubId.getSubscriptionId());
+                assertWithMessage("getActiveSubscriptionInfo() returned null")
+                        .that(infoForSubId)
+                        .isNotNull();
+                assertWithMessage("getActiveSubscriptionInfo() returned inconsistent info")
+                        .that(infoForSubId.getSubscriptionId())
+                        .isEqualTo(info.getSubscriptionId());
             }
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testCarrierConfigIsAccessible() {
-        if (!hasCellular) return;
         try {
             PersistableBundle bundle = mCarrierConfigManager.getConfig();
-            assertNotNull("CarrierConfigManager#getConfig() returned null", bundle);
-            assertFalse("CarrierConfigManager#getConfig() returned empty bundle", bundle.isEmpty());
+            assertWithMessage("CarrierConfigManager#getConfig() returned null")
+                    .that(bundle)
+                    .isNotNull();
+            assertWithMessage("CarrierConfigManager#getConfig() returned empty bundle")
+                    .that(bundle.isEmpty())
+                    .isFalse();
 
             int subId = SubscriptionManager.getDefaultSubscriptionId();
             bundle = mCarrierConfigManager.getConfigForSubId(subId);
-            assertNotNull("CarrierConfigManager#getConfigForSubId() returned null", bundle);
-            assertFalse("CarrierConfigManager#getConfigForSubId() returned empty bundle",
-                    bundle.isEmpty());
+            assertWithMessage("CarrierConfigManager#getConfigForSubId() returned null")
+                    .that(bundle)
+                    .isNotNull();
+            assertWithMessage("CarrierConfigManager#getConfigForSubId() returned empty bundle")
+                    .that(bundle.isEmpty())
+                    .isFalse();
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testTelephonyApisAreAccessible() {
-        if (!hasCellular) return;
         // The following methods may return any value depending on the state of the device. Simply
         // call them to make sure they do not throw any exceptions. Methods that return a device
         // identifier will be accessible to apps with carrier privileges in Q, but this may change
@@ -507,54 +518,65 @@
             mTelephonyManager.getManualNetworkSelectionPlmn();
             mTelephonyManager.setForbiddenPlmns(new ArrayList<String>());
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testVoicemailTableIsAccessible() throws Exception {
-        if (!hasCellular) return;
         ContentValues value = new ContentValues();
         value.put(VoicemailContract.Voicemails.NUMBER, "0123456789");
         value.put(VoicemailContract.Voicemails.SOURCE_PACKAGE, selfPackageName);
         try {
             Uri uri = mVoicemailProvider.insert(mVoicemailContentUri, value);
-            assertNotNull(uri);
-            Cursor cursor = mVoicemailProvider.query(uri,
-                    new String[] {
-                            VoicemailContract.Voicemails.NUMBER,
-                            VoicemailContract.Voicemails.SOURCE_PACKAGE
-                    }, null, null, null);
-            assertNotNull(cursor);
-            assertTrue(cursor.moveToFirst());
-            assertEquals("0123456789", cursor.getString(0));
-            assertEquals(selfPackageName, cursor.getString(1));
-            assertFalse(cursor.moveToNext());
+            assertThat(uri).isNotNull();
+            Cursor cursor =
+                    mVoicemailProvider.query(
+                            uri,
+                            new String[] {
+                                VoicemailContract.Voicemails.NUMBER,
+                                VoicemailContract.Voicemails.SOURCE_PACKAGE
+                            },
+                            null,
+                            null,
+                            null);
+            assertThat(cursor).isNotNull();
+            assertThat(cursor.moveToFirst()).isTrue();
+            assertThat(cursor.getString(0)).isEqualTo("0123456789");
+            assertThat(cursor.getString(1)).isEqualTo(selfPackageName);
+            assertThat(cursor.moveToNext()).isFalse();
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testVoicemailStatusTableIsAccessible() throws Exception {
-        if (!hasCellular) return;
         ContentValues value = new ContentValues();
-        value.put(VoicemailContract.Status.CONFIGURATION_STATE,
+        value.put(
+                VoicemailContract.Status.CONFIGURATION_STATE,
                 VoicemailContract.Status.CONFIGURATION_STATE_OK);
         value.put(VoicemailContract.Status.SOURCE_PACKAGE, selfPackageName);
         try {
             Uri uri = mStatusProvider.insert(mStatusContentUri, value);
-            assertNotNull(uri);
-            Cursor cursor = mVoicemailProvider.query(uri,
-                    new String[] {
-                            VoicemailContract.Status.CONFIGURATION_STATE,
-                            VoicemailContract.Status.SOURCE_PACKAGE
-                    }, null, null, null);
-            assertNotNull(cursor);
-            assertTrue(cursor.moveToFirst());
-            assertEquals(VoicemailContract.Status.CONFIGURATION_STATE_OK, cursor.getInt(0));
-            assertEquals(selfPackageName, cursor.getString(1));
-            assertFalse(cursor.moveToNext());
+            assertThat(uri).isNotNull();
+            Cursor cursor =
+                    mVoicemailProvider.query(
+                            uri,
+                            new String[] {
+                                VoicemailContract.Status.CONFIGURATION_STATE,
+                                VoicemailContract.Status.SOURCE_PACKAGE
+                            },
+                            null,
+                            null,
+                            null);
+            assertThat(cursor).isNotNull();
+            assertThat(cursor.moveToFirst()).isTrue();
+            assertThat(cursor.getInt(0)).isEqualTo(VoicemailContract.Status.CONFIGURATION_STATE_OK);
+            assertThat(cursor.getString(1)).isEqualTo(selfPackageName);
+            assertThat(cursor.moveToNext()).isFalse();
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
@@ -573,23 +595,23 @@
     static final int CARRIER_PRIVILEGE_LISTENERS =
             READ_PHONE_STATE_LISTENERS | READ_PRECISE_PHONE_STATE_LISTENERS;
 
+    @Test
     public void testGetManualNetworkSelectionPlmnPersisted() throws Exception {
-        if (!hasCellular) return;
         if (mTelephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_GSM) return;
 
         try {
             mTelephonyManager.setNetworkSelectionModeManual(
-                     TESTING_PLMN/* operatorNumeric */, true /* persistSelection */);
+                    TESTING_PLMN /* operatorNumeric */, true /* persistSelection */);
             String plmn = mTelephonyManager.getManualNetworkSelectionPlmn();
-            assertEquals(TESTING_PLMN, plmn);
+            assertThat(plmn).isEqualTo(TESTING_PLMN);
         } finally {
             mTelephonyManager.setNetworkSelectionModeAutomatic();
         }
     }
 
+    @Test
     public void testPhoneStateListener() throws Exception {
-        if (!hasCellular) return;
-        PhoneStateListener psl = new PhoneStateListener((Runnable r) -> { });
+        PhoneStateListener psl = new PhoneStateListener((Runnable r) -> {});
         try {
             mTelephonyManager.listen(psl, CARRIER_PRIVILEGE_LISTENERS);
         } finally {
@@ -597,60 +619,59 @@
         }
     }
 
+    @Test
     public void testIsManualNetworkSelectionAllowed() throws Exception {
-        if (!hasCellular) return;
         if (mTelephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_GSM) return;
 
         try {
-            assertTrue(mTelephonyManager.isManualNetworkSelectionAllowed());
+            assertThat(mTelephonyManager.isManualNetworkSelectionAllowed()).isTrue();
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testGetNetworkSelectionMode() throws Exception {
-        if (!hasCellular) return;
-
         try {
-            ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mTelephonyManager,
-                    (tm) -> tm.setNetworkSelectionModeAutomatic());
+            ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(
+                    mTelephonyManager, (tm) -> tm.setNetworkSelectionModeAutomatic());
             int networkMode = mTelephonyManager.getNetworkSelectionMode();
-            assertEquals(TelephonyManager.NETWORK_SELECTION_MODE_AUTO, networkMode);
+            assertThat(networkMode).isEqualTo(TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
         } catch (SecurityException e) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
     }
 
+    @Test
     public void testSubscriptionInfoChangeListener() throws Exception {
-        if (!hasCellular) return;
         final AtomicReference<SecurityException> error = new AtomicReference<>();
         final CountDownLatch latch = new CountDownLatch(1);
-        new Handler(mListenerThread.getLooper()).post(() -> {
-            SubscriptionManager.OnSubscriptionsChangedListener listener =
-                    new SubscriptionManager.OnSubscriptionsChangedListener();
-            try {
-                mSubscriptionManager.addOnSubscriptionsChangedListener(listener);
-            } catch (SecurityException e) {
-                error.set(e);
-            } finally {
-                mSubscriptionManager.removeOnSubscriptionsChangedListener(listener);
-                latch.countDown();
-            }
-        });
-        assertTrue("Test timed out", latch.await(30L, TimeUnit.SECONDS));
+        new Handler(mListenerThread.getLooper())
+                .post(
+                        () -> {
+                            SubscriptionManager.OnSubscriptionsChangedListener listener =
+                                    new SubscriptionManager.OnSubscriptionsChangedListener();
+                            try {
+                                mSubscriptionManager.addOnSubscriptionsChangedListener(listener);
+                            } catch (SecurityException e) {
+                                error.set(e);
+                            } finally {
+                                mSubscriptionManager.removeOnSubscriptionsChangedListener(listener);
+                                latch.countDown();
+                            }
+                        });
+        assertWithMessage("Test timed out").that(latch.await(30L, TimeUnit.SECONDS)).isTrue();
         if (error.get() != null) {
-            failMessage();
+            fail(NO_CARRIER_PRIVILEGES_FAILURE_MESSAGE);
         }
-
     }
 
     /**
      * Test that it's possible to open logical channels to the ICC. This mirrors the Manage Channel
      * command described in TS 102 221 Section 11.1.17.
      */
+    @Test
     public void testIccOpenLogicalChannel() {
-        if (!hasCellular) return;
-
         // The AID here doesn't matter - we just need to open a valid connection. In this case, the
         // specified AID ("") opens a channel and selects the MF.
         IccOpenLogicalChannelResponse response = mTelephonyManager.iccOpenLogicalChannel("");
@@ -662,9 +683,8 @@
         }
     }
 
+    @Test
     public void testIccOpenLogicalChannelWithValidP2() {
-        if (!hasCellular) return;
-
         // {@link TelephonyManager#iccOpenLogicalChannel} sends a Manage Channel (open) APDU
         // followed by a Select APDU with the given AID and p2 values. See Open Mobile API
         // Specification v3.2 Section 6.2.7.h and TS 102 221 for details.
@@ -678,20 +698,19 @@
         }
     }
 
+    @Test
     public void testIccOpenLogicalChannelWithInvalidP2() {
-        if (!hasCellular) return;
-
         // Valid p2 values are defined in TS 102 221 Table 11.2. Per Table 11.2, 0xF0 should be
         // invalid. Any p2 values that produce non '9000'/'62xx'/'63xx' status words are treated as
         // an error and the channel is not opened. Due to compatibility issues with older devices,
         // this check is only enabled for new devices launching on Q+.
-        if (Build.VERSION.FIRST_SDK_INT >= Build.VERSION_CODES.Q) {
+        if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.Q) {
             int p2 = 0xF0;
             IccOpenLogicalChannelResponse response =
                     mTelephonyManager.iccOpenLogicalChannel("", p2);
             final int logicalChannel = response.getChannel();
-            assertEquals(INVALID_CHANNEL, logicalChannel);
-            assertNotEquals(STATUS_NO_ERROR, response.getStatus());
+            assertThat(logicalChannel).isEqualTo(INVALID_CHANNEL);
+            assertThat(response.getStatus()).isNotEqualTo(STATUS_NO_ERROR);
         }
     }
 
@@ -699,36 +718,32 @@
      * Test that it's possible to close logical channels to the ICC. This follows the Manage Channel
      * command described in TS 102 221 Section 11.1.17.
      */
+    @Test
     public void testIccCloseLogicalChannel() {
-        if (!hasCellular) return;
-
         // The directory here doesn't matter - we just need to open a valid connection that can
         // later be closed. In this case, the specified AID ("") opens a channel and selects the MF.
         IccOpenLogicalChannelResponse response = mTelephonyManager.iccOpenLogicalChannel("");
 
         // Check that the select command succeeded. This ensures that the logical channel is indeed
         // open.
-        assertArrayEquals(STATUS_NORMAL, response.getSelectResponse());
-        assertTrue(mTelephonyManager.iccCloseLogicalChannel(response.getChannel()));
+        assertThat(response.getSelectResponse()).isEqualTo(STATUS_NORMAL);
+        assertThat(mTelephonyManager.iccCloseLogicalChannel(response.getChannel())).isTrue();
 
         // Close opened channel twice.
-        assertFalse(mTelephonyManager.iccCloseLogicalChannel(response.getChannel()));
+        assertThat(mTelephonyManager.iccCloseLogicalChannel(response.getChannel())).isFalse();
 
         // Channel 0 is guaranteed to be always available and cannot be closed, per TS 102 221
         // Section 11.1.17
-        assertFalse(mTelephonyManager.iccCloseLogicalChannel(0));
+        assertThat(mTelephonyManager.iccCloseLogicalChannel(0)).isFalse();
     }
 
     /**
      * This test ensures that valid APDU instructions can be sent and processed by the ICC. To do
-     * so, APDUs are sent to:
-     * - get the status of the MF
-     * - select the Access Rule Reference (ARR) for the MF
-     * - get the FCP template response for the select
+     * so, APDUs are sent to: - get the status of the MF - select the Access Rule Reference (ARR)
+     * for the MF - get the FCP template response for the select
      */
+    @Test
     public void testIccTransmitApduLogicalChannel() {
-        if (!hasCellular) return;
-
         // An open LC is required for transmitting APDU commands. This opens an LC to the MF.
         IccOpenLogicalChannelResponse iccOpenLogicalChannelResponse =
                 mTelephonyManager.iccOpenLogicalChannel("");
@@ -741,7 +756,7 @@
             int cla = CLA_STATUS;
             int p1 = 0; // no indication of application status
             int p2 = 0; // same response parameters as the SELECT in the iccOpenLogicalChannel()
-                        // above
+            // above
             int p3 = 0; // length of 'data' payload
             String data = "";
             String response =
@@ -749,8 +764,8 @@
                             logicalChannel, cla, COMMAND_STATUS, p1, p2, p3, data);
             FcpTemplate fcpTemplate = FcpTemplate.parseFcpTemplate(response);
             // Check that the FCP Template's file ID matches the MF
-            assertTrue(containsFileId(fcpTemplate, MF_FILE_ID));
-            assertEquals(STATUS_NORMAL_STRING, fcpTemplate.getStatus());
+            assertThat(containsFileId(fcpTemplate, MF_FILE_ID)).isTrue();
+            assertThat(fcpTemplate.getStatus()).isEqualTo(STATUS_NORMAL_STRING);
 
             // Select the Access Rule Reference for the MF. Similar to the MF, this will exist
             // across all SIM cards. TS 102 221 Section 11.1.1
@@ -767,7 +782,7 @@
             // previous SELECT command. Some devices that launched before Q return TPDUs (instead of
             // APDUs) - these devices must issue a subsequent GET RESPONSE command to get the FCP
             // template.
-            if (Build.VERSION.FIRST_SDK_INT < Build.VERSION_CODES.Q) {
+            if (Build.VERSION.DEVICE_INITIAL_SDK_INT < Build.VERSION_CODES.Q) {
                 // Conditionally need to send GET RESPONSE apdu based on response from
                 // TelephonyManager
                 if (response.startsWith(STATUS_BYTES_REMAINING)) {
@@ -785,8 +800,8 @@
 
             fcpTemplate = FcpTemplate.parseFcpTemplate(response);
             // Check that the FCP Template's file ID matches the selected ARR
-            assertTrue(containsFileId(fcpTemplate, MF_ARR_FILE_ID));
-            assertEquals(STATUS_NORMAL_STRING, fcpTemplate.getStatus());
+            assertThat(containsFileId(fcpTemplate, MF_ARR_FILE_ID)).isTrue();
+            assertThat(fcpTemplate.getStatus()).isEqualTo(STATUS_NORMAL_STRING);
         } finally {
             mTelephonyManager.iccCloseLogicalChannel(logicalChannel);
         }
@@ -796,9 +811,8 @@
      * Tests several invalid APDU instructions over a logical channel and makes sure appropriate
      * errors are returned from the UICC.
      */
+    @Test
     public void testIccTransmitApduLogicalChannelWithInvalidInputs() {
-        if (!hasCellular) return;
-
         // An open LC is required for transmitting apdu commands. This opens an LC to the MF.
         IccOpenLogicalChannelResponse iccOpenLogicalChannelResponse =
                 mTelephonyManager.iccOpenLogicalChannel("");
@@ -810,13 +824,13 @@
             int cla = CLA_STATUS | logicalChannel;
             int p1 = 0xFF; // only '00', '01', and '02' are allowed
             int p2 = 0; // same response parameters as the SELECT in the iccOpenLogicalChannel()
-                        // above
+            // above
             int p3 = 0; // length of 'data' payload
             String data = "";
             String response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, COMMAND_STATUS, p1, p2, p3, data);
-            assertTrue(INVALID_PARAMETERS_STATUSES.contains(response));
+            assertThat(INVALID_PARAMETERS_STATUSES.contains(response)).isTrue();
 
             // Select a file that doesn't exist
             cla = CLA_SELECT;
@@ -827,7 +841,7 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, COMMAND_SELECT, p1, p2, p3, data);
-            assertEquals(STATUS_FILE_NOT_FOUND, response);
+            assertThat(response).isEqualTo(STATUS_FILE_NOT_FOUND);
 
             // Manage channel with incorrect p1 parameter
             cla = CLA_MANAGE_CHANNEL | logicalChannel;
@@ -838,7 +852,7 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, COMMAND_MANAGE_CHANNEL, p1, p2, p3, data);
-            assertTrue(isErrorResponse(response));
+            assertThat(isErrorResponse(response)).isTrue();
 
             // Use an incorrect class byte for Status apdu
             cla = 0xFF;
@@ -849,7 +863,7 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, COMMAND_STATUS, p1, p2, p3, data);
-            assertEquals(STATUS_WRONG_CLASS, response);
+            assertThat(response).isEqualTo(STATUS_WRONG_CLASS);
 
             // Provide a data field that is longer than described for Select apdu
             cla = CLA_SELECT | logicalChannel;
@@ -860,7 +874,7 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, COMMAND_SELECT, p1, p2, p3, data);
-            assertTrue(isErrorResponse(response));
+            assertThat(isErrorResponse(response)).isTrue();
 
             // Use an invalid instruction
             cla = 0;
@@ -872,7 +886,7 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, cla, invalidInstruction, p1, p2, p3, data);
-            assertTrue(isErrorResponse(response));
+            assertThat(isErrorResponse(response)).isTrue();
         } finally {
             mTelephonyManager.iccCloseLogicalChannel(logicalChannel);
         }
@@ -882,9 +896,8 @@
      * This test ensures that files can be read off the UICC. This helps to test the SIM booting
      * process, as it process involves several file-reads. The ICCID is one of the first files read.
      */
+    @Test
     public void testApduFileRead() {
-        if (!hasCellular) return;
-
         // Open a logical channel and select the MF.
         IccOpenLogicalChannelResponse iccOpenLogicalChannel =
                 mTelephonyManager.iccOpenLogicalChannel("");
@@ -898,7 +911,7 @@
             String response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, CLA_SELECT, COMMAND_SELECT, p1, p2, p3, ICCID_FILE_ID);
-            assertEquals(STATUS_NORMAL_STRING, response);
+            assertThat(response).isEqualTo(STATUS_NORMAL_STRING);
 
             // Read the contents of the ICCID.
             p1 = 0; // 0-byte offset
@@ -907,27 +920,25 @@
             response =
                     mTelephonyManager.iccTransmitApduLogicalChannel(
                             logicalChannel, CLA_READ_BINARY, COMMAND_READ_BINARY, p1, p2, p3, "");
-            assertTrue(response.endsWith(STATUS_NORMAL_STRING));
+            assertThat(response).endsWith(STATUS_NORMAL_STRING);
         } finally {
             mTelephonyManager.iccCloseLogicalChannel(logicalChannel);
         }
     }
 
-    /**
-     * This test sends several valid APDU commands over the basic channel (channel 0).
-     */
+    /** This test sends several valid APDU commands over the basic channel (channel 0). */
+    @Test
     public void testIccTransmitApduBasicChannel() {
-        if (!hasCellular) return;
-
         // select the MF
         int cla = CLA_SELECT;
         int p1 = 0; // select EF by FID
         int p2 = 0x0C; // requesting FCP template
         int p3 = 2; // length of 'data' payload
         String data = MF_FILE_ID;
-        String response = mTelephonyManager
-            .iccTransmitApduBasicChannel(cla, COMMAND_SELECT, p1, p2, p3, data);
-        assertEquals(STATUS_NORMAL_STRING, response);
+        String response =
+                mTelephonyManager.iccTransmitApduBasicChannel(
+                        cla, COMMAND_SELECT, p1, p2, p3, data);
+        assertThat(response).isEqualTo(STATUS_NORMAL_STRING);
 
         // get the Status of the current file/directory
         cla = CLA_STATUS;
@@ -935,10 +946,11 @@
         p2 = 0; // same response parameters as the SELECT in the iccOpenLogicalChannel() above
         p3 = 0; // length of 'data' payload
         data = "";
-        response = mTelephonyManager
-            .iccTransmitApduBasicChannel(cla, COMMAND_STATUS, p1, p2, p3, data);
+        response =
+                mTelephonyManager.iccTransmitApduBasicChannel(
+                        cla, COMMAND_STATUS, p1, p2, p3, data);
         FcpTemplate fcpTemplate = FcpTemplate.parseFcpTemplate(response);
-        assertTrue(containsFileId(fcpTemplate, MF_FILE_ID));
+        assertThat(containsFileId(fcpTemplate, MF_FILE_ID)).isTrue();
 
         // Manually open a logical channel
         cla = CLA_MANAGE_CHANNEL;
@@ -946,11 +958,12 @@
         p2 = 0; // '00' for open command
         p3 = 0; // length of data payload
         data = "";
-        response = mTelephonyManager
-            .iccTransmitApduBasicChannel(cla, COMMAND_MANAGE_CHANNEL, p1, p2, p3, data);
+        response =
+                mTelephonyManager.iccTransmitApduBasicChannel(
+                        cla, COMMAND_MANAGE_CHANNEL, p1, p2, p3, data);
         // response is in the format | 1 byte: channel number | 2 bytes: status word |
         String responseStatus = response.substring(2);
-        assertEquals(STATUS_NORMAL_STRING, responseStatus);
+        assertThat(responseStatus).isEqualTo(STATUS_NORMAL_STRING);
 
         // Close the open channel
         byte[] responseBytes = hexStringToBytes(response);
@@ -960,18 +973,18 @@
         p2 = channel; // the channel to be closed
         p3 = 0; // length of data payload
         data = "";
-        response = mTelephonyManager
-            .iccTransmitApduBasicChannel(cla, COMMAND_MANAGE_CHANNEL, p1, p2, p3, data);
-        assertEquals(STATUS_NORMAL_STRING, response);
+        response =
+                mTelephonyManager.iccTransmitApduBasicChannel(
+                        cla, COMMAND_MANAGE_CHANNEL, p1, p2, p3, data);
+        assertThat(response).isEqualTo(STATUS_NORMAL_STRING);
     }
 
     /**
      * This test verifies that {@link TelephonyManager#setLine1NumberForDisplay(String, String)}
      * correctly sets the Line 1 alpha tag and number when called.
      */
+    @Test
     public void testLine1NumberForDisplay() {
-        if (!hasCellular) return;
-
         // Cache original alpha tag and number values.
         String originalAlphaTag = mTelephonyManager.getLine1AlphaTag();
         String originalNumber = mTelephonyManager.getLine1Number();
@@ -982,18 +995,18 @@
             String defaultAlphaTag = mTelephonyManager.getLine1AlphaTag();
             String defaultNumber = mTelephonyManager.getLine1Number();
 
-            assertTrue(mTelephonyManager.setLine1NumberForDisplay(ALPHA_TAG_A, NUMBER_A));
-            assertEquals(ALPHA_TAG_A, mTelephonyManager.getLine1AlphaTag());
-            assertEquals(NUMBER_A, mTelephonyManager.getLine1Number());
+            assertThat(mTelephonyManager.setLine1NumberForDisplay(ALPHA_TAG_A, NUMBER_A)).isTrue();
+            assertThat(mTelephonyManager.getLine1AlphaTag()).isEqualTo(ALPHA_TAG_A);
+            assertThat(mTelephonyManager.getLine1Number()).isEqualTo(NUMBER_A);
 
-            assertTrue(mTelephonyManager.setLine1NumberForDisplay(ALPHA_TAG_B, NUMBER_B));
-            assertEquals(ALPHA_TAG_B, mTelephonyManager.getLine1AlphaTag());
-            assertEquals(NUMBER_B, mTelephonyManager.getLine1Number());
+            assertThat(mTelephonyManager.setLine1NumberForDisplay(ALPHA_TAG_B, NUMBER_B)).isTrue();
+            assertThat(mTelephonyManager.getLine1AlphaTag()).isEqualTo(ALPHA_TAG_B);
+            assertThat(mTelephonyManager.getLine1Number()).isEqualTo(NUMBER_B);
 
             // null is used to clear the Line 1 alpha tag and number values.
-            assertTrue(mTelephonyManager.setLine1NumberForDisplay(null, null));
-            assertEquals(defaultAlphaTag, mTelephonyManager.getLine1AlphaTag());
-            assertEquals(defaultNumber, mTelephonyManager.getLine1Number());
+            assertThat(mTelephonyManager.setLine1NumberForDisplay(null, null)).isTrue();
+            assertThat(mTelephonyManager.getLine1AlphaTag()).isEqualTo(defaultAlphaTag);
+            assertThat(mTelephonyManager.getLine1Number()).isEqualTo(defaultNumber);
         } finally {
             // Reset original alpha tag and number values.
             mTelephonyManager.setLine1NumberForDisplay(originalAlphaTag, originalNumber);
@@ -1004,21 +1017,20 @@
      * This test verifies that {@link TelephonyManager#setVoiceMailNumber(String, String)} correctly
      * sets the VoiceMail alpha tag and number when called.
      */
+    @Test
     public void testVoiceMailNumber() {
-        if (!hasCellular) return;
-
         // Cache original alpha tag and number values.
         String originalAlphaTag = mTelephonyManager.getVoiceMailAlphaTag();
         String originalNumber = mTelephonyManager.getVoiceMailNumber();
 
         try {
-            assertTrue(mTelephonyManager.setVoiceMailNumber(ALPHA_TAG_A, NUMBER_A));
-            assertEquals(ALPHA_TAG_A, mTelephonyManager.getVoiceMailAlphaTag());
-            assertEquals(NUMBER_A, mTelephonyManager.getVoiceMailNumber());
+            assertThat(mTelephonyManager.setVoiceMailNumber(ALPHA_TAG_A, NUMBER_A)).isTrue();
+            assertThat(mTelephonyManager.getVoiceMailAlphaTag()).isEqualTo(ALPHA_TAG_A);
+            assertThat(mTelephonyManager.getVoiceMailNumber()).isEqualTo(NUMBER_A);
 
-            assertTrue(mTelephonyManager.setVoiceMailNumber(ALPHA_TAG_B, NUMBER_B));
-            assertEquals(ALPHA_TAG_B, mTelephonyManager.getVoiceMailAlphaTag());
-            assertEquals(NUMBER_B, mTelephonyManager.getVoiceMailNumber());
+            assertThat(mTelephonyManager.setVoiceMailNumber(ALPHA_TAG_B, NUMBER_B)).isTrue();
+            assertThat(mTelephonyManager.getVoiceMailAlphaTag()).isEqualTo(ALPHA_TAG_B);
+            assertThat(mTelephonyManager.getVoiceMailNumber()).isEqualTo(NUMBER_B);
         } finally {
             // Reset original alpha tag and number values.
             mTelephonyManager.setVoiceMailNumber(originalAlphaTag, originalNumber);
@@ -1029,12 +1041,11 @@
      * This test verifies that {@link SubscriptionManager#createSubscriptionGroup(List)} correctly
      * create a group with the given subscription id.
      *
-     * This also verifies that
-     * {@link SubscriptionManager#removeSubscriptionsFromGroup(List, ParcelUuid)} correctly remove
-     * the given subscription group.
+     * <p>This also verifies that {@link SubscriptionManager#removeSubscriptionsFromGroup(List,
+     * ParcelUuid)} correctly remove the given subscription group.
      */
+    @Test
     public void testCreateAndRemoveSubscriptionGroup() {
-        if (!hasCellular) return;
         // Set subscription group with current sub Id.
         int subId = SubscriptionManager.getDefaultSubscriptionId();
         List<Integer> subGroup = Arrays.asList(subId);
@@ -1044,19 +1055,20 @@
         List<SubscriptionInfo> infoList = mSubscriptionManager.getSubscriptionsInGroup(uuid);
 
         try {
-            assertEquals(1, infoList.size());
-            assertEquals(uuid, infoList.get(0).getGroupUuid());
-            assertEquals(subId, infoList.get(0).getSubscriptionId());
+            assertThat(infoList).hasSize(1);
+            assertThat(infoList.get(0).getGroupUuid()).isEqualTo(uuid);
+            assertThat(infoList.get(0).getSubscriptionId()).isEqualTo(subId);
         } finally {
             // Verify that the given subGroup has been removed.
             mSubscriptionManager.removeSubscriptionsFromGroup(subGroup, uuid);
             infoList = mSubscriptionManager.getSubscriptionsInGroup(uuid);
-            assertTrue(infoList.isEmpty());
+            assertThat(infoList).isEmpty();
         }
     }
 
+    @Test
     public void testAddSubscriptionToExistingGroupForMultipleSims() {
-        if (!hasCellular || mTelephonyManager.getPhoneCount() < DSDS_PHONE_COUNT) return;
+        if (mTelephonyManager.getPhoneCount() < DSDS_PHONE_COUNT) return;
 
         // Set subscription group with current sub Id.
         int subId = SubscriptionManager.getDefaultDataSubscriptionId();
@@ -1069,7 +1081,7 @@
                     mSubscriptionManager.getActiveSubscriptionInfoList();
 
             // Verify that the device has at least two active subscriptions.
-            assertTrue(activeSubInfos.size() >= DSDS_PHONE_COUNT);
+            assertThat(activeSubInfos.size()).isAtLeast(DSDS_PHONE_COUNT);
 
             List<Integer> activeSubGroup = getSubscriptionIdList(activeSubInfos);
             activeSubGroup.removeIf(id -> id == subId);
@@ -1079,23 +1091,21 @@
             List<Integer> infoList =
                     getSubscriptionIdList(mSubscriptionManager.getSubscriptionsInGroup(uuid));
             activeSubGroup.add(subId);
-            assertEquals(activeSubGroup.size(), infoList.size());
-            assertTrue(activeSubGroup.containsAll(infoList));
+            assertThat(infoList).hasSize(activeSubGroup.size());
+            assertThat(infoList).containsExactly(activeSubGroup);
         } finally {
             removeSubscriptionsFromGroup(uuid);
         }
     }
 
     /**
-     * This test verifies that
-     * {@link SubscriptionManager#addSubscriptionsIntoGroup(List, ParcelUuid)}} correctly add some
-     * additional subscriptions to the existing group.
+     * This test verifies that {@link SubscriptionManager#addSubscriptionsIntoGroup(List,
+     * ParcelUuid)}} correctly add some additional subscriptions to the existing group.
      *
-     * This test required the device has more than one subscription.
+     * <p>This test required the device has more than one subscription.
      */
+    @Test
     public void testAddSubscriptionToExistingGroupForEsim() {
-        if (!hasCellular) return;
-
         // Set subscription group with current sub Id.
         int subId = SubscriptionManager.getDefaultDataSubscriptionId();
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) return;
@@ -1114,8 +1124,8 @@
                 List<Integer> infoList =
                         getSubscriptionIdList(mSubscriptionManager.getSubscriptionsInGroup(uuid));
                 accessibleSubGroup.add(subId);
-                assertEquals(accessibleSubGroup.size(), infoList.size());
-                assertTrue(accessibleSubGroup.containsAll(infoList));
+                assertThat(infoList).hasSize(accessibleSubGroup.size());
+                assertThat(infoList).containsExactly(accessibleSubGroup);
             }
         } finally {
             removeSubscriptionsFromGroup(uuid);
@@ -1126,9 +1136,8 @@
      * This test verifies that {@link SubscriptionManager#setOpportunistic(boolean, int)} correctly
      * set the opportunistic property of the given subscription.
      */
+    @Test
     public void testOpportunistic() {
-        if (!hasCellular) return;
-
         int subId = SubscriptionManager.getDefaultDataSubscriptionId();
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) return;
         SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo(subId);
@@ -1137,17 +1146,16 @@
 
         try {
             // Mark the given subscription as opportunistic subscription.
-            boolean successed = mSubscriptionManager.setOpportunistic(newOpportunistic, subId);
-            assertTrue(successed);
+            assertThat(mSubscriptionManager.setOpportunistic(newOpportunistic, subId)).isTrue();
 
             // Verify that the given subscription is opportunistic subscription.
             info = mSubscriptionManager.getActiveSubscriptionInfo(subId);
-            assertEquals(newOpportunistic, info.isOpportunistic());
+            assertThat(info.isOpportunistic()).isEqualTo(newOpportunistic);
         } finally {
             // Set back to original opportunistic property.
             mSubscriptionManager.setOpportunistic(oldOpportunistic, subId);
             info = mSubscriptionManager.getActiveSubscriptionInfo(subId);
-            assertEquals(oldOpportunistic, info.isOpportunistic());
+            assertThat(info.isOpportunistic()).isEqualTo(oldOpportunistic);
         }
     }
 
@@ -1156,9 +1164,8 @@
      * String)} correctly transmits iccIO commands to the UICC card. First, the MF is selected via a
      * SELECT apdu via the basic channel, then a STATUS AT-command is sent.
      */
+    @Test
     public void testIccExchangeSimIO() {
-        if (!hasCellular) return;
-
         // select the MF first. This makes sure the next STATUS AT-command returns a FCP template
         // for the right file.
         int cla = CLA_SELECT;
@@ -1166,65 +1173,71 @@
         int p2 = 0x0C; // requesting FCP template
         int p3 = 2; // length of 'data' payload
         String data = MF_FILE_ID;
-        String response = mTelephonyManager
-                .iccTransmitApduBasicChannel(cla, COMMAND_SELECT, p1, p2, p3, data);
-        assertEquals(STATUS_NORMAL_STRING, response);
+        String response =
+                mTelephonyManager.iccTransmitApduBasicChannel(
+                        cla, COMMAND_SELECT, p1, p2, p3, data);
+        assertThat(response).isEqualTo(STATUS_NORMAL_STRING);
 
         // The iccExchangeSimIO command implements the +CRSM command defined in TS 27.007 section
         // 8.18. A STATUS command is sent and the returned value will be an FCP template.
-        byte[] result = mTelephonyManager.iccExchangeSimIO(
-                0, // fileId: not required for STATUS
-                COMMAND_STATUS,  // command: STATUS
-                0, // p1: not required for STATUS
-                0, // p2: not required for STATUS
-                0, // p3: not required for STATUS
-                ""); // filePath: not required for STATUS
+        byte[] result =
+                mTelephonyManager.iccExchangeSimIO(
+                        0, // fileId: not required for STATUS
+                        COMMAND_STATUS, // command: STATUS
+                        0, // p1: not required for STATUS
+                        0, // p2: not required for STATUS
+                        0, // p3: not required for STATUS
+                        ""); // filePath: not required for STATUS
         String resultString = bytesToHexString(result);
         FcpTemplate fcpTemplate = FcpTemplate.parseFcpTemplate(resultString);
-        assertTrue(containsFileId(fcpTemplate, MF_FILE_ID));
-        assertEquals("iccExchangeSimIO returned non-normal Status byte: " + resultString,
-                STATUS_NORMAL_STRING, fcpTemplate.getStatus());
+        assertThat(containsFileId(fcpTemplate, MF_FILE_ID)).isTrue();
+        assertWithMessage("iccExchangeSimIO returned non-normal Status byte: %s", resultString)
+                .that(fcpTemplate.getStatus())
+                .isEqualTo(STATUS_NORMAL_STRING);
     }
 
     /**
      * This test checks that a STATUS apdu can be sent as an encapsulated envelope to the UICC via
      * {@link TelephonyManager#sendEnvelopeWithStatus(String)}.
      */
+    @Test
     public void testSendEnvelopeWithStatus() {
-        if (!hasCellular) return;
-
         // STATUS apdu as hex String
         String envelope =
                 CLA_STATUS_STRING
-                + COMMAND_STATUS_STRING
-                + "00" // p1: no indication of application status
-                + "00"; // p2: identical parameters to
+                        + COMMAND_STATUS_STRING
+                        + "00" // p1: no indication of application status
+                        + "00"; // p2: identical parameters to
         String response = mTelephonyManager.sendEnvelopeWithStatus(envelope);
 
         // TODO(b/137963715): add more specific assertions on response from TelMan#sendEnvelope
-        assertNotNull("sendEnvelopeWithStatus is null for envelope=" + envelope, response);
+        assertWithMessage("sendEnvelopeWithStatus is null for envelope=%s", envelope)
+                .that(response)
+                .isNotNull();
     }
 
     /**
      * This test checks that applications with carrier privilege can set/clear signal strength
-     * update request via
-     * {@link TelephonyManager#setSignalStrengthUpdateRequest(SignalStrengthUpdateRequest)} and
-     * {@link TelephonyManager#clearSignalStrengthUpdateRequest} without
-     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
+     * update request via {@link
+     * TelephonyManager#setSignalStrengthUpdateRequest(SignalStrengthUpdateRequest)} and {@link
+     * TelephonyManager#clearSignalStrengthUpdateRequest} without {@link
+     * android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
      */
+    @Test
     public void testSetClearSignalStrengthUpdateRequest() {
-        if (!hasCellular) return;
-
         final SignalStrengthUpdateRequest request =
                 new SignalStrengthUpdateRequest.Builder()
-                        .setSignalThresholdInfos(List.of(
-                                new SignalThresholdInfo.Builder()
-                                        .setRadioAccessNetworkType(
-                                                AccessNetworkConstants.AccessNetworkType.GERAN)
-                                        .setSignalMeasurementType(
-                                                SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI)
-                                        .setThresholds(new int[]{-113, -103, -97, -51})
-                                        .build()))
+                        .setSignalThresholdInfos(
+                                List.of(
+                                        new SignalThresholdInfo.Builder()
+                                                .setRadioAccessNetworkType(
+                                                        AccessNetworkConstants.AccessNetworkType
+                                                                .GERAN)
+                                                .setSignalMeasurementType(
+                                                        SignalThresholdInfo
+                                                                .SIGNAL_MEASUREMENT_TYPE_RSSI)
+                                                .setThresholds(new int[] {-113, -103, -97, -51})
+                                                .build()))
                         .setReportingRequestedWhileIdle(true)
                         .build();
         try {
@@ -1237,20 +1250,19 @@
     private void verifyValidIccOpenLogicalChannelResponse(IccOpenLogicalChannelResponse response) {
         // The assigned channel should be between the min and max allowed channel numbers
         int channel = response.getChannel();
-        assertTrue(MIN_LOGICAL_CHANNEL <= channel && channel <= MAX_LOGICAL_CHANNEL);
-        assertEquals(STATUS_NO_ERROR, response.getStatus());
-        assertArrayEquals(STATUS_NORMAL, response.getSelectResponse());
+        assertThat(channel).isIn(Range.closed(MIN_LOGICAL_CHANNEL, MAX_LOGICAL_CHANNEL));
+        assertThat(response.getStatus()).isEqualTo(STATUS_NO_ERROR);
+        assertThat(response.getSelectResponse()).isEqualTo(STATUS_NORMAL);
     }
 
     private void removeSubscriptionsFromGroup(ParcelUuid uuid) {
         List<SubscriptionInfo> infoList = mSubscriptionManager.getSubscriptionsInGroup(uuid);
         if (!infoList.isEmpty()) {
             mSubscriptionManager.removeSubscriptionsFromGroup(
-                    getSubscriptionIdList(infoList),
-                    uuid);
+                    getSubscriptionIdList(infoList), uuid);
         }
         infoList = mSubscriptionManager.getSubscriptionsInGroup(uuid);
-        assertTrue(infoList.isEmpty());
+        assertThat(infoList).isEmpty();
     }
 
     private List<Integer> getSubscriptionIdList(List<SubscriptionInfo> subInfoList) {
@@ -1265,26 +1277,24 @@
      *
      * @param fcpTemplate The FCP Template to be checked.
      * @param fileId The file ID that is being searched for
-     *
      * @return true iff fcpTemplate contains fileId.
      */
     private boolean containsFileId(FcpTemplate fcpTemplate, String fileId) {
-        return fcpTemplate.getTlvs().stream().anyMatch(tlv ->
-                tlv.getTag() == FILE_IDENTIFIER && tlv.getValue().equals(fileId));
+        return fcpTemplate.getTlvs().stream()
+                .anyMatch(tlv -> tlv.getTag() == FILE_IDENTIFIER && tlv.getValue().equals(fileId));
     }
 
     /**
      * Returns true iff {@code response} indicates an error with the previous APDU.
      *
      * @param response The APDU response to be checked.
-     *
      * @return true iff the given response indicates an error occurred
      */
     private boolean isErrorResponse(@Nonnull String response) {
-        return !(STATUS_NORMAL_STRING.equals(response) ||
-            response.startsWith(STATUS_WARNING_A) ||
-            response.startsWith(STATUS_WARNING_B) ||
-            response.startsWith(STATUS_BYTES_REMAINING));
+        return !(STATUS_NORMAL_STRING.equals(response)
+                || response.startsWith(STATUS_WARNING_A)
+                || response.startsWith(STATUS_WARNING_B)
+                || response.startsWith(STATUS_BYTES_REMAINING));
     }
 
     private static class IntentReceiver extends BroadcastReceiver {
@@ -1300,7 +1310,8 @@
         }
     }
 
-    @Suppress
+    @Test
+    @Ignore
     public void testEapSimAuthentication() {
         // K: '000102030405060708090A0B0C0D0E0F', defined by TS 134 108#8.2
         // n: 128 (Bits to use for RES value)
@@ -1313,13 +1324,13 @@
                         TelephonyManager.AUTHTYPE_EAP_SIM,
                         base64Challenge);
         byte[] response = Base64.decode(base64Response, Base64.DEFAULT);
-        assertArrayEquals(
-                "Results for AUTHTYPE_EAP_SIM failed",
-                hexStringToBytes(EXPECTED_EAP_SIM_RESULT),
-                response);
+        assertWithMessage("Results for AUTHTYPE_EAP_SIM failed")
+                .that(response)
+                .isEqualTo(hexStringToBytes(EXPECTED_EAP_SIM_RESULT));
     }
 
-    @Suppress
+    @Test
+    @Ignore
     public void testEapAkaAuthentication() {
         // K: '000102030405060708090A0B0C0D0E0F', defined by TS 134 108#8.2
         // n: 128 (Bits to use for RES value)
@@ -1332,14 +1343,13 @@
                         TelephonyManager.AUTHTYPE_EAP_AKA,
                         base64Challenge);
 
-        assertNotNull("UICC returned null for EAP-AKA auth", base64Response);
+        assertWithMessage("UICC returned null for EAP-AKA auth").that(base64Response).isNotNull();
         byte[] response = Base64.decode(base64Response, Base64.NO_WRAP);
 
         // response may be formatted as: [DB][Length][RES][Length][CK][Length][IK][Length][Kc]
         byte[] akaResponse = Arrays.copyOfRange(response, 0, EAP_AKA_RESPONSE_LENGTH);
-        assertArrayEquals(
-                "Results for AUTHTYPE_EAP_AKA failed",
-                hexStringToBytes(EXPECTED_EAP_AKA_RESULT),
-                akaResponse);
+        assertWithMessage("Results for AUTHTYPE_EAP_AKA failed")
+                .that(akaResponse)
+                .isEqualTo(hexStringToBytes(EXPECTED_EAP_AKA_RESULT));
     }
 }
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/FcpTemplate.java b/tests/tests/carrierapi/src/android/carrierapi/cts/FcpTemplate.java
index a90c756..252b874 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/FcpTemplate.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/FcpTemplate.java
@@ -21,13 +21,14 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+
 import javax.annotation.Nonnull;
 
 /**
  * Class for representing a File Control Parameters (FCP) Template object. TS 101 220
  *
- * A correctly formatted FCP Template will be in the format:
- * | 1 byte: BER tag (0x62) | 1 byte: length of TLVs |...TLV objects...| 2 bytes: status |
+ * <p>A correctly formatted FCP Template will be in the format: | 1 byte: BER tag (0x62) | 1 byte:
+ * length of TLVs |...TLV objects...| 2 bytes: status |
  */
 public class FcpTemplate {
 
@@ -69,12 +70,11 @@
      * Parses and returns a FcpTemplate for the given {@code fcpResponse}
      *
      * @param fcpResponse The Hex String response for a given Status APDU command. Expected to be in
-     * the format: | 1 byte: BER tag | 1 byte: length of TLVs |...TLV objects...| 2 bytes: status |
-     *
+     *     the format: | 1 byte: BER tag | 1 byte: length of TLVs |...TLV objects...| 2 bytes:
+     *     status |
      * @return a FcpTemplate for the given hex String
-     *
      * @throws FcpTemplateParseException for non-FCP inputs or inputs of the wrong length (encoded
-     *                                   length does not match actual length)
+     *     length does not match actual length)
      */
     public static FcpTemplate parseFcpTemplate(@Nonnull String fcpResponse) {
         final List<Tlv> tlvObjects = new ArrayList<>();
@@ -98,17 +98,15 @@
             int tag = data[index++] & 0xFF;
             int length = data[index++] & 0xFF; // assumes that length is < 128 bytes.
             String value = fcpResponse.substring(index * 2, (index + length) * 2);
-            tlvObjects .add(new Tlv(tag, length, value));
+            tlvObjects.add(new Tlv(tag, length, value));
             index += length;
         }
 
         String status = fcpResponse.substring(fcpResponse.length() - 4);
-        return new FcpTemplate(tlvObjects , status);
+        return new FcpTemplate(tlvObjects, status);
     }
 
-    /**
-     * Represents a Tag-Length-Value object. TS 101 220 Section 2
-     */
+    /** Represents a Tag-Length-Value object. TS 101 220 Section 2 */
     public static class Tlv {
 
         private final int tag;
@@ -142,9 +140,7 @@
                 return false;
             }
             Tlv tlv = (Tlv) o;
-            return tag == tlv.tag &&
-                    length == tlv.length &&
-                    value.equals(tlv.value);
+            return tag == tlv.tag && length == tlv.length && value.equals(tlv.value);
         }
 
         @Override
@@ -159,7 +155,6 @@
     }
 
     private static final class FcpTemplateParseException extends RuntimeException {
-
         public FcpTemplateParseException(String message) {
             super(message);
         }
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/IccUtils.java b/tests/tests/carrierapi/src/android/carrierapi/cts/IccUtils.java
index 3409fe5..d36ca03 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/IccUtils.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/IccUtils.java
@@ -18,20 +18,18 @@
 
 import javax.annotation.Nonnull;
 
-/**
- * Utility class for converting between hex Strings and bitwise representations.
- */
+/** Utility class for converting between hex Strings and bitwise representations. */
 public class IccUtils {
 
     // A table mapping from a number to a hex character for fast encoding hex strings.
     private static final char[] HEX_CHARS = {
-            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
     };
 
     @Nonnull
     public static String bytesToHexString(byte[] bytes) {
         StringBuilder ret = new StringBuilder(2 * bytes.length);
-        for (int i = 0 ; i < bytes.length ; i++) {
+        for (int i = 0; i < bytes.length; i++) {
             int b;
             b = 0x0f & (bytes[i] >> 4);
             ret.append(HEX_CHARS[b]);
@@ -44,11 +42,8 @@
     /**
      * Converts a hex String to a byte array.
      *
-     * @param s A string of hexadecimal characters, must be an even number of
-     *          chars long
-     *
+     * @param s A string of hexadecimal characters, must be an even number of chars long
      * @return byte array representation
-     *
      * @throws RuntimeException on invalid format
      */
     public static byte[] hexStringToBytes(String s) {
@@ -58,10 +53,10 @@
 
         int sz = s.length();
 
-        ret = new byte[sz/2];
+        ret = new byte[sz / 2];
 
-        for (int i=0 ; i <sz ; i+=2) {
-            ret[i/2] = (byte) ((hexCharToInt(s.charAt(i)) << 4) | hexCharToInt(s.charAt(i+1)));
+        for (int i = 0; i < sz; i += 2) {
+            ret[i / 2] = (byte) ((hexCharToInt(s.charAt(i)) << 4) | hexCharToInt(s.charAt(i + 1)));
         }
 
         return ret;
@@ -71,12 +66,13 @@
      * Converts a hex char to its integer value
      *
      * @param c A single hexadecimal character. Must be in one of these ranges:
-     *          - '0' to '9', or
-     *          - 'a' to 'f', or
-     *          - 'A' to 'F'
+     *     <ul>
+     *       <li>'0' to '9'
+     *       <li>'a' to 'f'
+     *       <li>'A' to 'F'
+     *     </ul>
      *
      * @return the integer representation of {@code c}
-     *
      * @throws RuntimeException on invalid character
      */
     public static int hexCharToInt(char c) {
@@ -84,6 +80,6 @@
         if (c >= 'A' && c <= 'F') return (c - 'A' + 10);
         if (c >= 'a' && c <= 'f') return (c - 'a' + 10);
 
-        throw new RuntimeException ("invalid hex char '" + c + "'");
+        throw new RuntimeException("invalid hex char '" + c + "'");
     }
 }
diff --git a/tests/tests/carrierapi/src/android/carrierapi/cts/NetworkScanApiTest.java b/tests/tests/carrierapi/src/android/carrierapi/cts/NetworkScanApiTest.java
index 017d7fa..82655e9 100644
--- a/tests/tests/carrierapi/src/android/carrierapi/cts/NetworkScanApiTest.java
+++ b/tests/tests/carrierapi/src/android/carrierapi/cts/NetworkScanApiTest.java
@@ -18,13 +18,12 @@
 import static android.Manifest.permission.ACCESS_BACKGROUND_LOCATION;
 import static android.Manifest.permission.ACCESS_FINE_LOCATION;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertTrue;
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
 import static org.junit.Assert.fail;
 
-import android.content.Context;
+import android.content.ContentResolver;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.database.ContentObserver;
@@ -64,15 +63,16 @@
 import java.util.stream.Collectors;
 
 /**
- * Build, install and run the tests by running the commands below:
- *  make cts -j64
- *  cts-tradefed run cts -m CtsCarrierApiTestCases --test android.carrierapi.cts.NetworkScanApiTest
+ * Unit tests for {@link TelephonyManager}'s network scan APIs.
+ *
+ * <p>Test using `atest CtsCarrierApiTestCases:NetworkScanApiTest` or `make cts -j64 && cts-tradefed
+ * run cts -m CtsCarrierApiTestCases --test android.carrierapi.cts.NetworkScanApiTest`
  */
 @RunWith(AndroidJUnit4.class)
-public class NetworkScanApiTest {
-    private TelephonyManager mTelephonyManager;
-    private PackageManager mPackageManager;
+public class NetworkScanApiTest extends BaseCarrierApiTest {
     private static final String TAG = "NetworkScanApiTest";
+
+    private TelephonyManager mTelephonyManager;
     private int mNetworkScanStatus;
     private static final int EVENT_NETWORK_SCAN_START = 100;
     private static final int EVENT_NETWORK_SCAN_RESULTS = 200;
@@ -103,18 +103,18 @@
     private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
     private static final ArrayList<String> MCC_MNC = new ArrayList<>();
     private static final RadioAccessSpecifier[] RADIO_ACCESS_SPECIFIERS = {
-            new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.GERAN,
-                    null /* bands */,
-                    null /* channels */),
-            new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.EUTRAN,
-                    null /* bands */,
-                    null /* channels */),
-            new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.UTRAN,
-                    null /* bands */,
-                    null /* channels */)
+        new RadioAccessSpecifier(
+                AccessNetworkConstants.AccessNetworkType.GERAN,
+                null /* bands */,
+                null /* channels */),
+        new RadioAccessSpecifier(
+                AccessNetworkConstants.AccessNetworkType.EUTRAN,
+                null /* bands */,
+                null /* channels */),
+        new RadioAccessSpecifier(
+                AccessNetworkConstants.AccessNetworkType.UTRAN,
+                null /* bands */,
+                null /* channels */)
     };
 
     // Needed because NETWORK_SCAN_PERMISSION is a systemapi
@@ -122,20 +122,25 @@
 
     @Before
     public void setUp() throws Exception {
-        Context context = InstrumentationRegistry.getContext();
-        mTelephonyManager = (TelephonyManager)
-                context.getSystemService(Context.TELEPHONY_SERVICE);
-        mPackageManager = context.getPackageManager();
-        InstrumentationRegistry.getInstrumentation().getUiAutomation().grantRuntimePermission(
-                context.getPackageName(), ACCESS_FINE_LOCATION);
-        InstrumentationRegistry.getInstrumentation().getUiAutomation().grantRuntimePermission(
-                context.getPackageName(), ACCESS_BACKGROUND_LOCATION);
+        mTelephonyManager = getContext().getSystemService(TelephonyManager.class);
+        String selfPackageName = getContext().getPackageName();
+        InstrumentationRegistry.getInstrumentation()
+                .getUiAutomation()
+                .grantRuntimePermission(selfPackageName, ACCESS_FINE_LOCATION);
+        InstrumentationRegistry.getInstrumentation()
+                .getUiAutomation()
+                .grantRuntimePermission(selfPackageName, ACCESS_BACKGROUND_LOCATION);
         mTestHandlerThread = new NetworkScanHandlerThread(TAG);
         mTestHandlerThread.start();
     }
 
     @After
     public void tearDown() throws Exception {
+        if (!werePreconditionsSatisfied()) return;
+
+        // Revoking runtime permissions makes ActivityManager kill our process, so we don't do it,
+        // as the test harness will eventually uninstall this APK after testing completes anyway, so
+        // we aren't really leaking anything long-term.
         mTestHandlerThread.quit();
     }
 
@@ -146,9 +151,7 @@
             } catch (InterruptedException ie) {
             }
 
-            if (!mReady) {
-                fail("NetworkScanApiTest failed to initialize");
-            }
+            assertWithMessage("NetworkScanApiTest failed to initialize").that(mReady).isTrue();
         }
     }
 
@@ -168,41 +171,45 @@
         @Override
         public void onLooperPrepared() {
             /* create a custom handler for the Handler Thread */
-            mHandler = new Handler(mTestHandlerThread.getLooper()) {
-                @Override
-                public void handleMessage(Message msg) {
-                    switch (msg.what) {
-                        case EVENT_NETWORK_SCAN_START:
-                            Log.d(TAG, "request network scan");
-                            boolean useShellIdentity = (Boolean) msg.obj;
-                            if (useShellIdentity) {
-                                InstrumentationRegistry.getInstrumentation().getUiAutomation()
-                                        .adoptShellPermissionIdentity();
+            mHandler =
+                    new Handler(mTestHandlerThread.getLooper()) {
+                        @Override
+                        public void handleMessage(Message msg) {
+                            switch (msg.what) {
+                                case EVENT_NETWORK_SCAN_START:
+                                    Log.d(TAG, "request network scan");
+                                    boolean useShellIdentity = (Boolean) msg.obj;
+                                    if (useShellIdentity) {
+                                        InstrumentationRegistry.getInstrumentation()
+                                                .getUiAutomation()
+                                                .adoptShellPermissionIdentity();
+                                    }
+                                    try {
+                                        mNetworkScan =
+                                                mTelephonyManager.requestNetworkScan(
+                                                        mNetworkScanRequest,
+                                                        AsyncTask.SERIAL_EXECUTOR,
+                                                        mNetworkScanCallback);
+                                        if (mNetworkScan == null) {
+                                            mNetworkScanStatus = EVENT_SCAN_DENIED;
+                                            setReady(true);
+                                        }
+                                    } catch (SecurityException e) {
+                                        mNetworkScanStatus = EVENT_SCAN_DENIED;
+                                        setReady(true);
+                                    } finally {
+                                        if (useShellIdentity) {
+                                            InstrumentationRegistry.getInstrumentation()
+                                                    .getUiAutomation()
+                                                    .dropShellPermissionIdentity();
+                                        }
+                                    }
+                                    break;
+                                default:
+                                    Log.d(TAG, "Unknown Event " + msg.what);
                             }
-                            try {
-                                mNetworkScan = mTelephonyManager.requestNetworkScan(
-                                        mNetworkScanRequest,
-                                        AsyncTask.SERIAL_EXECUTOR,
-                                        mNetworkScanCallback);
-                                if (mNetworkScan == null) {
-                                    mNetworkScanStatus = EVENT_SCAN_DENIED;
-                                    setReady(true);
-                                }
-                            } catch (SecurityException e) {
-                                mNetworkScanStatus = EVENT_SCAN_DENIED;
-                                setReady(true);
-                            } finally {
-                                if (useShellIdentity) {
-                                    InstrumentationRegistry.getInstrumentation().getUiAutomation()
-                                            .dropShellPermissionIdentity();
-                                }
-                            }
-                            break;
-                        default:
-                            Log.d(TAG, "Unknown Event " + msg.what);
-                    }
-                }
-            };
+                        }
+                    };
         }
     }
 
@@ -265,39 +272,35 @@
             Log.d(TAG, "lte channels" + lteChannels.toString());
             int ranLte = AccessNetworkConstants.AccessNetworkType.EUTRAN;
             radioAccessSpecifier.add(
-                    new RadioAccessSpecifier(ranLte, null /* bands */,
-                            lteChannels.stream().mapToInt(i->i).toArray()));
+                    new RadioAccessSpecifier(
+                            ranLte,
+                            null /* bands */,
+                            lteChannels.stream().mapToInt(i -> i).toArray()));
         }
         if (!wcdmaChannels.isEmpty()) {
             Log.d(TAG, "wcdma channels" + wcdmaChannels.toString());
             int ranWcdma = AccessNetworkConstants.AccessNetworkType.UTRAN;
             radioAccessSpecifier.add(
-                    new RadioAccessSpecifier(ranWcdma, null /* bands */,
-                            wcdmaChannels.stream().mapToInt(i->i).toArray()));
+                    new RadioAccessSpecifier(
+                            ranWcdma,
+                            null /* bands */,
+                            wcdmaChannels.stream().mapToInt(i -> i).toArray()));
         }
         if (!gsmChannels.isEmpty()) {
             Log.d(TAG, "gsm channels" + gsmChannels.toString());
             int ranGsm = AccessNetworkConstants.AccessNetworkType.GERAN;
             radioAccessSpecifier.add(
-                    new RadioAccessSpecifier(ranGsm, null /* bands */,
-                            gsmChannels.stream().mapToInt(i->i).toArray()));
+                    new RadioAccessSpecifier(
+                            ranGsm,
+                            null /* bands */,
+                            gsmChannels.stream().mapToInt(i -> i).toArray()));
         }
         return radioAccessSpecifier;
     }
 
-    /**
-     * Tests that the device properly requests a network scan.
-     */
+    /** Tests that the device properly requests a network scan. */
     @Test
     public void testRequestNetworkScan() {
-        if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
-            // Checks whether the cellular stack should be running on this device.
-            Log.e(TAG, "No cellular support, the test will be skipped.");
-            return;
-        }
-        if (!mTelephonyManager.hasCarrierPrivileges()) {
-            fail("This test requires a SIM card with carrier privilege rule on it.");
-        }
         boolean isLocationSwitchOn = getAndSetLocationSwitch(true);
         try {
             mNetworkScanRequest = buildNetworkScanRequest(true);
@@ -308,11 +311,16 @@
             waitUntilReady();
 
             Log.d(TAG, "mNetworkScanStatus: " + mNetworkScanStatus);
-            assertTrue("The final scan status is " + mNetworkScanStatus + " with error code "
-                            + mErrorCode + ", not ScanCompleted"
-                            + " or ScanError with an error code ERROR_MODEM_UNAVAILABLE or"
-                            + " ERROR_UNSUPPORTED",
-                    isScanStatusValid());
+            assertWithMessage(
+                            "The final scan status is "
+                                    + mNetworkScanStatus
+                                    + " with error code "
+                                    + mErrorCode
+                                    + ", not ScanCompleted"
+                                    + " or ScanError with an error code ERROR_MODEM_UNAVAILABLE or"
+                                    + " ERROR_UNSUPPORTED")
+                    .that(isScanStatusValid())
+                    .isTrue();
         } finally {
             getAndSetLocationSwitch(isLocationSwitchOn);
         }
@@ -328,40 +336,36 @@
         requestNetworkScanLocationOffHelper(true, true);
     }
 
-    public void requestNetworkScanLocationOffHelper(boolean includeBandsAndChannels,
-            boolean useSpecialScanPermission) {
-        if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
-            // Checks whether the cellular stack should be running on this device.
-            Log.e(TAG, "No cellular support, the test will be skipped.");
-            return;
-        }
-        if (!mTelephonyManager.hasCarrierPrivileges()) {
-            fail("This test requires a SIM card with carrier privilege rule on it.");
-        }
-
+    public void requestNetworkScanLocationOffHelper(
+            boolean includeBandsAndChannels, boolean useSpecialScanPermission) {
         mNetworkScanRequest = buildNetworkScanRequest(includeBandsAndChannels);
 
         boolean isLocationSwitchOn = getAndSetLocationSwitch(false);
         try {
             mNetworkScanCallback = new NetworkScanCallbackImpl();
-            Message startNetworkScan = mHandler.obtainMessage(EVENT_NETWORK_SCAN_START,
-                    useSpecialScanPermission);
+            Message startNetworkScan =
+                    mHandler.obtainMessage(EVENT_NETWORK_SCAN_START, useSpecialScanPermission);
             setReady(false);
             startNetworkScan.sendToTarget();
             waitUntilReady();
             if (includeBandsAndChannels) {
                 // If we included the bands when location is off, expect a security error and
                 // nothing else.
-                assertEquals(EVENT_SCAN_DENIED, mNetworkScanStatus);
+                assertThat(mNetworkScanStatus).isEqualTo(EVENT_SCAN_DENIED);
                 return;
             }
 
             Log.d(TAG, "mNetworkScanStatus: " + mNetworkScanStatus);
-            assertTrue("The final scan status is " + mNetworkScanStatus + " with error code "
-                            + mErrorCode + ", not ScanCompleted"
-                            + " or ScanError with an error code ERROR_MODEM_UNAVAILABLE or"
-                            + " ERROR_UNSUPPORTED",
-                    isScanStatusValid());
+            assertWithMessage(
+                            "The final scan status is "
+                                    + mNetworkScanStatus
+                                    + " with error code "
+                                    + mErrorCode
+                                    + ", not ScanCompleted"
+                                    + " or ScanError with an error code ERROR_MODEM_UNAVAILABLE or"
+                                    + " ERROR_UNSUPPORTED")
+                    .that(isScanStatusValid())
+                    .isTrue();
         } finally {
             getAndSetLocationSwitch(isLocationSwitchOn);
         }
@@ -376,32 +380,40 @@
             // Construct a NetworkScanRequest
             radioAccessSpecifier = getRadioAccessSpecifier(allCellInfo);
             if (!includeBandsAndChannels) {
-                radioAccessSpecifier = radioAccessSpecifier.stream().map(spec ->
-                    new RadioAccessSpecifier(spec.getRadioAccessNetwork(), null, null))
-                    .collect(Collectors.toList());
+                radioAccessSpecifier =
+                        radioAccessSpecifier.stream()
+                                .map(
+                                        spec ->
+                                                new RadioAccessSpecifier(
+                                                        spec.getRadioAccessNetwork(), null, null))
+                                .collect(Collectors.toList());
             }
         }
 
         Log.d(TAG, "number of radioAccessSpecifier: " + radioAccessSpecifier.size());
         if (radioAccessSpecifier.isEmpty()) {
             // Put in some arbitrary bands and channels so that we trip the location check if needed
-            int[] fakeBands = includeBandsAndChannels
-                    ? new int[] { AccessNetworkConstants.EutranBand.BAND_5 }
-                    : null;
-            int[] fakeChannels = includeBandsAndChannels ? new int[] { 2400 } : null;
+            int[] fakeBands =
+                    includeBandsAndChannels
+                            ? new int[] {AccessNetworkConstants.EutranBand.BAND_5}
+                            : null;
+            int[] fakeChannels = includeBandsAndChannels ? new int[] {2400} : null;
 
-            RadioAccessSpecifier gsm = new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.GERAN,
-                    null /* bands */,
-                    null /* channels */);
-            RadioAccessSpecifier lte = new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.EUTRAN,
-                    fakeBands /* bands */,
-                    fakeChannels /* channels */);
-            RadioAccessSpecifier wcdma = new RadioAccessSpecifier(
-                    AccessNetworkConstants.AccessNetworkType.UTRAN,
-                    null /* bands */,
-                    null /* channels */);
+            RadioAccessSpecifier gsm =
+                    new RadioAccessSpecifier(
+                            AccessNetworkConstants.AccessNetworkType.GERAN,
+                            null /* bands */,
+                            null /* channels */);
+            RadioAccessSpecifier lte =
+                    new RadioAccessSpecifier(
+                            AccessNetworkConstants.AccessNetworkType.EUTRAN,
+                            fakeBands /* bands */,
+                            fakeChannels /* channels */);
+            RadioAccessSpecifier wcdma =
+                    new RadioAccessSpecifier(
+                            AccessNetworkConstants.AccessNetworkType.UTRAN,
+                            null /* bands */,
+                            null /* channels */);
             radioAccessSpecifier.add(gsm);
             radioAccessSpecifier.add(lte);
             radioAccessSpecifier.add(wcdma);
@@ -416,7 +428,6 @@
                 true /*enable incremental results*/,
                 5 /* incremental results periodicity */,
                 null /* List of PLMN ids (MCC-MNC) */);
-
     }
 
     private List<CellInfo> getCellInfo() {
@@ -432,71 +443,87 @@
 
     @Test
     public void testNetworkScanPermission() {
-        PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
+        PackageManager pm = getContext().getPackageManager();
 
-        List<Integer> specialUids = Arrays.asList(Process.SYSTEM_UID,
-                Process.PHONE_UID, Process.SHELL_UID);
+        List<Integer> specialUids =
+                Arrays.asList(Process.SYSTEM_UID, Process.PHONE_UID, Process.SHELL_UID);
 
-        List<PackageInfo> holding = pm.getPackagesHoldingPermissions(
-                new String[] { NETWORK_SCAN_PERMISSION },
-                PackageManager.MATCH_DISABLED_COMPONENTS);
+        List<PackageInfo> holding =
+                pm.getPackagesHoldingPermissions(
+                        new String[] {NETWORK_SCAN_PERMISSION},
+                        PackageManager.MATCH_DISABLED_COMPONENTS);
 
-        List<Integer> nonSpecialPackages = holding.stream()
-                .map(pi -> {
-                    try {
-                        return pm.getPackageUid(pi.packageName, 0);
-                    } catch (PackageManager.NameNotFoundException e) {
-                        return Process.INVALID_UID;
-                    }
-                })
-                .filter(uid -> !specialUids.contains(UserHandle.getAppId(uid)))
-                .collect(Collectors.toList());
+        List<Integer> nonSpecialPackages =
+                holding.stream()
+                        .map(
+                                pi -> {
+                                    try {
+                                        return pm.getPackageUid(pi.packageName, 0);
+                                    } catch (PackageManager.NameNotFoundException e) {
+                                        return Process.INVALID_UID;
+                                    }
+                                })
+                        .filter(uid -> !specialUids.contains(UserHandle.getAppId(uid)))
+                        .collect(Collectors.toList());
 
-        if (nonSpecialPackages.size() > 1) {
-            fail("Only one app on the device is allowed to hold the NETWORK_SCAN permission.");
-        }
+        assertWithMessage(
+                        "Only one app on the device is allowed to hold the NETWORK_SCAN"
+                                + " permission.")
+                .that(nonSpecialPackages.size())
+                .isAtMost(1);
     }
 
     private boolean getAndSetLocationSwitch(boolean enabled) {
         CountDownLatch locationChangeLatch = new CountDownLatch(1);
-        ContentObserver settingsObserver = new ContentObserver(mHandler) {
-            @Override
-            public void onChange(boolean selfChange) {
-                locationChangeLatch.countDown();
-                super.onChange(selfChange);
-            }
-        };
+        ContentObserver settingsObserver =
+                new ContentObserver(mHandler) {
+                    @Override
+                    public void onChange(boolean selfChange) {
+                        locationChangeLatch.countDown();
+                        super.onChange(selfChange);
+                    }
+                };
 
-        InstrumentationRegistry.getInstrumentation().getUiAutomation()
+        InstrumentationRegistry.getInstrumentation()
+                .getUiAutomation()
                 .adoptShellPermissionIdentity();
+        ContentResolver contentResolver = getContext().getContentResolver();
         try {
-            int oldLocationMode = Settings.Secure.getInt(
-                    InstrumentationRegistry.getContext().getContentResolver(),
-                    Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
+            int oldLocationMode =
+                    Settings.Secure.getInt(
+                            contentResolver,
+                            Settings.Secure.LOCATION_MODE,
+                            Settings.Secure.LOCATION_MODE_OFF);
 
-            int locationMode = enabled ? Settings.Secure.LOCATION_MODE_HIGH_ACCURACY
-                    : Settings.Secure.LOCATION_MODE_OFF;
+            int locationMode =
+                    enabled
+                            ? Settings.Secure.LOCATION_MODE_HIGH_ACCURACY
+                            : Settings.Secure.LOCATION_MODE_OFF;
             if (locationMode != oldLocationMode) {
-                InstrumentationRegistry.getContext().getContentResolver().registerContentObserver(
+                contentResolver.registerContentObserver(
                         Settings.Secure.getUriFor(Settings.Secure.LOCATION_MODE),
-                        false, settingsObserver);
-                Settings.Secure.putInt(InstrumentationRegistry.getContext().getContentResolver(),
-                        Settings.Secure.LOCATION_MODE, locationMode);
+                        false,
+                        settingsObserver);
+                Settings.Secure.putInt(
+                        contentResolver, Settings.Secure.LOCATION_MODE, locationMode);
                 try {
-                    assertTrue(locationChangeLatch.await(LOCATION_SETTING_CHANGE_WAIT_MS,
-                            TimeUnit.MILLISECONDS));
+                    assertThat(
+                                    locationChangeLatch.await(
+                                            LOCATION_SETTING_CHANGE_WAIT_MS, TimeUnit.MILLISECONDS))
+                            .isTrue();
                 } catch (InterruptedException e) {
-                    Log.w(NetworkScanApiTest.class.getSimpleName(),
+                    Log.w(
+                            NetworkScanApiTest.class.getSimpleName(),
                             "Interrupted while waiting for location settings change. Test results"
-                            + " may not be accurate.");
+                                    + " may not be accurate.");
                 } finally {
-                    InstrumentationRegistry.getContext().getContentResolver()
-                            .unregisterContentObserver(settingsObserver);
+                    contentResolver.unregisterContentObserver(settingsObserver);
                 }
             }
             return oldLocationMode == Settings.Secure.LOCATION_MODE_HIGH_ACCURACY;
         } finally {
-            InstrumentationRegistry.getInstrumentation().getUiAutomation()
+            InstrumentationRegistry.getInstrumentation()
+                    .getUiAutomation()
                     .dropShellPermissionIdentity();
         }
     }
@@ -509,7 +536,7 @@
         }
         if ((mNetworkScanStatus == EVENT_NETWORK_SCAN_ERROR)
                 && ((mErrorCode == NetworkScan.ERROR_MODEM_UNAVAILABLE)
-                || (mErrorCode == NetworkScan.ERROR_UNSUPPORTED))) {
+                        || (mErrorCode == NetworkScan.ERROR_UNSUPPORTED))) {
             // Scan error but the error type is allowed.
             return true;
         }
@@ -523,130 +550,140 @@
         return mccMncs;
     }
 
-    /**
-     * To test its constructor and getters.
-     */
+    /** To test its constructor and getters. */
     @Test
-    public void testNetworkScanRequest_ConstructorAndGetters() {
-        NetworkScanRequest networkScanRequest = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+    public void testNetworkScanRequest_constructorAndGetters() {
+        NetworkScanRequest networkScanRequest =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
-        assertEquals("getScanType() returns wrong value",
-                SCAN_TYPE, networkScanRequest.getScanType());
-        assertEquals("getSpecifiers() returns wrong value",
-                RADIO_ACCESS_SPECIFIERS, networkScanRequest.getSpecifiers());
-        assertEquals("getSearchPeriodicity() returns wrong value",
-                SEARCH_PERIODICITY_SEC, networkScanRequest.getSearchPeriodicity());
-        assertEquals("getMaxSearchTime() returns wrong value",
-                MAX_SEARCH_TIME_SEC, networkScanRequest.getMaxSearchTime());
-        assertEquals("getIncrementalResults() returns wrong value",
-                INCREMENTAL_RESULTS, networkScanRequest.getIncrementalResults());
-        assertEquals("getIncrementalResultsPeriodicity() returns wrong value",
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                networkScanRequest.getIncrementalResultsPeriodicity());
-        assertEquals("getPlmns() returns wrong value", getPlmns(), networkScanRequest.getPlmns());
-        assertEquals("describeContents() returns wrong value",
-                0, networkScanRequest.describeContents());
+        assertWithMessage("getScanType() returns wrong value")
+                .that(networkScanRequest.getScanType())
+                .isEqualTo(SCAN_TYPE);
+        assertWithMessage("getSpecifiers() returns wrong value")
+                .that(networkScanRequest.getSpecifiers())
+                .isEqualTo(RADIO_ACCESS_SPECIFIERS);
+        assertWithMessage("getSearchPeriodicity() returns wrong value")
+                .that(networkScanRequest.getSearchPeriodicity())
+                .isEqualTo(SEARCH_PERIODICITY_SEC);
+        assertWithMessage("getMaxSearchTime() returns wrong value")
+                .that(networkScanRequest.getMaxSearchTime())
+                .isEqualTo(MAX_SEARCH_TIME_SEC);
+        assertWithMessage("getIncrementalResults() returns wrong value")
+                .that(networkScanRequest.getIncrementalResults())
+                .isEqualTo(INCREMENTAL_RESULTS);
+        assertWithMessage("getIncrementalResultsPeriodicity() returns wrong value")
+                .that(networkScanRequest.getIncrementalResultsPeriodicity())
+                .isEqualTo(INCREMENTAL_RESULTS_PERIODICITY_SEC);
+        assertWithMessage("getPlmns() returns wrong value")
+                .that(networkScanRequest.getPlmns())
+                .isEqualTo(getPlmns());
+        assertWithMessage("describeContents() returns wrong value")
+                .that(networkScanRequest.describeContents())
+                .isEqualTo(0);
     }
 
-    /**
-     * To test its hashCode method.
-     */
+    /** To test its hashCode method. */
     @Test
-    public void testNetworkScanRequestParcel_Hashcode() {
-        NetworkScanRequest networkScanRequest1 = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+    public void testNetworkScanRequestParcel_hashCode() {
+        NetworkScanRequest networkScanRequest1 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
-        NetworkScanRequest networkScanRequest2 = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+        NetworkScanRequest networkScanRequest2 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
-        NetworkScanRequest networkScanRequest3 = new NetworkScanRequest(
-                SCAN_TYPE,
-                null,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                false,
-                0,
-                getPlmns());
+        NetworkScanRequest networkScanRequest3 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        null,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        false,
+                        0,
+                        getPlmns());
 
-        assertEquals("hashCode() returns different hash code for same objects",
-                networkScanRequest1.hashCode(), networkScanRequest2.hashCode());
-        assertNotSame("hashCode() returns same hash code for different objects",
-                networkScanRequest1.hashCode(), networkScanRequest3.hashCode());
+        assertWithMessage("hashCode() returns different hash code for same objects")
+                .that(networkScanRequest1.hashCode())
+                .isEqualTo(networkScanRequest2.hashCode());
+        assertWithMessage("hashCode() returns same hash code for different objects")
+                .that(networkScanRequest1.hashCode())
+                .isNotEqualTo(networkScanRequest3.hashCode());
     }
 
-    /**
-     * To test its comparision method.
-     */
+    /** To test its comparison method. */
     @Test
-    public void testNetworkScanRequestParcel_Equals() {
-        NetworkScanRequest networkScanRequest1 = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+    public void testNetworkScanRequestParcel_equals() {
+        NetworkScanRequest networkScanRequest1 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
-        NetworkScanRequest networkScanRequest2 = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+        NetworkScanRequest networkScanRequest2 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
-        assertTrue(networkScanRequest1.equals(networkScanRequest2));
+        assertThat(networkScanRequest1).isEqualTo(networkScanRequest2);
 
-        networkScanRequest2 = new NetworkScanRequest(
-                SCAN_TYPE,
-                RADIO_ACCESS_SPECIFIERS,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                null /* List of PLMN ids (MCC-MNC) */);
-        assertFalse(networkScanRequest1.equals(networkScanRequest2));
+        networkScanRequest2 =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        RADIO_ACCESS_SPECIFIERS,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        null /* List of PLMN ids (MCC-MNC) */);
+        assertThat(networkScanRequest1).isNotEqualTo(networkScanRequest2);
     }
 
-    /**
-     * To test its writeToParcel and createFromParcel methods.
-     */
+    /** To test its writeToParcel and createFromParcel methods. */
     @Test
-    public void testNetworkScanRequestParcel_Parcel() {
-        NetworkScanRequest networkScanRequest = new NetworkScanRequest(
-                SCAN_TYPE,
-                null /* Radio Access Specifier */,
-                SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
-                INCREMENTAL_RESULTS,
-                INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                getPlmns());
+    public void testNetworkScanRequestParcel_parcel() {
+        NetworkScanRequest networkScanRequest =
+                new NetworkScanRequest(
+                        SCAN_TYPE,
+                        null /* Radio Access Specifier */,
+                        SEARCH_PERIODICITY_SEC,
+                        MAX_SEARCH_TIME_SEC,
+                        INCREMENTAL_RESULTS,
+                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
+                        getPlmns());
 
         Parcel p = Parcel.obtain();
         networkScanRequest.writeToParcel(p, 0);
         p.setDataPosition(0);
         NetworkScanRequest newnsr = NetworkScanRequest.CREATOR.createFromParcel(p);
-        assertTrue(networkScanRequest.equals(newnsr));
+        assertThat(networkScanRequest).isEqualTo(newnsr);
     }
 }
diff --git a/tests/tests/content/AndroidTest.xml b/tests/tests/content/AndroidTest.xml
index 9153d34..2ccc20e 100644
--- a/tests/tests/content/AndroidTest.xml
+++ b/tests/tests/content/AndroidTest.xml
@@ -100,7 +100,6 @@
         <option name="test-file-name" value="CtsContentPartiallyDirectBootAwareTestApp.apk" />
         <option name="test-file-name" value="CtsSyncAccountAccessStubs.apk" />
         <option name="test-file-name" value="CtsBinderPermissionTestService.apk" />
-        <option name="test-file-name" value="CtsContentTestsHelperApp.apk" />
     </target_preparer>
 
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
diff --git a/tests/tests/content/app/AndroidManifest.xml b/tests/tests/content/app/AndroidManifest.xml
deleted file mode 100644
index 07978ce..0000000
--- a/tests/tests/content/app/AndroidManifest.xml
+++ /dev/null
@@ -1,26 +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.content.pm.cts.app">
-    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
-    <application>
-        <uses-library android:name="android.test.runner" />
-        <activity android:name="android.content.pm.cts.app.MainActivity"
-                  android:exported="true" />
-    </application>
-</manifest>
diff --git a/tests/tests/content/app/src/android/content/pm/cts/app/MainActivity.java b/tests/tests/content/app/src/android/content/pm/cts/app/MainActivity.java
deleted file mode 100644
index 4e62a01..0000000
--- a/tests/tests/content/app/src/android/content/pm/cts/app/MainActivity.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2019 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.content.pm.cts.app;
-
-import android.app.Activity;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.os.PatternMatcher;
-import android.os.RemoteCallback;
-
-/**
- * Helper activity to listen for Incremental package state change broadcasts.
- */
-public class MainActivity extends Activity {
-    private IncrementalStatesBroadcastReceiver mReceiver;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        final Intent intent = getIntent();
-        final String targetPackageName = intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME);
-        final RemoteCallback remoteCallback = intent.getParcelableExtra("callback");
-        final IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_PACKAGE_FULLY_LOADED);
-        filter.addDataScheme("package");
-        filter.addDataSchemeSpecificPart(targetPackageName, PatternMatcher.PATTERN_LITERAL);
-        mReceiver = new IncrementalStatesBroadcastReceiver(targetPackageName, remoteCallback);
-        registerReceiver(mReceiver, filter);
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        unregisterReceiver(mReceiver);
-    }
-
-    private class IncrementalStatesBroadcastReceiver extends BroadcastReceiver {
-        private final String mPackageName;
-        private final RemoteCallback mCallback;
-        IncrementalStatesBroadcastReceiver(String packageName, RemoteCallback callback) {
-            mPackageName = packageName;
-            mCallback = callback;
-        }
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final Bundle extras = intent.getExtras();
-            final String packageName = extras.getString(Intent.EXTRA_PACKAGE_NAME, "");
-            if (!mPackageName.equals(packageName)) {
-                return;
-            }
-            Bundle result = new Bundle();
-            result.putString("intent", intent.getAction());
-            result.putBundle("extras", intent.getExtras());
-            mCallback.sendResult(result);
-        }
-    }
-}
diff --git a/tests/tests/content/src/android/content/cts/ContentProviderTest.java b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
index 1bc4ddc..b53f9f8 100644
--- a/tests/tests/content/src/android/content/cts/ContentProviderTest.java
+++ b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
@@ -261,29 +261,29 @@
                 provider.checkUriPermission(uri, android.os.Process.myUid(), 0));
     }
 
-    public void testCreateContentUriAsUser_nullUri_throwsNPE() {
+    public void testCreateContentUriForUser_nullUri_throwsNPE() {
         assertThrows(
                 NullPointerException.class,
-                () -> ContentProvider.createContentUriAsUser(null, UserHandle.of(7)));
+                () -> ContentProvider.createContentUriForUser(null, UserHandle.of(7)));
     }
 
-    public void testCreateContentUriAsUser_nonContentUri_throwsIAE() {
+    public void testCreateContentUriForUser_nonContentUri_throwsIAE() {
         final Uri uri = Uri.parse("notcontent://test");
         assertThrows(
                 IllegalArgumentException.class,
-                () -> ContentProvider.createContentUriAsUser(uri, UserHandle.of(7)));
+                () -> ContentProvider.createContentUriForUser(uri, UserHandle.of(7)));
     }
 
-    public void testCreateContentUriAsUser_UriWithDifferentUserID_throwsIAE() {
+    public void testCreateContentUriForUser_UriWithDifferentUserID_throwsIAE() {
         final Uri uri = Uri.parse("content://07@test");
         assertThrows(
                 IllegalArgumentException.class,
-                () -> ContentProvider.createContentUriAsUser(uri, UserHandle.of(7)));
+                () -> ContentProvider.createContentUriForUser(uri, UserHandle.of(7)));
     }
 
-    public void testCreateContentUriAsUser_UriWithUserID_unchanged() {
+    public void testCreateContentUriForUser_UriWithUserID_unchanged() {
         final Uri uri = Uri.parse("content://7@test");
-        assertEquals(uri, ContentProvider.createContentUriAsUser(uri, UserHandle.of(7)));
+        assertEquals(uri, ContentProvider.createContentUriForUser(uri, UserHandle.of(7)));
     }
 
     private class MockContentProvider extends ContentProvider {
diff --git a/tests/tests/content/src/android/content/cts/wm/OWNERS b/tests/tests/content/src/android/content/cts/wm/OWNERS
deleted file mode 100644
index 940ab87..0000000
--- a/tests/tests/content/src/android/content/cts/wm/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-include /tests/framework/base/windowmanager/OWNERS
-charlesccchen@google.com
diff --git a/tests/tests/content/src/android/content/pm/cts/PackageManagerShellCommandIncrementalTest.java b/tests/tests/content/src/android/content/pm/cts/PackageManagerShellCommandIncrementalTest.java
index 1440aeb..8a89898 100644
--- a/tests/tests/content/src/android/content/pm/cts/PackageManagerShellCommandIncrementalTest.java
+++ b/tests/tests/content/src/android/content/pm/cts/PackageManagerShellCommandIncrementalTest.java
@@ -23,15 +23,12 @@
 
 import android.annotation.NonNull;
 import android.app.UiAutomation;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.net.Uri;
 import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
-import android.os.RemoteCallback;
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UserHandle;
@@ -58,6 +55,7 @@
 import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -76,12 +74,10 @@
 import java.util.Optional;
 import java.util.Random;
 import java.util.Scanner;
-import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -157,18 +153,15 @@
 
     @Test
     public void testInstallWithIdSig() throws Exception {
-        final Result stateListenerResult = startListeningForBroadcast();
         installPackage(TEST_APK);
-        assertTrue(stateListenerResult.await());
         assertTrue(isAppInstalled(TEST_APP_PACKAGE));
     }
 
     @Test
+    @Ignore("Wait until the kernel change lands in RVC branch for the mixed vendor image tests")
     public void testBug183952694Fixed() throws Exception {
         // first ensure the IncFS is up and running, e.g. if it's a module
-        final Result stateListenerResult = startListeningForBroadcast();
         installPackage(TEST_APK);
-        assertTrue(stateListenerResult.await());
         assertTrue(isAppInstalled(TEST_APP_PACKAGE));
 
         // the bug is fixed in the v2 version, or when the specific marker feature is present
@@ -184,9 +177,7 @@
     public void testSplitInstallWithIdSig() throws Exception {
         // First fully install the apk.
         {
-            final Result stateListenerResult = startListeningForBroadcast();
             installPackage(TEST_APK);
-            assertTrue(stateListenerResult.await());
             assertTrue(isAppInstalled(TEST_APP_PACKAGE));
         }
 
@@ -215,12 +206,10 @@
         File[] files = new File[]{apkfile, splitfile};
         String param = Arrays.stream(files).map(
                 file -> file.getName() + ":" + file.length()).collect(Collectors.joining(" "));
-        final Result stateListenerResult = startListeningForBroadcast();
         assertEquals("Success\n", executeShellCommand(
                 String.format("pm install-incremental -t -g -S %s %s",
                         (apkfile.length() + splitfile.length()), param),
                 files));
-        assertTrue(stateListenerResult.await());
         assertTrue(isAppInstalled(TEST_APP_PACKAGE));
         assertEquals("base, config.mdpi", getSplits(TEST_APP_PACKAGE));
     }
@@ -420,12 +409,10 @@
     @Test
     public void testInstallWithIdSigInvalidLength() throws Exception {
         File file = new File(createApkPath(TEST_APK));
-        final Result stateListenerResult = startListeningForBroadcast();
         assertTrue(
                 executeShellCommand("pm install-incremental -t -g -S " + (file.length() - 1),
                         new File[]{file}).contains(
                         "Failure"));
-        assertFalse(stateListenerResult.await());
         assertFalse(isAppInstalled(TEST_APP_PACKAGE));
     }
 
@@ -436,14 +423,12 @@
         long length = file.length();
         // Streaming happens in blocks of 1024 bytes, new length will not stream the last block.
         long newLength = length - (length % 1024 == 0 ? 1024 : length % 1024);
-        final Result stateListenerResult = startListeningForBroadcast();
         assertTrue(
                 executeShellCommand(
                         "pm install-incremental -t -g -S " + length,
                         new File[] {file},
                         new long[] {newLength})
                         .contains("Failure"));
-        assertFalse(stateListenerResult.await());
         assertFalse(isAppInstalled(TEST_APP_PACKAGE));
     }
 
@@ -752,9 +737,7 @@
             setDeviceProperty("incfs_default_timeouts", "5000000:5000000:5000000");
             setDeviceProperty("known_digesters_list", CTS_PACKAGE_NAME);
 
-            final Result stateListenerResult = startListeningForBroadcast();
             installPackage(TEST_APK);
-            assertTrue(stateListenerResult.await());
             assertTrue(isAppInstalled(TEST_APP_PACKAGE));
         } finally {
             executeShellCommand("atrace --async_stop");
@@ -819,9 +802,7 @@
 
         // First fully install the apk and a split0.
         {
-            final Result stateListenerResult = startListeningForBroadcast();
             installPackage(TEST_APK);
-            assertTrue(stateListenerResult.await());
             assertTrue(isAppInstalled(TEST_APP_PACKAGE));
             installSplit(TEST_APK_SPLIT0);
             assertEquals("base, config.mdpi", getSplits(TEST_APP_PACKAGE));
@@ -848,13 +829,11 @@
         File[] files = new File[]{apkfile, splitfile};
         String param = Arrays.stream(files).map(
                 file -> file.getName() + ":" + file.length()).collect(Collectors.joining(" "));
-        final Result stateListenerResult = startListeningForBroadcast();
         assertTrue(executeShellCommand(
                 String.format("pm install-incremental -t -g -S %s %s",
                         (apkfile.length() + splitfile.length()), param),
                 files, new long[]{apkfile.length(), newSplitLength}).contains(
                 "Failure"));
-        assertFalse(stateListenerResult.await());
         assertFalse(isAppInstalled(TEST_APP_PACKAGE));
     }
 
@@ -1016,14 +995,12 @@
 
     private void installSplit(String splitName) throws Exception {
         final File splitfile = new File(createApkPath(splitName));
-        final Result stateListenerResult = startListeningForBroadcast();
 
         try (InputStream inputStream = executeShellCommandStream(
                 "pm install-incremental -t -g -p " + TEST_APP_PACKAGE + " "
                         + splitfile.getPath())) {
             assertEquals("Success\n", readFullStream(inputStream));
         }
-        assertTrue(stateListenerResult.await());
     }
 
     private void readSplitInChunks(String splitName) throws Exception {
@@ -1078,38 +1055,6 @@
         boolean await() throws Exception;
     }
 
-    private Result startListeningForBroadcast() {
-        final Intent intent = new Intent()
-                .setComponent(new ComponentName("android.content.pm.cts.app", "android.content"
-                        + ".pm.cts.app.MainActivity"))
-                // data uri unique to each activity start to ensure actual launch and not just
-                // redisplay
-                .setData(Uri.parse("test://" + UUID.randomUUID().toString()))
-                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
-        intent.putExtra(Intent.EXTRA_PACKAGE_NAME, TEST_APP_PACKAGE);
-        // Should receive at least one fully_loaded broadcast
-        final CompletableFuture<Boolean> fullyLoaded = new CompletableFuture<>();
-        final RemoteCallback callback = new RemoteCallback(
-                bundle -> {
-                    if (bundle == null) {
-                        return;
-                    }
-                    if (bundle.getString("intent").equals(
-                            Intent.ACTION_PACKAGE_FULLY_LOADED)) {
-                        fullyLoaded.complete(true);
-                    }
-                });
-        intent.putExtra("callback", callback);
-        getContext().startActivity(intent);
-        return () -> {
-            try {
-                return fullyLoaded.get(30, TimeUnit.SECONDS);
-            } catch (TimeoutException e) {
-                return false;
-            }
-        };
-    }
-
     private static String executeShellCommand(String command) throws IOException {
         try (InputStream inputStream = executeShellCommandStream(command)) {
             return readFullStream(inputStream);
diff --git a/tests/tests/content/src/android/content/wm/cts/OWNERS b/tests/tests/content/src/android/content/wm/cts/OWNERS
new file mode 100644
index 0000000..5ed5c56
--- /dev/null
+++ b/tests/tests/content/src/android/content/wm/cts/OWNERS
@@ -0,0 +1,2 @@
+include platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS
+charlesccchen@google.com
diff --git a/tests/tests/display/src/android/display/cts/DisplayTest.java b/tests/tests/display/src/android/display/cts/DisplayTest.java
index 0ce4d68..1ac4507 100644
--- a/tests/tests/display/src/android/display/cts/DisplayTest.java
+++ b/tests/tests/display/src/android/display/cts/DisplayTest.java
@@ -77,9 +77,14 @@
 import java.util.Optional;
 import java.util.Random;
 import java.util.Scanner;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.function.Predicate;
 import java.util.function.Supplier;
 
 @RunWith(AndroidJUnit4.class)
@@ -272,11 +277,18 @@
      */
     @Test
     public void
-            testGetHdrCapabilitiesWhenUserDisabledFormatsAreNotAllowedReturnsFilteredHdrTypes() {
+            testGetHdrCapabilitiesWhenUserDisabledFormatsAreNotAllowedReturnsFilteredHdrTypes()
+                    throws Exception {
         final IBinder displayToken = SurfaceControl.getInternalDisplayToken();
         SurfaceControl.overrideHdrTypes(displayToken, new int[]{
                 HdrCapabilities.HDR_TYPE_DOLBY_VISION, HdrCapabilities.HDR_TYPE_HDR10,
                 HdrCapabilities.HDR_TYPE_HLG, HdrCapabilities.HDR_TYPE_HDR10_PLUS});
+        waitUntil(
+                mDefaultDisplay,
+                mDefaultDisplay ->
+                        mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length == 4,
+                Duration.ofSeconds(5));
+        assertEquals(4, mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length);
 
         mDisplayManager.setAreUserDisabledHdrTypesAllowed(false);
         int[] emptyUserDisabledFormats = {};
@@ -310,11 +322,18 @@
      */
     @Test
     public void
-            testGetHdrCapabilitiesWhenUserDisabledFormatsAreAllowedReturnsNonFilteredHdrTypes() {
+            testGetHdrCapabilitiesWhenUserDisabledFormatsAreAllowedReturnsNonFilteredHdrTypes()
+                    throws Exception {
         final IBinder displayToken = SurfaceControl.getInternalDisplayToken();
         SurfaceControl.overrideHdrTypes(displayToken, new int[]{
                 HdrCapabilities.HDR_TYPE_DOLBY_VISION, HdrCapabilities.HDR_TYPE_HDR10,
                 HdrCapabilities.HDR_TYPE_HLG, HdrCapabilities.HDR_TYPE_HDR10_PLUS});
+        waitUntil(
+                mDefaultDisplay,
+                mDefaultDisplay ->
+                        mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length == 4,
+                Duration.ofSeconds(5));
+        assertEquals(4, mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length);
 
         mDisplayManager.setAreUserDisabledHdrTypesAllowed(true);
         int[] userDisabledHdrTypes =
@@ -337,12 +356,17 @@
      * setUserDisabledHdrTypes, the setting is persisted in Settings.Global.
      */
     @Test
-    public void testSetUserDisabledHdrTypesStoresDisabledFormatsInSettings()
-            throws NumberFormatException {
+    public void testSetUserDisabledHdrTypesStoresDisabledFormatsInSettings() throws Exception {
         final IBinder displayToken = SurfaceControl.getInternalDisplayToken();
         SurfaceControl.overrideHdrTypes(displayToken, new int[]{
                 HdrCapabilities.HDR_TYPE_DOLBY_VISION, HdrCapabilities.HDR_TYPE_HDR10,
                 HdrCapabilities.HDR_TYPE_HLG, HdrCapabilities.HDR_TYPE_HDR10_PLUS});
+        waitUntil(
+                mDefaultDisplay,
+                mDefaultDisplay ->
+                        mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length == 4,
+                Duration.ofSeconds(5));
+        assertEquals(4, mDefaultDisplay.getHdrCapabilities().getSupportedHdrTypes().length);
 
         mDisplayManager.setAreUserDisabledHdrTypesAllowed(false);
         int[] emptyUserDisabledFormats = {};
@@ -363,6 +387,44 @@
         assertEquals(HdrCapabilities.HDR_TYPE_HLG, userDisabledFormats[1]);
     }
 
+    private void waitUntil(Display d, Predicate<Display> pred, Duration maxWait) throws Exception {
+        final int id = d.getDisplayId();
+        final Lock lock = new ReentrantLock();
+        final Condition displayChanged = lock.newCondition();
+        DisplayListener listener = new DisplayListener() {
+            @Override
+            public void onDisplayChanged(int displayId) {
+                if (displayId != id) {
+                    return;
+                }
+                lock.lock();
+                try {
+                    displayChanged.signal();
+                } finally {
+                    lock.unlock();
+                }
+            }
+            @Override
+            public void onDisplayAdded(int displayId) {}
+            @Override
+            public void onDisplayRemoved(int displayId) {}
+        };
+        Handler handler = new Handler(Looper.getMainLooper());
+        mDisplayManager.registerDisplayListener(listener, handler);
+        long remainingNanos = maxWait.toNanos();
+        lock.lock();
+        try {
+            while (!pred.test(mDefaultDisplay)) {
+                if (remainingNanos <= 0L) {
+                    throw new TimeoutException();
+                }
+                displayChanged.awaitNanos(remainingNanos);
+            }
+        } finally {
+            lock.unlock();
+        }
+    }
+
     /**
      * Verify that there is a secondary display.
      */
@@ -745,7 +807,6 @@
         }
     }
 
-
     @Test
     public void testGetDeviceProductInfo() {
         DeviceProductInfo deviceProductInfo = mDefaultDisplay.getDeviceProductInfo();
@@ -777,6 +838,23 @@
     }
 
     @Test
+    public void testDeviceProductInfo() {
+        DeviceProductInfo deviceProductInfo = new DeviceProductInfo(
+                "DeviceName" /* name */,
+                "TTL" /* manufacturePnpId */,
+                "ProductId1" /* productId */,
+                2000 /* modelYear */,
+                DeviceProductInfo.CONNECTION_TO_SINK_DIRECT);
+
+        assertEquals("DeviceName", deviceProductInfo.getName());
+        assertEquals("TTL", deviceProductInfo.getManufacturerPnpId());
+        assertEquals("ProductId1", deviceProductInfo.getProductId());
+        assertEquals(2000, deviceProductInfo.getModelYear());
+        assertEquals(DeviceProductInfo.CONNECTION_TO_SINK_DIRECT,
+                deviceProductInfo.getConnectionToSinkType());
+    }
+
+    @Test
     public void testFailBrightnessChangeWithoutPermission() throws Exception {
         final DisplayTestActivity activity = launchActivity(mDisplayTestActivity);
         final int originalValue = Settings.System.getInt(mContext.getContentResolver(),
diff --git a/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java b/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
index c4db581..051ad1a 100644
--- a/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
+++ b/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
@@ -19,6 +19,14 @@
 import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS;
 import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.Manifest;
 import android.app.Presentation;
 import android.content.Context;
 import android.graphics.Color;
@@ -35,7 +43,7 @@
 import android.os.Looper;
 import android.os.SystemClock;
 import android.platform.test.annotations.SecurityTest;
-import android.test.AndroidTestCase;
+import android.provider.Settings;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.Display;
@@ -43,6 +51,19 @@
 import android.view.ViewGroup.LayoutParams;
 import android.widget.ImageView;
 
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.compatibility.common.util.AdoptShellPermissionsRule;
+import com.android.compatibility.common.util.SettingsStateKeeperRule;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.nio.ByteBuffer;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -53,7 +74,8 @@
  * This CTS test is unable to test public virtual displays since special permissions
  * are required.  See also framework VirtualDisplayTest unit tests.
  */
-public class VirtualDisplayTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class VirtualDisplayTest {
     private static final String TAG = "VirtualDisplayTest";
 
     private static final String NAME = TAG;
@@ -70,6 +92,7 @@
     private static final int BLUEISH = 0xff1122ee;
     private static final int GREENISH = 0xff33dd44;
 
+    private Context mContext;
     private DisplayManager mDisplayManager;
     private Handler mHandler;
     private final Lock mImageReaderLock = new ReentrantLock(true /*fair*/);
@@ -79,10 +102,24 @@
     private HandlerThread mCheckThread;
     private Handler mCheckHandler;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Rule
+    public AdoptShellPermissionsRule mAdoptShellPermissionsRule = new AdoptShellPermissionsRule(
+            InstrumentationRegistry.getInstrumentation().getUiAutomation(),
+            Manifest.permission.WRITE_SECURE_SETTINGS);
 
+    @ClassRule
+    public static final SettingsStateKeeperRule mAreUserDisabledHdrFormatsAllowedSettingsKeeper =
+            new SettingsStateKeeperRule(InstrumentationRegistry.getTargetContext(),
+                    Settings.Global.ARE_USER_DISABLED_HDR_FORMATS_ALLOWED);
+
+    @ClassRule
+    public static final SettingsStateKeeperRule mUserDisabledHdrFormatsSettingsKeeper =
+            new SettingsStateKeeperRule(InstrumentationRegistry.getTargetContext(),
+                    Settings.Global.USER_DISABLED_HDR_FORMATS);
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = InstrumentationRegistry.getInstrumentation().getContext();
         mDisplayManager = (DisplayManager)mContext.getSystemService(Context.DISPLAY_SERVICE);
         mHandler = new Handler(Looper.getMainLooper());
         mImageListener = new ImageListener();
@@ -101,9 +138,8 @@
         }
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         mImageReaderLock.lock();
         try {
             mImageReader.close();
@@ -120,6 +156,7 @@
      * its own windows on it.
      */
     @SecurityTest
+    @Test
     public void testPrivateVirtualDisplay() throws Exception {
         VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
                 WIDTH, HEIGHT, DENSITY, mSurface, 0);
@@ -144,6 +181,7 @@
      * its own windows on it.
      */
     @SecurityTest
+    @Test
     public void testPrivatePresentationVirtualDisplay() throws Exception {
         VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
                 WIDTH, HEIGHT, DENSITY, mSurface,
@@ -169,6 +207,7 @@
      * its own windows on it where the surface is attached or detached dynamically.
      */
     @SecurityTest
+    @Test
     public void testPrivateVirtualDisplayWithDynamicSurface() throws Exception {
         VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
                 WIDTH, HEIGHT, DENSITY, null, 0);
@@ -202,6 +241,7 @@
      * flag {@link DisplayManager#VIRTUAL_DISPLAY_FLAG_TRUSTED}.
      */
     @SecurityTest
+    @Test
     public void testUntrustedSysDecorVirtualDisplay() throws Exception {
         VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
                 WIDTH, HEIGHT, DENSITY, mSurface,
@@ -229,6 +269,7 @@
      * display without holding the permission {@code ADD_TRUSTED_DISPLAY}.
      */
     @SecurityTest
+    @Test
     public void testTrustedVirtualDisplay() throws Exception {
         try {
             VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
@@ -241,6 +282,36 @@
                 + "holding the permission ADD_TRUSTED_DISPLAY.");
     }
 
+    @Test
+    public void testHdrApiMethods() {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface, /*flags*/ 0);
+        try {
+            assertFalse(virtualDisplay.getDisplay().isHdr());
+            assertNull(virtualDisplay.getDisplay().getHdrCapabilities());
+        } finally {
+            virtualDisplay.release();
+        }
+    }
+
+    @Test
+    public void testGetHdrCapabilitiesWithUserDisabledFormats() {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface, /*flags*/ 0);
+        mDisplayManager.setAreUserDisabledHdrTypesAllowed(false);
+        int[] userDisabledHdrTypes = {
+                Display.HdrCapabilities.HDR_TYPE_DOLBY_VISION,
+                Display.HdrCapabilities.HDR_TYPE_HLG};
+        mDisplayManager.setUserDisabledHdrTypes(userDisabledHdrTypes);
+
+        try {
+            assertFalse(virtualDisplay.getDisplay().isHdr());
+            assertNull(virtualDisplay.getDisplay().getHdrCapabilities());
+        } finally {
+            virtualDisplay.release();
+        }
+    }
+
     private void assertDisplayRegistered(Display display, int flags) {
         assertNotNull("display object must not be null", display);
         assertTrue("display must be valid", display.isValid());
@@ -286,7 +357,7 @@
             runOnUiThread(new Runnable() {
                 @Override
                 public void run() {
-                    presentation[0] = new TestPresentation(getContext(), display,
+                    presentation[0] = new TestPresentation(mContext, display,
                             color, windowFlags);
                     presentation[0].show();
                 }
diff --git a/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java b/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java
index e6cceb7..74508e8 100644
--- a/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java
@@ -33,6 +33,7 @@
 import android.graphics.Typeface.Builder;
 import android.os.SharedMemory;
 import android.system.ErrnoException;
+import android.util.ArrayMap;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
@@ -860,7 +861,8 @@
         }
         assertNotNull(shm);
 
-        Map<String, Typeface> reversedMap = Typeface.deserializeFontMap(shm.mapReadOnly());
+        Map<String, Typeface> reversedMap = new ArrayMap<>();
+        Typeface.deserializeFontMap(shm.mapReadOnly(), reversedMap);
 
         // Typeface equality doesn't work here since the backing native object is different.
         assertEquals(3, reversedMap.size());
diff --git a/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformCtsActivity.java b/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformCtsActivity.java
index b00a072..227e6d7 100644
--- a/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformCtsActivity.java
+++ b/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformCtsActivity.java
@@ -24,13 +24,14 @@
 import android.os.Bundle;
 import android.util.Log;
 import android.view.Surface;
+import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.WindowManager;
 
 /**
  * Activity for VulkanPreTransformTest.
  */
-public class VulkanPreTransformCtsActivity extends Activity {
+public class VulkanPreTransformCtsActivity extends Activity implements SurfaceHolder.Callback {
     static {
         System.loadLibrary("ctsgraphics_jni");
     }
@@ -48,7 +49,7 @@
         setActivityOrientation();
         setContentView(R.layout.vulkan_pretransform_layout);
         SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceview);
-        mSurface = surfaceView.getHolder().getSurface();
+        surfaceView.getHolder().addCallback(this);
     }
 
     private void setActivityOrientation() {
@@ -76,10 +77,36 @@
     }
 
     public void testVulkanPreTransform(boolean setPreTransform) {
+        synchronized (this) {
+            if (mSurface == null) {
+                try {
+                    // Wait for surfaceCreated callback on UI thread.
+                    this.wait();
+                } catch (Exception e) {
+                }
+            }
+        }
         nCreateNativeTest(getAssets(), mSurface, setPreTransform);
         sOrientationRequested = false;
     }
 
     private static native void nCreateNativeTest(
             AssetManager manager, Surface surface, boolean setPreTransform);
+
+    @Override
+    public void surfaceCreated(SurfaceHolder holder) {
+        synchronized (this) {
+            mSurface = holder.getSurface();
+            this.notify();
+        }
+    }
+
+    @Override
+    public void surfaceChanged(SurfaceHolder holder, int format,
+      int width, int height) {
+    }
+
+    @Override
+    public void surfaceDestroyed(SurfaceHolder holder) {
+    }
 }
diff --git a/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformTest.java b/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformTest.java
index 427ae77..79c8342 100644
--- a/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/VulkanPreTransformTest.java
@@ -105,9 +105,6 @@
     @Before
     public void setUp() {
         Log.d(TAG, "setUp!");
-        // Work around for b/77148807
-        // Activity was falsely created before ActivityManager set config change to landscape
-        SystemClock.sleep(2000);
         mContext = InstrumentationRegistry.getContext();
     }
 
@@ -120,7 +117,6 @@
             return;
         }
         sActivity = mActivityRule.launchActivity(null);
-        SystemClock.sleep(5000);
         sActivity.testVulkanPreTransform(true);
         sActivity.finish();
         sActivity = null;
@@ -135,7 +131,6 @@
             return;
         }
         sActivity = mActivityRule.launchActivity(null);
-        SystemClock.sleep(5000);
         sActivity.testVulkanPreTransform(false);
         sActivity.finish();
         sActivity = null;
diff --git a/tests/tests/graphics/src/android/graphics/fonts/FontFamilyUpdateRequestTest.java b/tests/tests/graphics/src/android/graphics/fonts/FontFamilyUpdateRequestTest.java
index 95b1600..094a950 100644
--- a/tests/tests/graphics/src/android/graphics/fonts/FontFamilyUpdateRequestTest.java
+++ b/tests/tests/graphics/src/android/graphics/fonts/FontFamilyUpdateRequestTest.java
@@ -77,17 +77,18 @@
     @Test
     public void fontFamily() {
         String name = "test";
-        List<FontFamilyUpdateRequest.Font> fonts = Arrays.asList(
-                new FontFamilyUpdateRequest.Font.Builder("Test",
-                        new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT)).build(),
-                new FontFamilyUpdateRequest.Font.Builder("Test",
-                        new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_ITALIC)).build());
+        FontFamilyUpdateRequest.Font font1 = new FontFamilyUpdateRequest.Font.Builder("Test",
+                new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT)).build();
+        FontFamilyUpdateRequest.Font font2 = new FontFamilyUpdateRequest.Font.Builder("Test",
+                new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_ITALIC)).build();
         FontFamilyUpdateRequest.FontFamily fontFamily =
-                new FontFamilyUpdateRequest.FontFamily.Builder(name, fonts).build();
+                new FontFamilyUpdateRequest.FontFamily.Builder(name,
+                        Collections.singletonList(font1)).addFont(font2).build();
         assertThat(fontFamily.getName()).isEqualTo(name);
-        assertThat(fontFamily.getFonts()).containsExactlyElementsIn(fonts).inOrder();
+        assertThat(fontFamily.getFonts()).containsExactly(font1, font2).inOrder();
 
         // Invalid parameters
+        List<FontFamilyUpdateRequest.Font> fonts = Arrays.asList(font1, font2);
         assertThrows(NullPointerException.class, () ->
                 new FontFamilyUpdateRequest.FontFamily.Builder(null, fonts).build());
         assertThrows(IllegalArgumentException.class, () ->
diff --git a/tests/tests/graphics/src/android/graphics/fonts/FontFileTestUtil.java b/tests/tests/graphics/src/android/graphics/fonts/FontFileTestUtil.java
new file mode 100644
index 0000000..acb0c76
--- /dev/null
+++ b/tests/tests/graphics/src/android/graphics/fonts/FontFileTestUtil.java
@@ -0,0 +1,91 @@
+/*
+ * 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.graphics.fonts;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.channels.FileChannel;
+import java.nio.charset.StandardCharsets;
+
+public class FontFileTestUtil {
+    private static final int SFNT_VERSION_1 = 0x00010000;
+    private static final int SFNT_VERSION_OTTO = 0x4F54544F;
+    private static final int TTC_TAG = 0x74746366;
+    private static final int NAME_TAG = 0x6E616D65;
+
+    public static String getPostScriptName(File file) throws IOException {
+        try (FileInputStream fis = new FileInputStream(file)) {
+            final FileChannel fc = fis.getChannel();
+            long size = fc.size();
+            ByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, size)
+                    .order(ByteOrder.BIG_ENDIAN);
+
+            int magicNumber = buffer.getInt(0);
+
+            int fontOffset = 0;
+            if (magicNumber == TTC_TAG) {
+                fontOffset = buffer.getInt(12);  // 0th offset
+                magicNumber = buffer.getInt(fontOffset);
+                if (magicNumber != SFNT_VERSION_1 && magicNumber != SFNT_VERSION_OTTO) {
+                    throw new IOException("Unknown magic number at 0th font: #" + magicNumber);
+                }
+            } else if (magicNumber != SFNT_VERSION_1 && magicNumber != SFNT_VERSION_OTTO) {
+                throw new IOException("Unknown magic number: #" + magicNumber);
+            }
+
+            int numTables = buffer.getShort(fontOffset + 4);  // offset to number of table
+            int nameTableOffset = 0;
+            for (int i = 0; i < numTables; ++i) {
+                int tableEntryOffset = fontOffset + 12 + i * 16;
+                int tableTag = buffer.getInt(tableEntryOffset);
+                if (tableTag == NAME_TAG) {
+                    nameTableOffset = buffer.getInt(tableEntryOffset + 8);
+                    break;
+                }
+            }
+
+            if (nameTableOffset == 0) {
+                throw new IOException("name table not found.");
+            }
+
+            int nameTableCount = buffer.getShort(nameTableOffset + 2);
+            int storageOffset = buffer.getShort(nameTableOffset + 4);
+
+            for (int i = 0; i < nameTableCount; ++i) {
+                int platformID = buffer.getShort(nameTableOffset + 6 + i * 12);
+                int encodingID = buffer.getShort(nameTableOffset + 6 + i * 12 + 2);
+                int languageID = buffer.getShort(nameTableOffset + 6 + i * 12 + 4);
+                int nameID = buffer.getShort(nameTableOffset + 6 + i * 12 + 6);
+                int length = buffer.getShort(nameTableOffset + 6 + i * 12 + 8);
+                int stringOffset = buffer.getShort(nameTableOffset + 6 + i * 12 + 10);
+
+                if (nameID == 6 && platformID == 3 && encodingID == 1 && languageID == 1033) {
+                    byte[] name = new byte[length];
+                    ByteBuffer slice = buffer.slice();
+                    slice.position(nameTableOffset + storageOffset + stringOffset);
+                    slice.get(name);
+                    // encoded in UTF-16BE for platform ID = 3
+                    return new String(name, StandardCharsets.UTF_16BE);
+                }
+            }
+        }
+        return null;
+    }
+}
diff --git a/tests/tests/graphics/src/android/graphics/fonts/FontManagerTest.java b/tests/tests/graphics/src/android/graphics/fonts/FontManagerTest.java
index 85b75d4..dd9576f 100644
--- a/tests/tests/graphics/src/android/graphics/fonts/FontManagerTest.java
+++ b/tests/tests/graphics/src/android/graphics/fonts/FontManagerTest.java
@@ -258,5 +258,16 @@
         }
     }
 
+    @Test
+    public void fontManager_PostScriptName() throws IOException {
+        FontConfig fontConfig = getFontConfig();
+        for (FontConfig.FontFamily family : fontConfig.getFontFamilies()) {
+            for (FontConfig.Font font : family.getFontList()) {
+                String psNameInFile = FontFileTestUtil.getPostScriptName(font.getFile());
+                assertThat(font.getPostScriptName()).isEqualTo(psNameInFile);
+            }
+        }
+    }
+
     // TODO: Add more tests once we sign test fonts.
 }
diff --git a/tests/tests/graphics/src/android/graphics/fonts/SystemFontsUniqueNameTest.java b/tests/tests/graphics/src/android/graphics/fonts/SystemFontsUniqueNameTest.java
index 812cf3b..7e25ce5 100644
--- a/tests/tests/graphics/src/android/graphics/fonts/SystemFontsUniqueNameTest.java
+++ b/tests/tests/graphics/src/android/graphics/fonts/SystemFontsUniqueNameTest.java
@@ -26,81 +26,13 @@
 import org.junit.runner.RunWith;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.FileChannel;
-import java.nio.charset.StandardCharsets;
 import java.util.HashSet;
 import java.util.Set;
 
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class SystemFontsUniqueNameTest {
-    private static final int SFNT_VERSION_1 = 0x00010000;
-    private static final int SFNT_VERSION_OTTO = 0x4F54544F;
-    private static final int TTC_TAG = 0x74746366;
-    private static final int NAME_TAG = 0x6E616D65;
-
-    private static String getPostScriptName(File file) throws IOException {
-        try (FileInputStream fis = new FileInputStream(file)) {
-            final FileChannel fc = fis.getChannel();
-            long size = fc.size();
-            ByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, size)
-                    .order(ByteOrder.BIG_ENDIAN);
-
-            int magicNumber = buffer.getInt(0);
-
-            int fontOffset = 0;
-            if (magicNumber == TTC_TAG) {
-                fontOffset = buffer.getInt(12);  // 0th offset
-                magicNumber = buffer.getInt(fontOffset);
-                if (magicNumber != SFNT_VERSION_1 && magicNumber != SFNT_VERSION_OTTO) {
-                    throw new IOException("Unknown magic number at 0th font: #" + magicNumber);
-                }
-            } else if (magicNumber != SFNT_VERSION_1 && magicNumber != SFNT_VERSION_OTTO) {
-                throw new IOException("Unknown magic number: #" + magicNumber);
-            }
-
-            int numTables = buffer.getShort(fontOffset + 4);  // offset to number of table
-            int nameTableOffset = 0;
-            for (int i = 0; i < numTables; ++i) {
-                int tableEntryOffset = fontOffset + 12 + i * 16;
-                int tableTag = buffer.getInt(tableEntryOffset);
-                if (tableTag == NAME_TAG) {
-                    nameTableOffset = buffer.getInt(tableEntryOffset + 8);
-                    break;
-                }
-            }
-
-            if (nameTableOffset == 0) {
-                throw new IOException("name table not found.");
-            }
-
-            int nameTableCount = buffer.getShort(nameTableOffset + 2);
-            int storageOffset = buffer.getShort(nameTableOffset + 4);
-
-            for (int i = 0; i < nameTableCount; ++i) {
-                int platformID = buffer.getShort(nameTableOffset + 6 + i * 12);
-                int encodingID = buffer.getShort(nameTableOffset + 6 + i * 12 + 2);
-                int languageID = buffer.getShort(nameTableOffset + 6 + i * 12 + 4);
-                int nameID = buffer.getShort(nameTableOffset + 6 + i * 12 + 6);
-                int length = buffer.getShort(nameTableOffset + 6 + i * 12 + 8);
-                int stringOffset = buffer.getShort(nameTableOffset + 6 + i * 12 + 10);
-
-                if (nameID == 6 && platformID == 3 && encodingID == 1 && languageID == 1033) {
-                    byte[] name = new byte[length];
-                    ByteBuffer slice = buffer.slice();
-                    slice.position(nameTableOffset + storageOffset + stringOffset);
-                    slice.get(name);
-                    // encoded in UTF-16BE for platform ID = 3
-                    return new String(name, StandardCharsets.UTF_16BE);
-                }
-            }
-        }
-        return null;
-    }
 
     @Test
     public void uniquePostScript() throws IOException {
@@ -111,7 +43,7 @@
             if (seenFile.contains(font.getFile())) {
                 continue;
             }
-            String psName = getPostScriptName(font.getFile());
+            String psName = FontFileTestUtil.getPostScriptName(font.getFile());
             assertThat(psName).isNotNull();
             assertThat(set).doesNotContain(psName);
 
diff --git a/tests/tests/hardware/res/raw/sony_dualsense_usb_register.json b/tests/tests/hardware/res/raw/sony_dualsense_usb_register.json
index f1f19a8..e40d5a6 100644
--- a/tests/tests/hardware/res/raw/sony_dualsense_usb_register.json
+++ b/tests/tests/hardware/res/raw/sony_dualsense_usb_register.json
@@ -38,7 +38,7 @@
       "id": 0x09,
       "data": [
         0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
     },
     {
       "id": 0x20,
diff --git a/tests/tests/hardware/src/android/hardware/hdmi/cts/HdmiControlManagerTest.java b/tests/tests/hardware/src/android/hardware/hdmi/cts/HdmiControlManagerTest.java
index 8bd230d..fcf0c31 100644
--- a/tests/tests/hardware/src/android/hardware/hdmi/cts/HdmiControlManagerTest.java
+++ b/tests/tests/hardware/src/android/hardware/hdmi/cts/HdmiControlManagerTest.java
@@ -109,8 +109,8 @@
                     mHdmiControlManager.getClient(HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM)).isNotNull();
         }
 
-        boolean isSwitchDevice = SystemProperties.getBoolean("ro.hdmi.cec.source.is_switch.enabled",
-                false);
+        boolean isSwitchDevice = SystemProperties.getBoolean(
+                "ro.hdmi.property_is_device_hdmi_cec_switch", false);
         if (deviceTypes.contains("6") || isSwitchDevice) {
             assertThat(mHdmiControlManager.getSwitchClient()).isInstanceOf(HdmiSwitchClient.class);
             assertThat(mHdmiControlManager.getClient(6)).isInstanceOf(HdmiSwitchClient.class);
@@ -135,8 +135,8 @@
                     HdmiDeviceInfo.DEVICE_PLAYBACK);
         }
 
-        boolean isSwitchDevice = SystemProperties.getBoolean("ro.hdmi.cec.source.is_switch.enabled",
-                false);
+        boolean isSwitchDevice = SystemProperties.getBoolean(
+                "ro.hdmi.property_is_device_hdmi_cec_switch", false);
 
         if (deviceTypes.contains(String.valueOf(DEVICE_TYPE_SWITCH)) || isSwitchDevice) {
             assertThat(mHdmiControlManager.getSwitchClient().getDeviceType()).isEqualTo(
diff --git a/tests/tests/hardware/src/android/hardware/input/cts/tests/NintendoSwitchProTest.java b/tests/tests/hardware/src/android/hardware/input/cts/tests/NintendoSwitchProTest.java
index 28ce6dc..1477720 100644
--- a/tests/tests/hardware/src/android/hardware/input/cts/tests/NintendoSwitchProTest.java
+++ b/tests/tests/hardware/src/android/hardware/input/cts/tests/NintendoSwitchProTest.java
@@ -16,6 +16,10 @@
 
 package android.hardware.input.cts.tests;
 
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+import static org.junit.Assume.assumeFalse;
+
+import android.content.pm.PackageManager;
 import android.hardware.cts.R;
 import android.os.SystemClock;
 
@@ -49,11 +53,18 @@
 
     @Test
     public void testAllKeys() {
+        assumeFalse("Skipping test for wear devices", isWatch());
         testInputEvents(R.raw.nintendo_switchpro_keyeventtests);
     }
 
     @Test
     public void testAllMotions() {
+        assumeFalse("Skipping test for wear devices", isWatch());
         testInputEvents(R.raw.nintendo_switchpro_motioneventtests);
     }
+
+    static boolean isWatch() {
+        final PackageManager pm = getInstrumentation().getContext().getPackageManager();
+        return pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
+    }
 }
diff --git a/tests/tests/media/src/android/media/cts/AudioDeviceInfoTest.java b/tests/tests/media/src/android/media/cts/AudioDeviceInfoTest.java
new file mode 100644
index 0000000..a2a90dc
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/AudioDeviceInfoTest.java
@@ -0,0 +1,127 @@
+/*
+ * 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.media.cts;
+
+import static org.junit.Assert.*;
+
+import android.media.AudioDeviceInfo;
+import android.util.Log;
+import androidx.test.runner.AndroidJUnit4;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@NonMediaMainlineTest
+@RunWith(AndroidJUnit4.class)
+public class AudioDeviceInfoTest {
+    private static final Set<Integer> INPUT_TYPES = Stream.of(
+        AudioDeviceInfo.TYPE_BUILTIN_MIC,
+        AudioDeviceInfo.TYPE_BLUETOOTH_SCO,
+        AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
+        AudioDeviceInfo.TYPE_WIRED_HEADSET,
+        AudioDeviceInfo.TYPE_HDMI,
+        AudioDeviceInfo.TYPE_TELEPHONY,
+        AudioDeviceInfo.TYPE_DOCK,
+        AudioDeviceInfo.TYPE_USB_ACCESSORY,
+        AudioDeviceInfo.TYPE_USB_DEVICE,
+        AudioDeviceInfo.TYPE_USB_HEADSET,
+        AudioDeviceInfo.TYPE_FM_TUNER,
+        AudioDeviceInfo.TYPE_TV_TUNER,
+        AudioDeviceInfo.TYPE_LINE_ANALOG,
+        AudioDeviceInfo.TYPE_LINE_DIGITAL,
+        AudioDeviceInfo.TYPE_IP,
+        AudioDeviceInfo.TYPE_BUS,
+        AudioDeviceInfo.TYPE_REMOTE_SUBMIX,
+        AudioDeviceInfo.TYPE_BLE_HEADSET,
+        AudioDeviceInfo.TYPE_HDMI_ARC,
+        AudioDeviceInfo.TYPE_HDMI_EARC,
+        AudioDeviceInfo.TYPE_ECHO_REFERENCE)
+            .collect(Collectors.toCollection(HashSet::new));
+
+    private static final Set<Integer> OUTPUT_TYPES = Stream.of(
+        AudioDeviceInfo.TYPE_BUILTIN_EARPIECE,
+        AudioDeviceInfo.TYPE_BUILTIN_SPEAKER,
+        AudioDeviceInfo.TYPE_WIRED_HEADSET,
+        AudioDeviceInfo.TYPE_WIRED_HEADPHONES,
+        AudioDeviceInfo.TYPE_BLUETOOTH_SCO,
+        AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
+        AudioDeviceInfo.TYPE_HDMI,
+        AudioDeviceInfo.TYPE_DOCK,
+        AudioDeviceInfo.TYPE_USB_ACCESSORY,
+        AudioDeviceInfo.TYPE_USB_DEVICE,
+        AudioDeviceInfo.TYPE_USB_HEADSET,
+        AudioDeviceInfo.TYPE_TELEPHONY,
+        AudioDeviceInfo.TYPE_LINE_ANALOG,
+        AudioDeviceInfo.TYPE_HDMI_ARC,
+        AudioDeviceInfo.TYPE_HDMI_EARC,
+        AudioDeviceInfo.TYPE_LINE_DIGITAL,
+        AudioDeviceInfo.TYPE_FM,
+        AudioDeviceInfo.TYPE_AUX_LINE,
+        AudioDeviceInfo.TYPE_IP,
+        AudioDeviceInfo.TYPE_BUS,
+        AudioDeviceInfo.TYPE_HEARING_AID,
+        AudioDeviceInfo.TYPE_BUILTIN_SPEAKER_SAFE,
+        AudioDeviceInfo.TYPE_BLE_HEADSET,
+        AudioDeviceInfo.TYPE_BLE_SPEAKER)
+            .collect(Collectors.toCollection(HashSet::new));
+
+    private static int MAX_TYPE;
+    private static int MIN_TYPE;
+    {
+        int maxType = Integer.MIN_VALUE;
+        int minType = Integer.MAX_VALUE;
+        for (int type : INPUT_TYPES) {
+            minType = Integer.min(minType, type);
+            maxType = Integer.max(maxType, type);
+        }
+        for (int type : OUTPUT_TYPES) {
+            minType = Integer.min(minType, type);
+            maxType = Integer.max(maxType, type);
+        }
+        MIN_TYPE = minType;
+        MAX_TYPE = maxType;
+    }
+
+    /**
+     * Ensure no regression on accepted input device types.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testDeviceTypeIn() throws Exception {
+        for (int type : INPUT_TYPES) {
+            // throws IllegalArgumentException on failure
+            AudioDeviceInfo.enforceValidAudioDeviceTypeIn(type);
+        }
+    }
+
+    /**
+     * Ensure no regression on accepted output device types.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testDeviceTypeOut() throws Exception {
+        for (int type : OUTPUT_TYPES) {
+            // throws IllegalArgumentException on failure
+            AudioDeviceInfo.enforceValidAudioDeviceTypeOut(type);
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/DecoderTestXheAac.java b/tests/tests/media/src/android/media/cts/DecoderTestXheAac.java
index 44ddf6fb..d90bf4f 100755
--- a/tests/tests/media/src/android/media/cts/DecoderTestXheAac.java
+++ b/tests/tests/media/src/android/media/cts/DecoderTestXheAac.java
@@ -43,6 +43,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -51,6 +53,7 @@
 import java.util.List;
 
 @AppModeFull(reason = "DecoderTest is non-instant")
+@RunWith(JUnit4.class)
 public class DecoderTestXheAac {
     private static final String TAG = "DecoderTestXheAac";
 
diff --git a/tests/tests/media/src/android/media/cts/MediaMetadataRetrieverTest.java b/tests/tests/media/src/android/media/cts/MediaMetadataRetrieverTest.java
index 7d064b5..0233b73 100644
--- a/tests/tests/media/src/android/media/cts/MediaMetadataRetrieverTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaMetadataRetrieverTest.java
@@ -21,7 +21,6 @@
 import static android.media.MediaMetadataRetriever.OPTION_NEXT_SYNC;
 import static android.media.MediaMetadataRetriever.OPTION_PREVIOUS_SYNC;
 
-import android.content.Context;
 import android.content.pm.PackageManager;
 import android.content.res.AssetFileDescriptor;
 import android.graphics.Bitmap;
@@ -33,7 +32,6 @@
 import android.media.MediaExtractor;
 import android.media.MediaFormat;
 import android.media.MediaMetadataRetriever;
-import android.media.MediaRecorder;
 import android.os.ParcelFileDescriptor;
 import android.net.Uri;
 import android.os.Build;
@@ -59,7 +57,6 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.function.Function;
 
@@ -391,7 +388,9 @@
         if(!ApiLevelUtil.isAtLeast(Build.VERSION_CODES.R)) {
             // The fix for b/154357105 was released in mainline release 30.09.007.01
             // See https://android-build.googleplex.com/builds/treetop/googleplex-android-review/11174063
-            TestUtils.assumeMainlineModuleAtLeast("com.google.android.media", 300900701);
+            if (TestUtils.skipTestIfMainlineLessThan("com.google.android.media", 300900701)) {
+                return;
+            }
         }
         setDataSourceFd("sinesweepid3v24ext.mp3");
         assertEquals("Mime type was other than expected",
diff --git a/tests/tests/media/src/android/media/cts/RoutingTest.java b/tests/tests/media/src/android/media/cts/RoutingTest.java
index f3972a8..cd70a51 100644
--- a/tests/tests/media/src/android/media/cts/RoutingTest.java
+++ b/tests/tests/media/src/android/media/cts/RoutingTest.java
@@ -456,7 +456,7 @@
         }
     }
 
-    public void test_audioTrack_getRoutedDevice() {
+    public void test_audioTrack_getRoutedDevice() throws Exception {
         if (!DeviceUtils.hasOutputDevice(mAudioManager)) {
             Log.i(TAG, "No output devices. Test skipped");
             return; // nothing to test here
@@ -484,17 +484,25 @@
         Thread fillerThread = new Thread(filler);
         fillerThread.start();
 
-        try { Thread.sleep(1000); } catch (InterruptedException ex) {}
-
-        // No explicit route
-        AudioDeviceInfo routedDevice = audioTrack.getRoutedDevice();
-        assertNotNull(routedDevice); // we probably can't say anything more than this
+        assertHasNonNullRoutedDevice(audioTrack);
 
         filler.stop();
         audioTrack.stop();
         audioTrack.release();
     }
 
+    private void assertHasNonNullRoutedDevice(AudioRouting router) throws Exception {
+        AudioDeviceInfo routedDevice = null;
+        // Give a chance for playback or recording to start so routing can be established
+        final long timeouts[] = { 100, 200, 500, 500, 1000};
+        int attempt = 0;
+        do {
+            try { Thread.sleep(timeouts[attempt++]); } catch (InterruptedException ex) {}
+            routedDevice = router.getRoutedDevice();
+        } while (routedDevice == null && attempt < timeouts.length);
+        assertNotNull(routedDevice); // we probably can't say anything more than this
+    }
+
     private class AudioRecordPuller implements Runnable {
         AudioRecord mAudioRecord;
         int mBufferSize;
@@ -520,7 +528,7 @@
         }
     }
 
-    public void test_audioRecord_getRoutedDevice() {
+    public void test_audioRecord_getRoutedDevice() throws Exception {
         if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MICROPHONE)) {
             return;
         }
@@ -550,11 +558,7 @@
         Thread pullerThread = new Thread(puller);
         pullerThread.start();
 
-        try { Thread.sleep(1000); } catch (InterruptedException ex) {}
-
-        // No explicit route
-        AudioDeviceInfo routedDevice = audioRecord.getRoutedDevice();
-        assertNotNull(routedDevice); // we probably can't say anything more than this
+        assertHasNonNullRoutedDevice(audioRecord);
 
         puller.stop();
         audioRecord.stop();
@@ -645,7 +649,7 @@
         mediaPlayer.release();
     }
 
-    public void test_mediaPlayer_getRoutedDevice() {
+    public void test_mediaPlayer_getRoutedDevice() throws Exception {
         if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) {
             // Can't do it so skip this test
             return;
@@ -654,12 +658,7 @@
         MediaPlayer mediaPlayer = allocMediaPlayer();
         assertTrue(mediaPlayer.isPlaying());
 
-        // Sleep for 1s to ensure the output device open
-        SystemClock.sleep(1000);
-
-        // No explicit route
-        AudioDeviceInfo routedDevice = mediaPlayer.getRoutedDevice();
-        assertNotNull(routedDevice);
+        assertHasNonNullRoutedDevice(mediaPlayer);
 
         mediaPlayer.stop();
         mediaPlayer.release();
diff --git a/tests/tests/media/src/android/media/cts/TestUtils.java b/tests/tests/media/src/android/media/cts/TestUtils.java
index fb8212f..ae4cb59 100644
--- a/tests/tests/media/src/android/media/cts/TestUtils.java
+++ b/tests/tests/media/src/android/media/cts/TestUtils.java
@@ -18,16 +18,17 @@
 
 import static android.content.pm.PackageManager.MATCH_APEX;
 
-import static org.junit.Assume.assumeNoException;
 import static org.junit.Assume.assumeTrue;
 
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.util.Log;
 
 import androidx.test.core.app.ApplicationProvider;
 
+import org.junit.Assert;
 import org.junit.AssumptionViolatedException;
 
 import java.util.Objects;
@@ -36,6 +37,7 @@
  * Utilities for tests.
  */
 public final class TestUtils {
+    private static String TAG = "TestUtils";
     private static final int WAIT_TIME_MS = 1000;
     private static final int WAIT_SERVICE_TIME_MS = 5000;
 
@@ -74,23 +76,60 @@
      *
      * @param module     the apex module name
      * @param minVersion the minimum version
-     * @throws AssumptionViolatedException if module.minVersion < minVersion
+     * @throws AssumptionViolatedException if module version < minVersion
      */
     static void assumeMainlineModuleAtLeast(String module, long minVersion) {
-        Context context = ApplicationProvider.getApplicationContext();
-        PackageInfo info;
         try {
-            info = context.getPackageManager().getPackageInfo(module,
-                    MATCH_APEX);
-            long actualVersion = info.getLongVersionCode();
-            assumeTrue("Assumed Module  " + module + " minVersion " + actualVersion + " >= "
-                            + minVersion,
-                    actualVersion >= minVersion);
+            long actualVersion = getModuleVersion(module);
+            assumeTrue("Assume  module  " + module + " version " + actualVersion + " < minVersion"
+                    + minVersion, actualVersion >= minVersion);
         } catch (PackageManager.NameNotFoundException e) {
-            assumeNoException(e);
+            Assert.fail(e.getMessage());
         }
     }
 
+    /**
+     * Checks if {@code module} is < {@code minVersion}
+     *
+     * <p>
+     * {@link AssumptionViolatedException} is not handled properly by {@code JUnit3} so just return
+     * the test
+     * early instead.
+     *
+     * @param module     the apex module name
+     * @param minVersion the minimum version
+     * @deprecated convert test to JUnit4 and use
+     * {@link #assumeMainlineModuleAtLeast(String, long)} instead.
+     */
+    @Deprecated
+    static boolean skipTestIfMainlineLessThan(String module, long minVersion) {
+        try {
+            long actualVersion = getModuleVersion(module);
+            if (actualVersion < minVersion) {
+                Log.i(TAG, "Skipping test because Module  " + module + " minVersion " + minVersion
+                        + " > "
+                        + minVersion
+                );
+                return true;
+            } else {
+                return false;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            Assert.fail(e.getMessage());
+            return false;
+        }
+    }
+
+    private static long getModuleVersion(String module)
+            throws PackageManager.NameNotFoundException {
+        Context context = ApplicationProvider.getApplicationContext();
+        PackageInfo info;
+        info = context.getPackageManager().getPackageInfo(module,
+                MATCH_APEX);
+        return info.getLongVersionCode();
+    }
+
+
     private TestUtils() {
     }
 
diff --git a/tests/tests/mediatranscoding/assets/MediaCapabilities.xml b/tests/tests/mediatranscoding/assets/MediaCapabilities.xml
index b2a1aee..1df175f 100644
--- a/tests/tests/mediatranscoding/assets/MediaCapabilities.xml
+++ b/tests/tests/mediatranscoding/assets/MediaCapabilities.xml
@@ -16,5 +16,6 @@
 
 <media-capabilities xmlns:android="http://schemas.android.com/apk/res/android">
     <format android:name="HEVC" supported="true"/>
+    <format android:name="VP9" supported="false"/>
     <format android:name="HDR10" supported="false"/>
 </media-capabilities>
diff --git a/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/ApplicationMediaCapabilitiesTest.java b/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/ApplicationMediaCapabilitiesTest.java
index 6a82ce4..5f174ec 100644
--- a/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/ApplicationMediaCapabilitiesTest.java
+++ b/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/ApplicationMediaCapabilitiesTest.java
@@ -32,6 +32,7 @@
 
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
+import java.util.List;
 
 @Presubmit
 @AppModeFull(reason = "Instant apps cannot access the SD card")
@@ -86,6 +87,7 @@
 
     //   Test read the xml from assets folder using the InputStream.
     //    <format android:name="HEVC" supported="true"/>
+    //    <format android:name="VP9" supported="false"/>
     //    <format android:name="HDR10" supported="false"/>
     public void testReadFromCorrectXmlWithInputStreamInAssets() throws Exception {
         InputStream xmlIs = mContext.getAssets().open("MediaCapabilities.xml");
@@ -96,6 +98,12 @@
                 parser);
         assertFalse(capability.isHdrTypeSupported(MediaFeature.HdrType.HDR10));
         assertTrue(capability.isVideoMimeTypeSupported(MediaFormat.MIMETYPE_VIDEO_HEVC));
+        List<String> supportedVideoMimetypes = capability.getSupportedVideoMimeTypes();
+        assertTrue(supportedVideoMimetypes.contains(MediaFormat.MIMETYPE_VIDEO_HEVC));
+        List<String> unsupportedVideoMimetypes = capability.getUnsupportedVideoMimeTypes();
+        assertTrue(unsupportedVideoMimetypes.contains(MediaFormat.MIMETYPE_VIDEO_VP9));
+        List<String> unsupportedHdr = capability.getUnsupportedHdrTypes();
+        assertTrue(unsupportedHdr.contains(MediaFeature.HdrType.HDR10));
     }
 
     //   Test read the application's xml from assets folder using the XmlResourceParser.
@@ -116,6 +124,12 @@
         assertTrue(capability.isHdrTypeSupported(MediaFeature.HdrType.DOLBY_VISION));
         assertTrue(capability.isHdrTypeSupported(MediaFeature.HdrType.HLG));
         assertTrue(capability.isVideoMimeTypeSupported(MediaFormat.MIMETYPE_VIDEO_HEVC));
+        List<String> supportedHdrTypes = capability.getSupportedHdrTypes();
+        assertTrue(supportedHdrTypes.contains(MediaFeature.HdrType.HDR10));
+        assertTrue(supportedHdrTypes.contains(MediaFeature.HdrType.HDR10_PLUS));
+        assertTrue(supportedHdrTypes.contains(MediaFeature.HdrType.DOLBY_VISION));
+        assertTrue(supportedHdrTypes.contains(MediaFeature.HdrType.HLG));
+        assertEquals(4, supportedHdrTypes.size());
     }
 
     // Test parsing invalid xml with wrong tag expect UnsupportedOperationException
@@ -243,8 +257,9 @@
     }
 
     // Test unspecified codec type.
-    // VP9 is not declare in the XML which leads to isFormatSpecified return false.
+    // AV1 is not declare in the XML which leads to isFormatSpecified return false.
     //    <format android:name="HEVC" supported="true"/>
+    //    <format android:name="VP9" supported="false"/>
     //    <format android:name="HDR10" supported="false"/>
     public void testUnspecifiedCodecMimetype() throws Exception {
         InputStream xmlIs = mContext.getAssets().open("MediaCapabilities.xml");
@@ -252,7 +267,7 @@
         parser.setInput(xmlIs, StandardCharsets.UTF_8.name());
         ApplicationMediaCapabilities capability = ApplicationMediaCapabilities.createFromXml(
                 parser);
-        assertFalse(capability.isFormatSpecified(MediaFormat.MIMETYPE_VIDEO_VP9));
+        assertFalse(capability.isFormatSpecified(MediaFormat.MIMETYPE_VIDEO_AV1));
         assertFalse(capability.isVideoMimeTypeSupported(MediaFormat.MIMETYPE_VIDEO_VP9));
     }
 
diff --git a/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/MediaTranscodeManagerTest.java b/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/MediaTranscodeManagerTest.java
index bda7f19..805086f 100644
--- a/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/MediaTranscodeManagerTest.java
+++ b/tests/tests/mediatranscoding/src/android/media/mediatranscoding/cts/MediaTranscodeManagerTest.java
@@ -466,16 +466,18 @@
                         .setClientPid(pid)
                         .setClientUid(uid);
 
+        AssetFileDescriptor srcFd = null;
+        AssetFileDescriptor dstFd = null;
         if (testFileDescriptor) {
             // Open source Uri.
-            AssetFileDescriptor afd = mContentResolver.openAssetFileDescriptor(fileUri,
+            srcFd = mContentResolver.openAssetFileDescriptor(fileUri,
                     "r");
-            builder.setSourceFileDescriptor(afd.getParcelFileDescriptor());
+            builder.setSourceFileDescriptor(srcFd.getParcelFileDescriptor());
             // Open destination Uri
-            afd = mContentResolver.openAssetFileDescriptor(destinationUri, "rw");
-            builder.setDestinationFileDescriptor(afd.getParcelFileDescriptor());
+            dstFd = mContentResolver.openAssetFileDescriptor(destinationUri, "rw");
+            builder.setDestinationFileDescriptor(dstFd.getParcelFileDescriptor());
         }
-        TranscodingRequest request = builder.build();
+        VideoTranscodingRequest request = builder.build();
         Executor listenerExecutor = Executors.newSingleThreadExecutor();
         assertEquals(pid, request.getClientPid());
         assertEquals(uid, request.getClientUid());
@@ -492,6 +494,13 @@
                     transcodeCompleteSemaphore.release();
                 });
         assertNotNull(session);
+        assertTrue(compareFormat(videoTrackFormat, request.getVideoTrackFormat()));
+        assertEquals(fileUri, request.getSourceUri());
+        assertEquals(destinationUri, request.getDestinationUri());
+        if (testFileDescriptor) {
+            assertEquals(srcFd.getParcelFileDescriptor(), request.getSourceFileDescriptor());
+            assertEquals(dstFd.getParcelFileDescriptor(), request.getDestinationFileDescriptor());
+        }
 
         if (session != null) {
             Log.d(TAG, "testMediaTranscodeManager - Waiting for transcode to cancel.");
@@ -517,6 +526,10 @@
             }
         }
 
+        assertEquals(TranscodingSession.STATUS_FINISHED, session.getStatus());
+        assertEquals(TranscodingSession.RESULT_SUCCESS, session.getResult());
+        assertEquals(TranscodingSession.ERROR_NONE, session.getErrorCode());
+
         // TODO(hkuang): Validate the transcoded video's width and height, framerate.
 
         // Validates the transcoded video's psnr.
@@ -527,6 +540,17 @@
                 stats.mAveragePSNR >= PSNR_THRESHOLD);
     }
 
+    private boolean compareFormat(MediaFormat fmt1, MediaFormat fmt2) {
+        if (fmt1 == fmt2) return true;
+        if (fmt1 == null || fmt2 == null) return false;
+
+        return (fmt1.getString(MediaFormat.KEY_MIME) == fmt2.getString(MediaFormat.KEY_MIME) &&
+                fmt1.getInteger(MediaFormat.KEY_WIDTH) == fmt2.getInteger(MediaFormat.KEY_WIDTH) &&
+                fmt1.getInteger(MediaFormat.KEY_HEIGHT) == fmt2.getInteger(MediaFormat.KEY_HEIGHT)
+                && fmt1.getInteger(MediaFormat.KEY_BIT_RATE) == fmt2.getInteger(
+                MediaFormat.KEY_BIT_RATE));
+    }
+
     public void testCancelTranscoding() throws Exception {
         if (shouldSkip()) {
             return;
@@ -556,6 +580,8 @@
                 });
         assertNotNull(session);
 
+        assertTrue(session.getSessionId() != -1);
+
         // Wait for progress update before cancel the transcoding.
         session.setOnProgressUpdateListener(listenerExecutor,
                 new TranscodingSession.OnProgressUpdateListener() {
@@ -564,6 +590,7 @@
                         if (newProgress > 0) {
                             statusLatch.countDown();
                         }
+                        assertEquals(newProgress, session.getProgress());
                     }
                 });
 
@@ -573,6 +600,10 @@
         Log.d(TAG, "testMediaTranscodeManager - Waiting for transcode to cancel.");
         boolean finishedOnTime = transcodeCompleteSemaphore.tryAcquire(
                 30, TimeUnit.MILLISECONDS);
+
+        assertEquals(TranscodingSession.STATUS_FINISHED, session.getStatus());
+        assertEquals(TranscodingSession.RESULT_CANCELED, session.getResult());
+        assertEquals(TranscodingSession.ERROR_NONE, session.getErrorCode());
         assertTrue("Fails to cancel transcoding", finishedOnTime);
     }
 
diff --git a/tests/tests/neuralnetworks/Android.mk b/tests/tests/neuralnetworks/Android.mk
index abd6818..01cf38f 100644
--- a/tests/tests/neuralnetworks/Android.mk
+++ b/tests/tests/neuralnetworks/Android.mk
@@ -38,6 +38,7 @@
 
 LOCAL_SDK_VERSION := current
 LOCAL_NDK_STL_VARIANT := c++_static
+LOCAL_MIN_SDK_VERSION := 30
 
 include $(BUILD_CTS_EXECUTABLE)
 
diff --git a/tests/tests/neuralnetworks/AndroidManifest.xml b/tests/tests/neuralnetworks/AndroidManifest.xml
new file mode 100644
index 0000000..de2efbd
--- /dev/null
+++ b/tests/tests/neuralnetworks/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.neuralnetworks">
+    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="31" />
+</manifest>
+
diff --git a/tests/tests/neuralnetworks/benchmark/Android.mk b/tests/tests/neuralnetworks/benchmark/Android.mk
index 7f67499..5e57c06 100644
--- a/tests/tests/neuralnetworks/benchmark/Android.mk
+++ b/tests/tests/neuralnetworks/benchmark/Android.mk
@@ -36,6 +36,6 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 LOCAL_ASSET_DIR := test/mlts/models/assets
 
-LOCAL_SDK_VERSION := current
+LOCAL_SDK_VERSION := 30
 
 include $(BUILD_CTS_PACKAGE)
diff --git a/tests/tests/notificationlegacy/notificationlegacy29/Android.bp b/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
index 179a1bd..0d01e20 100644
--- a/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
+++ b/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
@@ -34,7 +34,6 @@
     test_suites: [
         "cts",
         "general-tests",
-        "mts-extservices"
     ],
     sdk_version: "test_current",
     target_sdk_version: "29",
diff --git a/tests/tests/notificationlegacy/notificationlegacy29/AndroidTest.xml b/tests/tests/notificationlegacy/notificationlegacy29/AndroidTest.xml
index fbfd309..9421128 100644
--- a/tests/tests/notificationlegacy/notificationlegacy29/AndroidTest.xml
+++ b/tests/tests/notificationlegacy/notificationlegacy29/AndroidTest.xml
@@ -29,8 +29,4 @@
         <option name="runtime-hint" value="5m" />
         <option name="hidden-api-checks" value="false" />
     </test>
-
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
-        <option name="mainline-module-package-name" value="com.google.android.extservices" />
-    </object>
 </configuration>
diff --git a/tests/tests/os/src/android/os/cts/BuildTest.java b/tests/tests/os/src/android/os/cts/BuildTest.java
index 19e2479..b089a39 100644
--- a/tests/tests/os/src/android/os/cts/BuildTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildTest.java
@@ -322,13 +322,14 @@
                         + " is invalid; must be at least VERSION_CODES.BASE",
                 Build.VERSION.SDK_INT >= Build.VERSION_CODES.BASE);
         assertTrue(
-                "First SDK version " + Build.VERSION.FIRST_SDK_INT
+                "First SDK version " + Build.VERSION.DEVICE_INITIAL_SDK_INT
                         + " is invalid; must be at least VERSION_CODES.BASE",
-                Build.VERSION.FIRST_SDK_INT >= Build.VERSION_CODES.BASE);
+                Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.BASE);
         assertTrue(
                 "Current SDK version " + Build.VERSION.SDK_INT
-                        + " must be at least first SDK version " + Build.VERSION.FIRST_SDK_INT,
-                Build.VERSION.SDK_INT >= Build.VERSION.FIRST_SDK_INT);
+                        + " must be at least first SDK version "
+                        + Build.VERSION.DEVICE_INITIAL_SDK_INT,
+                Build.VERSION.SDK_INT >= Build.VERSION.DEVICE_INITIAL_SDK_INT);
     }
 
     /**
diff --git a/tests/tests/os/src/android/os/cts/CombinedVibrationEffectTest.java b/tests/tests/os/src/android/os/cts/CombinedVibrationTest.java
similarity index 67%
rename from tests/tests/os/src/android/os/cts/CombinedVibrationEffectTest.java
rename to tests/tests/os/src/android/os/cts/CombinedVibrationTest.java
index 90e38a7..8da9be8 100644
--- a/tests/tests/os/src/android/os/cts/CombinedVibrationEffectTest.java
+++ b/tests/tests/os/src/android/os/cts/CombinedVibrationTest.java
@@ -20,7 +20,7 @@
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.fail;
 
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
 import android.os.Parcel;
 import android.os.VibrationEffect;
 
@@ -34,60 +34,60 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
-public class CombinedVibrationEffectTest {
+public class CombinedVibrationTest {
 
     private static final VibrationEffect TEST_EFFECT =
             VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
 
-    private static final CombinedVibrationEffect TEST_MONO =
-            CombinedVibrationEffect.createSynced(TEST_EFFECT);
-    private static final CombinedVibrationEffect TEST_STEREO =
-            CombinedVibrationEffect.startSynced()
+    private static final CombinedVibration TEST_MONO =
+            CombinedVibration.createParallel(TEST_EFFECT);
+    private static final CombinedVibration TEST_STEREO =
+            CombinedVibration.startParallel()
                     .addVibrator(1, TEST_EFFECT)
                     .addVibrator(2, TEST_EFFECT)
                     .combine();
-    private static final CombinedVibrationEffect TEST_SEQUENTIAL =
-            CombinedVibrationEffect.startSequential()
+    private static final CombinedVibration TEST_SEQUENTIAL =
+            CombinedVibration.startSequential()
                     .addNext(TEST_MONO)
                     .addNext(1, TEST_EFFECT, /* delay= */ 100)
                     .combine();
 
     @Test
-    public void testCreateSynced() {
-        CombinedVibrationEffect.Mono synced =
-                (CombinedVibrationEffect.Mono) CombinedVibrationEffect.createSynced(TEST_EFFECT);
-        assertEquals(TEST_EFFECT, synced.getEffect());
-        assertEquals(TEST_EFFECT.getDuration(), synced.getDuration());
+    public void testcreateParallel() {
+        CombinedVibration.Mono mono =
+                (CombinedVibration.Mono) CombinedVibration.createParallel(TEST_EFFECT);
+        assertEquals(TEST_EFFECT, mono.getEffect());
+        assertEquals(TEST_EFFECT.getDuration(), mono.getDuration());
     }
 
     @Test
-    public void testStartSynced() {
-        CombinedVibrationEffect.Stereo synced =
-                (CombinedVibrationEffect.Stereo) CombinedVibrationEffect.startSynced()
+    public void testStartParallel() {
+        CombinedVibration.Stereo stereo =
+                (CombinedVibration.Stereo) CombinedVibration.startParallel()
                         .addVibrator(1, TEST_EFFECT)
                         .combine();
-        assertEquals(1, synced.getEffects().size());
-        assertEquals(TEST_EFFECT, synced.getEffects().get(1));
-        assertEquals(TEST_EFFECT.getDuration(), synced.getDuration());
+        assertEquals(1, stereo.getEffects().size());
+        assertEquals(TEST_EFFECT, stereo.getEffects().get(1));
+        assertEquals(TEST_EFFECT.getDuration(), stereo.getDuration());
     }
 
     @Test
-    public void testStartSyncedEmptyCombinationIsInvalid() {
+    public void testStartParallelEmptyCombinationIsInvalid() {
         try {
-            CombinedVibrationEffect.startSynced().combine();
+            CombinedVibration.startParallel().combine();
             fail("Illegal combination, should throw IllegalStateException");
         } catch (IllegalStateException expected) {
         }
     }
 
     @Test
-    public void testSyncedEquals() {
-        CombinedVibrationEffect otherMono = CombinedVibrationEffect.createSynced(
+    public void testParallelEquals() {
+        CombinedVibration otherMono = CombinedVibration.createParallel(
                 VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
         assertEquals(TEST_MONO, otherMono);
         assertEquals(TEST_MONO.hashCode(), otherMono.hashCode());
 
-        CombinedVibrationEffect otherStereo = CombinedVibrationEffect.startSynced()
+        CombinedVibration otherStereo = CombinedVibration.startParallel()
                 .addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .combine();
@@ -96,15 +96,15 @@
     }
 
     @Test
-    public void testSyncedNotEqualsDifferentEffect() {
-        CombinedVibrationEffect otherMono = CombinedVibrationEffect.createSynced(
+    public void testParallelNotEqualsDifferentEffect() {
+        CombinedVibration otherMono = CombinedVibration.createParallel(
                 VibrationEffect.get(VibrationEffect.EFFECT_TICK));
         assertNotEquals(TEST_MONO, otherMono);
     }
 
     @Test
-    public void testSyncedNotEqualsDifferentVibrators() {
-        CombinedVibrationEffect otherStereo = CombinedVibrationEffect.startSynced()
+    public void testParallelNotEqualsDifferentVibrators() {
+        CombinedVibration otherStereo = CombinedVibration.startParallel()
                 .addVibrator(5, TEST_EFFECT)
                 .combine();
         assertNotEquals(TEST_STEREO, otherStereo);
@@ -112,15 +112,15 @@
 
     @Test
     public void testCreateSequential() {
-        CombinedVibrationEffect.Sequential sequential =
-                (CombinedVibrationEffect.Sequential) CombinedVibrationEffect.startSequential()
+        CombinedVibration.Sequential sequential =
+                (CombinedVibration.Sequential) CombinedVibration.startSequential()
                         .addNext(TEST_MONO)
                         .addNext(TEST_STEREO, /* delay= */ 100)
                         .addNext(1, TEST_EFFECT)
                         .combine();
         assertEquals(
                 Arrays.asList(TEST_MONO, TEST_STEREO,
-                        CombinedVibrationEffect.startSynced().addVibrator(1,
+                        CombinedVibration.startParallel().addVibrator(1,
                                 TEST_EFFECT).combine()),
                 sequential.getEffects());
         assertEquals(-1, sequential.getDuration());
@@ -129,7 +129,7 @@
     @Test
     public void testStartSequentialEmptyCombinationIsInvalid() {
         try {
-            CombinedVibrationEffect.startSequential().combine();
+            CombinedVibration.startSequential().combine();
             fail("Illegal combination, should throw IllegalStateException");
         } catch (IllegalStateException expected) {
         }
@@ -137,8 +137,8 @@
 
     @Test
     public void testSequentialEquals() {
-        CombinedVibrationEffect otherSequential =
-                CombinedVibrationEffect.startSequential()
+        CombinedVibration otherSequential =
+                CombinedVibration.startSequential()
                         .addNext(TEST_MONO)
                         .addNext(1, TEST_EFFECT, /* delay= */ 100)
                         .combine();
@@ -148,8 +148,8 @@
 
     @Test
     public void testSequentialNotEqualsDifferentEffects() {
-        CombinedVibrationEffect otherSequential =
-                CombinedVibrationEffect.startSequential()
+        CombinedVibration otherSequential =
+                CombinedVibration.startSequential()
                         .addNext(TEST_STEREO)
                         .combine();
         assertNotEquals(TEST_SEQUENTIAL, otherSequential);
@@ -157,8 +157,8 @@
 
     @Test
     public void testSequentialNotEqualsDifferentOrder() {
-        CombinedVibrationEffect otherSequential =
-                CombinedVibrationEffect.startSequential()
+        CombinedVibration otherSequential =
+                CombinedVibration.startSequential()
                         .addNext(1, TEST_EFFECT, /* delay= */ 100)
                         .addNext(TEST_MONO)
                         .combine();
@@ -167,8 +167,8 @@
 
     @Test
     public void testSequentialNotEqualsDifferentDelays() {
-        CombinedVibrationEffect otherSequential =
-                CombinedVibrationEffect.startSequential()
+        CombinedVibration otherSequential =
+                CombinedVibration.startSequential()
                         .addNext(TEST_MONO)
                         .addNext(1, TEST_EFFECT, /* delay= */ 1)
                         .combine();
@@ -177,8 +177,8 @@
 
     @Test
     public void testSequentialNotEqualsDifferentVibrator() {
-        CombinedVibrationEffect otherSequential =
-                CombinedVibrationEffect.startSequential()
+        CombinedVibration otherSequential =
+                CombinedVibration.startSequential()
                         .addNext(TEST_MONO)
                         .addNext(5, TEST_EFFECT, /* delay= */ 100)
                         .combine();
@@ -186,20 +186,20 @@
     }
 
     @Test
-    public void testParcelingSyncedMono() {
+    public void testParcelingParallelMono() {
         Parcel p = Parcel.obtain();
         TEST_MONO.writeToParcel(p, 0);
         p.setDataPosition(0);
-        CombinedVibrationEffect parceled = CombinedVibrationEffect.CREATOR.createFromParcel(p);
+        CombinedVibration parceled = CombinedVibration.CREATOR.createFromParcel(p);
         assertEquals(TEST_MONO, parceled);
     }
 
     @Test
-    public void testParcelingSyncedStereo() {
+    public void testParcelingParallelStereo() {
         Parcel p = Parcel.obtain();
         TEST_STEREO.writeToParcel(p, 0);
         p.setDataPosition(0);
-        CombinedVibrationEffect parceled = CombinedVibrationEffect.CREATOR.createFromParcel(p);
+        CombinedVibration parceled = CombinedVibration.CREATOR.createFromParcel(p);
         assertEquals(TEST_STEREO, parceled);
     }
 
@@ -208,7 +208,7 @@
         Parcel p = Parcel.obtain();
         TEST_SEQUENTIAL.writeToParcel(p, 0);
         p.setDataPosition(0);
-        CombinedVibrationEffect parceled = CombinedVibrationEffect.CREATOR.createFromParcel(p);
+        CombinedVibration parceled = CombinedVibration.CREATOR.createFromParcel(p);
         assertEquals(TEST_SEQUENTIAL, parceled);
     }
 
@@ -227,15 +227,15 @@
     }
 
     @Test
-    public void testSyncedMonoCombinationDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+    public void testParallelMonoCombinationDuration() {
+        CombinedVibration effect = CombinedVibration.createParallel(
                 VibrationEffect.createOneShot(100, 100));
         assertEquals(100, effect.getDuration());
     }
 
     @Test
-    public void testSyncedStereoCombinationDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+    public void testParallelStereoCombinationDuration() {
+        CombinedVibration effect = CombinedVibration.startParallel()
                 .addVibrator(1, VibrationEffect.createOneShot(1, 100))
                 .addVibrator(2, VibrationEffect.createOneShot(100, 100))
                 .addVibrator(3, VibrationEffect.createOneShot(10, 100))
@@ -244,8 +244,8 @@
     }
 
     @Test
-    public void testSyncedCombinationUnknownDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+    public void testParallelCombinationUnknownDuration() {
+        CombinedVibration effect = CombinedVibration.startParallel()
                 .addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .addVibrator(2, VibrationEffect.createOneShot(100, 100))
                 .combine();
@@ -253,8 +253,8 @@
     }
 
     @Test
-    public void testSyncedCombinationRepeatingDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+    public void testParallelCombinationRepeatingDuration() {
+        CombinedVibration effect = CombinedVibration.startParallel()
                 .addVibrator(1, VibrationEffect.createWaveform(new long[]{1}, new int[]{1}, 0))
                 .addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .addVibrator(3, VibrationEffect.createOneShot(100, 100))
@@ -264,7 +264,7 @@
 
     @Test
     public void testSequentialCombinationDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+        CombinedVibration effect = CombinedVibration.startSequential()
                 .addNext(1, VibrationEffect.createOneShot(10, 100), /* delay= */ 1)
                 .addNext(1, VibrationEffect.createOneShot(10, 100), /* delay= */ 1)
                 .addNext(1, VibrationEffect.createOneShot(10, 100), /* delay= */ 1)
@@ -274,7 +274,7 @@
 
     @Test
     public void testSequentialCombinationUnknownDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+        CombinedVibration effect = CombinedVibration.startSequential()
                 .addNext(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .addNext(1, VibrationEffect.createOneShot(100, 100))
                 .combine();
@@ -283,7 +283,7 @@
 
     @Test
     public void testSequentialCombinationRepeatingDuration() {
-        CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+        CombinedVibration effect = CombinedVibration.startSequential()
                 .addNext(1, VibrationEffect.createWaveform(new long[]{1}, new int[]{1}, 0))
                 .addNext(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
                 .addNext(1, VibrationEffect.createOneShot(100, 100))
diff --git a/tests/tests/os/src/android/os/cts/VibratorManagerTest.java b/tests/tests/os/src/android/os/cts/VibratorManagerTest.java
index ee7f974..398938bb 100644
--- a/tests/tests/os/src/android/os/cts/VibratorManagerTest.java
+++ b/tests/tests/os/src/android/os/cts/VibratorManagerTest.java
@@ -27,7 +27,7 @@
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
 
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
 import android.os.SystemClock;
 import android.os.VibrationAttributes;
 import android.os.VibrationEffect;
@@ -98,7 +98,7 @@
 
     @Test
     public void testCancel() {
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(
+        mVibratorManager.vibrate(CombinedVibration.createParallel(
                 VibrationEffect.createOneShot(10_000, VibrationEffect.DEFAULT_AMPLITUDE)));
         assertStartsVibrating();
 
@@ -111,18 +111,18 @@
     public void testVibrateOneShot() {
         VibrationEffect oneShot =
                 VibrationEffect.createOneShot(300, VibrationEffect.DEFAULT_AMPLITUDE);
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(oneShot));
+        mVibratorManager.vibrate(CombinedVibration.createParallel(oneShot));
         assertStartsThenStopsVibrating(300);
 
         oneShot = VibrationEffect.createOneShot(500, 255 /* Max amplitude */);
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(oneShot));
+        mVibratorManager.vibrate(CombinedVibration.createParallel(oneShot));
         assertStartsVibrating();
 
         mVibratorManager.cancel();
         assertStopsVibrating();
 
         oneShot = VibrationEffect.createOneShot(100, 1 /* Min amplitude */);
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(oneShot),
+        mVibratorManager.vibrate(CombinedVibration.createParallel(oneShot),
                 VIBRATION_ATTRIBUTES);
         assertStartsVibrating();
     }
@@ -133,11 +133,11 @@
         final long[] timings = new long[]{100, 200, 300, 400, 500};
         final int[] amplitudes = new int[]{64, 128, 255, 128, 64};
         VibrationEffect waveform = VibrationEffect.createWaveform(timings, amplitudes, -1);
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(waveform));
+        mVibratorManager.vibrate(CombinedVibration.createParallel(waveform));
         assertStartsThenStopsVibrating(1500);
 
         waveform = VibrationEffect.createWaveform(timings, amplitudes, 0);
-        mVibratorManager.vibrate(CombinedVibrationEffect.createSynced(waveform));
+        mVibratorManager.vibrate(CombinedVibration.createParallel(waveform));
         assertStartsVibrating();
 
         mVibratorManager.cancel();
@@ -157,7 +157,7 @@
         for (int vibratorId : vibratorIds) {
             Vibrator vibrator = mVibratorManager.getVibrator(vibratorId);
             mVibratorManager.vibrate(
-                    CombinedVibrationEffect.startSynced()
+                    CombinedVibration.startParallel()
                             .addVibrator(vibratorId, oneShot)
                             .combine());
             assertStartsVibrating(vibratorId);
diff --git a/tests/tests/permission/src/android/permission/cts/NfcPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NfcPermissionTest.java
index a45fbf8..d9819a6 100644
--- a/tests/tests/permission/src/android/permission/cts/NfcPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NfcPermissionTest.java
@@ -19,24 +19,46 @@
 import static android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON;
 
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
 
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.nfc.NfcAdapter;
+import android.nfc.NfcAdapter.ControllerAlwaysOnListener;
 import android.os.Process;
+import android.platform.test.annotations.AppModeFull;
 
 import androidx.test.InstrumentationRegistry;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.Executor;
 import java.util.stream.Collectors;
 
 @RunWith(JUnit4.class)
 public final class NfcPermissionTest {
 
+    private NfcAdapter mNfcAdapter;
+
+    private boolean supportsHardware() {
+        final PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
+        return pm.hasSystemFeature(PackageManager.FEATURE_NFC);
+    }
+
+    @Before
+    public void setUp() {
+        assumeTrue(supportsHardware());
+        mNfcAdapter = NfcAdapter.getDefaultAdapter(InstrumentationRegistry.getTargetContext());
+    }
+
+    /**
+     * Verifies that there's only one dedicated app holds the NfcSetControllerAlwaysOnPermission.
+     */
     @Test
     public void testNfcSetControllerAlwaysOnPermission() {
         PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
@@ -63,4 +85,103 @@
                      + "NFC_SET_CONTROLLER_ALWAYS_ON permission.");
         }
     }
+
+    /**
+     * Verifies that isControllerAlwaysOnSupported() requires Permission.
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#NFC_SET_CONTROLLER_ALWAYS_ON}.
+     */
+    @Test
+    @AppModeFull
+    public void testIsControllerAlwaysOnSupported() {
+        try {
+            mNfcAdapter.isControllerAlwaysOnSupported();
+            fail("mNfcAdapter.isControllerAlwaysOnSupported() did not throw SecurityException"
+                    + " as expected");
+        } catch (SecurityException se) {
+            // Expected Exception
+        }
+    }
+
+    /**
+     * Verifies that isControllerAlwaysOn() requires Permission.
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#NFC_SET_CONTROLLER_ALWAYS_ON}.
+     */
+    @Test
+    @AppModeFull
+    public void testIsControllerAlwaysOn() {
+        try {
+            mNfcAdapter.isControllerAlwaysOn();
+            fail("mNfcAdapter.isControllerAlwaysOn() did not throw SecurityException"
+                    + " as expected");
+        } catch (SecurityException se) {
+            // Expected Exception
+        }
+    }
+
+    /**
+     * Verifies that setControllerAlwaysOn(true) requires Permission.
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#NFC_SET_CONTROLLER_ALWAYS_ON}.
+     */
+    @Test
+    @AppModeFull
+    public void testSetControllerAlwaysOnTrue() {
+        try {
+            mNfcAdapter.setControllerAlwaysOn(true);
+            fail("mNfcAdapter.setControllerAlwaysOn(true) did not throw SecurityException"
+                    + " as expected");
+        } catch (SecurityException se) {
+            // Expected Exception
+        }
+    }
+
+    /**
+     * Verifies that setControllerAlwaysOn(false) requires Permission.
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#NFC_SET_CONTROLLER_ALWAYS_ON}.
+     */
+    @Test
+    @AppModeFull
+    public void testSetControllerAlwaysOnFalse() {
+        try {
+            mNfcAdapter.setControllerAlwaysOn(false);
+            fail("mNfcAdapter.setControllerAlwaysOn(true) did not throw SecurityException"
+                    + " as expected");
+        } catch (SecurityException se) {
+            // Expected Exception
+        }
+    }
+
+    /**
+     * Verifies that registerControllerAlwaysOnListener() requires Permission.
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#NFC_SET_CONTROLLER_ALWAYS_ON}.
+     */
+    @Test
+    @AppModeFull
+    public void testRegisterControllerAlwaysOnListener() {
+        try {
+            mNfcAdapter.registerControllerAlwaysOnListener(
+                    new SynchronousExecutor(), new AlwaysOnStateListener());
+            fail("mNfcAdapter.registerControllerAlwaysOnListener did not throw"
+                    + "SecurityException as expected");
+        } catch (SecurityException se) {
+            // Expected Exception
+        }
+    }
+
+    private class SynchronousExecutor implements Executor {
+        public void execute(Runnable r) {
+            r.run();
+        }
+    }
+
+    private class AlwaysOnStateListener implements ControllerAlwaysOnListener {
+        @Override
+        public void onControllerAlwaysOnChanged(boolean isEnabled) {
+            // Do nothing
+        }
+    }
 }
diff --git a/tests/tests/permission2/res/raw/android_manifest.xml b/tests/tests/permission2/res/raw/android_manifest.xml
index 4749ab6..83eb050 100644
--- a/tests/tests/permission2/res/raw/android_manifest.xml
+++ b/tests/tests/permission2/res/raw/android_manifest.xml
@@ -4099,6 +4099,15 @@
     <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Allows an application to use the package installer v2 APIs.
+         <p>The package installer v2 APIs are still a work in progress and we're
+         currently validating they work in all scenarios.
+         <p>Not for use by third-party applications.
+         @hide
+    -->
+    <permission android:name="com.android.permission.USE_INSTALLER_V2"
+        android:protectionLevel="signature|installer" />
+
     <!-- Allows an application to use System Data Loaders.
          <p>Not for use by third-party applications.
          @hide
diff --git a/tests/tests/preference/AndroidTest.xml b/tests/tests/preference/AndroidTest.xml
index 625ff4d..09741b9 100644
--- a/tests/tests/preference/AndroidTest.xml
+++ b/tests/tests/preference/AndroidTest.xml
@@ -34,10 +34,4 @@
         <option name="collect-on-run-ended-only" value="true" />
         <option name="clean-up" value="false" />
     </metrics_collector>
-    <!-- Automotive tests run on user 10 -->
-    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
-        <option name="directory-keys" value="/storage/emulated/10/CtsPreferenceTestCases" />
-        <option name="collect-on-run-ended-only" value="true" />
-        <option name="clean-up" value="false" />
-    </metrics_collector>
 </configuration>
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/CallLogTest.java b/tests/tests/provider/src/android/provider/cts/contacts/CallLogTest.java
index 1de465e..b836871 100644
--- a/tests/tests/provider/src/android/provider/cts/contacts/CallLogTest.java
+++ b/tests/tests/provider/src/android/provider/cts/contacts/CallLogTest.java
@@ -168,7 +168,8 @@
         Pair<Uri, CallLog.CallComposerLoggingException> result;
         try (InputStream inputStream =
                      context.getResources().openRawResource(R.drawable.testimage)) {
-            CallLog.storeCallComposerPictureAsUser(context, android.os.Process.myUserHandle(),
+            CallLog.storeCallComposerPicture(
+                    context.createContextAsUser(android.os.Process.myUserHandle(), 0),
                     inputStream,
                     Executors.newSingleThreadExecutor(),
                     new OutcomeReceiver<Uri, CallLog.CallComposerLoggingException>() {
diff --git a/tests/tests/provider/src/android/provider/cts/media/MediaStoreTest.java b/tests/tests/provider/src/android/provider/cts/media/MediaStoreTest.java
index 949b691..ed33af8 100644
--- a/tests/tests/provider/src/android/provider/cts/media/MediaStoreTest.java
+++ b/tests/tests/provider/src/android/provider/cts/media/MediaStoreTest.java
@@ -212,7 +212,7 @@
         final ProviderInfo legacy = getContext().getPackageManager()
                 .resolveContentProvider(MediaStore.AUTHORITY_LEGACY, 0);
         if (legacy == null) {
-            if (Build.VERSION.FIRST_SDK_INT >= Build.VERSION_CODES.R) {
+            if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.R) {
                 // If we're a brand new device, we don't require a legacy
                 // provider, since there's nothing to upgrade
                 return;
diff --git a/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerClientApiTest.java b/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerClientApiTest.java
index 49c0354..a1475ff 100644
--- a/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerClientApiTest.java
+++ b/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerClientApiTest.java
@@ -25,14 +25,21 @@
 import static com.android.server.pm.shortcutmanagertest.ShortcutManagerTestUtils.setDefaultLauncher;
 
 import android.app.PendingIntent;
+import android.app.appsearch.AppSearchManager;
+import android.app.appsearch.SearchResult;
+import android.app.appsearch.SearchSpec;
 import android.content.ComponentName;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager;
+import android.content.pm.Signature;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.test.suitebuilder.annotation.SmallTest;
+import android.util.ArraySet;
 
 import com.android.compatibility.common.util.CddTest;
 
@@ -42,6 +49,13 @@
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
 
 /**
  * Tests for {@link ShortcutManager} and {@link ShortcutInfo}.
@@ -1414,6 +1428,62 @@
         });
     }
 
+    public void testUpdateShortcutVisibility_GrantShortcutAccess() throws Exception {
+        final List<byte[]> certs = new ArrayList<>(1);
+
+        // retrieve cert from package1
+        runWithCallerWithStrictMode(mPackageContext1, () -> {
+            try {
+                final PackageManager pm = mPackageContext1.getPackageManager();
+                final String pkgName = mPackageContext1.getPackageName();
+                PackageInfo packageInfo = pm.getPackageInfo(pkgName, PackageManager.GET_SIGNATURES);
+                for (Signature signature : packageInfo.signatures) {
+                    MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
+                    certs.add(sha256.digest(signature.toByteArray()));
+                }
+            } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException e) {
+            }
+        });
+
+        // Push shortcuts for package2 and make them visible to package1
+        runWithCallerWithStrictMode(mPackageContext2, () -> {
+            final ShortcutManager manager = getManager();
+            for (byte[] cert : certs) {
+                manager.updateShortcutVisibility(mPackageContext1.getPackageName(), cert, true);
+            }
+            assertTrue(manager.setDynamicShortcuts(list(
+                    makeShortcut("s1", "1a"),
+                    makeShortcut("s2", "2a"),
+                    makeShortcut("s3", "3a"))));
+        });
+
+        // Verify package1 can see these shortcuts
+        final Executor executor = Executors.newSingleThreadExecutor();
+        runWithCallerWithStrictMode(mPackageContext1, () -> {
+            final AppSearchManager apm = mPackageContext1.getSystemService(
+                    AppSearchManager.class);
+            apm.createGlobalSearchSession(executor, res -> {
+                        assertTrue(res.getErrorMessage(), res.isSuccess());
+                        res.getResultValue().search("", new SearchSpec.Builder()
+                                .setTermMatch(SearchSpec.TERM_MATCH_EXACT_ONLY).build()
+                        ).getNextPage(executor, page -> {
+                            assertTrue(page.getErrorMessage(), page.isSuccess());
+                            final List<SearchResult> results = page.getResultValue();
+                            final Set<String> shortcuts =
+                                    new ArraySet<>(results.size());
+                            for (SearchResult result : results) {
+                                shortcuts.add(result.getGenericDocument().getUri());
+                            }
+                            final Set<String> expected = new ArraySet<>(3);
+                            expected.add("s1");
+                            expected.add("s2");
+                            expected.add("s3");
+                            assertEquals("Unexpected results", expected, shortcuts);
+                        });
+                    });
+        });
+    }
+
     public void testDisableAndEnableShortcut() {
         runWithCallerWithStrictMode(mPackageContext1, () -> {
             assertTrue(getManager().setDynamicShortcuts(list(
diff --git a/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerConfigActivityTest.java b/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerConfigActivityTest.java
index cc8df51..5947c39 100644
--- a/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerConfigActivityTest.java
+++ b/tests/tests/shortcutmanager/src/android/content/pm/cts/shortcutmanager/ShortcutManagerConfigActivityTest.java
@@ -17,8 +17,12 @@
 
 import static com.android.server.pm.shortcutmanagertest.ShortcutManagerTestUtils.*;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.content.ComponentName;
 import android.content.Intent;
 import android.content.IntentSender;
 import android.content.pm.LauncherActivityInfo;
@@ -58,6 +62,22 @@
         });
     }
 
+    public void testIntentSenderNotCreatedForWrongActivity() throws Throwable {
+        setDefaultLauncher(getInstrumentation(), mLauncherContext1);
+        runWithCallerWithStrictMode(mLauncherContext1, () -> {
+            LauncherActivityInfo originalLai = getConfigActivity();
+            assertNotNull(originalLai);
+
+            LauncherActivityInfo lai = spy(originalLai);
+            assertNotNull(lai);
+            doReturn(new ComponentName(getTestContext(), MyActivity.class))
+                    .when(lai).getComponentName();
+            doReturn(originalLai.getUser()).when(lai).getUser();
+
+            assertNull(getLauncherApps().getShortcutConfigActivityIntent(lai));
+        });
+    }
+
     public void testCorrectIntentSenderCreated() throws Throwable {
         setDefaultLauncher(getInstrumentation(), mLauncherContext1);
         final AtomicReference<IntentSender> sender = new AtomicReference<>();
diff --git a/tests/tests/simpleperf/Android.mk b/tests/tests/simpleperf/Android.mk
index 351ff22..23e9245 100644
--- a/tests/tests/simpleperf/Android.mk
+++ b/tests/tests/simpleperf/Android.mk
@@ -21,7 +21,7 @@
   libsimpleperf_etm_decoder \
   libbacktrace \
   libunwindstack \
-  libdexfile_external_static \
+  libdexfile_static \
   libziparchive \
   libz \
   libgtest \
diff --git a/tests/tests/telecom/AndroidManifest.xml b/tests/tests/telecom/AndroidManifest.xml
index e88a5ca..ad9f709 100644
--- a/tests/tests/telecom/AndroidManifest.xml
+++ b/tests/tests/telecom/AndroidManifest.xml
@@ -40,6 +40,8 @@
     <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <uses-permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
 
     <application>
         <uses-library android:name="android.test.runner"/>
diff --git a/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java b/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
index 9f936f9..8c8cd05 100644
--- a/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
+++ b/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
@@ -26,6 +26,7 @@
 import static org.junit.Assert.assertThat;
 
 import android.app.AppOpsManager;
+import android.app.UiAutomation;
 import android.app.UiModeManager;
 import android.content.Context;
 import android.content.Intent;
@@ -40,6 +41,7 @@
 import android.os.Looper;
 import android.os.RemoteException;
 import android.os.Process;
+import android.os.UserHandle;
 import android.provider.CallLog;
 import android.telecom.Call;
 import android.telecom.CallAudioState;
@@ -62,6 +64,8 @@
 import android.util.Log;
 import android.util.Pair;
 
+import androidx.test.InstrumentationRegistry;
+
 import com.android.compatibility.common.util.ShellIdentityUtils;
 
 import java.util.ArrayList;
@@ -90,6 +94,9 @@
 
     public static final String TEST_EMERGENCY_NUMBER = "5553637";
     public static final Uri TEST_EMERGENCY_URI = Uri.fromParts("tel", TEST_EMERGENCY_NUMBER, null);
+    public static final String PKG_NAME = "android.telecom.cts";
+    public static final String PERMISSION_PROCESS_OUTGOING_CALLS =
+            "android.permission.PROCESS_OUTGOING_CALLS";
 
     Context mContext;
     TelecomManager mTelecomManager;
@@ -295,6 +302,10 @@
                 (tm) -> tm.registerTelephonyCallback(
                         mTelephonyCallbackHandler::post,
                         mTelephonyCallback));
+        UiAutomation uiAutomation =
+                InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        uiAutomation.grantRuntimePermissionAsUser(PKG_NAME, PERMISSION_PROCESS_OUTGOING_CALLS,
+                UserHandle.CURRENT);
     }
 
     @Override
@@ -324,6 +335,10 @@
             TestUtils.executeShellCommand(getInstrumentation(), "telecom cleanup-stuck-calls");
             throw t;
         }
+        UiAutomation uiAutomation =
+                InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        uiAutomation.revokeRuntimePermissionAsUser(PKG_NAME, PERMISSION_PROCESS_OUTGOING_CALLS,
+                UserHandle.CURRENT);
     }
 
     protected PhoneAccount setupConnectionService(MockConnectionService connectionService,
diff --git a/tests/tests/telecom/src/android/telecom/cts/ThirdPartyCallScreeningServiceTest.java b/tests/tests/telecom/src/android/telecom/cts/ThirdPartyCallScreeningServiceTest.java
index 6deea62..0b1903b 100644
--- a/tests/tests/telecom/src/android/telecom/cts/ThirdPartyCallScreeningServiceTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/ThirdPartyCallScreeningServiceTest.java
@@ -378,20 +378,23 @@
             contactUri = TestUtils.insertContact(mContentResolver,
                     TEST_OUTGOING_NUMBER.getSchemeSpecificPart());
         }
-        Bundle extras = new Bundle();
-        extras.putParcelable(TestUtils.EXTRA_PHONE_NUMBER, TEST_OUTGOING_NUMBER);
-        // Create a new outgoing call.
-        placeAndVerifyCall(extras);
 
-        if (addContact) {
-            assertEquals(1, TestUtils.deleteContact(mContentResolver, contactUri));
+        try {
+            Bundle extras = new Bundle();
+            extras.putParcelable(TestUtils.EXTRA_PHONE_NUMBER, TEST_OUTGOING_NUMBER);
+            // Create a new outgoing call.
+            placeAndVerifyCall(extras);
+
+            mInCallCallbacks.getService().disconnectAllCalls();
+            assertNumCalls(mInCallCallbacks.getService(), 0);
+
+            // Wait for it to log.
+            callLogEntryLatch.await(ASYNC_TIMEOUT, TimeUnit.MILLISECONDS);
+        } finally {
+            if (addContact) {
+                assertEquals(1, TestUtils.deleteContact(mContentResolver, contactUri));
+            }
         }
-
-        mInCallCallbacks.getService().disconnectAllCalls();
-        assertNumCalls(mInCallCallbacks.getService(), 0);
-
-        // Wait for it to log.
-        callLogEntryLatch.await(ASYNC_TIMEOUT, TimeUnit.MILLISECONDS);
     }
 
     private Uri addIncoming(boolean disconnectImmediately, boolean addContact) throws Exception {
diff --git a/tests/tests/telecom/src/android/telecom/cts/carmodetestapp/CtsCarModeInCallService.java b/tests/tests/telecom/src/android/telecom/cts/carmodetestapp/CtsCarModeInCallService.java
index 0635754..13d34ba 100644
--- a/tests/tests/telecom/src/android/telecom/cts/carmodetestapp/CtsCarModeInCallService.java
+++ b/tests/tests/telecom/src/android/telecom/cts/carmodetestapp/CtsCarModeInCallService.java
@@ -36,8 +36,8 @@
     private static boolean sIsServiceUnbound = false;
     private static CtsCarModeInCallService sInstance = null;
     private int mCallCount = 0;
-    private static CountDownLatch sBoundLatch = new CountDownLatch(1);;
-    private static CountDownLatch sUnboundLatch = new CountDownLatch(1);;
+    private static CountDownLatch sBoundLatch = new CountDownLatch(1);
+    private static CountDownLatch sUnboundLatch = new CountDownLatch(1);
     private List<Call> mCalls = new ArrayList<>();
 
     @Override
diff --git a/tests/tests/telephony/current/EmbmsMiddlewareTestApp/src/android/telephony/cts/embmstestapp/CtsDownloadService.java b/tests/tests/telephony/current/EmbmsMiddlewareTestApp/src/android/telephony/cts/embmstestapp/CtsDownloadService.java
index e74c315..3d968b4 100644
--- a/tests/tests/telephony/current/EmbmsMiddlewareTestApp/src/android/telephony/cts/embmstestapp/CtsDownloadService.java
+++ b/tests/tests/telephony/current/EmbmsMiddlewareTestApp/src/android/telephony/cts/embmstestapp/CtsDownloadService.java
@@ -148,7 +148,9 @@
 
     private final MbmsDownloadServiceBase mDownloadServiceImpl = new MbmsDownloadServiceBase() {
         @Override
-        public int initialize(int subscriptionId, MbmsDownloadSessionCallback callback) {
+        public int initialize(int subscriptionId, MbmsDownloadSessionCallback callback)
+                throws RemoteException {
+            super.initialize(subscriptionId, callback); // noop to placate the coverage tool
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_INITIALIZE);
             b.putInt(ARGUMENT_SUBSCRIPTION_ID, subscriptionId);
@@ -182,7 +184,11 @@
         }
 
         @Override
-        public int requestUpdateFileServices(int subscriptionId, List<String> serviceClasses) {
+        public int requestUpdateFileServices(int subscriptionId, List<String> serviceClasses)
+                throws RemoteException {
+            // noop to placate the coverage tool
+            super.requestUpdateFileServices(subscriptionId, serviceClasses);
+
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_REQUEST_UPDATE_FILE_SERVICES);
             b.putInt(ARGUMENT_SUBSCRIPTION_ID, subscriptionId);
@@ -205,13 +211,17 @@
         }
 
         @Override
-        public int download(DownloadRequest downloadRequest) {
+        public int download(DownloadRequest downloadRequest) throws RemoteException {
+            super.download(downloadRequest); // noop to placate the coverage tool
             mReceivedRequests.add(downloadRequest);
             return MbmsErrors.SUCCESS;
         }
 
         @Override
-        public int setTempFileRootDirectory(int subscriptionId, String rootDirectoryPath) {
+        public int setTempFileRootDirectory(int subscriptionId, String rootDirectoryPath)
+                throws RemoteException {
+            // noop to placate the coverage tool
+            super.setTempFileRootDirectory(subscriptionId, rootDirectoryPath);
             if (mErrorCodeOverride != MbmsErrors.SUCCESS) {
                 return mErrorCodeOverride;
             }
@@ -228,6 +238,8 @@
         @Override
         public int addProgressListener(DownloadRequest downloadRequest,
                 DownloadProgressListener listener) throws RemoteException {
+            // noop to placate the coverage tool
+            super.addProgressListener(downloadRequest, listener);
             mDownloadProgressListener = listener;
             return MbmsErrors.SUCCESS;
         }
@@ -235,12 +247,16 @@
         @Override
         public int addStatusListener(DownloadRequest downloadRequest,
                 DownloadStatusListener listener) throws RemoteException {
+            // noop to placate the coverage tool
+            super.addStatusListener(downloadRequest, listener);
             mDownloadStatusListener = listener;
             return MbmsErrors.SUCCESS;
         }
 
         @Override
-        public void dispose(int subscriptionId) {
+        public void dispose(int subscriptionId) throws RemoteException {
+            // noop to placate the coverage tool
+            super.dispose(subscriptionId);
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_CLOSE);
             b.putInt(ARGUMENT_SUBSCRIPTION_ID, subscriptionId);
@@ -248,7 +264,10 @@
         }
 
         @Override
-        public int requestDownloadState(DownloadRequest downloadRequest, FileInfo fileInfo) {
+        public int requestDownloadState(DownloadRequest downloadRequest, FileInfo fileInfo)
+                throws RemoteException {
+            // noop to placate the coverage tool
+            super.requestDownloadState(downloadRequest, fileInfo);
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_GET_DOWNLOAD_STATUS);
             b.putParcelable(ARGUMENT_DOWNLOAD_REQUEST, downloadRequest);
@@ -259,6 +278,12 @@
 
         @Override
         public int addServiceAnnouncement(int subscriptionId, byte[] announcementFile) {
+            try {
+                // noop to placate the coverage tool
+                super.addServiceAnnouncement(subscriptionId, announcementFile);
+            } catch (UnsupportedOperationException e) {
+                // expected
+            }
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_ADD_SERVICE_ANNOUNCEMENT);
             b.putInt(ARGUMENT_SUBSCRIPTION_ID, subscriptionId);
@@ -268,7 +293,9 @@
         }
 
         @Override
-        public int cancelDownload(DownloadRequest request) {
+        public int cancelDownload(DownloadRequest request) throws RemoteException {
+            // noop to placate the coverage tool
+            super.cancelDownload(request);
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_CANCEL_DOWNLOAD);
             b.putParcelable(ARGUMENT_DOWNLOAD_REQUEST, request);
@@ -278,19 +305,26 @@
         }
 
         @Override
-        public List<DownloadRequest> listPendingDownloads(int subscriptionId) {
+        public List<DownloadRequest> listPendingDownloads(int subscriptionId)
+                throws RemoteException {
+            // noop to placate the coverage tool
+            super.listPendingDownloads(subscriptionId);
             return mReceivedRequests;
         }
 
         @Override
         public int removeStatusListener(DownloadRequest downloadRequest,
-                DownloadStatusListener callback) {
+                DownloadStatusListener callback) throws RemoteException {
+            // noop to placate the coverage tool
+            super.removeStatusListener(downloadRequest, callback);
             mDownloadStatusListener = null;
             return MbmsErrors.SUCCESS;
         }
 
         @Override
-        public int resetDownloadKnowledge(DownloadRequest downloadRequest) {
+        public int resetDownloadKnowledge(DownloadRequest downloadRequest) throws RemoteException {
+            // noop to placate the coverage tool
+            super.resetDownloadKnowledge(downloadRequest);
             Bundle b = new Bundle();
             b.putString(METHOD_NAME, METHOD_RESET_DOWNLOAD_KNOWLEDGE);
             b.putParcelable(ARGUMENT_DOWNLOAD_REQUEST, downloadRequest);
@@ -300,6 +334,8 @@
 
         @Override
         public void onAppCallbackDied(int uid, int subscriptionId) {
+            // noop to placate the coverage tool
+            super.onAppCallbackDied(uid, subscriptionId);
             mAppCallback = null;
         }
     };
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java b/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
index bf13b0c..66554d4 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
@@ -62,6 +62,7 @@
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.Executor;
 
@@ -585,6 +586,9 @@
 
         if (mRadioHalVersion >= RADIO_HAL_VERSION_1_5) {
             int[] bands = nr.getBands();
+
+            verifyCellIdentityNrBands(bands);
+
             for (int band: bands) {
                 assertTrue("getBand out of range [1, 95] or [257, 261], band = " + band,
                         (band >= BAND_FR1_MIN_NR && band <= BAND_FR1_MAX_NR)
@@ -643,6 +647,14 @@
                 + ssSinr, -23 <= ssSinr && ssSinr <= 40 || ssSinr == CellInfo.UNAVAILABLE);
     }
 
+    private void verifyCellIdentityNrBands(int[] nrBands) {
+        //Verify the registered cell reports non-null band.
+        assertTrue(nrBands != null);
+
+        //Verify the registered cell reports at least one band.
+        assertTrue(Arrays.stream(nrBands).anyMatch(band -> band > 0));
+    }
+
     private void verifyCellInfoLteParcelandHashcode(CellInfoLte lte) {
         Parcel p = Parcel.obtain();
         lte.writeToParcel(p, 0);
@@ -701,6 +713,9 @@
 
         if (mRadioHalVersion >= RADIO_HAL_VERSION_1_5) {
             int[] bands = lte.getBands();
+
+            verifyCellIdentityLteBands(bands);
+
             for (int band: bands) {
                 assertTrue("getBand out of range [1, 88], band = " + band,
                         band >= BAND_MIN_LTE && band <= BAND_MAX_LTE);
@@ -809,6 +824,14 @@
         assertEquals(cellSignalStrengthLte, newCss);
     }
 
+    private void verifyCellIdentityLteBands(int[] lteBands) {
+        //Verify the registered cell reports non-null band.
+        assertTrue(lteBands != null);
+
+        //Verify the registered cell reports at least one band.
+        assertTrue(Arrays.stream(lteBands).anyMatch(band -> band > 0));
+    }
+
     // Verify wcdma cell information is within correct range.
     private void verifyWcdmaInfo(CellInfoWcdma wcdma) {
         verifyCellConnectionStatus(wcdma.getCellConnectionStatus());
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/DataCallResponseTest.java b/tests/tests/telephony/current/src/android/telephony/cts/DataCallResponseTest.java
index 8229f98..6b8499d 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/DataCallResponseTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/DataCallResponseTest.java
@@ -68,7 +68,7 @@
                 .setMappedHplmnSliceServiceType(TEST_HPLMN_SLICE_SERVICE_TYPE)
                 .build();
     private static final String DNN = "DNN";
-    private static final String OS_APP_ID = "OS_APP_ID";
+    private static final byte[] OS_APP_ID = {1, 2, 3, 4};
     private static final List<TrafficDescriptor> TRAFFIC_DESCRIPTORS =
             Arrays.asList(new TrafficDescriptor(DNN, OS_APP_ID));
 
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/NetworkSliceInfoTest.java b/tests/tests/telephony/current/src/android/telephony/cts/NetworkSliceInfoTest.java
index 8e2d490..54e6a1f 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/NetworkSliceInfoTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/NetworkSliceInfoTest.java
@@ -18,6 +18,7 @@
 
 import static android.telephony.data.NetworkSliceInfo.SLICE_SERVICE_TYPE_EMBB;
 import static android.telephony.data.NetworkSliceInfo.SLICE_SERVICE_TYPE_MIOT;
+import static android.telephony.data.NetworkSliceInfo.SLICE_STATUS_CONFIGURED;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -33,6 +34,7 @@
     private static final int TEST_SLICE_SERVICE_TYPE = SLICE_SERVICE_TYPE_EMBB;
     private static final int TEST_HPLMN_SLICE_DIFFERENTIATOR = 10;
     private static final int TEST_HPLMN_SLICE_SERVICE_TYPE = SLICE_SERVICE_TYPE_MIOT;
+    private static final int TEST_SLICE_STATUS = SLICE_STATUS_CONFIGURED;
 
     @Test
     public void testParceling() {
@@ -106,4 +108,10 @@
         } catch (IllegalArgumentException ignored) {
         }
     }
+
+    @Test
+    public void testGetterAndSetterForSliceStatus() {
+        NetworkSliceInfo si = new NetworkSliceInfo.Builder().setStatus(TEST_SLICE_STATUS).build();
+        assertThat(si.getStatus()).isEqualTo(SLICE_STATUS_CONFIGURED);
+    }
 }
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/NetworkSlicingConfigTest.java b/tests/tests/telephony/current/src/android/telephony/cts/NetworkSlicingConfigTest.java
new file mode 100644
index 0000000..79d6009
--- /dev/null
+++ b/tests/tests/telephony/current/src/android/telephony/cts/NetworkSlicingConfigTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.telephony.cts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.telephony.data.NetworkSlicingConfig;
+
+import org.junit.Test;
+
+public class NetworkSlicingConfigTest {
+    @Test
+    public void testConstructorAndGetters() {
+        NetworkSlicingConfig sc = new NetworkSlicingConfig();
+        assertThat(sc.getUrspRules()).isNotEqualTo(null);
+        assertThat(sc.getSliceInfo()).isNotEqualTo(null);
+    }
+}
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/RouteSelectionDescriptorTest.java b/tests/tests/telephony/current/src/android/telephony/cts/RouteSelectionDescriptorTest.java
new file mode 100644
index 0000000..7a76502
--- /dev/null
+++ b/tests/tests/telephony/current/src/android/telephony/cts/RouteSelectionDescriptorTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.telephony.cts;
+
+import static android.telephony.data.RouteSelectionDescriptor.ROUTE_SSC_MODE_1;
+import static android.telephony.data.RouteSelectionDescriptor.SESSION_TYPE_IPV4;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.hardware.radio.V1_6.SliceInfo;
+import android.telephony.data.RouteSelectionDescriptor;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RouteSelectionDescriptorTest {
+    private static final int TEST_PRECEDENCE = 1;
+    private static final int TEST_SESSION_TYPE = SESSION_TYPE_IPV4;
+    private static final int TEST_SSC_MODE = ROUTE_SSC_MODE_1;
+
+    @Test
+    public void testConstructorAndGetters() {
+        List<SliceInfo> si = new ArrayList<SliceInfo>();
+        List<String> dnn = new ArrayList<String>();
+        RouteSelectionDescriptor rsd = new RouteSelectionDescriptor(
+                TEST_PRECEDENCE, TEST_SESSION_TYPE, TEST_SSC_MODE, si, dnn);
+        assertThat(rsd.getPrecedence()).isEqualTo(TEST_PRECEDENCE);
+        assertThat(rsd.getSessionType()).isEqualTo(TEST_SESSION_TYPE);
+        assertThat(rsd.getSscMode()).isEqualTo(TEST_SSC_MODE);
+        assertThat(rsd.getSliceInfo()).isNotEqualTo(null);
+        assertThat(rsd.getDataNetworkName()).isNotEqualTo(null);
+    }
+}
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/ServiceStateTest.java b/tests/tests/telephony/current/src/android/telephony/cts/ServiceStateTest.java
index 3ec048b..60b9106 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/ServiceStateTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/ServiceStateTest.java
@@ -29,7 +29,10 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
+import android.content.Context;
+import android.os.Build;
 import android.os.Parcel;
 import android.telephony.AccessNetworkConstants;
 import android.telephony.LteVopsSupportInfo;
@@ -37,10 +40,14 @@
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 
+import androidx.test.InstrumentationRegistry;
+
 import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class ServiceStateTest {
     private static final String OPERATOR_ALPHA_LONG = "CtsOperatorLong";
@@ -150,12 +157,38 @@
         assertEquals(DUPLEX_MODE_TDD, serviceState.getDuplexMode());
     }
 
+    private static Context getContext() {
+        return InstrumentationRegistry.getContext();
+    }
+
     @Test
     public void testToString() {
         assertNotNull(serviceState.toString());
     }
 
     @Test
+    public void testNrStateRedacted() {
+        final TelephonyManager tm = getContext().getSystemService(TelephonyManager.class);
+
+        // Verify that NR State is not leaked in user builds.
+        if (!Build.IS_DEBUGGABLE) {
+            final String sss = tm.getServiceState().toString();
+            // The string leaked in previous releases is "nrState=<val>"; test that there is
+            // no matching or highly similar string leak, such as:
+            // nrState=NONE
+            // nrState=0
+            // mNrState=RESTRICTED
+            // NRSTATE=NOT_RESTRICTED
+            // nrState = CONNECTED
+            // etc.
+            Pattern p = Pattern.compile("nrState\\s*=\\s*[a-zA-Z0-9_]+", Pattern.CASE_INSENSITIVE);
+            Matcher m = p.matcher(sss);
+            // Need to use if (find) fail to ensure that the start and end are populated
+            if (m.find()) fail("Found nrState reported as: " + sss.substring(m.start(), m.end()));
+        }
+    }
+
+    @Test
     public void testCopyConstructor() {
         ServiceState serviceState = getServiceStateWithOperatorName("name", "numeric");
         assertEquals(serviceState, new ServiceState(serviceState));
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java b/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
index 69e1901..3c7d4e8 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
@@ -89,7 +89,7 @@
 import android.telephony.UiccCardInfo;
 import android.telephony.UiccSlotInfo;
 import android.telephony.data.ApnSetting;
-import android.telephony.data.SlicingConfig;
+import android.telephony.data.NetworkSlicingConfig;
 import android.telephony.emergency.EmergencyNumber;
 import android.text.TextUtils;
 import android.util.Log;
@@ -672,7 +672,7 @@
         mTelephonyManager.getNetworkOperator();
         ShellIdentityUtils.invokeMethodWithShellPermissions(mTelephonyManager,
                 (tm) -> tm.getPhoneAccountHandle(),
-                "android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE");
+                "android.permission.READ_PRIVILEGED_PHONE_STATE");
         mTelephonyManager.getSimCountryIso();
         mTelephonyManager.getVoiceMailAlphaTag();
         mTelephonyManager.isNetworkRoaming();
@@ -993,7 +993,7 @@
         PhoneAccountHandle phoneAccountHandle = ShellIdentityUtils.invokeMethodWithShellPermissions(
                 mTelephonyManager,
                 (tm) -> tm.getPhoneAccountHandle(),
-                "android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE");
+                "android.permission.READ_PRIVILEGED_PHONE_STATE");
         assertEquals(phoneAccountHandle, defaultAccount);
     }
 
@@ -4535,7 +4535,7 @@
         if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
             return;
         }
-        CompletableFuture<SlicingConfig> resultFuture = new CompletableFuture<>();
+        CompletableFuture<NetworkSlicingConfig> resultFuture = new CompletableFuture<>();
         ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mTelephonyManager,
                 (tm) -> tm.getNetworkSlicingConfiguration(mSimpleExecutor, resultFuture::complete));
     }
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/TrafficDescriptorTest.java b/tests/tests/telephony/current/src/android/telephony/cts/TrafficDescriptorTest.java
index 1ab317d..c7751f3 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/TrafficDescriptorTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/TrafficDescriptorTest.java
@@ -25,7 +25,7 @@
 
 public class TrafficDescriptorTest {
     private static final String DNN = "DNN";
-    private static final String OS_APP_ID = "OS_APP_ID";
+    private static final byte[] OS_APP_ID = {1, 2, 3, 4};
 
     @Test
     public void testConstructorAndGetters() {
@@ -44,7 +44,8 @@
     @Test
     public void testNotEquals() {
         TrafficDescriptor td = new TrafficDescriptor(DNN, OS_APP_ID);
-        TrafficDescriptor notEqualsTd = new TrafficDescriptor("NOT_DNN", "NOT_OS_APP_ID");
+        byte[] notOsAppId = {5, 6, 7, 8};
+        TrafficDescriptor notEqualsTd = new TrafficDescriptor("NOT_DNN", notOsAppId);
         assertThat(td).isNotEqualTo(notEqualsTd);
         assertThat(td).isNotEqualTo(null);
     }
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/UrspRuleTest.java b/tests/tests/telephony/current/src/android/telephony/cts/UrspRuleTest.java
new file mode 100644
index 0000000..919fe82
--- /dev/null
+++ b/tests/tests/telephony/current/src/android/telephony/cts/UrspRuleTest.java
@@ -0,0 +1,42 @@
+/*
+ * 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.telephony.cts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.hardware.radio.V1_6.RouteSelectionDescriptor;
+import android.hardware.radio.V1_6.TrafficDescriptor;
+import android.telephony.data.UrspRule;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UrspRuleTest {
+    private static final int TEST_PRECEDENCE = 1;
+
+    @Test
+    public void testConstructorAndGetters() {
+        List<TrafficDescriptor> tds = new ArrayList<TrafficDescriptor>();
+        List<RouteSelectionDescriptor> rsds = new ArrayList<RouteSelectionDescriptor>();
+        UrspRule ur = new UrspRule(TEST_PRECEDENCE, tds, rsds);
+        assertThat(ur.getPrecedence()).isEqualTo(TEST_PRECEDENCE);
+        assertThat(ur.getTrafficDescriptors()).isNotEqualTo(null);
+        assertThat(ur.getRouteSelectionDescriptor()).isNotEqualTo(null);
+    }
+}
diff --git a/tests/tests/telephony/current/src/android/telephony/gba/cts/GbaServiceTest.java b/tests/tests/telephony/current/src/android/telephony/gba/cts/GbaServiceTest.java
index 64a1538..c5baf84 100644
--- a/tests/tests/telephony/current/src/android/telephony/gba/cts/GbaServiceTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/gba/cts/GbaServiceTest.java
@@ -134,6 +134,7 @@
                       TelephonyManager.BootstrapAuthenticationCallback() {
                 @Override
                 public void onKeysAvailable(byte[] gbaKey, String btId) {
+                    super.onKeysAvailable(gbaKey, btId);
                     assertNotNull(gbaKey);
                     assertNotNull(btId);
                     assertArrayEquals(key, gbaKey);
@@ -146,6 +147,7 @@
 
                 @Override
                 public void onAuthenticationFailure(int reason) {
+                    super.onAuthenticationFailure(reason);
                     synchronized (isSuccess) {
                         isFail.set(true);
                         isSuccess.notify();
diff --git a/tests/tests/telephony/current/src/android/telephony/ims/cts/ImsServiceTest.java b/tests/tests/telephony/current/src/android/telephony/ims/cts/ImsServiceTest.java
index 73ac9ac..f5f9804 100644
--- a/tests/tests/telephony/current/src/android/telephony/ims/cts/ImsServiceTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/ims/cts/ImsServiceTest.java
@@ -110,28 +110,57 @@
     private static final int TEST_CONFIG_VALUE_INT = 0xDEADBEEF;
     private static final String TEST_CONFIG_VALUE_STRING = "DEADBEEF";
 
-    private static final String TEST_RCS_CONFIG_DEFAULT = "<RCSConfig>\n"
-            + "\t<rcsVolteSingleRegistration>1</rcsVolteSingleRegistration>\n"
-            + "\t<SERVICES>\n"
-            + "\t\t<SupportedRCSProfileVersions>UP_2.0</SupportedRCSProfileVersions>\n"
-            + "\t\t<ChatAuth>1</ChatAuth>\n"
-            + "\t\t<GroupChatAuth>1</GroupChatAuth>\n"
-            + "\t\t<ftAuth>1</ftAuth>\n"
-            + "\t\t<standaloneMsgAuth>1</standaloneMsgAuth>\n"
-            + "\t\t<geolocPushAuth>1</geolocPushAuth>\n"
-            + "\t\t<Ext>\n"
-            + "\t\t\t<DataOff>\n"
-            + "\t\t\t\t<rcsMessagingDataOff>1</rcsMessagingDataOff>\n"
-            + "\t\t\t\t<fileTransferDataOff>1</fileTransferDataOff>\n"
-            + "\t\t\t\t<mmsDataOff>1</mmsDataOff>\n"
-            + "\t\t\t\t<syncDataOff>1</syncDataOff>\n"
-            + "\t\t\t</DataOff>\n"
-            + "\t\t</Ext>\n"
-            + "\t</SERVICES>\n"
-            + "</RCSConfig>";
-    private static final String TEST_RCS_CONFIG_SINGLE_REGISTRATION_DISABLED = "<RCSConfig>\n"
-            + "\t<rcsVolteSingleRegistration>0</rcsVolteSingleRegistration>\n"
-            + "</RCSConfig>";
+    private static final String TEST_RCS_CONFIG_DEFAULT = "<?xml version=\"1.0\"?>\n"
+            + "<wap-provisioningdoc version=\"1.1\">\n"
+            + "\t<characteristic type=\"APPLICATION\">\n"
+            + "\t\t<parm name=\"AppID\" value=\"urn:oma:mo:ext-3gpp-ims:1.0\"/>\n"
+            + "\t\t<characteristic type=\"3GPP_IMS\">\n"
+            + "\t\t\t<parm name=\"AppID\" value=\"ap2001\"/>\n"
+            + "\t\t\t<parm name=\"Name\" value=\"RCS IMS Settings\"/>\n"
+            + "\t\t\t<characteristic type=\"Ext\">\n"
+            + "\t\t\t\t<characteristic type=\"GSMA\">\n"
+            + "\t\t\t\t\t<parm name=\"AppRef\" value=\"IMS-Setting\"/>\n"
+            + "\t\t\t\t\t<parm name=\"rcsVolteSingleRegistration\" value=\"1\"/>\n"
+            + "\t\t\t\t</characteristic>\n"
+            + "\t\t\t</characteristic>\n"
+            + "\t\t</characteristic>\n"
+            + "\t\t<characteristic type=\"SERVICES\">\n"
+            + "\t\t\t<parm name=\"SupportedRCSProfileVersions\" value=\"UP2.3\"/>\n"
+            + "\t\t\t<parm name=\"ChatAuth\" value=\"1\"/>\n"
+            + "\t\t\t<parm name=\"GroupChatAuth\" value=\"1\"/>\n"
+            + "\t\t\t<parm name=\"ftAuth\" value=\"1\"/>\n"
+            + "\t\t\t<parm name=\"standaloneMsgAuth\" value=\"1\"/>\n"
+            + "\t\t\t<parm name=\"geolocPushAuth\" value=\"1\"/>\n"
+            + "\t\t\t<characteristic type=\"Ext\">\n"
+            + "\t\t\t\t<characteristic type=\"DataOff\">\n"
+            + "\t\t\t\t\t<parm name=\"rcsMessagingDataOff\" value=\"1\"/>\n"
+            + "\t\t\t\t\t<parm name=\"fileTransferDataOff\" value=\"1\"/>\n"
+            + "\t\t\t\t\t<parm name=\"mmsDataOff\" value=\"1\"/>\n"
+            + "\t\t\t\t\t<parm name=\"syncDataOff\" value=\"1\"/>\n"
+            + "\t\t\t\t\t<characteristic type=\"Ext\"/>\n"
+            + "\t\t\t\t</characteristic>\n"
+            + "\t\t\t</characteristic>\n"
+            + "\t\t</characteristic>\n"
+            + "\t</characteristic>\n"
+            + "</wap-provisioningdoc>\n";
+
+    private static final String TEST_RCS_CONFIG_SINGLE_REGISTRATION_DISABLED =
+            "<?xml version=\"1.0\"?>\n"
+            + "<wap-provisioningdoc version=\"1.1\">\n"
+            + "\t<characteristic type=\"APPLICATION\">\n"
+            + "\t\t<parm name=\"AppID\" value=\"urn:oma:mo:ext-3gpp-ims:1.0\"/>\n"
+            + "\t\t<characteristic type=\"3GPP_IMS\">\n"
+            + "\t\t\t<parm name=\"AppID\" value=\"ap2001\"/>\n"
+            + "\t\t\t<parm name=\"Name\" value=\"RCS IMS Settings\"/>\n"
+            + "\t\t\t<characteristic type=\"Ext\">\n"
+            + "\t\t\t\t<characteristic type=\"GSMA\">\n"
+            + "\t\t\t\t\t<parm name=\"AppRef\" value=\"IMS-Setting\"/>\n"
+            + "\t\t\t\t\t<parm name=\"rcsVolteSingleRegistration\" value=\"0\"/>\n"
+            + "\t\t\t\t</characteristic>\n"
+            + "\t\t\t</characteristic>\n"
+            + "\t\t</characteristic>\n"
+            + "\t</characteristic>\n"
+            + "</wap-provisioningdoc>\n";
     private static final String TEST_RCS_PRE_CONFIG = "<RCSPreProvisiniongConfig>\n"
             + "\t<VERS>\n"
             + "\t\t<version>1</version>\n"
@@ -2772,7 +2801,7 @@
                 buildRcsProvisioningCallback(clientQueue, paramsQueue);
         ProvisioningManager provisioningManager =
                 ProvisioningManager.createForSubscriptionId(sTestSub);
-        String configStr = "<test01/>\n" + TEST_RCS_CONFIG_DEFAULT;
+        String configStr = TEST_RCS_CONFIG_DEFAULT;
 
         //notify rcs configuration received, wait rcs gets ready and receives notification
         try {
@@ -2802,7 +2831,7 @@
         assertTrue(Arrays.equals(
                 configStr.getBytes(), TestAcsClient.getInstance().getConfig()));
 
-        configStr = "<test02/>\n" + TEST_RCS_CONFIG_DEFAULT;
+        configStr = TEST_RCS_CONFIG_SINGLE_REGISTRATION_DISABLED;
         try {
             automan.adoptShellPermissionIdentity();
             provisioningManager.notifyRcsAutoConfigurationReceived(
diff --git a/tests/tests/telephonyprovider/src/android/telephonyprovider/cts/ServiceStateTest.java b/tests/tests/telephonyprovider/src/android/telephonyprovider/cts/ServiceStateTest.java
index 7318e8b..9c21aa9 100644
--- a/tests/tests/telephonyprovider/src/android/telephonyprovider/cts/ServiceStateTest.java
+++ b/tests/tests/telephonyprovider/src/android/telephonyprovider/cts/ServiceStateTest.java
@@ -16,6 +16,7 @@
 
 package android.telephonyprovider.cts;
 
+import static android.content.pm.PackageManager.FEATURE_TELEPHONY;
 import static android.provider.Telephony.ServiceStateTable.DATA_NETWORK_TYPE;
 import static android.provider.Telephony.ServiceStateTable.DATA_REG_STATE;
 import static android.provider.Telephony.ServiceStateTable.DUPLEX_MODE;
@@ -27,6 +28,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.Manifest;
 import android.content.ContentResolver;
 import android.content.ContentValues;
@@ -71,6 +74,8 @@
 
     @Before
     public void setUp() {
+        assumeTrue(hasTelephonyFeature());
+
         mContentResolver = getInstrumentation().getContext().getContentResolver();
         mTelephonyManager =
                 getInstrumentation().getContext().getSystemService(TelephonyManager.class);
@@ -80,6 +85,10 @@
 
     @After
     public void tearDown() {
+        if (!hasTelephonyFeature()) {
+            return;
+        }
+
         // Recover the initial ServiceState to remove the impact of manual ServiceState insertion.
         insertServiceState(mInitialServiceState);
     }
@@ -379,4 +388,9 @@
             mObserved.add(uri);
         }
     }
+
+    private static boolean hasTelephonyFeature() {
+        return getInstrumentation().getContext().getPackageManager().hasSystemFeature(
+                FEATURE_TELEPHONY);
+    }
 }
diff --git a/tests/tests/time/src/android/app/time/cts/ExternalTimeSuggestionTest.java b/tests/tests/time/src/android/app/time/cts/ExternalTimeSuggestionTest.java
new file mode 100644
index 0000000..e7a5fcd
--- /dev/null
+++ b/tests/tests/time/src/android/app/time/cts/ExternalTimeSuggestionTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 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.app.time.cts;
+
+import static android.app.time.cts.ParcelableTestSupport.assertRoundTripParcelable;
+import static android.app.time.cts.ParcelableTestSupport.roundTripParcelable;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import android.app.time.ExternalTimeSuggestion;
+
+import org.junit.Test;
+
+public class ExternalTimeSuggestionTest {
+
+    private static final long ARBITRARY_REFERENCE_TIME = 1111L;
+    private static final long ARBITRARY_UTC_TIME = 2222L;
+
+    @Test
+    public void testEquals() {
+        ExternalTimeSuggestion one = new ExternalTimeSuggestion(
+                ARBITRARY_REFERENCE_TIME, ARBITRARY_UTC_TIME);
+        assertEquals(one, one);
+
+        ExternalTimeSuggestion two = new ExternalTimeSuggestion(
+                ARBITRARY_REFERENCE_TIME, ARBITRARY_UTC_TIME);
+        assertEquals(one, two);
+        assertEquals(two, one);
+
+        ExternalTimeSuggestion three = new ExternalTimeSuggestion(
+                ARBITRARY_REFERENCE_TIME + 1, ARBITRARY_UTC_TIME);
+        assertNotEquals(one, three);
+        assertNotEquals(three, one);
+
+        // DebugInfo must not be considered in equals().
+        one.addDebugInfo("Debug info 1");
+        two.addDebugInfo("Debug info 2");
+        assertEquals(one, two);
+    }
+
+    @Test
+    public void testParcelable() {
+        ExternalTimeSuggestion suggestion = new ExternalTimeSuggestion(
+                ARBITRARY_REFERENCE_TIME, ARBITRARY_UTC_TIME);
+        assertRoundTripParcelable(suggestion);
+
+        // DebugInfo should also be stored (but is not checked by equals())
+        suggestion.addDebugInfo("This is debug info");
+        ExternalTimeSuggestion rtSuggestion = roundTripParcelable(suggestion);
+        assertEquals(suggestion.getDebugInfo(), rtSuggestion.getDebugInfo());
+    }
+}
diff --git a/tests/tests/time/src/android/app/time/cts/ParcelableTestSupport.java b/tests/tests/time/src/android/app/time/cts/ParcelableTestSupport.java
new file mode 100644
index 0000000..1fa3f26
--- /dev/null
+++ b/tests/tests/time/src/android/app/time/cts/ParcelableTestSupport.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2019 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.app.time.cts;
+
+import static org.junit.Assert.assertEquals;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.lang.reflect.Field;
+
+/** Utility methods related to {@link Parcelable} objects used in several tests. */
+public final class ParcelableTestSupport {
+
+    private ParcelableTestSupport() {}
+
+    /** Returns the result of parceling and unparceling the argument. */
+    @SuppressWarnings("unchecked")
+    public static <T extends Parcelable> T roundTripParcelable(T parcelable) {
+        Parcel parcel = Parcel.obtain();
+        parcel.writeTypedObject(parcelable, 0);
+        parcel.setDataPosition(0);
+
+        Parcelable.Creator<T> creator;
+        try {
+            Field creatorField = parcelable.getClass().getField("CREATOR");
+            creator = (Parcelable.Creator<T>) creatorField.get(null);
+        } catch (NoSuchFieldException | IllegalAccessException e) {
+            throw new AssertionError(e);
+        }
+        T toReturn = parcel.readTypedObject(creator);
+        parcel.recycle();
+        return toReturn;
+    }
+
+    public static <T extends Parcelable> void assertRoundTripParcelable(T instance) {
+        assertEquals(instance, roundTripParcelable(instance));
+    }
+}
diff --git a/tests/tests/time/src/android/time/cts/TimeManagerTest.java b/tests/tests/time/src/android/app/time/cts/TimeManagerTest.java
similarity index 78%
rename from tests/tests/time/src/android/time/cts/TimeManagerTest.java
rename to tests/tests/time/src/android/app/time/cts/TimeManagerTest.java
index 4719d82..72f74ad 100644
--- a/tests/tests/time/src/android/time/cts/TimeManagerTest.java
+++ b/tests/tests/time/src/android/app/time/cts/TimeManagerTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.time.cts;
+package android.app.time.cts;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -195,66 +195,4 @@
         }
         assertEquals(expectedValue, actualValue.get());
     }
-
-    @Test
-    public void testExternalTimeSuggestionEquals() {
-        long referenceTimeMillis = 1111;
-        long currentTimeMillis = 2222;
-        ExternalTimeSuggestion one = new ExternalTimeSuggestion(
-                referenceTimeMillis,
-                currentTimeMillis);
-        assertEquals(one, one);
-
-        ExternalTimeSuggestion two = new ExternalTimeSuggestion(
-                referenceTimeMillis,
-                currentTimeMillis);
-        assertEquals(one, two);
-        assertEquals(two, one);
-
-        ExternalTimeSuggestion three = new ExternalTimeSuggestion(
-                referenceTimeMillis + 1,
-                currentTimeMillis);
-        assertNotEquals(one, three);
-        assertNotEquals(three, one);
-
-        // DebugInfo must not be considered in equals().
-        one.addDebugInfo("Debug info 1");
-        two.addDebugInfo("Debug info 2");
-        assertEquals(one, two);
-    }
-
-
-    /** Returns the result of parceling and unparceling the argument. */
-    @SuppressWarnings("unchecked")
-    public static ExternalTimeSuggestion roundTripParcelable(ExternalTimeSuggestion parcelable) {
-        Parcel parcel = Parcel.obtain();
-        parcel.writeTypedObject(parcelable, 0);
-        parcel.setDataPosition(0);
-
-        Parcelable.Creator<ExternalTimeSuggestion> creator;
-        try {
-            Field creatorField = parcelable.getClass().getField("CREATOR");
-            creator = (Parcelable.Creator<ExternalTimeSuggestion>) creatorField.get(null);
-        } catch (NoSuchFieldException | IllegalAccessException e) {
-            throw new AssertionError(e);
-        }
-        ExternalTimeSuggestion toReturn = parcel.readTypedObject(creator);
-        parcel.recycle();
-        return toReturn;
-    }
-
-    @Test
-    public void testExternalTimeSuggestionParcelable() {
-        long referenceTimeMillis = 1111;
-        long currentTimeMillis = 2222;
-        ExternalTimeSuggestion suggestion = new ExternalTimeSuggestion(
-                referenceTimeMillis,
-                currentTimeMillis);
-        assertEquals(suggestion, roundTripParcelable(suggestion));
-
-        // DebugInfo should also be stored (but is not checked by equals())
-        suggestion.addDebugInfo("This is debug info");
-        ExternalTimeSuggestion rtSuggestion = roundTripParcelable(suggestion);
-        assertEquals(suggestion.getDebugInfo(), rtSuggestion.getDebugInfo());
-    }
 }
diff --git a/tests/tests/time/src/android/service/timezone/cts/TimeZoneProviderSuggestionTest.java b/tests/tests/time/src/android/service/timezone/cts/TimeZoneProviderSuggestionTest.java
new file mode 100644
index 0000000..ae4a14d
--- /dev/null
+++ b/tests/tests/time/src/android/service/timezone/cts/TimeZoneProviderSuggestionTest.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright 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.service.timezone.cts;
+
+import static android.app.time.cts.ParcelableTestSupport.assertRoundTripParcelable;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import static java.util.Collections.singletonList;
+
+import android.service.timezone.TimeZoneProviderSuggestion;
+
+import org.junit.Test;
+
+import java.util.List;
+
+public class TimeZoneProviderSuggestionTest {
+
+    private static final long ARBITRARY_ELAPSED_REALTIME_MILLIS = 9999;
+
+    private static final List<String> ARBITRARY_TIME_ZONE_IDS = singletonList("Europe/London");
+
+    @Test(expected = RuntimeException.class)
+    public void testInvalidTimeZoneIds() {
+        new TimeZoneProviderSuggestion.Builder()
+                .setTimeZoneIds(null);
+    }
+
+    @Test
+    public void testAccessors() {
+        TimeZoneProviderSuggestion suggestion = new TimeZoneProviderSuggestion.Builder()
+                .setTimeZoneIds(ARBITRARY_TIME_ZONE_IDS)
+                .setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS)
+                .build();
+
+        assertEquals(ARBITRARY_TIME_ZONE_IDS, suggestion.getTimeZoneIds());
+        assertEquals(ARBITRARY_ELAPSED_REALTIME_MILLIS, suggestion.getElapsedRealtimeMillis());
+    }
+
+    @Test
+    public void testEquals() {
+        TimeZoneProviderSuggestion.Builder builder1 = new TimeZoneProviderSuggestion.Builder()
+                .setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            assertEquals(one, one);
+        }
+
+        TimeZoneProviderSuggestion.Builder builder2 = new TimeZoneProviderSuggestion.Builder()
+                .setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            TimeZoneProviderSuggestion two = builder2.build();
+            assertEquals(one, two);
+            assertEquals(two, one);
+        }
+
+        builder1.setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS + 1);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            TimeZoneProviderSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+            assertNotEquals(two, one);
+        }
+
+        builder2.setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS + 1);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            TimeZoneProviderSuggestion two = builder2.build();
+            assertEquals(one, two);
+            assertEquals(two, one);
+        }
+
+        builder2.setTimeZoneIds(ARBITRARY_TIME_ZONE_IDS);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            TimeZoneProviderSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+            assertNotEquals(two, one);
+        }
+
+        builder1.setTimeZoneIds(ARBITRARY_TIME_ZONE_IDS);
+        {
+            TimeZoneProviderSuggestion one = builder1.build();
+            TimeZoneProviderSuggestion two = builder2.build();
+            assertEquals(one, two);
+            assertEquals(two, one);
+        }
+    }
+
+    @Test
+    public void testParcelable_noTimeZoneIds() {
+        TimeZoneProviderSuggestion.Builder builder = new TimeZoneProviderSuggestion.Builder()
+                .setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS);
+        assertRoundTripParcelable(builder.build());
+    }
+
+    @Test
+    public void testParcelable_withTimeZoneIds() {
+        TimeZoneProviderSuggestion.Builder builder = new TimeZoneProviderSuggestion.Builder()
+                .setElapsedRealtimeMillis(ARBITRARY_ELAPSED_REALTIME_MILLIS)
+                .setTimeZoneIds(ARBITRARY_TIME_ZONE_IDS);
+        assertRoundTripParcelable(builder.build());
+    }
+}
diff --git a/tests/tests/tv/src/android/media/tv/cts/TvInputServiceTest.java b/tests/tests/tv/src/android/media/tv/cts/TvInputServiceTest.java
index 0c8f856..e643161 100644
--- a/tests/tests/tv/src/android/media/tv/cts/TvInputServiceTest.java
+++ b/tests/tests/tv/src/android/media/tv/cts/TvInputServiceTest.java
@@ -1066,6 +1066,7 @@
 
         @Override
         public IBinder createExtension() {
+            super.createExtension();
             return null;
         }
 
diff --git a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
index 689ab97..62fa719 100644
--- a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
+++ b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
@@ -1204,13 +1204,19 @@
             public void onSignalTypeReported(int signalType) {}
 
             @Override
-            public void onModulationReported(int modulation) {}
+            public void onModulationReported(int modulation) {
+                ScanCallback.super.onModulationReported(modulation);
+            }
 
             @Override
-            public void onPriorityReported(boolean isHighPriority) {}
+            public void onPriorityReported(boolean isHighPriority) {
+                ScanCallback.super.onPriorityReported(isHighPriority);
+            }
 
             @Override
-            public void onDvbcAnnexReported(int dvbcAnnext) {}
+            public void onDvbcAnnexReported(int dvbcAnnext) {
+                ScanCallback.super.onDvbcAnnexReported(dvbcAnnext);
+            }
         };
     }
 }
diff --git a/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java b/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java
index e9c050a..95de736 100755
--- a/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java
+++ b/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java
@@ -104,13 +104,13 @@
 
         // Access APIs guarded by a platform defined signature permissions
         try {
+            assertSame(packageManager.checkPermission(Manifest.permission.ANSWER_PHONE_CALLS,
+                    context.getPackageName()), PackageManager.PERMISSION_DENIED);
             getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
             // Access APIs guarded by a platform defined signature permission
             activityManager.getPackageImportance("foo.bar.baz");
 
             // Grant ourselves a runtime permission (was granted at install)
-            assertSame(packageManager.checkPermission(Manifest.permission.ANSWER_PHONE_CALLS,
-                    context.getPackageName()), PackageManager.PERMISSION_DENIED);
             packageManager.grantRuntimePermission(context.getPackageName(),
                     Manifest.permission.ANSWER_PHONE_CALLS, Process.myUserHandle());
         } catch (SecurityException e) {
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/EdgeEffectTests.java b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/EdgeEffectTests.java
index 3fc9273..6dec22e 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/EdgeEffectTests.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/EdgeEffectTests.java
@@ -344,6 +344,22 @@
     }
 
     @Test
+    public void testInvalidPullDistanceDoesNotCrash() {
+        EdgeEffect edgeEffect = new EdgeEffect(getContext());
+        edgeEffect.setType(EdgeEffect.TYPE_STRETCH);
+        // Verify that bad inputs to onPull do not crash
+        edgeEffect.onPull(Float.NaN, Float.NaN);
+
+        edgeEffect.setSize(TEST_WIDTH, TEST_HEIGHT);
+        RenderNode node = new RenderNode("");
+        node.setPosition(0, 0, TEST_WIDTH, TEST_HEIGHT);
+        RecordingCanvas canvas = node.beginRecording();
+
+        edgeEffect.draw(canvas);
+        node.endRecording();
+    }
+
+    @Test
     public void testAbsorbThenDrawDoesNotCrash() {
         MockVsyncHelper.runOnVsyncThread(() -> {
             EdgeEffect edgeEffect = new EdgeEffect(getContext());
diff --git a/tests/tests/view/res/layout-round/gesture_exclusion_basic.xml b/tests/tests/view/res/layout-round/gesture_exclusion_basic.xml
new file mode 100644
index 0000000..71754b6
--- /dev/null
+++ b/tests/tests/view/res/layout-round/gesture_exclusion_basic.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/abslistview_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+    <View android:id="@+id/animating_view"
+          android:layout_width="5px"
+          android:layout_height="5px"
+          android:layout_gravity="center|left"
+          android:background="#ff00ff00" />
+</FrameLayout>
diff --git a/tests/tests/view/src/android/view/cts/ASurfaceControlTest.java b/tests/tests/view/src/android/view/cts/ASurfaceControlTest.java
index cf168e7..faf820c 100644
--- a/tests/tests/view/src/android/view/cts/ASurfaceControlTest.java
+++ b/tests/tests/view/src/android/view/cts/ASurfaceControlTest.java
@@ -937,31 +937,31 @@
                     }
                 };
         verifyTest(callback,
-                new PixelChecker(PixelColor.RED) { //2500
+                new PixelChecker(PixelColor.RED) { //1111
                     @Override
                     public boolean checkPixels(int pixelCount, int width, int height) {
-                        return pixelCount > 2250 && pixelCount < 2750;
+                        return pixelCount > 1000 && pixelCount < 1250;
                     }
                 });
         verifyTest(callback,
-                new PixelChecker(PixelColor.BLUE) { //2500
+                new PixelChecker(PixelColor.BLUE) { //1111
                     @Override
                     public boolean checkPixels(int pixelCount, int width, int height) {
-                        return pixelCount > 2250 && pixelCount < 2750;
+                        return pixelCount > 1000 && pixelCount < 1250;
                     }
                 });
         verifyTest(callback,
-                new PixelChecker(PixelColor.MAGENTA) { //2500
+                new PixelChecker(PixelColor.MAGENTA) { //1111
                     @Override
                     public boolean checkPixels(int pixelCount, int width, int height) {
-                        return pixelCount > 2250 && pixelCount < 2750;
+                        return pixelCount > 1000 && pixelCount < 1250;
                     }
                 });
         verifyTest(callback,
-                new PixelChecker(PixelColor.GREEN) { //2500
+                new PixelChecker(PixelColor.GREEN) { //1111
                     @Override
                     public boolean checkPixels(int pixelCount, int width, int height) {
-                        return pixelCount > 2250 && pixelCount < 2750;
+                        return pixelCount > 1000 && pixelCount < 1250;
                     }
                 });
     }
diff --git a/tests/tests/view/src/android/view/cts/input/InputDeviceVibratorManagerTest.java b/tests/tests/view/src/android/view/cts/input/InputDeviceVibratorManagerTest.java
index 9a46a3d..fca9854 100644
--- a/tests/tests/view/src/android/view/cts/input/InputDeviceVibratorManagerTest.java
+++ b/tests/tests/view/src/android/view/cts/input/InputDeviceVibratorManagerTest.java
@@ -22,7 +22,7 @@
 
 import android.app.Instrumentation;
 import android.hardware.input.InputManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
 import android.os.SystemClock;
 import android.os.VibrationEffect;
 import android.os.Vibrator;
@@ -155,7 +155,7 @@
 
             final long totalVibrations = testData.durations.size();
             long timeoutMills = 0;
-            CombinedVibrationEffect.SyncedCombination comb = CombinedVibrationEffect.startSynced();
+            CombinedVibration.ParallelCombination comb = CombinedVibration.startParallel();
 
             final int[] ids = mVibratorManager.getVibratorIds();
             for (int i = 0; i < testData.amplitudes.size(); i++) {
@@ -181,14 +181,14 @@
                 }
 
                 if (testData.amplitudes.size() == 1) {
-                    CombinedVibrationEffect mono = CombinedVibrationEffect.createSynced(effect);
+                    CombinedVibration mono = CombinedVibration.createParallel(effect);
                     // Start vibration
                     mVibratorManager.vibrate(mono);
                 } else {  // testData.amplitudes.size() == 2
                     comb.addVibrator(ids[i], effect);
                     if (i > 0) {
                         // Start vibration
-                        CombinedVibrationEffect stereo = comb.combine();
+                        CombinedVibration stereo = comb.combine();
                         mVibratorManager.vibrate(stereo);
                     }
                 }
@@ -222,12 +222,12 @@
     @Test
     public void testUnsupportedVibrationEffectsPreBaked() {
         final int[] ids = mVibratorManager.getVibratorIds();
-        CombinedVibrationEffect.SyncedCombination comb = CombinedVibrationEffect.startSynced();
+        CombinedVibration.ParallelCombination comb = CombinedVibration.startParallel();
         for (int i = 0; i < ids.length; i++) {
             comb.addVibrator(ids[i], VibrationEffect.createPredefined(
                     VibrationEffect.EFFECT_CLICK));
         }
-        CombinedVibrationEffect stereo = comb.combine();
+        CombinedVibration stereo = comb.combine();
         mVibratorManager.vibrate(stereo);
         // Shouldn't get any vibrations for unsupported effects
         assertEquals(0, getVibrationCount(1 /* totalVibrations */, 1000 /* timeoutMills */));
@@ -236,12 +236,12 @@
     @Test
     public void testMixedVibrationEffectsOneShotAndPreBaked() {
         final int[] ids = mVibratorManager.getVibratorIds();
-        CombinedVibrationEffect.SyncedCombination comb = CombinedVibrationEffect.startSynced();
+        CombinedVibration.ParallelCombination comb = CombinedVibration.startParallel();
         comb.addVibrator(ids[0], VibrationEffect.createOneShot(1000,
                 VibrationEffect.DEFAULT_AMPLITUDE));
         comb.addVibrator(ids[1], VibrationEffect.createPredefined(
                 VibrationEffect.EFFECT_CLICK));
-        CombinedVibrationEffect stereo = comb.combine();
+        CombinedVibration stereo = comb.combine();
         mVibratorManager.vibrate(stereo);
         // Shouldn't get any vibrations for combination of OneShot and Prebaked.
         // Prebaked effect is not supported by input device vibrator, if the second effect
@@ -252,12 +252,12 @@
     @Test
     public void testMixedVibrationEffectsPreBakedAndOneShot() {
         final int[] ids = mVibratorManager.getVibratorIds();
-        CombinedVibrationEffect.SyncedCombination comb = CombinedVibrationEffect.startSynced();
+        CombinedVibration.ParallelCombination comb = CombinedVibration.startParallel();
         comb.addVibrator(ids[0], VibrationEffect.createPredefined(
                 VibrationEffect.EFFECT_CLICK));
         comb.addVibrator(ids[1], VibrationEffect.createOneShot(1000,
                 VibrationEffect.DEFAULT_AMPLITUDE));
-        CombinedVibrationEffect stereo = comb.combine();
+        CombinedVibration stereo = comb.combine();
         mVibratorManager.vibrate(stereo);
         // Shouldn't get any vibrations for combination of Prebaked and OneShot.
         // Prebaked effect is not supported by input device vibrator, if the first effect
@@ -266,10 +266,9 @@
     }
 
     @Test
-    public void testCombinedVibrationEffectsSingleVibratorId() {
+    public void testCombinedVibrationOnSingleVibratorId() {
         final int[] ids = mVibratorManager.getVibratorIds();
-        CombinedVibrationEffect.SyncedCombination comb = CombinedVibrationEffect.startSynced();
-        int[] vibratorIds = mVibratorManager.getVibratorIds();
+        CombinedVibration.ParallelCombination comb = CombinedVibration.startParallel();
         comb.addVibrator(ids[0], VibrationEffect.createOneShot(1000,
                 VibrationEffect.DEFAULT_AMPLITUDE));
         mVibratorManager.vibrate(comb.combine());
diff --git a/tests/tests/widget/res/layout/remoteviews_good.xml b/tests/tests/widget/res/layout/remoteviews_good.xml
index 1878890..c0f2abb 100644
--- a/tests/tests/widget/res/layout/remoteviews_good.xml
+++ b/tests/tests/widget/res/layout/remoteviews_good.xml
@@ -17,6 +17,7 @@
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/remoteViews_good"
+    android:theme="@style/Theme.DeviceDefault.DayNight.TestWidget"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">
diff --git a/tests/tests/widget/res/values-night/themes.xml b/tests/tests/widget/res/values-night/themes.xml
new file mode 100644
index 0000000..8791f1e
--- /dev/null
+++ b/tests/tests/widget/res/values-night/themes.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<resources>
+    <style name="Theme.DeviceDefault.DayNight.TestWidget"
+        parent="@android:style/Theme.DeviceDefault.DayNight">
+        <item name="themeDimension">@dimen/remoteviews_theme_dimen</item>
+        <item name="themeDimension2">4.5dp</item>
+        <item name="themeDimension3">5.5dp</item>
+        <item name="themeDimension4">6.5dp</item>
+        <item name="themeColor">#0f00ffff</item>
+        <item name="themeString">Night</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/tests/tests/widget/res/values/attrs.xml b/tests/tests/widget/res/values/attrs.xml
index b2bea6f..cff1d56 100644
--- a/tests/tests/widget/res/values/attrs.xml
+++ b/tests/tests/widget/res/values/attrs.xml
@@ -142,6 +142,10 @@
     <attr name="themeGravity" />
     <attr name="themeTileMode" />
     <attr name="themeAngle" />
+    <attr name="themeDimension2" />
+    <attr name="themeDimension3" />
+    <attr name="themeDimension4" />
+    <attr name="themeString" />
 
     <attr name="chronometerStyle" format="string" />
 
diff --git a/tests/tests/widget/res/values/colors.xml b/tests/tests/widget/res/values/colors.xml
index c947b7a..1b97411 100644
--- a/tests/tests/widget/res/values/colors.xml
+++ b/tests/tests/widget/res/values/colors.xml
@@ -34,4 +34,6 @@
     <color name="calendarview_unfocusedmonthdate_new">#4070F0F0</color>
     <color name="calendarview_week_number_new">#9090FF</color>
     <color name="calendarview_week_separatorline_new">#AFAF00</color>
+
+    <color name="remoteviews_theme_color">#0f00ff00</color>
 </resources>
diff --git a/tests/tests/widget/res/values/dimens.xml b/tests/tests/widget/res/values/dimens.xml
index da31065..46f9eda 100644
--- a/tests/tests/widget/res/values/dimens.xml
+++ b/tests/tests/widget/res/values/dimens.xml
@@ -62,4 +62,5 @@
     <dimen name="listviewfixed_layout_height">300dp</dimen>
 
     <dimen name="remoteviews_float_dimen">4.5dp</dimen>
+    <dimen name="remoteviews_theme_dimen">7.5123dp</dimen>
 </resources>
diff --git a/tests/tests/widget/res/values/strings.xml b/tests/tests/widget/res/values/strings.xml
index 91084e9..0bb9976 100644
--- a/tests/tests/widget/res/values/strings.xml
+++ b/tests/tests/widget/res/values/strings.xml
@@ -215,4 +215,6 @@
     <string name="radio_choice_1">choice 1</string>
     <string name="radio_choice_2">choice 2</string>
     <string name="radio_choice_3">choice 3</string>
+
+    <string name="remoteviews_theme_string">Day</string>
 </resources>
diff --git a/tests/tests/widget/res/values/themes.xml b/tests/tests/widget/res/values/themes.xml
new file mode 100644
index 0000000..bbce31f
--- /dev/null
+++ b/tests/tests/widget/res/values/themes.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<resources>
+    <style name="Theme.DeviceDefault.DayNight.TestWidget"
+        parent="@android:style/Theme.DeviceDefault.DayNight">
+        <item name="themeDimension">5.5123dp</item>
+        <item name="themeDimension2">2.5dp</item>
+        <item name="themeDimension3">3.5dp</item>
+        <item name="themeDimension4">4.5dp</item>
+        <item name="themeColor">@color/remoteviews_theme_color</item>
+        <item name="themeString">@string/remoteviews_theme_string</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/tests/tests/widget/src/android/widget/cts/RemoteViewsTest.java b/tests/tests/widget/src/android/widget/cts/RemoteViewsTest.java
index 2c78dfe..61a939b 100644
--- a/tests/tests/widget/src/android/widget/cts/RemoteViewsTest.java
+++ b/tests/tests/widget/src/android/widget/cts/RemoteViewsTest.java
@@ -34,6 +34,7 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import android.app.Activity;
@@ -232,9 +233,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals("", textView.getText().toString());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setTextViewText(R.id.remoteView_absolute, "");
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -246,9 +246,8 @@
         assertEquals(mContext.getResources().getDisplayMetrics().scaledDensity * 18,
                 textView.getTextSize(), 0.001f);
 
-        mExpectedException.expect(Throwable.class);
         mRemoteViews.setTextViewTextSize(R.id.remoteView_absolute, TypedValue.COMPLEX_UNIT_SP, 20);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(Throwable.class);
     }
 
     @Test
@@ -272,13 +271,13 @@
         Icon iconDark = Icon.createWithResource(mContext, R.drawable.icon_blue);
         mRemoteViews.setIcon(R.id.remoteView_image, "setImageIcon", iconLight, iconDark);
 
-        applyNightModeThenTest(false, () -> {
+        applyNightModeThenReapplyAndTest(false, () -> {
             assertNotNull(image.getDrawable());
             BitmapDrawable dLight = (BitmapDrawable) mContext.getDrawable(R.drawable.icon_green);
             WidgetTestUtils.assertEquals(dLight.getBitmap(),
                     ((BitmapDrawable) image.getDrawable()).getBitmap());
         });
-        applyNightModeThenTest(true, () -> {
+        applyNightModeThenReapplyAndTest(true, () -> {
             assertNotNull(image.getDrawable());
             BitmapDrawable dDark = (BitmapDrawable) mContext.getDrawable(R.drawable.icon_blue);
             WidgetTestUtils.assertEquals(dDark.getBitmap(),
@@ -313,9 +312,8 @@
         WidgetTestUtils.assertEquals(d.getBitmap(),
                 ((BitmapDrawable) image.getDrawable()).getBitmap());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setImageViewResource(R.id.remoteView_absolute, R.drawable.testimage);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -373,9 +371,8 @@
         assertEquals(base1, chronometer.getBase());
         assertEquals("invalid", chronometer.getFormat());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setChronometer(R.id.remoteView_absolute, base1, "invalid", true);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -390,9 +387,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertFalse(chronometer.isCountDown());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setChronometerCountDown(R.id.remoteView_absolute, true);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -416,9 +412,8 @@
         assertEquals(50, progress.getProgress());
         assertFalse(progress.isIndeterminate());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setProgressBar(R.id.remoteView_relative, 60, 50, false);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -540,9 +535,8 @@
         assertNotNull(image.getDrawable());
         WidgetTestUtils.assertEquals(bitmap, ((BitmapDrawable) image.getDrawable()).getBitmap());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setImageViewBitmap(R.id.remoteView_absolute, bitmap);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -557,9 +551,8 @@
         assertNotNull(image.getDrawable());
         WidgetTestUtils.assertEquals(bitmap, ((BitmapDrawable) image.getDrawable()).getBitmap());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setBitmap(R.id.remoteView_absolute, "setImageBitmap", bitmap);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -572,9 +565,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertTrue(progress.isIndeterminate());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setBoolean(R.id.remoteView_relative, "setIndeterminate", false);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -591,9 +583,26 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals("", textView.getText().toString());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setCharSequence(R.id.remoteView_absolute, "setText", "");
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
+    public void testSetCharSequenceAttr() throws Throwable {
+        mRemoteViews.setCharSequenceAttr(R.id.remoteView_text, "setText", R.attr.themeString);
+        applyNightModeThenApplyAndTest(false, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals("Day", textView.getText().toString());
+        });
+
+        applyNightModeThenApplyAndTest(true, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals("Night", textView.getText().toString());
+        });
+
+        mRemoteViews.setCharSequenceAttr(R.id.remoteView_absolute, "setText",
+                R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -624,9 +633,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(format, chronometer.getFormat());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setString(R.id.remoteView_image, "setFormat", format);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -649,9 +657,8 @@
                     mContext.getResources(), R.raw.testimage, imageViewBitmap.getConfig());
             WidgetTestUtils.assertEquals(expectedBitmap, imageViewBitmap);
 
-            mExpectedException.expect(ActionException.class);
             mRemoteViews.setUri(R.id.remoteView_absolute, "setImageURI", uri);
-            mRemoteViews.reapply(mContext, mResult);
+            assertThrowsOnReapply(ActionException.class);
         } finally {
             // remove the test image file
             imagefile.delete();
@@ -670,9 +677,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertSame(ColorStateList.valueOf(R.color.testcolor2), textView.getTextColors());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setTextColor(R.id.remoteView_absolute, R.color.testcolor1);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -693,10 +699,9 @@
         TestUtils.verifyCompoundDrawables(textView, -1,  R.drawable.icon_red, R.drawable.icon_black,
                 R.drawable.icon_green);
 
-        mExpectedException.expect(Throwable.class);
         mRemoteViews.setTextViewCompoundDrawables(R.id.remoteView_absolute, 0,
                 R.drawable.start, R.drawable.failed, 0);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(Throwable.class);
     }
 
     @Test
@@ -727,10 +732,9 @@
         TestUtils.verifyCompoundDrawables(textViewRtl, R.drawable.icon_red, -1,
                 R.drawable.icon_black, R.drawable.icon_green);
 
-        mExpectedException.expect(Throwable.class);
         mRemoteViews.setTextViewCompoundDrawablesRelative(R.id.remoteView_absolute, 0,
                 R.drawable.start, R.drawable.failed, 0);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(Throwable.class);
     }
 
     @LargeTest
@@ -811,9 +815,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(base2, chronometer.getBase());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setLong(R.id.remoteView_absolute, "setBase", base1);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -825,9 +828,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(0.5f, linearLayout.getWeightSum(), 0.001f);
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setFloat(R.id.remoteView_absolute, "setWeightSum", 1.0f);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -840,9 +842,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(b, customView.getByteField());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setByte(R.id.remoteView_absolute, "setByteField", b);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -854,9 +855,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals('q', customView.getCharField());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setChar(R.id.remoteView_absolute, "setCharField", 'w');
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -868,9 +868,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(0.5, customView.getDoubleField(), 0.001f);
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setDouble(R.id.remoteView_absolute, "setDoubleField", 1.0);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -883,9 +882,8 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(s, customView.getShortField());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setShort(R.id.remoteView_absolute, "setShortField", s);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -902,9 +900,8 @@
         assertEquals("brexit", fromRemote.getString("STR", ""));
         assertEquals(2016, fromRemote.getInt("INT", 0));
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setBundle(R.id.remoteView_absolute, "setBundleField", bundle);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -922,9 +919,8 @@
         assertEquals("brexit", fromRemote.getStringExtra("STR"));
         assertEquals(2016, fromRemote.getIntExtra("INT", 0));
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setIntent(R.id.remoteView_absolute, "setIntentField", intent);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1143,6 +1139,83 @@
     }
 
     @Test
+    public void testSetViewLayoutMarginAttr() throws Throwable {
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text, MARGIN_LEFT, R.attr.themeDimension);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text, MARGIN_TOP, R.attr.themeDimension2);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text, MARGIN_RIGHT, R.attr.themeDimension3);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text, MARGIN_BOTTOM, R.attr.themeDimension4);
+
+        applyNightModeThenApplyAndTest(false, () -> {
+            View textView = mResult.findViewById(R.id.remoteView_text);
+            DisplayMetrics displayMetrics = textView.getResources().getDisplayMetrics();
+            assertMargins(
+                    textView,
+                    resolveDimenOffset(5.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(2.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(3.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(4.5f, COMPLEX_UNIT_DIP, displayMetrics));
+        });
+
+        applyNightModeThenApplyAndTest(true, () -> {
+            View textView = mResult.findViewById(R.id.remoteView_text);
+            DisplayMetrics displayMetrics = textView.getResources().getDisplayMetrics();
+            assertMargins(
+                    textView,
+                    resolveDimenOffset(7.5123f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(4.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(5.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                    resolveDimenOffset(6.5f, COMPLEX_UNIT_DIP, displayMetrics));
+        });
+
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text, MARGIN_LEFT, R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
+    public void testSetViewLayoutMarginAttr_layoutDirection() throws Throwable {
+        View textViewLtr = mResult.findViewById(R.id.remoteView_text_ltr);
+        DisplayMetrics displayMetrics = textViewLtr.getResources().getDisplayMetrics();
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_ltr, MARGIN_START, R.attr.themeDimension);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_ltr, MARGIN_TOP, R.attr.themeDimension2);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_ltr, MARGIN_END, R.attr.themeDimension3);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_ltr, MARGIN_BOTTOM, R.attr.themeDimension4);
+        mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
+        assertMargins(
+                textViewLtr,
+                resolveDimenOffset(5.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(2.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(3.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(4.5f, COMPLEX_UNIT_DIP, displayMetrics));
+
+        View textViewRtl = mResult.findViewById(R.id.remoteView_text_rtl);
+        displayMetrics = textViewRtl.getResources().getDisplayMetrics();
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_rtl, MARGIN_START, R.attr.themeDimension);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_rtl, MARGIN_TOP, R.attr.themeDimension2);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_rtl, MARGIN_END, R.attr.themeDimension3);
+        mRemoteViews.setViewLayoutMarginAttr(
+                R.id.remoteView_text_rtl, MARGIN_BOTTOM, R.attr.themeDimension4);
+        mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
+        assertMargins(
+                textViewRtl,
+                resolveDimenOffset(3.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(2.5f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(5.5123f, COMPLEX_UNIT_DIP, displayMetrics),
+                resolveDimenOffset(4.5f, COMPLEX_UNIT_DIP, displayMetrics));
+    }
+
+    @Test
     public void testSetViewLayoutWidth() throws Throwable {
         View textView = mResult.findViewById(R.id.remoteView_text);
         DisplayMetrics displayMetrics = textView.getResources().getDisplayMetrics();
@@ -1174,6 +1247,20 @@
     }
 
     @Test
+    public void testSetViewLayoutWidthAttr() throws Throwable {
+        View textView = mResult.findViewById(R.id.remoteView_text);
+        mRemoteViews.setViewLayoutWidthAttr(R.id.remoteView_text, R.attr.themeDimension);
+        mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
+        assertEquals(
+                resolveDimenSize(5.5123f, COMPLEX_UNIT_DIP,
+                        textView.getResources().getDisplayMetrics()),
+                textView.getLayoutParams().width);
+
+        mRemoteViews.setViewLayoutWidthAttr(R.id.remoteView_text, R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
     public void testSetViewLayoutHeight() throws Throwable {
         View textView = mResult.findViewById(R.id.remoteView_text);
         DisplayMetrics displayMetrics = textView.getResources().getDisplayMetrics();
@@ -1205,6 +1292,21 @@
     }
 
     @Test
+    public void testSetViewLayoutHeightAttr() throws Throwable {
+        View textView = mResult.findViewById(R.id.remoteView_text);
+        mRemoteViews.setViewLayoutHeightAttr(R.id.remoteView_text, R.attr.themeDimension);
+        mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
+        assertEquals(
+                resolveDimenSize(5.5123f, COMPLEX_UNIT_DIP,
+                        textView.getResources().getDisplayMetrics()),
+                textView.getLayoutParams().height);
+
+        mRemoteViews.setViewLayoutHeightAttr(
+                R.id.remoteView_text, R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
     public void testSetIntDimen_fromResources() throws Throwable {
         TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
         int expectedValue = mContext.getResources().getDimensionPixelSize(R.dimen.popup_row_height);
@@ -1214,10 +1316,9 @@
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         assertEquals(expectedValue, textView.getCompoundDrawablePadding());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setIntDimen(R.id.remoteView_text, "setCompoundDrawablePadding",
                 R.color.testcolor1);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1243,13 +1344,36 @@
         assertEquals(resolveDimenSize(12f, TypedValue.COMPLEX_UNIT_PX, displayMetrics),
                 textView.getCompoundDrawablePadding());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setIntDimen(R.id.remoteView_text, "setCompoundDrawablePadding",
                 12f, 123456);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
+    public void testSetIntDimenAttr() throws Throwable {
+        mRemoteViews.setIntDimenAttr(R.id.remoteView_text, "setCompoundDrawablePadding",
+                R.attr.themeDimension);
+        applyNightModeThenApplyAndTest(false, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals(resolveDimenSize(5.5123f, COMPLEX_UNIT_DIP,
+                    textView.getResources().getDisplayMetrics()),
+                    textView.getCompoundDrawablePadding());
+        });
+
+        applyNightModeThenApplyAndTest(true, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals(resolveDimenSize(7.5123f, COMPLEX_UNIT_DIP,
+                    textView.getResources().getDisplayMetrics()),
+                    textView.getCompoundDrawablePadding());
+        });
+
+        mRemoteViews.setIntDimenAttr(R.id.remoteView_text, "setCompoundDrawablePadding",
+                R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+
+    @Test
     public void testSetFloatDimen_fromResources() throws Throwable {
         TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
 
@@ -1259,9 +1383,8 @@
         assertEquals(textView.getResources().getDimension(R.dimen.remoteviews_float_dimen),
                 textView.getTextScaleX(), 1e-4f);
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setFloatDimen(R.id.remoteView_text, "setTextScaleX", R.color.testcolor1);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1287,10 +1410,30 @@
         assertEquals(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 3.5f, displayMetrics),
                 textView.getTextScaleX(), 1e-4f);
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setFloatDimen(R.id.remoteView_text, "setTextScaleX",
                 3.5f, 123456);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
+    public void testSetFloatDimenAttr() throws Throwable {
+        mRemoteViews.setFloatDimenAttr(R.id.remoteView_text, "setTextScaleX",
+                R.attr.themeDimension);
+        applyNightModeThenApplyAndTest(false, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals(TypedValue.applyDimension(COMPLEX_UNIT_DIP, 5.5123f,
+                    textView.getResources().getDisplayMetrics()), textView.getTextScaleX(), 1e-4f);
+        });
+
+        applyNightModeThenApplyAndTest(true, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertEquals(TypedValue.applyDimension(COMPLEX_UNIT_DIP, 7.5123f,
+                    textView.getResources().getDisplayMetrics()), textView.getTextScaleX(), 1e-4f);
+        });
+
+        mRemoteViews.setFloatDimenAttr(R.id.remoteView_text, "setTextScaleX",
+                R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1300,11 +1443,30 @@
 
         mRemoteViews.setColor(R.id.remoteView_text, "setTextColor", R.color.testcolor1);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
-        assertEquals(ColorStateList.valueOf(expectedValue), textView.getTextColors());
+        assertSameColorStateList(ColorStateList.valueOf(expectedValue), textView.getTextColors());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setColor(R.id.remoteView_text, "setTextColor", R.dimen.popup_row_height);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
+    public void testSetColorAttr() throws Throwable {
+        // Ensure the configuration is "light"
+        mRemoteViews.setColorAttr(R.id.remoteView_text, "setTextColor", R.attr.themeColor);
+
+        applyNightModeThenApplyAndTest(false, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertSameColorStateList(ColorStateList.valueOf(0x0f00ff00), textView.getTextColors());
+        });
+
+        // Switch to night mode
+        applyNightModeThenApplyAndTest(true, () -> {
+            TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
+            assertSameColorStateList(ColorStateList.valueOf(0x0f00ffff), textView.getTextColors());
+        });
+
+        mRemoteViews.setColorAttr(R.id.remoteView_text, "setTextColor", R.attr.themeDimension);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1316,7 +1478,7 @@
                 new int[] {Color.BLACK, Color.WHITE});
         mRemoteViews.setColorStateList(R.id.remoteView_progress, "setProgressTintList", tintList);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
-        assertEquals(tintList, progressBar.getProgressTintList());
+        assertSameColorStateList(tintList, progressBar.getProgressTintList());
 
         mRemoteViews.setColorStateList(R.id.remoteView_progress, "setProgressTintList", null);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
@@ -1325,12 +1487,32 @@
         TextView textView = mResult.findViewById(R.id.remoteView_text);
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setTextColor", tintList);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
-        assertEquals(tintList, textView.getTextColors());
+        assertSameColorStateList(tintList, textView.getTextColors());
 
         ColorStateList solid = ColorStateList.valueOf(Color.RED);
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setBackgroundTintList", solid);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
-        assertEquals(solid, textView.getBackgroundTintList());
+        assertSameColorStateList(solid, textView.getBackgroundTintList());
+    }
+
+    @Test
+    public void testSetColorStateListAttr() throws Throwable {
+        mRemoteViews.setColorStateListAttr(R.id.remoteView_progress, "setProgressTintList",
+                R.attr.themeColor);
+        applyNightModeThenApplyAndTest(false, () -> {
+            ProgressBar progressBar = mResult.findViewById(R.id.remoteView_progress);
+            assertSameColorStateList(ColorStateList.valueOf(0x0f00ff00),
+                    progressBar.getProgressTintList());
+        });
+
+        applyNightModeThenApplyAndTest(true, () -> {
+            ProgressBar progressBar = mResult.findViewById(R.id.remoteView_progress);
+            assertSameColorStateList(ColorStateList.valueOf(0x0f00ffff),
+                    progressBar.getProgressTintList());
+        });
+
+        mRemoteViews.setColorAttr(R.id.remoteView_text, "setTextColor", R.attr.themeDimension);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1338,12 +1520,16 @@
         TextView textView = (TextView) mResult.findViewById(R.id.remoteView_text);
         mRemoteViews.setColorInt(R.id.remoteView_text, "setTextColor", Color.BLACK, Color.WHITE);
 
-        applyNightModeThenTest(
+        applyNightModeThenReapplyAndTest(
                 false,
-                () -> assertEquals(ColorStateList.valueOf(Color.BLACK), textView.getTextColors()));
-        applyNightModeThenTest(
+                () -> assertSameColorStateList(ColorStateList.valueOf(Color.BLACK),
+                        textView.getTextColors())
+        );
+        applyNightModeThenReapplyAndTest(
                 true,
-                () -> assertEquals(ColorStateList.valueOf(Color.WHITE), textView.getTextColors()));
+                () -> assertSameColorStateList(ColorStateList.valueOf(Color.WHITE),
+                        textView.getTextColors())
+        );
     }
 
     @Test
@@ -1354,19 +1540,18 @@
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setTextColor",
                 R.color.testcolorstatelist1);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
-        assertEquals(expectedValue, textView.getTextColors());
+        assertSameColorStateList(expectedValue, textView.getTextColors());
 
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setTextColor",
                 R.color.testcolor1);
         mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
         expectedValue = mContext.getResources().getColorStateList(R.color.testcolor1,
                 mContext.getTheme());
-        assertEquals(expectedValue, textView.getTextColors());
+        assertSameColorStateList(expectedValue, textView.getTextColors());
 
-        mExpectedException.expect(ActionException.class);
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setTextColor",
                 R.dimen.popup_row_height);
-        mRemoteViews.reapply(mContext, mResult);
+        assertThrowsOnReapply(ActionException.class);
     }
 
     @Test
@@ -1376,8 +1561,10 @@
         ColorStateList darkMode = ColorStateList.valueOf(Color.WHITE);
         mRemoteViews.setColorStateList(R.id.remoteView_text, "setTextColor", lightMode, darkMode);
 
-        applyNightModeThenTest(false, () -> assertEquals(lightMode, textView.getTextColors()));
-        applyNightModeThenTest(true, () -> assertEquals(darkMode, textView.getTextColors()));
+        applyNightModeThenReapplyAndTest(false,
+                () -> assertSameColorStateList(lightMode, textView.getTextColors()));
+        applyNightModeThenReapplyAndTest(true,
+                () -> assertSameColorStateList(darkMode, textView.getTextColors()));
     }
 
     @Test
@@ -1424,6 +1611,38 @@
     }
 
     @Test
+    public void testSetViewOutlinePreferredRadiusAttr() throws Throwable {
+        mRemoteViews.setViewOutlinePreferredRadiusAttr(
+                R.id.remoteViews_good, R.attr.themeDimension);
+
+        applyNightModeThenApplyAndTest(false,
+                () -> {
+                    View root = mResult.findViewById(R.id.remoteViews_good);
+                    assertEquals(
+                            TypedValue.applyDimension(COMPLEX_UNIT_DIP, 5.5123f,
+                                    root.getResources().getDisplayMetrics()),
+                            ((RemoteViews.RemoteViewOutlineProvider)
+                                    root.getOutlineProvider()).getRadius(),
+                            0.1 /* delta */);
+                });
+
+        applyNightModeThenApplyAndTest(true,
+                () -> {
+                    View root = mResult.findViewById(R.id.remoteViews_good);
+                    assertEquals(
+                            TypedValue.applyDimension(COMPLEX_UNIT_DIP, 7.5123f,
+                                    root.getResources().getDisplayMetrics()),
+                            ((RemoteViews.RemoteViewOutlineProvider)
+                                    root.getOutlineProvider()).getRadius(),
+                            0.1 /* delta */);
+                });
+
+        mRemoteViews.setViewOutlinePreferredRadiusAttr(
+                R.id.remoteViews_good, R.attr.themeColor);
+        assertThrowsOnReapply(ActionException.class);
+    }
+
+    @Test
     public void testSetSwitchChecked() throws Throwable {
         Switch toggle = mResult.findViewById(R.id.remoteView_switch);
 
@@ -1526,8 +1745,23 @@
      * Sets the night mode, reapplies the remote views, runs test, and then restores the previous
      * night mode.
      */
-    private void applyNightModeThenTest(
+    private void applyNightModeThenReapplyAndTest(boolean nightMode, ThrowingRunnable test)
+            throws Throwable {
+        applyNightModeAndTest(nightMode, () -> mRemoteViews.reapply(mContext, mResult), test);
+    }
+
+    /**
+     * Sets the night mode, reapplies the remote views, runs test, and then restores the previous
+     * night mode.
+     */
+    private void applyNightModeThenApplyAndTest(
             boolean nightMode, ThrowingRunnable test) throws Throwable {
+        applyNightModeAndTest(nightMode,
+                () -> mResult = mRemoteViews.apply(mContext, null), test);
+    }
+
+    private void applyNightModeAndTest(
+            boolean nightMode, Runnable uiThreadSetup, ThrowingRunnable test) throws Throwable {
         final String nightModeText = runShellCommand("cmd uimode night");
         final String[] nightModeSplit = nightModeText.split(":");
         if (nightModeSplit.length != 2) {
@@ -1537,7 +1771,7 @@
 
         try {
             runShellCommand("cmd uimode night " + (nightMode ? "yes" : "no"));
-            mActivityRule.runOnUiThread(() -> mRemoteViews.reapply(mContext, mResult));
+            mActivityRule.runOnUiThread(uiThreadSetup);
             test.run();
         } finally {
             runShellCommand("cmd uimode night " + initialNightMode);
@@ -1576,4 +1810,12 @@
             mIntent = intent;
         }
     }
+
+    private void assertSameColorStateList(ColorStateList expected, ColorStateList actual) {
+        assertEquals(expected.toString(), actual.toString());
+    }
+
+    private <T extends Throwable>  void assertThrowsOnReapply(Class<T> klass) throws Throwable {
+        assertThrows(klass, () -> mRemoteViews.reapply(mContext, mResult));
+    }
 }
diff --git a/tests/tests/widget/src/android/widget/cts/ToastTest.java b/tests/tests/widget/src/android/widget/cts/ToastTest.java
index 5fbd5c0..08b9067 100644
--- a/tests/tests/widget/src/android/widget/cts/ToastTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ToastTest.java
@@ -932,10 +932,12 @@
     }
 
     @Test
-    public void testRateLimitingToasts() throws Throwable {
+    public void testRateLimitingToastsWhenInBackground() throws Throwable {
         // enable rate limiting to test it
         SystemUtil.runWithShellPermissionIdentity(() -> mNotificationManager
                 .setToastRateLimitingEnabled(true));
+        // move to background
+        mActivityRule.finishActivity();
 
         long totalTimeSpentMs = 0;
         int shownToastsNum = 0;
@@ -966,6 +968,18 @@
     }
 
     @Test
+    public void testDontRateLimitToastsWhenInForeground() throws Throwable {
+        // enable rate limiting to test it
+        SystemUtil.runWithShellPermissionIdentity(() -> mNotificationManager
+                .setToastRateLimitingEnabled(true));
+
+        List<TextToastInfo> toasts =
+                createTextToasts(TOAST_RATE_LIMITS[0] + 1, "Text", Toast.LENGTH_SHORT);
+        showToasts(toasts);
+        assertTextToastsShownAndHidden(toasts);
+    }
+
+    @Test
     public void testCustomToastPostedWhileInForeground_notShownWhenAppGoesToBackground()
             throws Throwable {
         List<CustomToastInfo> toasts = createCustomToasts(2, "Custom", Toast.LENGTH_SHORT);
@@ -984,6 +998,8 @@
         // enable rate limiting to test it
         SystemUtil.runWithShellPermissionIdentity(() -> mNotificationManager
                 .setToastRateLimitingEnabled(true));
+        // move to background
+        mActivityRule.finishActivity();
 
         int highestToastRateLimit = TOAST_RATE_LIMITS[TOAST_RATE_LIMITS.length - 1];
         List<TextToastInfo> toasts = createTextToasts(highestToastRateLimit + 1, "Text",
diff --git a/tests/tests/wifi/src/android/net/wifi/cts/CoexUnsafeChannelTest.java b/tests/tests/wifi/src/android/net/wifi/cts/CoexUnsafeChannelTest.java
index 8b1cec7..a955143 100644
--- a/tests/tests/wifi/src/android/net/wifi/cts/CoexUnsafeChannelTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/cts/CoexUnsafeChannelTest.java
@@ -16,6 +16,8 @@
 
 package android.net.wifi.cts;
 
+import static android.net.wifi.CoexUnsafeChannel.POWER_CAP_NONE;
+
 import android.net.wifi.CoexUnsafeChannel;
 import android.net.wifi.WifiScanner;
 import android.test.AndroidTestCase;
@@ -33,26 +35,17 @@
     public void testNoPowerCapConstructor() {
         CoexUnsafeChannel unsafeChannel = new CoexUnsafeChannel(TEST_BAND, TEST_CHANNEL);
 
-        assertEquals(unsafeChannel.getBand(), TEST_BAND);
-        assertEquals(unsafeChannel.getChannel(), TEST_CHANNEL);
-        assertFalse(unsafeChannel.isPowerCapAvailable());
+        assertEquals(TEST_BAND, unsafeChannel.getBand());
+        assertEquals(TEST_CHANNEL, unsafeChannel.getChannel());
+        assertEquals(POWER_CAP_NONE, unsafeChannel.getPowerCapDbm());
     }
 
     public void testPowerCapConstructor() {
         CoexUnsafeChannel unsafeChannel = new CoexUnsafeChannel(TEST_BAND, TEST_CHANNEL,
                 TEST_POWER_CAP_DBM);
 
-        assertEquals(unsafeChannel.getBand(), TEST_BAND);
-        assertEquals(unsafeChannel.getChannel(), TEST_CHANNEL);
-        assertTrue(unsafeChannel.isPowerCapAvailable());
-        assertEquals(unsafeChannel.getPowerCapDbm(), TEST_POWER_CAP_DBM);
-    }
-
-    public void testSetPowerCap() {
-        CoexUnsafeChannel unsafeChannel = new CoexUnsafeChannel(TEST_BAND, TEST_CHANNEL);
-
-        unsafeChannel.setPowerCapDbm(TEST_POWER_CAP_DBM);
-
-        assertEquals(unsafeChannel.getPowerCapDbm(), TEST_POWER_CAP_DBM);
+        assertEquals(TEST_BAND, unsafeChannel.getBand());
+        assertEquals(TEST_CHANNEL, unsafeChannel.getChannel());
+        assertEquals(TEST_POWER_CAP_DBM, unsafeChannel.getPowerCapDbm());
     }
 }
diff --git a/tests/tests/wifi/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java b/tests/tests/wifi/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java
index 3b979cc..c82d51c 100644
--- a/tests/tests/wifi/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java
@@ -299,7 +299,7 @@
                                 .isAtLeast(0);
                         assertThat(statsEntry.getRateStats().get(0).getRateMcsIdx()).isAtLeast(0);
                         assertThat(statsEntry.getRateStats().get(0).getBitRateInKbps())
-                                .isGreaterThan(0);
+                                .isAtLeast(0);
                         assertThat(statsEntry.getRateStats().get(0).getTxMpdu()).isAtLeast(0);
                         assertThat(statsEntry.getRateStats().get(0).getRxMpdu()).isAtLeast(0);
                         assertThat(statsEntry.getRateStats().get(0).getMpduLost()).isAtLeast(0);
diff --git a/tests/tests/wifi/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java b/tests/tests/wifi/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
index 218276c..ec7f740 100644
--- a/tests/tests/wifi/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
@@ -1026,7 +1026,7 @@
         }
         WifiEnterpriseConfig config = new WifiEnterpriseConfig();
 
-        assertEquals("", config.getDecoratedIdentityPrefix());
+        assertNull(config.getDecoratedIdentityPrefix());
         config.setDecoratedIdentityPrefix(TEST_DECORATED_IDENTITY_PREFIX);
         assertEquals(TEST_DECORATED_IDENTITY_PREFIX, config.getDecoratedIdentityPrefix());
     }
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 3ca5d3c..2987d0f 100644
--- a/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/cts/WifiManagerTest.java
@@ -29,6 +29,7 @@
 
 import static org.junit.Assert.assertNotEquals;
 
+import android.annotation.NonNull;
 import android.app.UiAutomation;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -1118,8 +1119,8 @@
     }
 
     /**
-     * Verify that {@link WifiManager#addetworkPrivileged} throws a SecurityException when called
-     * by a normal app.
+     * Verify that {@link WifiManager#addNetworkPrivileged(WifiConfiguration)} throws a
+     * SecurityException when called by a normal app.
      */
     public void testAddNetworkPrivilegedNotAllowedForNormalApps() {
         if (!WifiFeature.isWifiSupported(getContext())) {
@@ -1140,7 +1141,8 @@
     }
 
     /**
-     * Verify {@link WifiManager#addetworkPrivileged} throws an exception when null is the input.
+     * Verify {@link WifiManager#addNetworkPrivileged(WifiConfiguration)} throws an exception when
+     * null is the input.
      */
     public void testAddNetworkPrivilegedBadInput() {
         if (!WifiFeature.isWifiSupported(getContext())) {
@@ -1163,8 +1165,8 @@
     }
 
     /**
-     * Verify {@link WifiManager#addetworkPrivileged} returns the proper failure status code
-     * when adding an enterprise config with mandatory fields not filled in.
+     * Verify {@link WifiManager#addNetworkPrivileged(WifiConfiguration)} returns the proper
+     * failure status code when adding an enterprise config with mandatory fields not filled in.
      */
     public void testAddNetworkPrivilegedFailureBadEnterpriseConfig() {
         if (!WifiFeature.isWifiSupported(getContext())) {
@@ -1193,8 +1195,8 @@
     }
 
     /**
-     * Verify {@link WifiManager#addetworkPrivileged} works properly when the calling app has
-     * permissions.
+     * Verify {@link WifiManager#addNetworkPrivileged(WifiConfiguration)} works properly when the
+     * calling app has permissions.
      */
     public void testAddNetworkPrivilegedSuccess() {
         if (!WifiFeature.isWifiSupported(getContext())) {
@@ -2962,6 +2964,28 @@
             assertFalse(mWifiManager.isVerboseLoggingEnabled());
             assertEquals(WifiManager.VERBOSE_LOGGING_LEVEL_DISABLED,
                     mWifiManager.getVerboseLoggingLevel());
+        } finally {
+            if (currState != null) mWifiManager.setVerboseLoggingEnabled(currState);
+            uiAutomation.dropShellPermissionIdentity();
+        }
+    }
+
+    /**
+     * Test {@link WifiManager#setVerboseLoggingLevel(int)} for show key mode.
+     * TODO(b/167575586): Wait for S SDK finalization to determine the final minSdkVersion.
+     */
+    @SdkSuppress(minSdkVersion = 31, codeName = "S")
+    public void testSetVerboseLoggingShowKeyModeNonUserBuild() throws Exception {
+        if (Build.TYPE.equals("user")) return;
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        Boolean currState = null;
+        try {
+            uiAutomation.adoptShellPermissionIdentity();
+            currState = mWifiManager.isVerboseLoggingEnabled();
 
             mWifiManager.setVerboseLoggingLevel(WifiManager.VERBOSE_LOGGING_LEVEL_ENABLED_SHOW_KEY);
             assertTrue(mWifiManager.isVerboseLoggingEnabled());
@@ -2974,6 +2998,36 @@
     }
 
     /**
+     * Test {@link WifiManager#setVerboseLoggingLevel(int)} for show key mode.
+     * TODO(b/167575586): Wait for S SDK finalization to determine the final minSdkVersion.
+     */
+    @SdkSuppress(minSdkVersion = 31, codeName = "S")
+    public void testSetVerboseLoggingShowKeyModeUserBuild() throws Exception {
+        if (!Build.TYPE.equals("user")) return;
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        Boolean currState = null;
+        try {
+            uiAutomation.adoptShellPermissionIdentity();
+            currState = mWifiManager.isVerboseLoggingEnabled();
+
+            mWifiManager.setVerboseLoggingLevel(WifiManager.VERBOSE_LOGGING_LEVEL_ENABLED_SHOW_KEY);
+            assertTrue(mWifiManager.isVerboseLoggingEnabled());
+            assertEquals(WifiManager.VERBOSE_LOGGING_LEVEL_ENABLED_SHOW_KEY,
+                    mWifiManager.getVerboseLoggingLevel());
+            fail("Verbosing logging show key mode should not be allowed for user build.");
+        } catch (SecurityException e) {
+            // expected
+        } finally {
+            if (currState != null) mWifiManager.setVerboseLoggingEnabled(currState);
+            uiAutomation.dropShellPermissionIdentity();
+        }
+    }
+
+    /**
      * Tests {@link WifiManager#factoryReset()} cannot be invoked from a non-privileged app.
      *
      * Note: This intentionally does not test the full reset functionality because it causes
@@ -3894,14 +3948,19 @@
     public class TestCoexCallback extends WifiManager.CoexCallback {
         private Object mCoexLock;
         private int mOnCoexUnsafeChannelChangedCount;
+        private List<CoexUnsafeChannel> mCoexUnsafeChannels;
+        private int mCoexRestrictions;
 
         TestCoexCallback(Object lock) {
             mCoexLock = lock;
         }
 
         @Override
-        public void onCoexUnsafeChannelsChanged() {
+        public void onCoexUnsafeChannelsChanged(
+                    @NonNull List<CoexUnsafeChannel> unsafeChannels, int restrictions) {
             synchronized (mCoexLock) {
+                mCoexUnsafeChannels = unsafeChannels;
+                mCoexRestrictions = restrictions;
                 mOnCoexUnsafeChannelChangedCount++;
                 mCoexLock.notify();
             }
@@ -3912,6 +3971,14 @@
                 return mOnCoexUnsafeChannelChangedCount;
             }
         }
+
+        public List<CoexUnsafeChannel> getCoexUnsafeChannels() {
+            return mCoexUnsafeChannels;
+        }
+
+        public int getCoexRestrictions() {
+            return mCoexRestrictions;
+        }
     }
 
     /**
@@ -3926,17 +3993,11 @@
         }
 
         try {
-            mWifiManager.setCoexUnsafeChannels(Collections.emptySet(), 0);
+            mWifiManager.setCoexUnsafeChannels(Collections.emptyList(), 0);
             fail("setCoexUnsafeChannels should not succeed - privileged call");
         } catch (SecurityException e) {
             // expected
         }
-        try {
-            mWifiManager.getCoexUnsafeChannels();
-            fail("getCoexUnsafeChannels should not succeed - privileged call");
-        } catch (SecurityException e) {
-            // expected
-        }
         final TestCoexCallback callback = new TestCoexCallback(mLock);
         try {
             mWifiManager.registerCoexCallback(mExecutor, callback);
@@ -3967,45 +4028,40 @@
         // These below API's only work with privileged permissions (obtained via shell identity
         // for test)
         UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
-        Set<CoexUnsafeChannel> prevUnsafeChannels = null;
+        List<CoexUnsafeChannel> prevUnsafeChannels = null;
         int prevRestrictions = -1;
         try {
             uiAutomation.adoptShellPermissionIdentity();
-            // Save the current state to reset after the test.
-            prevUnsafeChannels = mWifiManager.getCoexUnsafeChannels();
-            prevRestrictions = mWifiManager.getCoexRestrictions();
-
-            // Register callback
             final TestCoexCallback callback = new TestCoexCallback(mLock);
-            mWifiManager.registerCoexCallback(mExecutor, callback);
-            Set<CoexUnsafeChannel> unsafeChannels = new HashSet<>();
-            unsafeChannels.add(new CoexUnsafeChannel(WIFI_BAND_24_GHZ, 6));
-            final int restrictions = COEX_RESTRICTION_WIFI_DIRECT | COEX_RESTRICTION_SOFTAP
-                    | COEX_RESTRICTION_WIFI_AWARE;
-
+            final List<CoexUnsafeChannel> testUnsafeChannels = new ArrayList<>();
+            testUnsafeChannels.add(new CoexUnsafeChannel(WIFI_BAND_24_GHZ, 6));
+            final int testRestrictions = COEX_RESTRICTION_WIFI_DIRECT
+                    | COEX_RESTRICTION_SOFTAP | COEX_RESTRICTION_WIFI_AWARE;
             synchronized (mLock) {
                 try {
-                    mWifiManager.setCoexUnsafeChannels(unsafeChannels, restrictions);
-                    // Callback should be called if the default algorithm is disabled.
+                    mWifiManager.registerCoexCallback(mExecutor, callback);
+                    // Callback should be called after registering
                     mLock.wait(TEST_WAIT_DURATION_MS);
+                    assertEquals(1, callback.getOnCoexUnsafeChannelChangedCount());
+                    // Store the previous coex channels and set new coex channels
+                    prevUnsafeChannels = callback.getCoexUnsafeChannels();
+                    prevRestrictions = callback.getCoexRestrictions();
+                    mWifiManager.setCoexUnsafeChannels(testUnsafeChannels, testRestrictions);
+                    mLock.wait(TEST_WAIT_DURATION_MS);
+                    // Unregister callback and try setting again
                     mWifiManager.unregisterCoexCallback(callback);
-                    mWifiManager.setCoexUnsafeChannels(unsafeChannels, restrictions);
+                    mWifiManager.setCoexUnsafeChannels(testUnsafeChannels, testRestrictions);
                     // Callback should not be called here since it was unregistered.
                     mLock.wait(TEST_WAIT_DURATION_MS);
                 } catch (InterruptedException e) {
                     fail("Thread interrupted unexpectedly while waiting on mLock");
                 }
             }
-
-            if (callback.getOnCoexUnsafeChannelChangedCount() == 0) {
-                // Default algorithm enabled, setter should have done nothing
-                assertEquals(prevUnsafeChannels, mWifiManager.getCoexUnsafeChannels());
-                assertEquals(prevRestrictions, mWifiManager.getCoexRestrictions());
-            } else if (callback.getOnCoexUnsafeChannelChangedCount() == 1) {
+            if (callback.getOnCoexUnsafeChannelChangedCount() == 2) {
                 // Default algorithm disabled, setter should set the getter values.
-                assertEquals(unsafeChannels, mWifiManager.getCoexUnsafeChannels());
-                assertEquals(restrictions, mWifiManager.getCoexRestrictions());
-            } else {
+                assertEquals(testUnsafeChannels, callback.getCoexUnsafeChannels());
+                assertEquals(testRestrictions, callback.getCoexRestrictions());
+            } else if (callback.getOnCoexUnsafeChannelChangedCount() != 1) {
                 fail("Coex callback called " + callback.mOnCoexUnsafeChannelChangedCount
                         + " times. Expected 0 or 1 calls." );
             }
diff --git a/tests/tests/wifi/src/android/net/wifi/nl80211/cts/WifiNl80211ManagerTest.java b/tests/tests/wifi/src/android/net/wifi/nl80211/cts/WifiNl80211ManagerTest.java
index db08bee..b182fb6 100644
--- a/tests/tests/wifi/src/android/net/wifi/nl80211/cts/WifiNl80211ManagerTest.java
+++ b/tests/tests/wifi/src/android/net/wifi/nl80211/cts/WifiNl80211ManagerTest.java
@@ -70,7 +70,7 @@
     }
 
     private class TestCountryCodeChangeListener implements
-            WifiNl80211Manager.CountryCodeChangeListener {
+            WifiNl80211Manager.CountryCodeChangedListener {
         private String mCurrentCountryCode;
 
         public String getCurrentCountryCode() {
@@ -78,7 +78,7 @@
         }
 
         @Override
-        public void onChanged(String country) {
+        public void onCountryCodeChanged(String country) {
             mCurrentCountryCode = country;
         }
     }
@@ -153,8 +153,8 @@
         // Since current cts don't have sufficient permission to call WifiNl80211Manager API.
         // Assert register fail because the CTS don't have sufficient permission to call
         // WifiNl80211Manager API which are guarded by selinux.
-        assertFalse(manager.registerCountryCodeChangeListener(executor,
+        assertFalse(manager.registerCountryCodeChangedListener(executor,
                 testCountryCodeChangeListener));
-        manager.unregisterCountryCodeChangeListener(testCountryCodeChangeListener);
+        manager.unregisterCountryCodeChangedListener(testCountryCodeChangeListener);
     }
 }
diff --git a/tests/translation/src/android/translation/cts/Helper.java b/tests/translation/src/android/translation/cts/Helper.java
index a8b6b49..8a0871e 100644
--- a/tests/translation/src/android/translation/cts/Helper.java
+++ b/tests/translation/src/android/translation/cts/Helper.java
@@ -58,8 +58,7 @@
     public static void setTemporaryTranslationService(String service) {
         Log.d(TAG, "Setting translation service to " + service);
         final int userId = UserHandle.myUserId();
-        //TODO(b/181179744): restore to translation service before S release.
-        runShellCommand("cmd transformer set temporary-service %d %s 12000", userId, service);
+        runShellCommand("cmd translation set temporary-service %d %s 12000", userId, service);
     }
 
     /**
@@ -68,8 +67,7 @@
     public static void resetTemporaryTranslationService() {
         final int userId = UserHandle.myUserId();
         Log.d(TAG, "Resetting back user " + userId + " to default translation service");
-        //TODO(b/181179744): restore to translation service before S release.
-        runShellCommand("cmd transformer set temporary-service %d", userId);
+        runShellCommand("cmd translation set temporary-service %d", userId);
     }
 
     /**
diff --git a/tests/translation/src/android/translation/cts/TranslationManagerTest.java b/tests/translation/src/android/translation/cts/TranslationManagerTest.java
index ebfea89..597d124 100644
--- a/tests/translation/src/android/translation/cts/TranslationManagerTest.java
+++ b/tests/translation/src/android/translation/cts/TranslationManagerTest.java
@@ -24,6 +24,7 @@
 import android.app.Instrumentation;
 import android.app.PendingIntent;
 import android.content.pm.PackageManager;
+import android.os.CancellationSignal;
 import android.platform.test.annotations.AppModeFull;
 import android.util.ArraySet;
 import android.util.Log;
@@ -43,7 +44,6 @@
 
 import com.android.compatibility.common.util.ActivitiesWatcher;
 import com.android.compatibility.common.util.ActivitiesWatcher.ActivityWatcher;
-import com.android.compatibility.common.util.RequiredFeatureRule;
 import com.android.compatibility.common.util.RequiredServiceRule;
 
 import org.junit.After;
@@ -73,10 +73,6 @@
 public class TranslationManagerTest {
 
     @Rule
-    public final RequiredFeatureRule mFeatureRule = new RequiredFeatureRule(
-            PackageManager.FEATURE_TRANSLATION);
-
-    @Rule
     public final RequiredServiceRule mServiceRule = new RequiredServiceRule(
             android.content.Context.TRANSLATION_MANAGER_SERVICE);
 
@@ -152,7 +148,7 @@
 
         translator.translate(new TranslationRequest.Builder()
                 .addTranslationRequestValue(TranslationRequestValue.forText("hello world"))
-                .build(), (r) -> r.run(), callback);
+                .build(), new CancellationSignal(), (r) -> r.run(), callback);
 
         sTranslationReplier.getNextTranslationRequest();
 
@@ -186,6 +182,69 @@
     }
 
     @Test
+    public void testTranslationCancelled() throws Exception{
+        enableCtsTranslationService();
+
+        final TranslationManager manager = sInstrumentation.getContext().getSystemService(
+                TranslationManager.class);
+
+        sTranslationReplier.addResponse(
+                new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
+                        .setTranslationResponseValue(0, new TranslationResponseValue
+                                .Builder(TranslationResponseValue.STATUS_SUCCESS)
+                                .setText("success")
+                                .build())
+                        .build());
+
+        final CountDownLatch translationLatch = new CountDownLatch(1);
+        final AtomicReference<TranslationResponse> responseRef = new AtomicReference<>();
+
+        final TranslationContext translationContext = new TranslationContext.Builder(
+                new TranslationSpec(Locale.ENGLISH.getLanguage(),
+                        TranslationSpec.DATA_FORMAT_TEXT),
+                new TranslationSpec(Locale.FRENCH.getLanguage(),
+                        TranslationSpec.DATA_FORMAT_TEXT))
+                .build();
+        final Translator translator = manager.createOnDeviceTranslator(translationContext);
+
+        try {
+            mServiceWatcher.waitOnConnected();
+        } catch (InterruptedException e) {
+            Log.w(TAG, "Exception waiting for onConnected");
+        }
+
+        assertThat(translator.isDestroyed()).isFalse();
+
+        final Consumer<TranslationResponse> callback = new Consumer<TranslationResponse>() {
+            @Override
+            public void accept(TranslationResponse translationResponse) {
+                responseRef.set(translationResponse);
+                translationLatch.countDown();
+            }
+        };
+
+        final CancellationSignal cancellationSignal = new CancellationSignal();
+
+        translator.translate(new TranslationRequest.Builder()
+                .addTranslationRequestValue(TranslationRequestValue.forText("hello world"))
+                .build(), cancellationSignal, (r) -> r.run(), callback);
+
+        // TODO: implement with cancellation signal listener
+        // cancel translation request
+        cancellationSignal.cancel();
+
+        sTranslationReplier.assertNoUnhandledTranslationRequests();
+
+        translator.destroy();
+        assertThat(translator.isDestroyed()).isTrue();
+        try {
+            mServiceWatcher.waitOnDisconnected();
+        } catch (InterruptedException e) {
+            Log.w(TAG, "Exception waiting for onDisconnected");
+        }
+    }
+
+    @Test
     public void testGetTranslationCapabilities() throws Exception{
         enableCtsTranslationService();
 
@@ -243,6 +302,8 @@
         watcher.waitFor(RESUMED);
     }
 
+    //TODO(183605243): add test for cancelling translation.
+
     protected void enableCtsTranslationService() {
         mServiceWatcher = CtsTranslationService.setServiceWatcher();
         Helper.setTemporaryTranslationService(CtsTranslationService.SERVICE_NAME);
diff --git a/tests/translation/src/android/translation/cts/UiTranslationManagerTest.java b/tests/translation/src/android/translation/cts/UiTranslationManagerTest.java
index e36f0ee..4338028 100644
--- a/tests/translation/src/android/translation/cts/UiTranslationManagerTest.java
+++ b/tests/translation/src/android/translation/cts/UiTranslationManagerTest.java
@@ -39,7 +39,6 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.os.SystemClock;
 import android.platform.test.annotations.AppModeFull;
 import android.provider.Settings;
@@ -67,7 +66,6 @@
 
 import com.android.compatibility.common.util.BlockingBroadcastReceiver;
 import com.android.compatibility.common.util.PollingCheck;
-import com.android.compatibility.common.util.RequiredFeatureRule;
 import com.android.compatibility.common.util.RequiredServiceRule;
 
 import org.junit.After;
@@ -112,9 +110,6 @@
     private ActivityScenario<SimpleActivity> mActivityScenario;
 
     @Rule
-    public final RequiredFeatureRule mFeatureRule =
-            new RequiredFeatureRule(PackageManager.FEATURE_TRANSLATION);
-    @Rule
     public final RequiredServiceRule mContentCaptureServiceRule =
             new RequiredServiceRule(CONTENT_CAPTURE_MANAGER_SERVICE);
 
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 1323093..0dab29e 100644
--- a/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml
+++ b/tools/cts-tradefed/res/config/cts-on-gsi-exclude.xml
@@ -59,4 +59,7 @@
     <!-- No Statsd -->
     <option name="compatibility:exclude-filter" value="CtsStatsdHostTestCases" />
 
+    <!-- b/183234756, b/80388296, b/110260628, b/159295445, b/159294948 CtsDevicePolicyManagerTestCases -->
+    <option name="compatibility:exclude-filter" value="CtsDevicePolicyManagerTestCases" />
+
 </configuration>