Merge "Update config to enforce subset of vp9 streams"
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
index 3d1fa10..36148cb 100755
--- a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
@@ -476,7 +476,9 @@
                     return result;
                 }
                 try {
-                    while (child.getActionList().contains(AccessibilityAction.ACTION_SCROLL_FORWARD)) {
+                    while (child.getActionList().contains(
+                            AccessibilityAction.ACTION_SCROLL_FORWARD) || child.getActionList()
+                            .contains(AccessibilityAction.ACTION_SCROLL_DOWN)) {
                         scrollForward(child);
                         result = getNodeTimed(() -> findByText(child, text), false);
                         if (result != null) {
diff --git a/hostsidetests/devicepolicy/Android.mk b/hostsidetests/devicepolicy/Android.mk
index f9a861c..6ff06d9 100644
--- a/hostsidetests/devicepolicy/Android.mk
+++ b/hostsidetests/devicepolicy/Android.mk
@@ -22,7 +22,17 @@
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_JAVA_LIBRARIES := tools-common-prebuilt cts-tradefed tradefed compatibility-host-util
+LOCAL_JAVA_LIBRARIES := \
+    tools-common-prebuilt \
+    cts-tradefed \
+    tradefed \
+    compatibility-host-util
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    truth-host-prebuilt
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    truth-host-prebuilt
 
 LOCAL_CTS_TEST_PACKAGE := android.adminhostside
 
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/res/xml/device_admin.xml b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/res/xml/device_admin.xml
index c43856e..ee3a044 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/res/xml/device_admin.xml
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/res/xml/device_admin.xml
@@ -18,5 +18,6 @@
          <limit-password />
          <disable-keyguard-features />
          <disable-camera />
+         <encrypted-storage />
     </uses-policies>
 </device-admin>
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/StorageEncryptionTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/StorageEncryptionTest.java
new file mode 100644
index 0000000..bf7b020
--- /dev/null
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/StorageEncryptionTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.cts.deviceandprofileowner;
+
+import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE;
+import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE;
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.ComponentName;
+
+/**
+ * Test {@link DevicePolicyManager#setStorageEncryption(ComponentName, boolean)} and
+ * {@link DevicePolicyManager#getStorageEncryption(ComponentName)}.
+ */
+public class StorageEncryptionTest extends BaseDeviceAdminTest {
+    private static final ComponentName ADMIN_RECEIVER_COMPONENT =
+        BaseDeviceAdminTest.ADMIN_RECEIVER_COMPONENT;
+    private static final ComponentName NON_ADMIN_RECEIVER_COMPONENT =
+        new ComponentName("com.android.cts.devicepolicy.singleadmin",
+            ".ProvisioningSingleAdminTest$AdminReceiver");
+
+    public void testSetStorageEncryption_enabled() {
+        assertThat(mDevicePolicyManager.setStorageEncryption(ADMIN_RECEIVER_COMPONENT, true))
+            .isEqualTo(ENCRYPTION_STATUS_ACTIVE);
+        assertThat(mDevicePolicyManager.getStorageEncryption(ADMIN_RECEIVER_COMPONENT)).isTrue();
+    }
+
+    public void testSetStorageEncryption_disabled() {
+        assertThat(mDevicePolicyManager.setStorageEncryption(ADMIN_RECEIVER_COMPONENT, false))
+            .isEqualTo(ENCRYPTION_STATUS_INACTIVE);
+        assertThat(mDevicePolicyManager.getStorageEncryption(ADMIN_RECEIVER_COMPONENT)).isFalse();
+    }
+}
diff --git a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SecurityLoggingTest.java b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SecurityLoggingTest.java
index d330ebc..5118b83 100644
--- a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SecurityLoggingTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SecurityLoggingTest.java
@@ -399,10 +399,10 @@
 
     private void verifyOsStartupEventPresent(List<SecurityEvent> events) {
         final SecurityEvent event = findEvent("os startup", events, TAG_OS_STARTUP);
-        // Verified boot state
-        assertOneOf(ImmutableSet.of("green", "yellow", "orange"), getString(event, 0));
-        // dm-verity mode
-        assertOneOf(ImmutableSet.of("enforcing", "eio", "disabled"), getString(event, 1));
+        // Verified boot state, empty if running on emulator
+        assertOneOf(ImmutableSet.of("", "green", "yellow", "orange"), getString(event, 0));
+        // dm-verity mode, empty if it is disabled
+        assertOneOf(ImmutableSet.of("", "enforcing", "eio", "disabled"), getString(event, 1));
     }
 
     private void assertOneOf(Set<String> allowed, String s) {
diff --git a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SystemUpdatePolicyTest.java b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SystemUpdatePolicyTest.java
index 1b9739a..cc7c29a 100644
--- a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SystemUpdatePolicyTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/SystemUpdatePolicyTest.java
@@ -31,6 +31,7 @@
 import android.provider.Settings;
 import android.provider.Settings.Global;
 
+import com.google.common.collect.ImmutableList;
 import java.time.LocalDate;
 import java.time.MonthDay;
 import java.util.ArrayList;
@@ -277,6 +278,26 @@
         }
     }
 
+    public void testWriteValidationFailedExceptionToParcel() {
+        final List<FreezePeriod> freezePeriods =
+            ImmutableList.of(new FreezePeriod(MonthDay.of(1, 10), MonthDay.of(1, 9)));
+        try {
+            SystemUpdatePolicy.createAutomaticInstallPolicy().setFreezePeriods(freezePeriods);
+            fail("ValidationFailedException not thrown for invalid freeze period.");
+        } catch (ValidationFailedException e) {
+            final Parcel parcel = Parcel.obtain();
+            e.writeToParcel(parcel, 0);
+            parcel.setDataPosition(0);
+
+            final ValidationFailedException copy =
+                ValidationFailedException.CREATOR.createFromParcel(parcel);
+
+            assertThat(copy).isNotNull();
+            assertThat(e.getErrorCode()).isEqualTo(copy.getErrorCode());
+            assertThat(e.getMessage()).isEqualTo(copy.getMessage());
+        }
+    }
+
     private void assertSystemUpdatePoliciesEqual(SystemUpdatePolicy policy,
             SystemUpdatePolicy copy) {
         assertThat(policy.getInstallWindowStart()).isEqualTo(copy.getInstallWindowStart());
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/Android.mk b/hostsidetests/devicepolicy/app/ManagedProfile/Android.mk
index 6a02fd1..1f990f4 100644
--- a/hostsidetests/devicepolicy/app/ManagedProfile/Android.mk
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/Android.mk
@@ -33,7 +33,8 @@
 	compatibility-device-util \
 	ub-uiautomator \
 	android-support-test \
-	guava
+	guava \
+	truth-prebuilt
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
     androidx.legacy_legacy-support-v4
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/res/xml/device_admin.xml b/hostsidetests/devicepolicy/app/ManagedProfile/res/xml/device_admin.xml
index 30538af..b42c966 100644
--- a/hostsidetests/devicepolicy/app/ManagedProfile/res/xml/device_admin.xml
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/res/xml/device_admin.xml
@@ -19,5 +19,7 @@
         <limit-password />
         <disable-keyguard-features/>
         <force-lock />
+        <expire-password />
+        <watch-login />
     </uses-policies>
 </device-admin>
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/DevicePolicyManagerParentSupportTest.java b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/DevicePolicyManagerParentSupportTest.java
new file mode 100644
index 0000000..9bd721f
--- /dev/null
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/DevicePolicyManagerParentSupportTest.java
@@ -0,0 +1,151 @@
+package com.android.cts.managedprofile;
+
+import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.os.PersistableBundle;
+
+/**
+ * Tests that the {@link DevicePolicyManager} APIs that should work for {@link
+ * DevicePolicyManager#getParentProfileInstance(ComponentName)} are supported.
+ *
+ * <p>Minimum restriction APIs are already tested by {@link PasswordMinimumRestrictionsTest}.
+ */
+public class DevicePolicyManagerParentSupportTest extends BaseManagedProfileTest {
+    private static final ComponentName FAKE_COMPONENT = new ComponentName(
+            FakeComponent.class.getPackage().getName(), FakeComponent.class.getName());
+
+    public void testSetAndGetPasswordQuality_onParent() {
+        mParentDevicePolicyManager.setPasswordQuality(
+                ADMIN_RECEIVER_COMPONENT, PASSWORD_QUALITY_NUMERIC_COMPLEX);
+        final int actualPasswordQuality =
+                mParentDevicePolicyManager.getPasswordQuality(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualPasswordQuality).isEqualTo(PASSWORD_QUALITY_NUMERIC_COMPLEX);
+    }
+
+    public void testSetAndGetPasswordHistoryLength_onParent() {
+        final int passwordHistoryLength = 5;
+
+        mParentDevicePolicyManager.setPasswordHistoryLength(
+                ADMIN_RECEIVER_COMPONENT, passwordHistoryLength);
+        final int actualPasswordHistoryLength =
+                mParentDevicePolicyManager.getPasswordHistoryLength(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualPasswordHistoryLength).isEqualTo(passwordHistoryLength);
+    }
+
+    public void testSetAndGetPasswordExpirationTimeout_onParent() {
+        final int passwordExpirationTimeout = 432000000;
+
+        mParentDevicePolicyManager.setPasswordExpirationTimeout(
+                ADMIN_RECEIVER_COMPONENT, passwordExpirationTimeout);
+        final long actualPasswordExpirationTimeout =
+                mParentDevicePolicyManager.getPasswordExpirationTimeout(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualPasswordExpirationTimeout).isEqualTo(passwordExpirationTimeout);
+    }
+
+    public void testGetPasswordExpiration_onParent() {
+        final long passwordExpirationTimeout = 432000000;
+        final long currentTime = System.currentTimeMillis();
+
+        mParentDevicePolicyManager.setPasswordExpirationTimeout(
+                ADMIN_RECEIVER_COMPONENT, passwordExpirationTimeout);
+        final long actualPasswordExpiration =
+                mParentDevicePolicyManager.getPasswordExpiration(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualPasswordExpiration).isAtLeast(passwordExpirationTimeout + currentTime);
+    }
+
+    public void testGetMaximumPasswordLength_onParent() {
+        final int actualMaximumPasswordLength =
+                mParentDevicePolicyManager.getPasswordMaximumLength(
+                        PASSWORD_QUALITY_NUMERIC_COMPLEX);
+        assertThat(actualMaximumPasswordLength).isGreaterThan(0);
+    }
+
+    public void testIsActivePasswordSufficient_onParent_isSupported() {
+        setPasswordQuality(PASSWORD_QUALITY_NUMERIC_COMPLEX);
+        assertThat(mParentDevicePolicyManager.isActivePasswordSufficient()).isFalse();
+    }
+
+    private void setPasswordQuality(int quality) {
+        mParentDevicePolicyManager.setPasswordQuality(ADMIN_RECEIVER_COMPONENT, quality);
+    }
+
+    public void testGetCurrentFailedPasswordAttempts_onParent_isSupported() {
+        assertThat(mParentDevicePolicyManager.getCurrentFailedPasswordAttempts()).isEqualTo(0);
+    }
+
+    public void testSetAndGetMaximumFailedPasswordsForWipe_onParent() {
+        final int maximumFailedPasswordsForWipe = 15;
+
+        mParentDevicePolicyManager.setMaximumFailedPasswordsForWipe(
+                ADMIN_RECEIVER_COMPONENT, maximumFailedPasswordsForWipe);
+        final int actualMaximumFailedPasswordsForWipe =
+                mParentDevicePolicyManager.getMaximumFailedPasswordsForWipe(
+                        ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualMaximumFailedPasswordsForWipe).isEqualTo(maximumFailedPasswordsForWipe);
+    }
+
+    public void testSetAndGetMaximumTimeToLock_onParent() {
+        final int maximumTimeToLock = 6000;
+
+        mParentDevicePolicyManager.setMaximumTimeToLock(
+                ADMIN_RECEIVER_COMPONENT, maximumTimeToLock);
+        final long actualMaximumTimeToLock =
+                mParentDevicePolicyManager.getMaximumTimeToLock(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualMaximumTimeToLock).isEqualTo(maximumTimeToLock);
+    }
+
+    public void testLockNow_onParent_isSupported() {
+        mParentDevicePolicyManager.lockNow();
+        // Will fail if a SecurityException is thrown.
+    }
+
+    public void testSetAndGetKeyguardDisabledFeatures_onParent() {
+        mParentDevicePolicyManager.setKeyguardDisabledFeatures(
+                ADMIN_RECEIVER_COMPONENT, KEYGUARD_DISABLE_TRUST_AGENTS);
+        long actualKeyguardDisabledFeatures =
+                mParentDevicePolicyManager.getKeyguardDisabledFeatures(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualKeyguardDisabledFeatures).isEqualTo(KEYGUARD_DISABLE_TRUST_AGENTS);
+    }
+
+    public void testSetAndGetTrustAgentConfiguration_onParent() {
+        final PersistableBundle configuration = new PersistableBundle();
+        final String key = "key";
+        final String value = "value";
+        configuration.putString(key, value);
+
+        mParentDevicePolicyManager.setTrustAgentConfiguration(
+                ADMIN_RECEIVER_COMPONENT, FAKE_COMPONENT, configuration);
+        final PersistableBundle actualConfiguration =
+                mParentDevicePolicyManager.getTrustAgentConfiguration(
+                        ADMIN_RECEIVER_COMPONENT, FAKE_COMPONENT).get(0);
+
+        assertThat(actualConfiguration.get(key)).isEqualTo(value);
+    }
+
+    public void testSetAndGetRequiredStrongAuthTimeout_onParent() {
+        final int requiredStrongAuthTimeout = 4600000;
+
+        mParentDevicePolicyManager.setRequiredStrongAuthTimeout(
+                ADMIN_RECEIVER_COMPONENT, requiredStrongAuthTimeout);
+        final long actualRequiredStrongAuthTimeout =
+                mParentDevicePolicyManager.getRequiredStrongAuthTimeout(ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualRequiredStrongAuthTimeout).isEqualTo(requiredStrongAuthTimeout);
+    }
+
+    public abstract class FakeComponent extends BroadcastReceiver {}
+}
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/NotificationListenerTest.java b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/NotificationListenerTest.java
index 6986c39..c89ef13 100644
--- a/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/NotificationListenerTest.java
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/NotificationListenerTest.java
@@ -15,13 +15,8 @@
  */
 package com.android.cts.managedprofile;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static com.google.common.truth.Truth.assertThat;
 
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.UiAutomation;
 import android.app.admin.DevicePolicyManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
@@ -32,15 +27,19 @@
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 import android.support.test.uiautomator.UiDevice;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import android.util.Log;
 
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
+import com.google.common.collect.ImmutableList;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -107,16 +106,16 @@
         toggleNotificationListener(true);
 
         sendProfileNotification();
-        assertTrue(mReceiver.waitForNotificationPostedReceived());
+        assertThat(mReceiver.waitForNotificationPostedReceived()).isTrue();
         cancelProfileNotification();
-        assertTrue(mReceiver.waitForNotificationRemovedReceived());
+        assertThat(mReceiver.waitForNotificationRemovedReceived()).isTrue();
 
         mReceiver.reset();
 
         sendPersonalNotification();
-        assertTrue(mReceiver.waitForNotificationPostedReceived());
+        assertThat(mReceiver.waitForNotificationPostedReceived()).isTrue();
         cancelPersonalNotification();
-        assertTrue(mReceiver.waitForNotificationRemovedReceived());
+        assertThat(mReceiver.waitForNotificationRemovedReceived()).isTrue();
     }
 
     @Test
@@ -125,17 +124,29 @@
 
         sendProfileNotification();
         // Don't see notification or cancellation from work profile.
-        assertFalse(mReceiver.waitForNotificationPostedReceived());
+        assertThat(mReceiver.waitForNotificationPostedReceived()).isFalse();
         cancelProfileNotification();
-        assertFalse(mReceiver.waitForNotificationRemovedReceived());
+        assertThat(mReceiver.waitForNotificationRemovedReceived()).isFalse();
 
         mReceiver.reset();
 
         // Do see the one from the personal side.
         sendPersonalNotification();
-        assertTrue(mReceiver.waitForNotificationPostedReceived());
+        assertThat(mReceiver.waitForNotificationPostedReceived()).isTrue();
         cancelPersonalNotification();
-        assertTrue(mReceiver.waitForNotificationRemovedReceived());
+        assertThat(mReceiver.waitForNotificationRemovedReceived()).isTrue();
+    }
+
+    @Test
+    public void testSetAndGetPermittedCrossProfileNotificationListeners() {
+        List<String> packageList = ImmutableList.of("package1", "package2");
+
+        mDpm.setPermittedCrossProfileNotificationListeners(
+                BaseManagedProfileTest.ADMIN_RECEIVER_COMPONENT, packageList);
+        List<String> actualPackageList = mDpm.getPermittedCrossProfileNotificationListeners(
+                BaseManagedProfileTest.ADMIN_RECEIVER_COMPONENT);
+
+        assertThat(actualPackageList).isEqualTo(packageList);
     }
 
     private void cancelProfileNotification() throws IOException {
@@ -170,7 +181,7 @@
                 + testListener);
         Log.i(TAG, "Toggled notification listener state" + testListener + " to state " + enable);
         if (enable) {
-            assertTrue(mReceiver.waitForListenerConnected());
+            assertThat(mReceiver.waitForListenerConnected()).isTrue();
         }
     }
 
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/PasswordMinimumRestrictionsTest.java b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/PasswordMinimumRestrictionsTest.java
index 4f94674..8b7d16b 100644
--- a/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/PasswordMinimumRestrictionsTest.java
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/src/com/android/cts/managedprofile/PasswordMinimumRestrictionsTest.java
@@ -25,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+/** Tests minimum password restriction APIs, including on parent profile instances. */
 public class PasswordMinimumRestrictionsTest extends BaseManagedProfileTest {
 
     private static final int TEST_PASSWORD_LENGTH = 5;
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAndProfileOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAndProfileOwnerTest.java
index c2f8ada..327494b 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAndProfileOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceAndProfileOwnerTest.java
@@ -930,6 +930,13 @@
         executeDeviceTestClass(".InputMethodsTest");
     }
 
+    public void testSetStorageEncryption() throws Exception {
+        if (!mHasFeature) {
+            return;
+        }
+        executeDeviceTestClass(".StorageEncryptionTest");
+    }
+
     /**
      * Executes a test class on device. Prior to running, turn off background data usage
      * restrictions, and restore the original restrictions after the test.
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ManagedProfileTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ManagedProfileTest.java
index c111b35..d1db198 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ManagedProfileTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/ManagedProfileTest.java
@@ -600,6 +600,18 @@
                 Collections.singletonMap(PARAM_PROFILE_ID, Integer.toString(mProfileUserId)));
     }
 
+    public void testCrossProfileNotificationListeners_setAndGet() throws Exception {
+        if (!mHasFeature) {
+            return;
+        }
+        installAppAsUser(NOTIFICATION_APK, mProfileUserId);
+        installAppAsUser(NOTIFICATION_APK, mParentUserId);
+
+        runDeviceTestsAsUser(MANAGED_PROFILE_PKG, ".NotificationListenerTest",
+                "testSetAndGetPermittedCrossProfileNotificationListeners", mProfileUserId,
+                Collections.singletonMap(PARAM_PROFILE_ID, Integer.toString(mProfileUserId)));
+    }
+
     public void testCrossProfileCopyPaste() throws Exception {
         if (!mHasFeature) {
             return;
@@ -838,6 +850,14 @@
                 mProfileUserId);
     }
 
+    public void testDevicePolicyManagerParentSupport() throws Exception {
+        if (!mHasFeature) {
+            return;
+        }
+        runDeviceTestsAsUser(
+                MANAGED_PROFILE_PKG, ".DevicePolicyManagerParentSupportTest", mProfileUserId);
+    }
+
     public void testBluetoothContactSharingDisabled() throws Exception {
         if (!mHasFeature) {
             return;
diff --git a/hostsidetests/inputmethodservice/hostside/src/android/inputmethodservice/cts/hostside/InputMethodServiceLifecycleTest.java b/hostsidetests/inputmethodservice/hostside/src/android/inputmethodservice/cts/hostside/InputMethodServiceLifecycleTest.java
index 19b18ea..d778c70 100644
--- a/hostsidetests/inputmethodservice/hostside/src/android/inputmethodservice/cts/hostside/InputMethodServiceLifecycleTest.java
+++ b/hostsidetests/inputmethodservice/hostside/src/android/inputmethodservice/cts/hostside/InputMethodServiceLifecycleTest.java
@@ -50,8 +50,9 @@
 @RunWith(DeviceJUnit4ClassRunner.class)
 public class InputMethodServiceLifecycleTest extends BaseHostJUnit4Test {
 
-    private static final long TIMEOUT = TimeUnit.MICROSECONDS.toMillis(20000);
-    private static final long POLLING_INTERVAL = TimeUnit.MICROSECONDS.toMillis(200);
+    private static final long WAIT_TIMEOUT = TimeUnit.SECONDS.toMillis(1);
+    private static final long PACKAGE_OP_TIMEOUT = TimeUnit.SECONDS.toMillis(7);
+    private static final long POLLING_INTERVAL = 100;
 
     @Before
     public void setUp() throws Exception {
@@ -83,7 +84,7 @@
         installPackage(apkFileName, options);
         pollingCheck(() ->
             shell(ShellCommandUtils.listPackage(packageName)).contains(packageName),
-            TIMEOUT,
+            PACKAGE_OP_TIMEOUT,
             packageName + " should be installed.");
     }
 
@@ -151,7 +152,7 @@
         assertTrue(runDeviceTestMethod(testCreateIme1));
 
         uninstallPackageSyncIfExists(Ime1Constants.PACKAGE);
-        assertImeNotSelectedInSecureSettings(Ime1Constants.IME_ID, TIMEOUT);
+        assertImeNotSelectedInSecureSettings(Ime1Constants.IME_ID, WAIT_TIMEOUT);
     }
 
     @AppModeFull
@@ -179,7 +180,7 @@
         assertTrue(runDeviceTestMethod(testCreateIme1));
 
         shell(ShellCommandUtils.disableIme(Ime1Constants.IME_ID));
-        assertImeNotSelectedInSecureSettings(Ime1Constants.IME_ID, TIMEOUT);
+        assertImeNotSelectedInSecureSettings(Ime1Constants.IME_ID, WAIT_TIMEOUT);
     }
 
     @AppModeFull
@@ -365,7 +366,7 @@
         if (isPackageInstalled(getDevice(), packageName)) {
             uninstallPackage(getDevice(), packageName);
             pollingCheck(()-> !isPackageInstalled(getDevice(), packageName),
-                TIMEOUT,
+                PACKAGE_OP_TIMEOUT,
                 packageName + " should be uninstalled.");
         }
     }
@@ -413,7 +414,7 @@
         for (String imeId : imeIds) {
             pollingCheck(() ->
                     shell(cmd).contains(imeId),
-                    TIMEOUT,
+                    PACKAGE_OP_TIMEOUT,
                     imeId + " should be " + (shouldBeEnabled? "enabled." : "available."));
         }
     }
diff --git a/hostsidetests/media/bitstreams/DynamicConfig.xml b/hostsidetests/media/bitstreams/DynamicConfig.xml
index c9ba580..5350e9e 100644
--- a/hostsidetests/media/bitstreams/DynamicConfig.xml
+++ b/hostsidetests/media/bitstreams/DynamicConfig.xml
@@ -111,13 +111,13 @@
     <value>mime=video/avc,size=327741,width=1280,height=720,frame-rate=50,profile=1,level=2048,bitrate=4084648,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_128x96p50f32_200kbps_level_2_bp.mp4">
-    <value>mime=video/avc,size=13018,width=128,height=96,frame-rate=50,profile=1,level=32,bitrate=150624,package=standard</value>
+    <value>mime=video/avc,size=13018,width=128,height=96,frame-rate=50,profile=1,level=32,bitrate=150624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_16x16p50f32_200kbps_level_1_bp.mp4">
     <value>mime=video/avc,size=5193,width=16,height=16,frame-rate=50,profile=1,level=1,bitrate=52824,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_176x144p50f32_200kbps_level_2_bp.mp4">
-    <value>mime=video/avc,size=13097,width=176,height=144,frame-rate=50,profile=1,level=32,bitrate=151624,package=standard</value>
+    <value>mime=video/avc,size=13097,width=176,height=144,frame-rate=50,profile=1,level=32,bitrate=151624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_1920x1080p50f32_8200kbps_level_4.2_bp.mp4">
     <value>mime=video/avc,size=814724,width=1920,height=1080,frame-rate=50,profile=1,level=8192,bitrate=10171848,package=standard</value>
@@ -126,19 +126,19 @@
     <value>mime=video/avc,size=824354,width=1920,height=1088,frame-rate=50,profile=1,level=16384,bitrate=10292296,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_352x288p50f32_400kbps_level_2.1_bp.mp4">
-    <value>mime=video/avc,size=28452,width=352,height=288,frame-rate=50,profile=1,level=64,bitrate=343472,package=standard</value>
+    <value>mime=video/avc,size=28452,width=352,height=288,frame-rate=50,profile=1,level=64,bitrate=343472,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_3840x2160p50f32_24000kbps_level_5.2_bp.mp4">
     <value>mime=video/avc,size=2978730,width=3840,height=2160,frame-rate=50,profile=1,level=65536,bitrate=37221944,package=full</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_640x480p50f32_1200kbps_level_3.1_bp.mp4">
-    <value>mime=video/avc,size=96734,width=640,height=480,frame-rate=50,profile=1,level=512,bitrate=1197000,package=standard</value>
+    <value>mime=video/avc,size=96734,width=640,height=480,frame-rate=50,profile=1,level=512,bitrate=1197000,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_64x64p50f32_200kbps_level_2_bp.mp4">
-    <value>mime=video/avc,size=11979,width=64,height=64,frame-rate=50,profile=1,level=32,bitrate=137632,package=standard</value>
+    <value>mime=video/avc,size=11979,width=64,height=64,frame-rate=50,profile=1,level=32,bitrate=137632,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_720x480p50f32_1300kbps_level_3_bp.mp4">
-    <value>mime=video/avc,size=105729,width=720,height=480,frame-rate=50,profile=1,level=256,bitrate=1309496,package=standard</value>
+    <value>mime=video/avc,size=105729,width=720,height=480,frame-rate=50,profile=1,level=256,bitrate=1309496,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/levels/crowd_720x576p50f32_1600kbps_level_3.1_bp.mp4">
     <value>mime=video/avc,size=132868,width=720,height=576,frame-rate=50,profile=1,level=512,bitrate=1648680,package=standard</value>
@@ -813,16 +813,16 @@
     <value>mime=video/avc,size=454069,width=1280,height=960,frame-rate=50,profile=1,level=2048,bitrate=5663744,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_128x128p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13123,width=128,height=128,frame-rate=50,profile=1,level=16,bitrate=151944,package=standard</value>
+    <value>mime=video/avc,size=13123,width=128,height=128,frame-rate=50,profile=1,level=16,bitrate=151944,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_128x192p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13547,width=128,height=192,frame-rate=50,profile=1,level=16,bitrate=157248,package=standard</value>
+    <value>mime=video/avc,size=13547,width=128,height=192,frame-rate=50,profile=1,level=16,bitrate=157248,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_128x72p50f32_200kbps_bp.mp4">
     <value>mime=video/avc,size=12585,width=128,height=72,frame-rate=50,profile=1,level=16,bitrate=145200,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_128x96p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13018,width=128,height=96,frame-rate=50,profile=1,level=16,bitrate=150624,package=standard</value>
+    <value>mime=video/avc,size=13018,width=128,height=96,frame-rate=50,profile=1,level=16,bitrate=150624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_1440x1080p50f32_6200kbps_bp.mp4">
     <value>mime=video/avc,size=591640,width=1440,height=1080,frame-rate=50,profile=1,level=8192,bitrate=7383360,package=standard</value>
@@ -840,25 +840,25 @@
     <value>mime=video/avc,size=518511,width=1440,height=960,frame-rate=50,profile=1,level=8192,bitrate=6469272,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_144x144p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13183,width=144,height=144,frame-rate=50,profile=1,level=16,bitrate=152696,package=standard</value>
+    <value>mime=video/avc,size=13183,width=144,height=144,frame-rate=50,profile=1,level=16,bitrate=152696,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_144x176p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13598,width=144,height=176,frame-rate=50,profile=1,level=16,bitrate=157880,package=standard</value>
+    <value>mime=video/avc,size=13598,width=144,height=176,frame-rate=50,profile=1,level=16,bitrate=157880,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_144x192p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13579,width=144,height=192,frame-rate=50,profile=1,level=16,bitrate=157648,package=standard</value>
+    <value>mime=video/avc,size=13579,width=144,height=192,frame-rate=50,profile=1,level=16,bitrate=157648,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_144x256p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13643,width=144,height=256,frame-rate=50,profile=1,level=16,bitrate=158432,package=standard</value>
+    <value>mime=video/avc,size=13643,width=144,height=256,frame-rate=50,profile=1,level=16,bitrate=158432,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_144x96p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13137,width=144,height=96,frame-rate=50,profile=1,level=16,bitrate=152112,package=standard</value>
+    <value>mime=video/avc,size=13137,width=144,height=96,frame-rate=50,profile=1,level=16,bitrate=152112,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_1536x2048p50f32_12500kbps_bp.mp4">
     <value>mime=video/avc,size=1273812,width=1536,height=2048,frame-rate=50,profile=1,level=32768,bitrate=15910520,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_160x240p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13683,width=160,height=240,frame-rate=50,profile=1,level=16,bitrate=158944,package=standard</value>
+    <value>mime=video/avc,size=13683,width=160,height=240,frame-rate=50,profile=1,level=16,bitrate=158944,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_16x1080p50f32_200kbps_bp.mp4">
     <value>mime=video/avc,size=13341,width=16,height=1080,frame-rate=50,profile=1,level=64,bitrate=154656,package=standard</value>
@@ -876,13 +876,13 @@
     <value>mime=video/avc,size=13311,width=16,height=720,frame-rate=50,profile=1,level=16,bitrate=154280,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_176x144p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13097,width=176,height=144,frame-rate=50,profile=1,level=16,bitrate=151624,package=standard</value>
+    <value>mime=video/avc,size=13097,width=176,height=144,frame-rate=50,profile=1,level=16,bitrate=151624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_176x176p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13645,width=176,height=176,frame-rate=50,profile=1,level=16,bitrate=158472,package=standard</value>
+    <value>mime=video/avc,size=13645,width=176,height=176,frame-rate=50,profile=1,level=16,bitrate=158472,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_176x96p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=12950,width=176,height=96,frame-rate=50,profile=1,level=16,bitrate=149768,package=standard</value>
+    <value>mime=video/avc,size=12950,width=176,height=96,frame-rate=50,profile=1,level=16,bitrate=149768,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_1920x1080p50f32_8200kbps_bp.mp4">
     <value>mime=video/avc,size=814719,width=1920,height=1080,frame-rate=50,profile=1,level=8192,bitrate=10171848,package=standard</value>
@@ -909,19 +909,19 @@
     <value>mime=video/avc,size=27567,width=1920,height=64,frame-rate=50,profile=1,level=512,bitrate=332472,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_192x128p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13034,width=192,height=128,frame-rate=50,profile=1,level=16,bitrate=150832,package=standard</value>
+    <value>mime=video/avc,size=13034,width=192,height=128,frame-rate=50,profile=1,level=16,bitrate=150832,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_192x144p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13134,width=192,height=144,frame-rate=50,profile=1,level=16,bitrate=152080,package=standard</value>
+    <value>mime=video/avc,size=13134,width=192,height=144,frame-rate=50,profile=1,level=16,bitrate=152080,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_192x192p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13553,width=192,height=192,frame-rate=50,profile=1,level=16,bitrate=157320,package=standard</value>
+    <value>mime=video/avc,size=13553,width=192,height=192,frame-rate=50,profile=1,level=16,bitrate=157320,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_192x256p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13572,width=192,height=256,frame-rate=50,profile=1,level=16,bitrate=157544,package=standard</value>
+    <value>mime=video/avc,size=13572,width=192,height=256,frame-rate=50,profile=1,level=16,bitrate=157544,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_192x288p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13479,width=192,height=288,frame-rate=50,profile=1,level=16,bitrate=156384,package=standard</value>
+    <value>mime=video/avc,size=13479,width=192,height=288,frame-rate=50,profile=1,level=16,bitrate=156384,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_2048x1152p50f32_9400kbps_bp.mp4">
     <value>mime=video/avc,size=911171,width=2048,height=1152,frame-rate=50,profile=1,level=16384,bitrate=11377512,package=standard</value>
@@ -942,13 +942,13 @@
     <value>mime=video/avc,size=2649479,width=2304,height=4096,frame-rate=50,profile=1,level=65536,bitrate=33106360,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_240x160p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13592,width=240,height=160,frame-rate=50,profile=1,level=16,bitrate=157808,package=standard</value>
+    <value>mime=video/avc,size=13592,width=240,height=160,frame-rate=50,profile=1,level=16,bitrate=157808,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_240x240p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13504,width=240,height=240,frame-rate=50,profile=1,level=16,bitrate=156712,package=standard</value>
+    <value>mime=video/avc,size=13504,width=240,height=240,frame-rate=50,profile=1,level=16,bitrate=156712,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_240x320p50f32_300kbps_bp.mp4">
-    <value>mime=video/avc,size=21313,width=240,height=320,frame-rate=50,profile=1,level=64,bitrate=254312,package=standard</value>
+    <value>mime=video/avc,size=21313,width=240,height=320,frame-rate=50,profile=1,level=64,bitrate=254312,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_240x360p50f32_300kbps_bp.mp4">
     <value>mime=video/avc,size=21460,width=240,height=360,frame-rate=50,profile=1,level=64,bitrate=256136,package=standard</value>
@@ -969,13 +969,13 @@
     <value>mime=video/avc,size=2658588,width=2560,height=3840,frame-rate=50,profile=1,level=65536,bitrate=33220232,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_256x144p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13556,width=256,height=144,frame-rate=50,profile=1,level=16,bitrate=157344,package=standard</value>
+    <value>mime=video/avc,size=13556,width=256,height=144,frame-rate=50,profile=1,level=16,bitrate=157344,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_256x192p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13510,width=256,height=192,frame-rate=50,profile=1,level=16,bitrate=156768,package=standard</value>
+    <value>mime=video/avc,size=13510,width=256,height=192,frame-rate=50,profile=1,level=16,bitrate=156768,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_256x256p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13449,width=256,height=256,frame-rate=50,profile=1,level=64,bitrate=156000,package=standard</value>
+    <value>mime=video/avc,size=13449,width=256,height=256,frame-rate=50,profile=1,level=64,bitrate=156000,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_264x352p50f32_300kbps_bp.mp4">
     <value>mime=video/avc,size=21344,width=264,height=352,frame-rate=50,profile=1,level=64,bitrate=254672,package=standard</value>
@@ -984,31 +984,31 @@
     <value>mime=video/avc,size=2716331,width=2880,height=3840,frame-rate=50,profile=1,level=65536,bitrate=33942024,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_288x192p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13354,width=288,height=192,frame-rate=50,profile=1,level=16,bitrate=154824,package=standard</value>
+    <value>mime=video/avc,size=13354,width=288,height=192,frame-rate=50,profile=1,level=16,bitrate=154824,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_288x216p50f32_200kbps_bp.mp4">
     <value>mime=video/avc,size=13576,width=288,height=216,frame-rate=50,profile=1,level=64,bitrate=157584,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_288x288p50f32_300kbps_bp.mp4">
-    <value>mime=video/avc,size=20762,width=288,height=288,frame-rate=50,profile=1,level=64,bitrate=247408,package=standard</value>
+    <value>mime=video/avc,size=20762,width=288,height=288,frame-rate=50,profile=1,level=64,bitrate=247408,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_288x352p50f32_400kbps_bp.mp4">
-    <value>mime=video/avc,size=28900,width=288,height=352,frame-rate=50,profile=1,level=64,bitrate=349136,package=standard</value>
+    <value>mime=video/avc,size=28900,width=288,height=352,frame-rate=50,profile=1,level=64,bitrate=349136,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_288x512p50f32_500kbps_bp.mp4">
-    <value>mime=video/avc,size=37103,width=288,height=512,frame-rate=50,profile=1,level=256,bitrate=451672,package=standard</value>
+    <value>mime=video/avc,size=37103,width=288,height=512,frame-rate=50,profile=1,level=256,bitrate=451672,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_3072x4096p50f32_24000kbps_bp.mp4">
     <value>mime=video/avc,size=2790761,width=3072,height=4096,frame-rate=50,profile=1,level=65536,bitrate=34872384,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_320x240p50f32_300kbps_bp.mp4">
-    <value>mime=video/avc,size=20979,width=320,height=240,frame-rate=50,profile=1,level=64,bitrate=250136,package=standard</value>
+    <value>mime=video/avc,size=20979,width=320,height=240,frame-rate=50,profile=1,level=64,bitrate=250136,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_320x320p50f32_400kbps_bp.mp4">
-    <value>mime=video/avc,size=29141,width=320,height=320,frame-rate=50,profile=1,level=128,bitrate=352144,package=standard</value>
+    <value>mime=video/avc,size=29141,width=320,height=320,frame-rate=50,profile=1,level=128,bitrate=352144,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_320x480p50f32_600kbps_bp.mp4">
-    <value>mime=video/avc,size=44862,width=320,height=480,frame-rate=50,profile=1,level=256,bitrate=548656,package=standard</value>
+    <value>mime=video/avc,size=44862,width=320,height=480,frame-rate=50,profile=1,level=256,bitrate=548656,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_32x24p50f32_200kbps_bp.mp4">
     <value>mime=video/avc,size=8809,width=32,height=24,frame-rate=50,profile=1,level=16,bitrate=98024,package=standard</value>
@@ -1023,10 +1023,10 @@
     <value>mime=video/avc,size=20950,width=352,height=264,frame-rate=50,profile=1,level=64,bitrate=249744,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_352x288p50f32_400kbps_bp.mp4">
-    <value>mime=video/avc,size=28447,width=352,height=288,frame-rate=50,profile=1,level=64,bitrate=343472,package=standard</value>
+    <value>mime=video/avc,size=28447,width=352,height=288,frame-rate=50,profile=1,level=64,bitrate=343472,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_352x352p50f32_400kbps_bp.mp4">
-    <value>mime=video/avc,size=29170,width=352,height=352,frame-rate=50,profile=1,level=256,bitrate=352512,package=standard</value>
+    <value>mime=video/avc,size=29170,width=352,height=352,frame-rate=50,profile=1,level=256,bitrate=352512,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_356x638p50f32_900kbps_bp.mp4">
     <value>mime=video/avc,size=70522,width=356,height=638,frame-rate=50,profile=1,level=512,bitrate=869408,package=standard</value>
@@ -1071,7 +1071,7 @@
     <value>mime=video/avc,size=2886460,width=3840,height=3840,frame-rate=50,profile=1,level=65536,bitrate=36068632,package=full</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_384x512p50f32_700kbps_bp.mp4">
-    <value>mime=video/avc,size=53478,width=384,height=512,frame-rate=50,profile=1,level=256,bitrate=656360,package=standard</value>
+    <value>mime=video/avc,size=53478,width=384,height=512,frame-rate=50,profile=1,level=256,bitrate=656360,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_4096x2304p50f32_24000kbps_bp.mp4">
     <value>mime=video/avc,size=2580560,width=4096,height=2304,frame-rate=50,profile=1,level=65536,bitrate=32244872,package=standard</value>
@@ -1083,19 +1083,19 @@
     <value>mime=video/avc,size=62178,width=472,height=472,frame-rate=50,profile=1,level=512,bitrate=765112,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x320p50f32_600kbps_bp.mp4">
-    <value>mime=video/avc,size=45288,width=480,height=320,frame-rate=50,profile=1,level=256,bitrate=553984,package=standard</value>
+    <value>mime=video/avc,size=45288,width=480,height=320,frame-rate=50,profile=1,level=256,bitrate=553984,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x360p50f32_600kbps_bp.mp4">
     <value>mime=video/avc,size=45502,width=480,height=360,frame-rate=50,profile=1,level=256,bitrate=556648,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x480p50f32_900kbps_bp.mp4">
-    <value>mime=video/avc,size=70488,width=480,height=480,frame-rate=50,profile=1,level=512,bitrate=868984,package=standard</value>
+    <value>mime=video/avc,size=70488,width=480,height=480,frame-rate=50,profile=1,level=512,bitrate=868984,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x640p50f32_1200kbps_bp.mp4">
-    <value>mime=video/avc,size=96257,width=480,height=640,frame-rate=50,profile=1,level=512,bitrate=1191096,package=standard</value>
+    <value>mime=video/avc,size=96257,width=480,height=640,frame-rate=50,profile=1,level=512,bitrate=1191096,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x720p50f32_1300kbps_bp.mp4">
-    <value>mime=video/avc,size=105435,width=480,height=720,frame-rate=50,profile=1,level=512,bitrate=1305824,package=standard</value>
+    <value>mime=video/avc,size=105435,width=480,height=720,frame-rate=50,profile=1,level=512,bitrate=1305824,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_480x848p50f32_1600kbps_bp.mp4">
     <value>mime=video/avc,size=130172,width=480,height=848,frame-rate=50,profile=1,level=512,bitrate=1615032,package=standard</value>
@@ -1104,10 +1104,10 @@
     <value>mime=video/avc,size=11955,width=48,height=64,frame-rate=50,profile=1,level=16,bitrate=137344,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_512x288p50f32_500kbps_bp.mp4">
-    <value>mime=video/avc,size=37248,width=512,height=288,frame-rate=50,profile=1,level=256,bitrate=453480,package=standard</value>
+    <value>mime=video/avc,size=37248,width=512,height=288,frame-rate=50,profile=1,level=256,bitrate=453480,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_512x384p50f32_700kbps_bp.mp4">
-    <value>mime=video/avc,size=53597,width=512,height=384,frame-rate=50,profile=1,level=256,bitrate=657848,package=standard</value>
+    <value>mime=video/avc,size=53597,width=512,height=384,frame-rate=50,profile=1,level=256,bitrate=657848,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_512x512p50f32_1000kbps_bp.mp4">
     <value>mime=video/avc,size=79003,width=512,height=512,frame-rate=50,profile=1,level=512,bitrate=975432,package=standard</value>
@@ -1149,7 +1149,7 @@
     <value>mime=video/avc,size=71029,width=640,height=360,frame-rate=50,profile=1,level=512,bitrate=875736,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_640x480p50f32_1200kbps_bp.mp4">
-    <value>mime=video/avc,size=96729,width=640,height=480,frame-rate=50,profile=1,level=512,bitrate=1197000,package=standard</value>
+    <value>mime=video/avc,size=96729,width=640,height=480,frame-rate=50,profile=1,level=512,bitrate=1197000,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_640x640p50f32_1600kbps_bp.mp4">
     <value>mime=video/avc,size=132674,width=640,height=640,frame-rate=50,profile=1,level=512,bitrate=1646320,package=standard</value>
@@ -1173,13 +1173,13 @@
     <value>mime=video/avc,size=11463,width=64,height=48,frame-rate=50,profile=1,level=16,bitrate=131200,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_64x64p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=11979,width=64,height=64,frame-rate=50,profile=1,level=16,bitrate=137632,package=standard</value>
+    <value>mime=video/avc,size=11979,width=64,height=64,frame-rate=50,profile=1,level=16,bitrate=137632,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_64x720p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13766,width=64,height=720,frame-rate=50,profile=1,level=16,bitrate=159968,package=standard</value>
+    <value>mime=video/avc,size=13766,width=64,height=720,frame-rate=50,profile=1,level=16,bitrate=159968,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_64x96p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=12767,width=64,height=96,frame-rate=50,profile=1,level=16,bitrate=147480,package=standard</value>
+    <value>mime=video/avc,size=12767,width=64,height=96,frame-rate=50,profile=1,level=16,bitrate=147480,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_704x528p50f32_1400kbps_bp.mp4">
     <value>mime=video/avc,size=114746,width=704,height=528,frame-rate=50,profile=1,level=512,bitrate=1422224,package=standard</value>
@@ -1197,13 +1197,13 @@
     <value>mime=video/avc,size=13146,width=720,height=16,frame-rate=50,profile=1,level=16,bitrate=152224,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_720x480p50f32_1300kbps_bp.mp4">
-    <value>mime=video/avc,size=105729,width=720,height=480,frame-rate=50,profile=1,level=512,bitrate=1309496,package=standard</value>
+    <value>mime=video/avc,size=105729,width=720,height=480,frame-rate=50,profile=1,level=512,bitrate=1309496,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_720x576p50f32_1600kbps_bp.mp4">
     <value>mime=video/avc,size=132863,width=720,height=576,frame-rate=50,profile=1,level=512,bitrate=1648680,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_720x64p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13556,width=720,height=64,frame-rate=50,profile=1,level=16,bitrate=157344,package=standard</value>
+    <value>mime=video/avc,size=13556,width=720,height=64,frame-rate=50,profile=1,level=16,bitrate=157344,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_720x720p50f32_2000kbps_bp.mp4">
     <value>mime=video/avc,size=170358,width=720,height=720,frame-rate=50,profile=1,level=512,bitrate=2117368,package=standard</value>
@@ -1254,22 +1254,22 @@
     <value>mime=video/avc,size=322999,width=960,height=960,frame-rate=50,profile=1,level=1024,bitrate=4025384,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x128p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13156,width=96,height=128,frame-rate=50,profile=1,level=16,bitrate=152344,package=standard</value>
+    <value>mime=video/avc,size=13156,width=96,height=128,frame-rate=50,profile=1,level=16,bitrate=152344,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x144p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13301,width=96,height=144,frame-rate=50,profile=1,level=16,bitrate=154160,package=standard</value>
+    <value>mime=video/avc,size=13301,width=96,height=144,frame-rate=50,profile=1,level=16,bitrate=154160,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x176p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13579,width=96,height=176,frame-rate=50,profile=1,level=16,bitrate=157632,package=standard</value>
+    <value>mime=video/avc,size=13579,width=96,height=176,frame-rate=50,profile=1,level=16,bitrate=157632,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x64p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=12221,width=96,height=64,frame-rate=50,profile=1,level=16,bitrate=140656,package=standard</value>
+    <value>mime=video/avc,size=12221,width=96,height=64,frame-rate=50,profile=1,level=16,bitrate=140656,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x72p50f32_200kbps_bp.mp4">
     <value>mime=video/avc,size=12682,width=96,height=72,frame-rate=50,profile=1,level=16,bitrate=146408,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/resolutions/crowd_96x96p50f32_200kbps_bp.mp4">
-    <value>mime=video/avc,size=13050,width=96,height=96,frame-rate=50,profile=1,level=16,bitrate=151024,package=standard</value>
+    <value>mime=video/avc,size=13050,width=96,height=96,frame-rate=50,profile=1,level=16,bitrate=151024,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/bp/slices/crowd_1280x720p50f32/crowd_1280x720p50f32_1024byte_slices_bp.mp4">
     <value>mime=video/avc,size=276000,width=1280,height=720,frame-rate=50,profile=1,level=1024,bitrate=3437880,package=standard</value>
@@ -4341,13 +4341,13 @@
     <value>mime=video/avc,size=319856,width=1280,height=720,frame-rate=50,profile=2,level=2048,bitrate=3982320,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_128x96p50f32_200kbps_level_2_mp.mp4">
-    <value>mime=video/avc,size=12333,width=128,height=96,frame-rate=50,profile=2,level=32,bitrate=139320,package=standard</value>
+    <value>mime=video/avc,size=12333,width=128,height=96,frame-rate=50,profile=2,level=32,bitrate=139320,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_16x16p50f32_200kbps_level_1_mp.mp4">
     <value>mime=video/avc,size=5415,width=16,height=16,frame-rate=50,profile=2,level=1,bitrate=54544,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_176x144p50f32_200kbps_level_2_mp.mp4">
-    <value>mime=video/avc,size=12174,width=176,height=144,frame-rate=50,profile=2,level=32,bitrate=136824,package=standard</value>
+    <value>mime=video/avc,size=12174,width=176,height=144,frame-rate=50,profile=2,level=32,bitrate=136824,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_1920x1080p50f32_8200kbps_level_4.2_mp.mp4">
     <value>mime=video/avc,size=821392,width=1920,height=1080,frame-rate=50,profile=2,level=8192,bitrate=10251448,package=standard</value>
@@ -4356,19 +4356,19 @@
     <value>mime=video/avc,size=829236,width=1920,height=1088,frame-rate=50,profile=2,level=16384,bitrate=10349568,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_352x288p50f32_400kbps_level_2.1_mp.mp4">
-    <value>mime=video/avc,size=26857,width=352,height=288,frame-rate=50,profile=2,level=64,bitrate=320680,package=standard</value>
+    <value>mime=video/avc,size=26857,width=352,height=288,frame-rate=50,profile=2,level=64,bitrate=320680,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_3840x2160p50f32_24000kbps_level_5.2_mp.mp4">
     <value>mime=video/avc,size=3353147,width=3840,height=2160,frame-rate=50,profile=2,level=65536,bitrate=41898400,package=full</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_640x480p50f32_1200kbps_level_3.1_mp.mp4">
-    <value>mime=video/avc,size=91490,width=640,height=480,frame-rate=50,profile=2,level=512,bitrate=1127808,package=standard</value>
+    <value>mime=video/avc,size=91490,width=640,height=480,frame-rate=50,profile=2,level=512,bitrate=1127808,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_64x64p50f32_200kbps_level_2_mp.mp4">
-    <value>mime=video/avc,size=11818,width=64,height=64,frame-rate=50,profile=2,level=32,bitrate=135624,package=standard</value>
+    <value>mime=video/avc,size=11818,width=64,height=64,frame-rate=50,profile=2,level=32,bitrate=135624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_720x480p50f32_1300kbps_level_3_mp.mp4">
-    <value>mime=video/avc,size=100078,width=720,height=480,frame-rate=50,profile=2,level=256,bitrate=1235024,package=standard</value>
+    <value>mime=video/avc,size=100078,width=720,height=480,frame-rate=50,profile=2,level=256,bitrate=1235024,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/levels/crowd_720x576p50f32_1600kbps_level_3.1_mp.mp4">
     <value>mime=video/avc,size=125751,width=720,height=576,frame-rate=50,profile=2,level=512,bitrate=1555960,package=standard</value>
@@ -5352,16 +5352,16 @@
     <value>mime=video/avc,size=446270,width=1280,height=960,frame-rate=50,profile=2,level=2048,bitrate=5562496,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_128x128p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12097,width=128,height=128,frame-rate=50,profile=2,level=16,bitrate=135560,package=standard</value>
+    <value>mime=video/avc,size=12097,width=128,height=128,frame-rate=50,profile=2,level=16,bitrate=135560,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_128x192p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12424,width=128,height=192,frame-rate=50,profile=2,level=16,bitrate=139648,package=standard</value>
+    <value>mime=video/avc,size=12424,width=128,height=192,frame-rate=50,profile=2,level=16,bitrate=139648,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_128x72p50f32_200kbps_mp.mp4">
     <value>mime=video/avc,size=12180,width=128,height=72,frame-rate=50,profile=2,level=16,bitrate=137200,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_128x96p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12333,width=128,height=96,frame-rate=50,profile=2,level=16,bitrate=139320,package=standard</value>
+    <value>mime=video/avc,size=12333,width=128,height=96,frame-rate=50,profile=2,level=16,bitrate=139320,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_1440x1080p50f32_6200kbps_mp.mp4">
     <value>mime=video/avc,size=587354,width=1440,height=1080,frame-rate=50,profile=2,level=8192,bitrate=7326032,package=standard</value>
@@ -5379,25 +5379,25 @@
     <value>mime=video/avc,size=512376,width=1440,height=960,frame-rate=50,profile=2,level=8192,bitrate=6388824,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_144x144p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=11994,width=144,height=144,frame-rate=50,profile=2,level=16,bitrate=134672,package=standard</value>
+    <value>mime=video/avc,size=11994,width=144,height=144,frame-rate=50,profile=2,level=16,bitrate=134672,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_144x176p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12433,width=144,height=176,frame-rate=50,profile=2,level=16,bitrate=139856,package=standard</value>
+    <value>mime=video/avc,size=12433,width=144,height=176,frame-rate=50,profile=2,level=16,bitrate=139856,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_144x192p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12328,width=144,height=192,frame-rate=50,profile=2,level=16,bitrate=138648,package=standard</value>
+    <value>mime=video/avc,size=12328,width=144,height=192,frame-rate=50,profile=2,level=16,bitrate=138648,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_144x256p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12710,width=144,height=256,frame-rate=50,profile=2,level=16,bitrate=143512,package=standard</value>
+    <value>mime=video/avc,size=12710,width=144,height=256,frame-rate=50,profile=2,level=16,bitrate=143512,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_144x96p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12152,width=144,height=96,frame-rate=50,profile=2,level=16,bitrate=137056,package=standard</value>
+    <value>mime=video/avc,size=12152,width=144,height=96,frame-rate=50,profile=2,level=16,bitrate=137056,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_1536x2048p50f32_12500kbps_mp.mp4">
     <value>mime=video/avc,size=1314463,width=1536,height=2048,frame-rate=50,profile=2,level=32768,bitrate=16414920,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_160x240p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12753,width=160,height=240,frame-rate=50,profile=2,level=16,bitrate=143960,package=standard</value>
+    <value>mime=video/avc,size=12753,width=160,height=240,frame-rate=50,profile=2,level=16,bitrate=143960,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_16x1080p50f32_200kbps_mp.mp4">
     <value>mime=video/avc,size=12347,width=16,height=1080,frame-rate=50,profile=2,level=64,bitrate=138768,package=standard</value>
@@ -5415,13 +5415,13 @@
     <value>mime=video/avc,size=12456,width=16,height=720,frame-rate=50,profile=2,level=16,bitrate=140656,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_176x144p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12174,width=176,height=144,frame-rate=50,profile=2,level=16,bitrate=136824,package=standard</value>
+    <value>mime=video/avc,size=12174,width=176,height=144,frame-rate=50,profile=2,level=16,bitrate=136824,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_176x176p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12523,width=176,height=176,frame-rate=50,profile=2,level=16,bitrate=140984,package=standard</value>
+    <value>mime=video/avc,size=12523,width=176,height=176,frame-rate=50,profile=2,level=16,bitrate=140984,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_176x96p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12373,width=176,height=96,frame-rate=50,profile=2,level=16,bitrate=140120,package=standard</value>
+    <value>mime=video/avc,size=12373,width=176,height=96,frame-rate=50,profile=2,level=16,bitrate=140120,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_1920x1080p50f32_8200kbps_mp.mp4">
     <value>mime=video/avc,size=821387,width=1920,height=1080,frame-rate=50,profile=2,level=8192,bitrate=10251448,package=standard</value>
@@ -5448,19 +5448,19 @@
     <value>mime=video/avc,size=24539,width=1920,height=64,frame-rate=50,profile=2,level=512,bitrate=290872,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_192x128p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12219,width=192,height=128,frame-rate=50,profile=2,level=16,bitrate=137280,package=standard</value>
+    <value>mime=video/avc,size=12219,width=192,height=128,frame-rate=50,profile=2,level=16,bitrate=137280,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_192x144p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12593,width=192,height=144,frame-rate=50,profile=2,level=16,bitrate=143256,package=standard</value>
+    <value>mime=video/avc,size=12593,width=192,height=144,frame-rate=50,profile=2,level=16,bitrate=143256,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_192x192p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12501,width=192,height=192,frame-rate=50,profile=2,level=16,bitrate=140408,package=standard</value>
+    <value>mime=video/avc,size=12501,width=192,height=192,frame-rate=50,profile=2,level=16,bitrate=140408,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_192x256p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12863,width=192,height=256,frame-rate=50,profile=2,level=16,bitrate=145320,package=standard</value>
+    <value>mime=video/avc,size=12863,width=192,height=256,frame-rate=50,profile=2,level=16,bitrate=145320,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_192x288p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12650,width=192,height=288,frame-rate=50,profile=2,level=16,bitrate=142456,package=standard</value>
+    <value>mime=video/avc,size=12650,width=192,height=288,frame-rate=50,profile=2,level=16,bitrate=142456,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_2048x1152p50f32_9400kbps_mp.mp4">
     <value>mime=video/avc,size=917154,width=2048,height=1152,frame-rate=50,profile=2,level=16384,bitrate=11448560,package=standard</value>
@@ -5481,13 +5481,13 @@
     <value>mime=video/avc,size=2777432,width=2304,height=4096,frame-rate=50,profile=2,level=65536,bitrate=34702008,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_240x160p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12596,width=240,height=160,frame-rate=50,profile=2,level=16,bitrate=141696,package=standard</value>
+    <value>mime=video/avc,size=12596,width=240,height=160,frame-rate=50,profile=2,level=16,bitrate=141696,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_240x240p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12790,width=240,height=240,frame-rate=50,profile=2,level=16,bitrate=144424,package=standard</value>
+    <value>mime=video/avc,size=12790,width=240,height=240,frame-rate=50,profile=2,level=16,bitrate=144424,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_240x320p50f32_300kbps_mp.mp4">
-    <value>mime=video/avc,size=19720,width=240,height=320,frame-rate=50,profile=2,level=64,bitrate=230832,package=standard</value>
+    <value>mime=video/avc,size=19720,width=240,height=320,frame-rate=50,profile=2,level=64,bitrate=230832,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_240x360p50f32_300kbps_mp.mp4">
     <value>mime=video/avc,size=19801,width=240,height=360,frame-rate=50,profile=2,level=64,bitrate=231736,package=standard</value>
@@ -5508,13 +5508,13 @@
     <value>mime=video/avc,size=2796926,width=2560,height=3840,frame-rate=50,profile=2,level=65536,bitrate=34945696,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_256x144p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12529,width=256,height=144,frame-rate=50,profile=2,level=16,bitrate=140744,package=standard</value>
+    <value>mime=video/avc,size=12529,width=256,height=144,frame-rate=50,profile=2,level=16,bitrate=140744,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_256x192p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12550,width=256,height=192,frame-rate=50,profile=2,level=16,bitrate=141312,package=standard</value>
+    <value>mime=video/avc,size=12550,width=256,height=192,frame-rate=50,profile=2,level=16,bitrate=141312,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_256x256p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12620,width=256,height=256,frame-rate=50,profile=2,level=64,bitrate=142384,package=standard</value>
+    <value>mime=video/avc,size=12620,width=256,height=256,frame-rate=50,profile=2,level=64,bitrate=142384,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_264x352p50f32_300kbps_mp.mp4">
     <value>mime=video/avc,size=19625,width=264,height=352,frame-rate=50,profile=2,level=64,bitrate=229536,package=standard</value>
@@ -5523,28 +5523,28 @@
     <value>mime=video/avc,size=2880482,width=2880,height=3840,frame-rate=50,profile=2,level=65536,bitrate=35990144,package=full</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_288x192p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12507,width=288,height=192,frame-rate=50,profile=2,level=16,bitrate=140672,package=standard</value>
+    <value>mime=video/avc,size=12507,width=288,height=192,frame-rate=50,profile=2,level=16,bitrate=140672,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_288x216p50f32_200kbps_mp.mp4">
     <value>mime=video/avc,size=12750,width=288,height=216,frame-rate=50,profile=2,level=64,bitrate=144096,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_288x288p50f32_300kbps_mp.mp4">
-    <value>mime=video/avc,size=19640,width=288,height=288,frame-rate=50,profile=2,level=64,bitrate=230232,package=standard</value>
+    <value>mime=video/avc,size=19640,width=288,height=288,frame-rate=50,profile=2,level=64,bitrate=230232,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_288x352p50f32_400kbps_mp.mp4">
-    <value>mime=video/avc,size=26931,width=288,height=352,frame-rate=50,profile=2,level=64,bitrate=321072,package=standard</value>
+    <value>mime=video/avc,size=26931,width=288,height=352,frame-rate=50,profile=2,level=64,bitrate=321072,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_288x512p50f32_500kbps_mp.mp4">
-    <value>mime=video/avc,size=34424,width=288,height=512,frame-rate=50,profile=2,level=256,bitrate=414544,package=standard</value>
+    <value>mime=video/avc,size=34424,width=288,height=512,frame-rate=50,profile=2,level=256,bitrate=414544,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_320x240p50f32_300kbps_mp.mp4">
-    <value>mime=video/avc,size=19675,width=320,height=240,frame-rate=50,profile=2,level=64,bitrate=230272,package=standard</value>
+    <value>mime=video/avc,size=19675,width=320,height=240,frame-rate=50,profile=2,level=64,bitrate=230272,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_320x320p50f32_400kbps_mp.mp4">
-    <value>mime=video/avc,size=27750,width=320,height=320,frame-rate=50,profile=2,level=128,bitrate=331808,package=standard</value>
+    <value>mime=video/avc,size=27750,width=320,height=320,frame-rate=50,profile=2,level=128,bitrate=331808,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_320x480p50f32_600kbps_mp.mp4">
-    <value>mime=video/avc,size=41960,width=320,height=480,frame-rate=50,profile=2,level=256,bitrate=508832,package=standard</value>
+    <value>mime=video/avc,size=41960,width=320,height=480,frame-rate=50,profile=2,level=256,bitrate=508832,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_32x24p50f32_200kbps_mp.mp4">
     <value>mime=video/avc,size=8516,width=32,height=24,frame-rate=50,profile=2,level=16,bitrate=94344,package=standard</value>
@@ -5559,10 +5559,10 @@
     <value>mime=video/avc,size=19489,width=352,height=264,frame-rate=50,profile=2,level=64,bitrate=228432,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_352x288p50f32_400kbps_mp.mp4">
-    <value>mime=video/avc,size=26852,width=352,height=288,frame-rate=50,profile=2,level=64,bitrate=320680,package=standard</value>
+    <value>mime=video/avc,size=26852,width=352,height=288,frame-rate=50,profile=2,level=64,bitrate=320680,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_352x352p50f32_400kbps_mp.mp4">
-    <value>mime=video/avc,size=27834,width=352,height=352,frame-rate=50,profile=2,level=256,bitrate=332560,package=standard</value>
+    <value>mime=video/avc,size=27834,width=352,height=352,frame-rate=50,profile=2,level=256,bitrate=332560,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_356x638p50f32_900kbps_mp.mp4">
     <value>mime=video/avc,size=65821,width=356,height=638,frame-rate=50,profile=2,level=512,bitrate=806880,package=standard</value>
@@ -5604,7 +5604,7 @@
     <value>mime=video/avc,size=2837257,width=3840,height=2880,frame-rate=50,profile=2,level=65536,bitrate=35449832,package=full</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_384x512p50f32_700kbps_mp.mp4">
-    <value>mime=video/avc,size=50438,width=384,height=512,frame-rate=50,profile=2,level=256,bitrate=614720,package=standard</value>
+    <value>mime=video/avc,size=50438,width=384,height=512,frame-rate=50,profile=2,level=256,bitrate=614720,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_4096x2304p50f32_24000kbps_mp.mp4">
     <value>mime=video/avc,size=2713484,width=4096,height=2304,frame-rate=50,profile=2,level=65536,bitrate=33902656,package=standard</value>
@@ -5613,19 +5613,19 @@
     <value>mime=video/avc,size=58830,width=472,height=472,frame-rate=50,profile=2,level=512,bitrate=719800,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x320p50f32_600kbps_mp.mp4">
-    <value>mime=video/avc,size=42865,width=480,height=320,frame-rate=50,profile=2,level=256,bitrate=520344,package=standard</value>
+    <value>mime=video/avc,size=42865,width=480,height=320,frame-rate=50,profile=2,level=256,bitrate=520344,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x360p50f32_600kbps_mp.mp4">
     <value>mime=video/avc,size=42938,width=480,height=360,frame-rate=50,profile=2,level=256,bitrate=521144,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x480p50f32_900kbps_mp.mp4">
-    <value>mime=video/avc,size=66588,width=480,height=480,frame-rate=50,profile=2,level=512,bitrate=816784,package=standard</value>
+    <value>mime=video/avc,size=66588,width=480,height=480,frame-rate=50,profile=2,level=512,bitrate=816784,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x640p50f32_1200kbps_mp.mp4">
-    <value>mime=video/avc,size=90927,width=480,height=640,frame-rate=50,profile=2,level=512,bitrate=1120736,package=standard</value>
+    <value>mime=video/avc,size=90927,width=480,height=640,frame-rate=50,profile=2,level=512,bitrate=1120736,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x720p50f32_1300kbps_mp.mp4">
-    <value>mime=video/avc,size=100070,width=480,height=720,frame-rate=50,profile=2,level=512,bitrate=1235024,package=standard</value>
+    <value>mime=video/avc,size=100070,width=480,height=720,frame-rate=50,profile=2,level=512,bitrate=1235024,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_480x848p50f32_1600kbps_mp.mp4">
     <value>mime=video/avc,size=121917,width=480,height=848,frame-rate=50,profile=2,level=512,bitrate=1508112,package=standard</value>
@@ -5634,10 +5634,10 @@
     <value>mime=video/avc,size=11093,width=48,height=64,frame-rate=50,profile=2,level=16,bitrate=124608,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_512x288p50f32_500kbps_mp.mp4">
-    <value>mime=video/avc,size=35423,width=512,height=288,frame-rate=50,profile=2,level=256,bitrate=427632,package=standard</value>
+    <value>mime=video/avc,size=35423,width=512,height=288,frame-rate=50,profile=2,level=256,bitrate=427632,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_512x384p50f32_700kbps_mp.mp4">
-    <value>mime=video/avc,size=50309,width=512,height=384,frame-rate=50,profile=2,level=256,bitrate=613008,package=standard</value>
+    <value>mime=video/avc,size=50309,width=512,height=384,frame-rate=50,profile=2,level=256,bitrate=613008,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_512x512p50f32_1000kbps_mp.mp4">
     <value>mime=video/avc,size=74581,width=512,height=512,frame-rate=50,profile=2,level=512,bitrate=916496,package=standard</value>
@@ -5679,7 +5679,7 @@
     <value>mime=video/avc,size=66239,width=640,height=360,frame-rate=50,profile=2,level=512,bitrate=812224,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_640x480p50f32_1200kbps_mp.mp4">
-    <value>mime=video/avc,size=91485,width=640,height=480,frame-rate=50,profile=2,level=512,bitrate=1127808,package=standard</value>
+    <value>mime=video/avc,size=91485,width=640,height=480,frame-rate=50,profile=2,level=512,bitrate=1127808,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_640x640p50f32_1600kbps_mp.mp4">
     <value>mime=video/avc,size=125839,width=640,height=640,frame-rate=50,profile=2,level=512,bitrate=1557120,package=standard</value>
@@ -5703,13 +5703,13 @@
     <value>mime=video/avc,size=11198,width=64,height=48,frame-rate=50,profile=2,level=16,bitrate=126824,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_64x64p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=11818,width=64,height=64,frame-rate=50,profile=2,level=16,bitrate=135624,package=standard</value>
+    <value>mime=video/avc,size=11818,width=64,height=64,frame-rate=50,profile=2,level=16,bitrate=135624,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_64x720p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12619,width=64,height=720,frame-rate=50,profile=2,level=16,bitrate=141872,package=standard</value>
+    <value>mime=video/avc,size=12619,width=64,height=720,frame-rate=50,profile=2,level=16,bitrate=141872,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_64x96p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=11987,width=64,height=96,frame-rate=50,profile=2,level=16,bitrate=135280,package=standard</value>
+    <value>mime=video/avc,size=11987,width=64,height=96,frame-rate=50,profile=2,level=16,bitrate=135280,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_704x528p50f32_1400kbps_mp.mp4">
     <value>mime=video/avc,size=108268,width=704,height=528,frame-rate=50,profile=2,level=512,bitrate=1337480,package=standard</value>
@@ -5727,13 +5727,13 @@
     <value>mime=video/avc,size=12892,width=720,height=16,frame-rate=50,profile=2,level=16,bitrate=147208,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_720x480p50f32_1300kbps_mp.mp4">
-    <value>mime=video/avc,size=100078,width=720,height=480,frame-rate=50,profile=2,level=512,bitrate=1235024,package=standard</value>
+    <value>mime=video/avc,size=100078,width=720,height=480,frame-rate=50,profile=2,level=512,bitrate=1235024,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_720x576p50f32_1600kbps_mp.mp4">
     <value>mime=video/avc,size=125746,width=720,height=576,frame-rate=50,profile=2,level=512,bitrate=1555960,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_720x64p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12764,width=720,height=64,frame-rate=50,profile=2,level=16,bitrate=143880,package=standard</value>
+    <value>mime=video/avc,size=12764,width=720,height=64,frame-rate=50,profile=2,level=16,bitrate=143880,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_720x720p50f32_2000kbps_mp.mp4">
     <value>mime=video/avc,size=162293,width=720,height=720,frame-rate=50,profile=2,level=512,bitrate=2012800,package=standard</value>
@@ -5784,22 +5784,22 @@
     <value>mime=video/avc,size=313704,width=960,height=960,frame-rate=50,profile=2,level=1024,bitrate=3905432,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x128p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12441,width=96,height=128,frame-rate=50,profile=2,level=16,bitrate=140072,package=standard</value>
+    <value>mime=video/avc,size=12441,width=96,height=128,frame-rate=50,profile=2,level=16,bitrate=140072,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x144p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12096,width=96,height=144,frame-rate=50,profile=2,level=16,bitrate=135760,package=standard</value>
+    <value>mime=video/avc,size=12096,width=96,height=144,frame-rate=50,profile=2,level=16,bitrate=135760,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x176p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12277,width=96,height=176,frame-rate=50,profile=2,level=16,bitrate=137920,package=standard</value>
+    <value>mime=video/avc,size=12277,width=96,height=176,frame-rate=50,profile=2,level=16,bitrate=137920,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x64p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=11982,width=96,height=64,frame-rate=50,profile=2,level=16,bitrate=137672,package=standard</value>
+    <value>mime=video/avc,size=11982,width=96,height=64,frame-rate=50,profile=2,level=16,bitrate=137672,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x72p50f32_200kbps_mp.mp4">
     <value>mime=video/avc,size=12083,width=96,height=72,frame-rate=50,profile=2,level=16,bitrate=136368,package=standard</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/resolutions/crowd_96x96p50f32_200kbps_mp.mp4">
-    <value>mime=video/avc,size=12293,width=96,height=96,frame-rate=50,profile=2,level=16,bitrate=138912,package=standard</value>
+    <value>mime=video/avc,size=12293,width=96,height=96,frame-rate=50,profile=2,level=16,bitrate=138912,package=standard,enforce=true</value>
   </entry>
   <entry key="h264/yuv420/8bit/mp/slices/crowd_1280x720p50f32/crowd_1280x720p50f32_1024byte_slices_mp.mp4">
     <value>mime=video/avc,size=271360,width=1280,height=720,frame-rate=50,profile=2,level=1024,bitrate=3376120,package=standard</value>
@@ -25740,22 +25740,22 @@
     <value>mime=video/x-vnd.on2.vp8,size=36285942,width=3840,height=2160,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p24f300_1000kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1588213,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1588213,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p25f300_1000kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1523834,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1523834,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p30f300_1000kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1274889,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1274889,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p48f300_1500kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1213728,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1213728,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p50f300_1500kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1171849,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1171849,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_640x360p60f300_1500kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=976943,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=976943,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/bitrate/crowd_854x480p24f300_2500kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=3973482,width=854,height=480,frame-rate=,profile=,level=,bitrate=,package=full</value>
@@ -26253,163 +26253,163 @@
     <value>mime=video/x-vnd.on2.vp8,size=4062168,width=3840,height=2160,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_0f_0s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_0f_5s_1t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_0f_5s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_15f_0s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_15f_5s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_5f_0s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_5f_5s_2t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_arnr_5f_5s_3t.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_autAltRef_8lag.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_autAltRef.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cbr.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=122296,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=122296,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cq10.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cq16.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cq32.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cq4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_cq63.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_downScale_10_noKey.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_downScale_20_noKey.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_downScale_50_noKey.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_downScale_80_noKey.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_errRes.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=122754,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=122754,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_keyFrmOnly.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=278508,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=278508,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noFrmPar_alternateKey_1x4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=278508,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=278508,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noFrmPar_key240_1x4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noFrmPar_key30_1x4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=139344,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=139344,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noFrmPar_key60_1x4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noFrmPar_key90_1x4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_noKeyFrm.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_nonErrRes.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp0-10.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=1162750,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=1162750,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp0-63.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp0.webm">
     <value>mime=video/x-vnd.on2.vp8,size=3647597,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp10-20.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=702681,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=702681,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp20-30.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=435106,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=435106,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp30-40.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=261310,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=261310,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp32.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=382962,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=382962,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp40-50.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=138311,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=138311,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp50-63.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=50558,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=50558,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_Qp63.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=41786,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=41786,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp0.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp1.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127017,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127017,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp2.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127302,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127302,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp3.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127145,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127145,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp4.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127183,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127183,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp5.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127149,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127149,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp6.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=127092,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=127092,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_sharp7.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=126925,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=126925,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_skip5frm.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=121018,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=121018,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_upScale_100.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_upScale_10.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_upScale_20.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_upScale_50.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_640x360p50f32/crowd_640x360p50f32_vbr.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=124794,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/params/crowd_854x480p50f32/crowd_854x480p50f32_arnr_0f_0s_2t.webm">
     <value>mime=video/x-vnd.on2.vp8,size=214838,width=854,height=480,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26616,16 +26616,16 @@
     <value>mime=video/x-vnd.on2.vp8,size=544433,width=1280,height=960,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_128x128p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=22573,width=128,height=128,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=22573,width=128,height=128,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_128x192p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=25964,width=128,height=192,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=25964,width=128,height=192,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_128x72p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=19288,width=128,height=72,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=19288,width=128,height=72,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_128x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=21679,width=128,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=21679,width=128,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_1440x1080p50f32_3100kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=732471,width=1440,height=1080,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26643,25 +26643,25 @@
     <value>mime=video/x-vnd.on2.vp8,size=607624,width=1440,height=960,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_144x144p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=24431,width=144,height=144,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=24431,width=144,height=144,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_144x176p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=26701,width=144,height=176,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=26701,width=144,height=176,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_144x192p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=26749,width=144,height=192,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=26749,width=144,height=192,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_144x256p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=30324,width=144,height=256,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=30324,width=144,height=256,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_144x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=21810,width=144,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=21810,width=144,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_1536x2048p50f32_6200kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=1594581,width=1536,height=2048,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_160x240p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=30543,width=160,height=240,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=30543,width=160,height=240,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_16x1080p50f32_200kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=21812,width=16,height=1080,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26679,13 +26679,13 @@
     <value>mime=video/x-vnd.on2.vp8,size=20743,width=16,height=720,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_172x172p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=27116,width=172,height=172,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=27116,width=172,height=172,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_176x144p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=26536,width=176,height=144,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=26536,width=176,height=144,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_176x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=23213,width=176,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=23213,width=176,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_1920x1080p50f32_4100kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=957687,width=1920,height=1080,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26712,19 +26712,19 @@
     <value>mime=video/x-vnd.on2.vp8,size=47544,width=1920,height=64,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_192x128p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=26210,width=192,height=128,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=26210,width=192,height=128,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_192x144p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=27399,width=192,height=144,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=27399,width=192,height=144,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_192x192p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=30298,width=192,height=192,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=30298,width=192,height=192,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_192x256p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=35251,width=192,height=256,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=35251,width=192,height=256,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_192x288p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=38961,width=192,height=288,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=38961,width=192,height=288,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_2048x1152p50f32_4700kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=1196505,width=2048,height=1152,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26739,22 +26739,22 @@
     <value>mime=video/x-vnd.on2.vp8,size=2280972,width=2160,height=3840,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_216x288p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=44099,width=216,height=288,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=44099,width=216,height=288,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_2304x4096p50f32_18800kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=2638026,width=2304,height=4096,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_240x160p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=31009,width=240,height=160,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=31009,width=240,height=160,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_240x240p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=40814,width=240,height=240,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=40814,width=240,height=240,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_240x320p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=50030,width=240,height=320,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=50030,width=240,height=320,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_240x360p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=52756,width=240,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=52756,width=240,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_24x32p50f32_200kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=7659,width=24,height=32,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26772,34 +26772,34 @@
     <value>mime=video/x-vnd.on2.vp8,size=2762075,width=2560,height=3840,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_256x144p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=31222,width=256,height=144,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=31222,width=256,height=144,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_256x192p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=35669,width=256,height=192,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=35669,width=256,height=192,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_256x256p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=45820,width=256,height=256,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=45820,width=256,height=256,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_264x352p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=53957,width=264,height=352,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=53957,width=264,height=352,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_2880x3840p50f32_22100kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=3080416,width=2880,height=3840,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_288x192p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=39629,width=288,height=192,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=39629,width=288,height=192,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_288x216p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=44825,width=288,height=216,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=44825,width=288,height=216,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_288x288p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=49855,width=288,height=288,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=49855,width=288,height=288,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_288x352p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=54866,width=288,height=352,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=54866,width=288,height=352,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_288x512p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=58929,width=288,height=512,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=58929,width=288,height=512,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_3072x4096p50f32_24000kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=3468897,width=3072,height=4096,frame-rate=,profile=,level=,bitrate=,package=full</value>
@@ -26808,13 +26808,13 @@
     <value>mime=video/x-vnd.on2.vp8,size=3546364,width=3120,height=4160,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_320x240p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=49907,width=320,height=240,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=49907,width=320,height=240,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_320x320p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=52171,width=320,height=320,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=52171,width=320,height=320,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_320x480p50f32_300kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=78944,width=320,height=480,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=78944,width=320,height=480,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_32x24p50f32_200kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=7192,width=32,height=24,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26823,46 +26823,46 @@
     <value>mime=video/x-vnd.on2.vp8,size=7411,width=32,height=32,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_350x350p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=52974,width=350,height=350,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=52974,width=350,height=350,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_352x264p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=53324,width=352,height=264,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=53324,width=352,height=264,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_352x288p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=53275,width=352,height=288,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=53275,width=352,height=288,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_352x352p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=56687,width=352,height=352,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=56687,width=352,height=352,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_356x638p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144407,width=356,height=638,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144407,width=356,height=638,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_356x640p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144233,width=356,height=640,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144233,width=356,height=640,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_358x636p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144934,width=358,height=636,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144934,width=358,height=636,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_358x640p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144989,width=358,height=640,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144989,width=358,height=640,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x240p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=52067,width=360,height=240,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=52067,width=360,height=240,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x360p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=56298,width=360,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=56298,width=360,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x480p50f32_300kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=80276,width=360,height=480,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=80276,width=360,height=480,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x636p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144803,width=360,height=636,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144803,width=360,height=636,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x638p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=145053,width=360,height=638,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=145053,width=360,height=638,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_360x640p50f32_400kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=109983,width=360,height=640,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=109983,width=360,height=640,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_3840x2160p50f32_16500kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=4061905,width=3840,height=2160,frame-rate=,profile=,level=,bitrate=,package=full</value>
@@ -26904,10 +26904,10 @@
     <value>mime=video/x-vnd.on2.vp8,size=111263,width=472,height=472,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_480x320p50f32_300kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=79954,width=480,height=320,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=79954,width=480,height=320,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_480x360p50f32_300kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=81735,width=480,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=81735,width=480,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_480x480p50f32_400kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=111711,width=480,height=480,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26928,7 +26928,7 @@
     <value>mime=video/x-vnd.on2.vp8,size=6358861,width=5120,height=7680,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_512x288p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=58038,width=512,height=288,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=58038,width=512,height=288,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_512x384p50f32_300kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=84510,width=512,height=384,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -26958,25 +26958,25 @@
     <value>mime=video/x-vnd.on2.vp8,size=8098503,width=6144,height=8192,frame-rate=,profile=,level=,bitrate=,package=full</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_636x358p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144270,width=636,height=358,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144270,width=636,height=358,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_636x360p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144411,width=636,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144411,width=636,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_638x356p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144483,width=638,height=356,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144483,width=638,height=356,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_638x360p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=145021,width=638,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=145021,width=638,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_640x356p50f32_800kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=144416,width=640,height=356,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=144416,width=640,height=356,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_640x358p50f32_400kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=103745,width=640,height=358,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=103745,width=640,height=358,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_640x360p50f32_400kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=106663,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=106663,width=640,height=360,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_640x480p50f32_600kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=147651,width=640,height=480,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -27003,13 +27003,13 @@
     <value>mime=video/x-vnd.on2.vp8,size=17239,width=64,height=48,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_64x64p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=18514,width=64,height=64,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=18514,width=64,height=64,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_64x720p50f32_200kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=32501,width=64,height=720,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_64x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=19213,width=64,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=19213,width=64,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_704x528p50f32_700kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=172909,width=704,height=528,frame-rate=,profile=,level=,bitrate=,package=standard</value>
@@ -27042,10 +27042,10 @@
     <value>mime=video/x-vnd.on2.vp8,size=294296,width=720,height=960,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_72x128p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=21203,width=72,height=128,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=21203,width=72,height=128,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_72x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=20015,width=72,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=20015,width=72,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_7680x4320p50f32_24000kbps.webm">
     <value>mime=video/x-vnd.on2.vp8,size=8365736,width=7680,height=4320,frame-rate=,profile=,level=,bitrate=,package=full</value>
@@ -27105,22 +27105,22 @@
     <value>mime=video/x-vnd.on2.vp8,size=418761,width=960,height=960,frame-rate=,profile=,level=,bitrate=,package=standard</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x128p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=21046,width=96,height=128,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=21046,width=96,height=128,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x144p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=21094,width=96,height=144,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=21094,width=96,height=144,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x176p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=23140,width=96,height=176,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=23140,width=96,height=176,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x64p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=19097,width=96,height=64,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=19097,width=96,height=64,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x72p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=19164,width=96,height=72,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=19164,width=96,height=72,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp8/yuv420/8bit/resolution/crowd_96x96p50f32_200kbps.webm">
-    <value>mime=video/x-vnd.on2.vp8,size=20262,width=96,height=96,frame-rate=,profile=,level=,bitrate=,package=standard</value>
+    <value>mime=video/x-vnd.on2.vp8,size=20262,width=96,height=96,frame-rate=,profile=,level=,bitrate=,package=standard,enforce=true</value>
   </entry>
   <entry key="vp9/yuv420/10bit/bitrate/crowd_1280x720p24f300_3000kbps.webm">
     <value>mime=video/x-vnd.on2.vp9,size=4825448,width=1280,height=720,frame-rate=,profile=,level=,bitrate=,package=full</value>
diff --git a/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java b/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
index 13b70a5..fbf7491 100644
--- a/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
+++ b/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
@@ -61,6 +61,7 @@
     public static final String DYNAMIC_CONFIG_KEY = "key";
     public static final String DYNAMIC_CONFIG_VALUE = "value";
     public static final String DYNAMIC_CONFIG_PACKAGE = "package";
+    public static final String DYNAMIC_CONFIG_ENFORCE = "enforce";
 
     /* utilities */
     /**
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsFullTest.java
index 457c636..72bb15a 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public H264Yuv420_8bitBpBitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsTest.java
index 78cd436..5bcfe7e 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitBpBitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public H264Yuv420_8bitBpBitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsFullTest.java
index 606a169..7db0198f 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public H264Yuv420_8bitHpBitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsTest.java
index 792fa5e..6ba3822 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitHpBitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public H264Yuv420_8bitHpBitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsFullTest.java
index ebacc3c..4811150 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public H264Yuv420_8bitMpBitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsTest.java
index ce80c96..b7f2c67 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/H264Yuv420_8bitMpBitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public H264Yuv420_8bitMpBitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv400BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv400BitstreamsFullTest.java
index 59ba131..e00283f 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv400BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv400BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public HevcYuv400BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsFullTest.java
index 1680ff2..eb0fda7 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public HevcYuv420BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsTest.java
index 0fd0c3c..1334c82 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv420BitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public HevcYuv420BitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv422BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv422BitstreamsFullTest.java
index ee7a683..0efdad2 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv422BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv422BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public HevcYuv422BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv444BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv444BitstreamsFullTest.java
index f167cb6..0f564ea 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv444BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/HevcYuv444BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public HevcYuv444BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
index cb21724..3d16367 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
@@ -53,6 +53,7 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.xmlpull.v1.XmlPullParser;
@@ -109,6 +110,7 @@
 
     private BitstreamPackage mPackage = BitstreamPackage.FULL;
     private BitstreamPackage mPackageToRun = BitstreamPackage.STANDARD;
+    private boolean mEnforce = false;
 
     static class ConformanceEntry {
         final String mPath, mCodecName, mStatus;
@@ -177,6 +179,7 @@
                 String format = parser.getText();
                 String[] kvPairs = format.split(",");
                 BitstreamPackage curPackage = BitstreamPackage.FULL;
+                boolean enforce = false;
                 for (String kvPair : kvPairs) {
                     String[] kv = kvPair.split("=");
                     if (MediaBitstreams.DYNAMIC_CONFIG_PACKAGE.equals(kv[0])) {
@@ -186,10 +189,12 @@
                         } catch (Exception e) {
                             CLog.w(e);
                         }
+                    } else if (MediaBitstreams.DYNAMIC_CONFIG_ENFORCE.equals(kv[0])) {
+                        enforce = "true".equals(kv[1]);
                     }
                 }
                 if (curPackage.compareTo(packageToRun) <= 0) {
-                    entries.add(new Object[] {prefix, bitstream, curPackage, packageToRun});
+                    entries.add(new Object[] {prefix, bitstream, curPackage, packageToRun, enforce});
                 }
             }
             return entries;
@@ -201,10 +206,16 @@
 
     public MediaBitstreamsTest(String prefix, String path, BitstreamPackage pkg, BitstreamPackage packageToRun
             ) {
+        this(prefix, path, pkg, packageToRun, false);
+    }
+
+    public MediaBitstreamsTest(String prefix, String path, BitstreamPackage pkg, BitstreamPackage packageToRun,
+            boolean enforce) {
         mPrefix = prefix;
         mPath = path;
         mPackage = pkg;
         mPackageToRun = packageToRun;
+        mEnforce = enforce;
     }
 
     @Override
@@ -464,7 +475,19 @@
                 addConformanceEntry(curMethod, mPath, MediaBitstreams.K_UNAVAILABLE, e.toString());
             }
         }
-        // todo(robertshih): lookup conformance entry; pass/fail based on lookup result
+
+        if (mEnforce) {
+            if (!mResults.containsKey(mPath)) {
+                Assert.fail("no results captured for " + mPath);
+            }
+            List<ConformanceEntry> entries = mResults.get(mPath);
+            for (ConformanceEntry ce : entries) {
+                if (!"true".equals(ce.mStatus)) {
+                    Assert.fail(ce.toString());
+                }
+            }
+        }
+
     }
 
     private void testBitstreamsConformance(String prefix)
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsFullTest.java
index 7755b4a..bbfc2eb 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public Vp8BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsTest.java
index de05f93..8587abd 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp8BitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public Vp8BitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsFullTest.java
index 747e3a9..d209011 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public Vp9Yuv420BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsTest.java
index 76af826..9b048bb 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv420BitstreamsTest.java
@@ -29,8 +29,8 @@
     }
 
     public Vp9Yuv420BitstreamsTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
 }
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv422BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv422BitstreamsFullTest.java
index 2856e36..a03f1c4 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv422BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv422BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public Vp9Yuv422BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv444BitstreamsFullTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv444BitstreamsFullTest.java
index 46af097..22786fc 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv444BitstreamsFullTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/Vp9Yuv444BitstreamsFullTest.java
@@ -31,8 +31,8 @@
     }
 
     public Vp9Yuv444BitstreamsFullTest(String prefix, String path,
-            BitstreamPackage pkg, BitstreamPackage packageToRun) {
-        super(prefix, path, pkg, packageToRun);
+            BitstreamPackage pkg, BitstreamPackage packageToRun, boolean enforce) {
+        super(prefix, path, pkg, packageToRun, enforce);
     }
 
     @Test
diff --git a/tests/admin/Android.mk b/tests/admin/Android.mk
index bd5346d..40ce285 100644
--- a/tests/admin/Android.mk
+++ b/tests/admin/Android.mk
@@ -21,7 +21,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
-    ctstestrunner mockito-target-minus-junit4
+    ctstestrunner mockito-target-minus-junit4 truth-prebuilt testng
 
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs android.test.base.stubs
 
diff --git a/tests/admin/app/AndroidManifest.xml b/tests/admin/app/AndroidManifest.xml
index 0307487..1d901a2 100644
--- a/tests/admin/app/AndroidManifest.xml
+++ b/tests/admin/app/AndroidManifest.xml
@@ -67,6 +67,24 @@
             </intent-filter>
         </receiver>
 
+        <receiver android:name="android.admin.app.CtsDeviceAdminReceiverVisible"
+                  android:permission="android.permission.BIND_DEVICE_ADMIN">
+            <meta-data android:name="android.app.device_admin"
+                       android:resource="@xml/device_admin_visible" />
+            <intent-filter>
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+            </intent-filter>
+        </receiver>
+
+        <receiver android:name="android.admin.app.CtsDeviceAdminReceiverInvisible"
+                  android:permission="android.permission.BIND_DEVICE_ADMIN">
+            <meta-data android:name="android.app.device_admin"
+                       android:resource="@xml/device_admin_invisible" />
+            <intent-filter>
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+            </intent-filter>
+        </receiver>
+
         <!-- Device Admin that needs to be in the deactivated state in order
              for tests to pass. -->
         <receiver android:name="android.admin.app.CtsDeviceAdminDeactivatedReceiver"
diff --git a/tests/admin/app/res/xml/device_admin_invisible.xml b/tests/admin/app/res/xml/device_admin_invisible.xml
new file mode 100644
index 0000000..6af5a60
--- /dev/null
+++ b/tests/admin/app/res/xml/device_admin_invisible.xml
@@ -0,0 +1,24 @@
+<!--
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+
+<device-admin xmlns:android="http://schemas.android.com/apk/res/android" android:visible="false">
+    <support-transfer-ownership />
+    <uses-policies>
+        <limit-password />
+        <reset-password />
+        <wipe-data />
+    </uses-policies>
+</device-admin>
diff --git a/tests/admin/app/res/xml/device_admin_visible.xml b/tests/admin/app/res/xml/device_admin_visible.xml
new file mode 100644
index 0000000..5d37a95
--- /dev/null
+++ b/tests/admin/app/res/xml/device_admin_visible.xml
@@ -0,0 +1,24 @@
+<!--
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+
+<device-admin xmlns:android="http://schemas.android.com/apk/res/android" android:visible="true">
+    <support-transfer-ownership />
+    <uses-policies>
+        <limit-password />
+        <reset-password />
+        <wipe-data />
+    </uses-policies>
+</device-admin>
diff --git a/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverInvisible.java b/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverInvisible.java
new file mode 100644
index 0000000..05f9426
--- /dev/null
+++ b/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverInvisible.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.admin.app;
+
+import android.app.admin.DeviceAdminReceiver;
+
+public class CtsDeviceAdminReceiverInvisible extends DeviceAdminReceiver {
+}
diff --git a/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverVisible.java b/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverVisible.java
new file mode 100644
index 0000000..9bf440a
--- /dev/null
+++ b/tests/admin/app/src/android/admin/app/CtsDeviceAdminReceiverVisible.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.admin.app;
+
+import android.app.admin.DeviceAdminReceiver;
+
+public class CtsDeviceAdminReceiverVisible extends DeviceAdminReceiver {
+}
diff --git a/tests/admin/src/android/admin/cts/DeviceAdminInfoTest.java b/tests/admin/src/android/admin/cts/DeviceAdminInfoTest.java
index 1790503..a0533cd 100644
--- a/tests/admin/src/android/admin/cts/DeviceAdminInfoTest.java
+++ b/tests/admin/src/android/admin/cts/DeviceAdminInfoTest.java
@@ -16,8 +16,11 @@
 
 package android.admin.cts;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import android.app.admin.DeviceAdminInfo;
 import android.content.ComponentName;
+import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.test.AndroidTestCase;
@@ -60,6 +63,16 @@
         return new ComponentName("android.admin.app", "android.admin.app.CtsDeviceAdminProfileOwner");
     }
 
+    static ComponentName getVisibleComponent() {
+        return new ComponentName(
+                "android.admin.app", "android.admin.app.CtsDeviceAdminReceiverVisible");
+    }
+
+    static ComponentName getInvisibleComponent() {
+        return new ComponentName(
+                "android.admin.app", "android.admin.app.CtsDeviceAdminReceiverInvisible");
+    }
+
     public void testDeviceAdminInfo() throws Exception {
         if (!mDeviceAdmin) {
             Log.w(TAG, "Skipping testDeviceAdminInfo");
@@ -70,27 +83,27 @@
                 PackageManager.GET_META_DATA);
 
         DeviceAdminInfo info = new DeviceAdminInfo(mContext, resolveInfo);
-        assertEquals(mComponent, info.getComponent());
-        assertEquals(mComponent.getPackageName(), info.getPackageName());
-        assertEquals(mComponent.getClassName(), info.getReceiverName());
+        assertThat(mComponent).isEqualTo(info.getComponent());
+        assertThat(mComponent.getPackageName()).isEqualTo(info.getPackageName());
+        assertThat(mComponent.getClassName()).isEqualTo(info.getReceiverName());
 
-        assertFalse(info.supportsTransferOwnership());
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
+        assertThat(info.supportsTransferOwnership()).isFalse();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA)).isTrue();
 
-        assertEquals("force-lock",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
-        assertEquals("limit-password",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
-        assertEquals("reset-password",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
-        assertEquals("watch-login",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
-        assertEquals("wipe-data",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
+        assertThat("force-lock")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
+        assertThat("limit-password")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
+        assertThat("reset-password")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
+        assertThat("watch-login")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
+        assertThat("wipe-data")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
     }
 
     public void testDeviceAdminInfo2() throws Exception {
@@ -103,27 +116,27 @@
                 PackageManager.GET_META_DATA);
 
         DeviceAdminInfo info = new DeviceAdminInfo(mContext, resolveInfo);
-        assertEquals(mSecondComponent, info.getComponent());
-        assertEquals(mSecondComponent.getPackageName(), info.getPackageName());
-        assertEquals(mSecondComponent.getClassName(), info.getReceiverName());
+        assertThat(mSecondComponent).isEqualTo(info.getComponent());
+        assertThat(mSecondComponent.getPackageName()).isEqualTo(info.getPackageName());
+        assertThat(mSecondComponent.getClassName()).isEqualTo(info.getReceiverName());
 
-        assertFalse(info.supportsTransferOwnership());
-        assertFalse(info.usesPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
-        assertFalse(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
-        assertTrue(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
+        assertThat(info.supportsTransferOwnership()).isFalse();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK)).isFalse();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD)).isTrue();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN)).isFalse();
+        assertThat(info.usesPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA)).isTrue();
 
-        assertEquals("force-lock",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
-        assertEquals("limit-password",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
-        assertEquals("reset-password",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
-        assertEquals("watch-login",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
-        assertEquals("wipe-data",
-                info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
+        assertThat("force-lock")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_FORCE_LOCK));
+        assertThat("limit-password")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD));
+        assertThat("reset-password")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_RESET_PASSWORD));
+        assertThat("watch-login")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WATCH_LOGIN));
+        assertThat("wipe-data")
+                .isEqualTo(info.getTagForPolicy(DeviceAdminInfo.USES_POLICY_WIPE_DATA));
     }
 
     public void testDeviceAdminInfo3() throws Exception {
@@ -136,6 +149,66 @@
                 PackageManager.GET_META_DATA);
 
         DeviceAdminInfo info = new DeviceAdminInfo(mContext, resolveInfo);
-        assertTrue(info.supportsTransferOwnership());
+        assertThat(info.supportsTransferOwnership()).isTrue();
+    }
+
+    public void testDescribeContents_returnsAtLeastZero() throws Exception {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testDescribeContents_returnsAtLeastZero");
+            return;
+        }
+
+        assertThat(buildDeviceAdminInfo(buildActivityInfo()).describeContents()).isAtLeast(0);
+    }
+
+    public void testGetActivityInfo_returnsActivityInfo() throws Exception {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testGetActivityInfo_returnsActivityInfo");
+            return;
+        }
+        ActivityInfo activityInfo = buildActivityInfo();
+        DeviceAdminInfo deviceAdminInfo = buildDeviceAdminInfo(activityInfo);
+
+        assertThat(deviceAdminInfo.getActivityInfo()).isEqualTo(activityInfo);
+    }
+
+    public void testIsVisible_visibleComponent_returnsTrue() throws Exception {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testIsVisible_visibleComponent_returnsTrue");
+            return;
+        }
+        ActivityInfo activityInfo = buildActivityInfo(getVisibleComponent());
+        DeviceAdminInfo deviceAdminInfo = buildDeviceAdminInfo(activityInfo);
+
+        assertThat(deviceAdminInfo.isVisible()).isTrue();
+    }
+
+    public void testIsVisible_invisibleComponent_returnsFalse() throws Exception {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testIsVisible_invisibleComponent_returnsFalse");
+            return;
+        }
+        ActivityInfo activityInfo = buildActivityInfo(getInvisibleComponent());
+        DeviceAdminInfo deviceAdminInfo = buildDeviceAdminInfo(activityInfo);
+
+        assertThat(deviceAdminInfo.isVisible()).isFalse();
+    }
+
+    private DeviceAdminInfo buildDeviceAdminInfo(ActivityInfo activityInfo) throws Exception {
+        return new DeviceAdminInfo(mContext, buildResolveInfo(activityInfo));
+    }
+
+    private ResolveInfo buildResolveInfo(ActivityInfo activityInfo) {
+        ResolveInfo resolveInfo = new ResolveInfo();
+        resolveInfo.activityInfo = activityInfo;
+        return resolveInfo;
+    }
+
+    private ActivityInfo buildActivityInfo() throws Exception {
+        return buildActivityInfo(mThirdComponent);
+    }
+
+    private ActivityInfo buildActivityInfo(ComponentName componentName) throws Exception {
+        return mPackageManager.getReceiverInfo(componentName, PackageManager.GET_META_DATA);
     }
 }
diff --git a/tests/admin/src/android/admin/cts/DeviceAdminReceiverTest.java b/tests/admin/src/android/admin/cts/DeviceAdminReceiverTest.java
index 4888476..0407811 100644
--- a/tests/admin/src/android/admin/cts/DeviceAdminReceiverTest.java
+++ b/tests/admin/src/android/admin/cts/DeviceAdminReceiverTest.java
@@ -16,10 +16,12 @@
 
 package android.admin.cts;
 
+import static android.app.admin.DeviceAdminReceiver.ACTION_LOCK_TASK_ENTERING;
 import static android.app.admin.DeviceAdminReceiver.ACTION_PASSWORD_CHANGED;
 import static android.app.admin.DeviceAdminReceiver.ACTION_PASSWORD_FAILED;
 import static android.app.admin.DeviceAdminReceiver.ACTION_PASSWORD_SUCCEEDED;
 import static android.app.admin.DeviceAdminReceiver.ACTION_PASSWORD_EXPIRING;
+import static android.app.admin.DeviceAdminReceiver.EXTRA_LOCK_TASK_PACKAGE;
 
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.argThat;
@@ -209,6 +211,34 @@
                 eq(NETWORK_LOGS_TOKEN), eq(NETWORK_LOGS_COUNT));
     }
 
+    @Presubmit
+    public void testOnReceive_enterLockTaskWithoutPackage_callsCallback() {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testOnReceive_enterLockTask_callsCallback");
+            return;
+        }
+        final Intent intent = new Intent(ACTION_LOCK_TASK_ENTERING);
+
+        mReceiver.onReceive(mContext, intent);
+
+        verify(mReceiver).onLockTaskModeEntering(mContext, intent, null);
+    }
+
+    @Presubmit
+    public void testOnReceive_enterLockTaskWithPackage_callsCallback() {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testOnReceive_enterLockTask_callsCallback");
+            return;
+        }
+        final Intent intent = new Intent(ACTION_LOCK_TASK_ENTERING);
+        final String pkg = "pkg";
+        intent.putExtra(EXTRA_LOCK_TASK_PACKAGE, pkg);
+
+        mReceiver.onReceive(mContext, intent);
+
+        verify(mReceiver).onLockTaskModeEntering(mContext, intent, pkg);
+    }
+
     private Intent actionEq(final String expected) {
         return argThat(x -> expected.equals(x.getAction()));
     }
diff --git a/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java b/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
index c6240d7c..d25d9a4 100644
--- a/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
+++ b/tests/admin/src/android/admin/cts/DevicePolicyManagerTest.java
@@ -17,6 +17,7 @@
 package android.admin.cts;
 
 import static org.junit.Assert.assertNotEquals;
+import static org.testng.Assert.assertThrows;
 
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
@@ -1036,4 +1037,16 @@
             assertProfileOwnerMessage(tolerated.getMessage());
         }
     }
+
+    public void testSetStorageEncryption_noAdmin() {
+        if (!mDeviceAdmin) {
+            Log.w(TAG, "Skipping testSetStorageEncryption_noAdmin");
+            return;
+        }
+        final ComponentName notAdmin = new ComponentName("com.test.foo", ".bar");
+        assertThrows(SecurityException.class,
+            () -> mDevicePolicyManager.setStorageEncryption(notAdmin, true));
+        assertThrows(SecurityException.class,
+            () -> mDevicePolicyManager.setStorageEncryption(notAdmin, false));
+    }
 }
diff --git a/tests/tests/keystore/src/android/keystore/cts/ImportWrappedKeyTest.java b/tests/tests/keystore/src/android/keystore/cts/ImportWrappedKeyTest.java
index 66514c4..c9d2e2b 100644
--- a/tests/tests/keystore/src/android/keystore/cts/ImportWrappedKeyTest.java
+++ b/tests/tests/keystore/src/android/keystore/cts/ImportWrappedKeyTest.java
@@ -58,6 +58,7 @@
 import java.util.Arrays;
 
 import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
 import javax.crypto.spec.GCMParameterSpec;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.OAEPParameterSpec;
@@ -120,12 +121,11 @@
       if (!TestUtils.supports3DES()) {
           return;
         }
-
-        random.setSeed(0);
-
-        byte[] keyMaterial = new byte[24]; //  192 bits in a 168-bit 3DES key
+        KeyGenerator kg = KeyGenerator.getInstance("DESEDE");
+        kg.init(168);
+        byte[] keyMaterial = kg.generateKey().getEncoded();
         random.nextBytes(keyMaterial);
-        byte[] mask = new byte[32]; // Zero mask
+        byte[] mask = new byte[24]; // Zero mask
 
         KeyPair kp;
         try {
@@ -169,17 +169,35 @@
       }
 
       if (TestUtils.hasStrongBox(getContext())) {
-            random.setSeed(0);
-
-            byte[] keyMaterial = new byte[32];
+            KeyGenerator kg = KeyGenerator.getInstance("DESEDE");
+            kg.init(168);
+            byte[] keyMaterial = kg.generateKey().getEncoded();
             random.nextBytes(keyMaterial);
-            byte[] mask = new byte[32]; // Zero mask
+            byte[] mask = new byte[24]; // Zero mask
 
             importWrappedKey(wrapKey(
                     genKeyPair(WRAPPING_KEY_ALIAS, true).getPublic(),
                     keyMaterial,
                     mask,
                     makeAuthList(168, KM_ALGORITHM_3DES)));
+
+            // Use Key
+            KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
+            keyStore.load(null, null);
+
+            assertTrue("Failed to load key after wrapped import", keyStore.containsAlias(ALIAS));
+
+            Key key = keyStore.getKey(ALIAS, null);
+
+            Cipher c = Cipher.getInstance("DESede/CBC/PKCS7Padding");
+            c.init(Cipher.ENCRYPT_MODE, key);
+            IvParameterSpec paramSpec = new IvParameterSpec(c.getIV());
+            byte[] encrypted = c.doFinal("hello, world".getBytes());
+
+            c = Cipher.getInstance("DESede/CBC/PKCS7Padding");
+            c.init(Cipher.DECRYPT_MODE, key, paramSpec);
+
+            assertEquals(new String(c.doFinal(encrypted)), "hello, world");
         } else {
             try {
                 genKeyPair(WRAPPING_KEY_ALIAS, true);
@@ -202,6 +220,25 @@
                     keyMaterial,
                     mask,
                     makeAuthList(keyMaterial.length * 8, KM_ALGORITHM_AES)));
+
+            // Use Key
+            KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
+            keyStore.load(null, null);
+
+            assertTrue("Failed to load key after wrapped import", keyStore.containsAlias(ALIAS));
+
+            Key key = keyStore.getKey(ALIAS, null);
+
+            Cipher c = Cipher.getInstance("AES/CBC/PKCS7Padding");
+            c.init(Cipher.ENCRYPT_MODE, key);
+            IvParameterSpec paramSpec = new IvParameterSpec(c.getIV());
+
+            byte[] encrypted = c.doFinal("hello, world".getBytes());
+
+            c = Cipher.getInstance("AES/CBC/PKCS7Padding");
+            c.init(Cipher.DECRYPT_MODE, key, paramSpec);
+
+            assertEquals(new String(c.doFinal(encrypted)), "hello, world");
         } else {
             try {
               random.setSeed(0);
diff --git a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
index 92c8917..da99a12 100644
--- a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
+++ b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
@@ -1238,9 +1238,10 @@
         return copy;
     }
 
-    public MediaFormat getAdaptiveFormat(int width, int height) {
+    public MediaFormat getAdaptiveFormat(int width, int height, int maxInputSize) {
         mAdaptiveFormat.setInteger(MediaFormat.KEY_MAX_WIDTH, width);
         mAdaptiveFormat.setInteger(MediaFormat.KEY_MAX_HEIGHT, height);
+        mAdaptiveFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, maxInputSize);
         return mAdaptiveFormat;
     }
 
@@ -1248,6 +1249,14 @@
         return mFormat.getString(MediaFormat.KEY_MIME);
     }
 
+    public int getMaxInputSize() {
+        return mFormat.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE);
+    }
+
+    public void setMaxInputSize(int maxInputSize) {
+        mFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, maxInputSize);
+    }
+
     public int getWidth() {
         return mFormat.getInteger(MediaFormat.KEY_WIDTH);
     }
@@ -1305,6 +1314,7 @@
             }
         }
 
+        int maxInputSize = 0;
         ByteBuffer readBuf = ByteBuffer.allocate(2000000);
         for (int ix = 0; ix < numFrames; ix++) {
             int sampleSize = extractor.readSampleData(readBuf, 0 /* offset */);
@@ -1316,6 +1326,11 @@
                 for (ByteBuffer csd: csds) {
                     sampleSize += csd.capacity();
                 }
+
+                if (maxInputSize < sampleSize) {
+                    maxInputSize = sampleSize;
+                }
+
                 ByteBuffer buf = ByteBuffer.allocate(sampleSize);
                 for (ByteBuffer csd: csds) {
                     csd.clear();
@@ -1335,6 +1350,10 @@
         }
         extractor.release();
         testFd.close();
+
+        /* Override MAX_INPUT_SIZE in format, as CSD is being combined
+         * with one of the input buffers */
+        media.setMaxInputSize(maxInputSize);
         return media;
     }
 }
@@ -1587,10 +1606,16 @@
             format = c.mediaList[i].getFormat();
         } else if (mFormatType == FORMAT_ADAPTIVE_FIRST && c.adaptive) {
             format = c.mediaList[i].getAdaptiveFormat(
-                c.mediaList[i].getWidth(), c.mediaList[i].getHeight());
+                c.mediaList[i].getWidth(), c.mediaList[i].getHeight(), c.mediaList[i].getMaxInputSize());
+            for (Media media : c.mediaList) {
+                /* get the largest max input size for all media and use that */
+                if (media.getMaxInputSize() > format.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE)) {
+                    format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, media.getMaxInputSize());
+                }
+            }
         } else if (mFormatType == FORMAT_ADAPTIVE_LARGEST && c.adaptive) {
             /* update adaptive format to max size used */
-            format = c.mediaList[i].getAdaptiveFormat(0, 0);
+            format = c.mediaList[i].getAdaptiveFormat(0, 0, 0);
             for (Media media : c.mediaList) {
                 /* get the largest width, and the largest height independently */
                 if (media.getWidth() > format.getInteger(MediaFormat.KEY_MAX_WIDTH)) {
@@ -1599,6 +1624,9 @@
                 if (media.getHeight() > format.getInteger(MediaFormat.KEY_MAX_HEIGHT)) {
                     format.setInteger(MediaFormat.KEY_MAX_HEIGHT, media.getHeight());
                 }
+                if (media.getMaxInputSize() > format.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE)) {
+                    format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, media.getMaxInputSize());
+                }
             }
         }
         return format;
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 357ffb3..7462566 100755
--- a/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java
+++ b/tests/tests/uiautomation/src/android/app/uiautomation/cts/UiAutomationTest.java
@@ -62,7 +62,6 @@
         grantWriteSecureSettingsPermission(uiAutomation);
     }
 
-    @Presubmit
     public void testWindowContentFrameStats() throws Exception {
         Activity activity = null;
         try {
diff --git a/tests/tests/view/res/layout/view_layout.xml b/tests/tests/view/res/layout/view_layout.xml
index c3b97c5..31d8918 100644
--- a/tests/tests/view/res/layout/view_layout.xml
+++ b/tests/tests/view/res/layout/view_layout.xml
@@ -27,12 +27,12 @@
     <android.view.cts.MockView
         android:id="@+id/mock_view"
         android:layout_width="100px"
-        android:layout_height="200px"/>
+        android:layout_height="100px"/>
 
     <android.view.cts.MockView
         android:id="@+id/scroll_view"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:fadingEdge="horizontal|vertical"
         android:scrollIndicators="top|bottom"
@@ -45,7 +45,7 @@
     <android.view.cts.MockView
         android:id="@+id/scroll_view_2"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:requiresFadingEdge="horizontal|vertical"
         android:fadingEdgeLength="20px"
@@ -57,7 +57,7 @@
     <android.view.cts.MockView
         android:id="@+id/scroll_view_3"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:scrollbarThumbVertical="@drawable/scrollbar_no_size"
         android:scrollbarTrackVertical="@null"
@@ -67,7 +67,7 @@
     <android.view.cts.MockView
         android:id="@+id/scroll_view_4"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:scrollbarThumbVertical="@drawable/scrollbar_thumb"
         android:scrollbarTrackVertical="@null"
@@ -77,7 +77,7 @@
     <android.view.cts.MockView
         android:id="@+id/scroll_view_5"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:scrollbarThumbVertical="@drawable/scrollbar_thumb"
         android:scrollbarTrackVertical="@drawable/scrollbar_track"
@@ -87,7 +87,7 @@
     <android.view.cts.MockView
         android:id="@+id/scroll_view_6"
         android:layout_width="100px"
-        android:layout_height="200px"
+        android:layout_height="20px"
         android:scrollbars="horizontal|vertical"
         android:scrollbarThumbVertical="@drawable/scrollbar_thumb"
         android:scrollbarTrackVertical="@drawable/scrollbar_no_size"
diff --git a/tests/tests/view/src/android/view/cts/SearchEventTest.java b/tests/tests/view/src/android/view/cts/SearchEventTest.java
index 9ae9e61..b679fac 100644
--- a/tests/tests/view/src/android/view/cts/SearchEventTest.java
+++ b/tests/tests/view/src/android/view/cts/SearchEventTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Instrumentation;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.hardware.input.InputManager;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.MediumTest;
@@ -73,6 +74,10 @@
 
     @Test
     public void testBasics() {
+        // Only run for non-watch devices
+        if (mActivity.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) {
+            return;
+        }
         mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_SEARCH);
         SearchEvent se = mActivity.getTestSearchEvent();
         assertNotNull(se);
diff --git a/tests/tests/view/src/android/view/cts/ViewTest.java b/tests/tests/view/src/android/view/cts/ViewTest.java
index a742816..346a513 100644
--- a/tests/tests/view/src/android/view/cts/ViewTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTest.java
@@ -1885,14 +1885,14 @@
         final MockView view = (MockView) mActivity.findViewById(R.id.mock_view);
         assertTrue(view.hasCalledOnMeasure());
         assertEquals(100, view.getMeasuredWidth());
-        assertEquals(200, view.getMeasuredHeight());
+        assertEquals(100, view.getMeasuredHeight());
 
         view.reset();
         mActivityRule.runOnUiThread(view::requestLayout);
         mInstrumentation.waitForIdleSync();
         assertTrue(view.hasCalledOnMeasure());
         assertEquals(100, view.getMeasuredWidth());
-        assertEquals(200, view.getMeasuredHeight());
+        assertEquals(100, view.getMeasuredHeight());
 
         view.reset();
         final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(200, 100);
@@ -2589,7 +2589,7 @@
         assertEquals(0, rect.left);
         assertEquals(0, rect.top);
         assertEquals(100, rect.right);
-        assertEquals(200, rect.bottom);
+        assertEquals(100, rect.bottom);
 
         final LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(0, 300);
         mActivityRule.runOnUiThread(() -> view.setLayoutParams(layoutParams1));