diff --git a/DEPS b/DEPS
index 7d272cb..dc4abdd1 100644
--- a/DEPS
+++ b/DEPS
@@ -138,7 +138,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'ecba713a8dc883a9034d6035f5621f6e95500deb',
+  'skia_revision': 'e08b443f9bda453c016d0cc4f73ad93352d539f3',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -150,22 +150,22 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'c6601ec89b5ee8ce973db0a80da84b1758733c69',
+  'angle_revision': '8b227a3b707d676fab6186384378c35ef3fefc14',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '2d77aea5b5db5f80327cb1b015a999762a845ada',
+  'swiftshader_revision': '67180a07f8d56f2092da889fbf26073d72d6b47d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '84079432edd2ca5889fea4fa57d230df73d5fce7',
+  'pdfium_revision': '215adebfd4d0bfc67e018eebcaffd6cf581657e7',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
   #
   # Note this revision should be updated with
   # third_party/boringssl/roll_boringssl.py, not roll-dep.
-  'boringssl_revision': '2e0d354690064c90ee245c715b92e2bb32492571',
+  'boringssl_revision': '92b7c89e6e8ba82924b57153bea68241cc45f658',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling google-toolbox-for-mac
   # and whatever else without interference from each other.
@@ -269,7 +269,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'shaderc_revision': '213a2a896d0cbe0aeb1fe15283d6475293994974',
+  'shaderc_revision': 'a731ee33655895a809613adb0d7745a019fb2229',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -277,7 +277,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'quiche_revision': '71e9d9ec8450972ec9dfd22be4aba8f2d683a93f',
+  'quiche_revision': 'c1cab06be6b47a0f96c7dff58802680b2b583b88',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
@@ -807,7 +807,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'a2c2c288b71fa6afca3f4d2782e1306d5452449f',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'ee08c785ae2217380beef4122ae9fe13e9e20755',
       'condition': 'checkout_linux',
   },
 
@@ -822,7 +822,7 @@
 
   # For Linux and Chromium OS.
   'src/third_party/cros_system_api': {
-      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'fa76a090a15950aa0cee528c73aee6e2293db90f',
+      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'dfcfcfc36723154f1c574d1885b98d698b2587ac',
       'condition': 'checkout_linux',
   },
 
@@ -832,7 +832,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '764ec87e51cd63d517f05a38a1cc87ff562680e0',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'b1a3e411d38e2a8da3ba7ec81a4b9b95cde0993e',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
@@ -1355,7 +1355,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '6f0b34abee8dba611c253738d955c59f703c147a',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'c2a54dca68d1fe41a3c925c8a59f19a74c9cde70',
+    Var('webrtc_git') + '/src.git' + '@' + 'e3cc4895c26c3cc6ab901ac236ba355aa49e5c35',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1396,7 +1396,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@72b6f11d8c555c5d9b6d9e415381fb74facbbbc5',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@16559b057d78e87b73f2e98258deb87fd192d27e',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
index 0bb5c1c..16f929a 100644
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -362,9 +362,6 @@
   content::GetNetworkService()->CreateNetworkContext(
       MakeRequest(&network_context), std::move(context_params));
 
-  // Quic is not currently supported in WebView (http://crbug.com/763187).
-  content::GetNetworkService()->DisableQuic();
-
   // Pass a CookieManager to the code supporting AwCookieManager.java (i.e., the
   // Cookies APIs).
   PassMojoCookieManagerToAwCookieManager(network_context);
diff --git a/android_webview/browser/aw_content_browser_overlay_manifest.cc b/android_webview/browser/aw_content_browser_overlay_manifest.cc
index 630791f..8a6564f 100644
--- a/android_webview/browser/aw_content_browser_overlay_manifest.cc
+++ b/android_webview/browser/aw_content_browser_overlay_manifest.cc
@@ -22,11 +22,6 @@
                             service_manager::Manifest::InterfaceList<
                                 safe_browsing::mojom::SafeBrowsing,
                                 spellcheck::mojom::SpellCheckHost>())
-          .ExposeCapability("profiling_client",
-                            service_manager::Manifest::InterfaceList<
-                                heap_profiling::mojom::ProfilingClient>())
-          .RequireCapability(content::mojom::kSystemServiceName,
-                             "profiling_client")
           .RequireCapability("heap_profiling", "profiling")
           .RequireCapability("heap_profiling", "heap_profiler")
           .ExposeInterfaceFilterCapability_Deprecated(
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc
index 572d923..d80ed01 100644
--- a/android_webview/browser/net/aw_url_request_context_getter.cc
+++ b/android_webview/browser/net/aw_url_request_context_getter.cc
@@ -305,7 +305,7 @@
   ApplyCmdlineOverridesToNetworkSessionParams(&network_session_params);
   builder.set_http_network_session_params(network_session_params);
 
-  // Quic is not currently supported in WebView (http://crbug.com/763187).
+  // Quic is only supported when network service is enabled.
   builder.SetSpdyAndQuicEnabled(true, false);
 
   builder.SetHttpAuthHandlerFactory(CreateAuthHandlerFactory());
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc
index aa1abe4..33d54be 100644
--- a/android_webview/common/aw_content_client.cc
+++ b/android_webview/common/aw_content_client.cc
@@ -15,12 +15,10 @@
 #include "components/services/heap_profiling/public/cpp/profiling_client.h"
 #include "components/version_info/version_info.h"
 #include "content/public/common/content_switches.h"
-#include "content/public/common/service_manager_connection.h"
-#include "content/public/common/simple_connection_filter.h"
 #include "gpu/config/gpu_info.h"
 #include "gpu/config/gpu_util.h"
 #include "ipc/ipc_message.h"
-#include "services/service_manager/public/cpp/binder_registry.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 
@@ -84,19 +82,18 @@
       AwResource::GetConfigKeySystemUuidMapping());
 }
 
-void AwContentClient::OnServiceManagerConnected(
-    content::ServiceManagerConnection* connection) {
+void AwContentClient::BindChildProcessInterface(
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle* receiving_handle) {
   // This creates a process-wide heap_profiling::ProfilingClient that listens
   // for requests from the HeapProfilingService to start profiling the current
   // process.
   static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client;
-
-  auto registry = std::make_unique<service_manager::BinderRegistry>();
-  registry->AddInterface(
-      base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface,
-                          base::Unretained(profiling_client.get())));
-  connection->AddConnectionFilter(
-      std::make_unique<content::SimpleConnectionFilter>(std::move(registry)));
+  if (interface_name == heap_profiling::ProfilingClient::Name_) {
+    profiling_client->BindToInterface(
+        mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>(
+            std::move(*receiving_handle)));
+  }
 }
 
 }  // namespace android_webview
diff --git a/android_webview/common/aw_content_client.h b/android_webview/common/aw_content_client.h
index 6f3a0a6..abaf747 100644
--- a/android_webview/common/aw_content_client.h
+++ b/android_webview/common/aw_content_client.h
@@ -29,8 +29,9 @@
   void SetGpuInfo(const gpu::GPUInfo& gpu_info) override;
   bool UsingSynchronousCompositing() override;
   media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override;
-  void OnServiceManagerConnected(
-      content::ServiceManagerConnection* connection) override;
+  void BindChildProcessInterface(
+      const std::string& interface_name,
+      mojo::ScopedMessagePipeHandle* receiving_handle) override;
 
   const std::string& gpu_fingerprint() const { return gpu_fingerprint_; }
 
diff --git a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java
index 24c1717..a417f21 100644
--- a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java
+++ b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java
@@ -79,25 +79,12 @@
 
     private SeedLoadAndUpdateRunnable mRunnable;
 
-    // Time as reported by SystemClock.elapsedRealtime() that getSeedBlockingAndLog() started
-    // blocking to wait for the FutureTask that loads the seed. This is written by
-    // getSeedBlockingAndLog() on the main thread and then read by SeedLoadAndUpdateRunnable on a
-    // background thread. It's volatile to ensure the write is visible to the background thread:
-    // https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html
-    // TODO(crbug/936172): Remove this after m75.
-    private volatile long mStartBlockingTime;
-
     private static void recordLoadSeedResult(int result) {
         EnumeratedHistogramSample histogram = new EnumeratedHistogramSample(
                 "Variations.SeedLoadResult", LoadSeedResult.ENUM_SIZE);
         histogram.record(result);
     }
 
-    private static void recordTimesHistogram(String name, long time) {
-        TimesHistogramSample histogram = new TimesHistogramSample(name);
-        histogram.record(time);
-    }
-
     private static boolean isExpired(long seedFileTime) {
         long expirationTime = seedFileTime + SEED_EXPIRATION_MILLIS;
         long now = (new Date()).getTime();
@@ -117,16 +104,6 @@
         private boolean mNeedNewSeed;
         private long mCurrentSeedDate = Long.MIN_VALUE;
 
-        private SeedInfo readSeedFileAndLogTime(File seedFile) {
-            long start = SystemClock.elapsedRealtime();
-            SeedInfo seed = VariationsUtils.readSeedFile(seedFile);
-            if (seed != null) {
-                long end = SystemClock.elapsedRealtime();
-                recordTimesHistogram("Variations.SeedLoadSuccessTime", end - start);
-            }
-            return seed;
-        }
-
         private FutureTask<SeedInfo> mLoadTask = new FutureTask<>(() -> {
             File newSeedFile = VariationsUtils.getNewSeedFile();
             File oldSeedFile = VariationsUtils.getSeedFile();
@@ -137,7 +114,7 @@
             long seedFileTime = 0;
 
             // First check for a new seed.
-            SeedInfo seed = readSeedFileAndLogTime(newSeedFile);
+            SeedInfo seed = VariationsUtils.readSeedFile(newSeedFile);
             if (seed != null) {
                 // If a valid new seed was found, make a note to replace the old seed with
                 // the new seed. (Don't do it now, to avoid delaying FutureTask.get().)
@@ -146,7 +123,7 @@
                 seedFileTime = newSeedFile.lastModified();
             } else {
                 // If there is no new seed, check for an old seed.
-                seed = readSeedFileAndLogTime(oldSeedFile);
+                seed = VariationsUtils.readSeedFile(oldSeedFile);
 
                 if (seed != null) {
                     seedFileTime = oldSeedFile.lastModified();
@@ -184,19 +161,6 @@
         public void run() {
             mLoadTask.run();
             // The loaded seed is now available via get(). The following steps won't block startup.
-            if (mStartBlockingTime == 0) {
-                // Ideally, we haven't blocked yet, and the seed is already available, so we will
-                // block for 0 ms.
-                recordTimesHistogram("Variations.SeedLoadWouldBlockTime", 0);
-            } else {
-                // If we did block, measure the time from when we started blocking until when the
-                // seed became available. This may be longer than the timeout, in which case we
-                // should have proceeded without the seed. This tells us how much we'd need to
-                // increase the timeout to get the seed in this case.
-                long seedAvailableTime = SystemClock.elapsedRealtime();
-                recordTimesHistogram("Variations.SeedLoadWouldBlockTime",
-                                     seedAvailableTime - mStartBlockingTime);
-            }
 
             if (mFoundNewSeed) {
                 // The move happens synchronously. It's not possible for the service to still be
@@ -262,14 +226,15 @@
     }
 
     private SeedInfo getSeedBlockingAndLog() {
-        mStartBlockingTime = SystemClock.elapsedRealtime();
+        long start = SystemClock.elapsedRealtime();
         try {
             try {
                 return mRunnable.get(SEED_LOAD_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
             } finally {
-                long finishBlockingTime = SystemClock.elapsedRealtime();
-                recordTimesHistogram("Variations.SeedLoadBlockingTime",
-                                     finishBlockingTime - mStartBlockingTime);
+                long end = SystemClock.elapsedRealtime();
+                TimesHistogramSample histogram =
+                        new TimesHistogramSample("Variations.SeedLoadBlockingTime");
+                histogram.record(end - start);
             }
         } catch (TimeoutException e) {
             recordLoadSeedResult(LoadSeedResult.LOAD_TIMED_OUT);
diff --git a/ash/app_list/app_list_metrics_unittest.cc b/ash/app_list/app_list_metrics_unittest.cc
index 08ee7b5..84e610c 100644
--- a/ash/app_list/app_list_metrics_unittest.cc
+++ b/ash/app_list/app_list_metrics_unittest.cc
@@ -36,6 +36,8 @@
 
 namespace {
 
+constexpr int kBrowserAppIndexOnShelf = 0;
+
 // A test shelf item delegate that simulates an activated window when a shelf
 // item is selected.
 class TestShelfItemDelegate : public ShelfItemDelegate {
@@ -105,8 +107,9 @@
         GetPrimaryShelf()->GetShelfViewForTesting());
     ShelfView* shelf_view = shelf_test_api.shelf_view();
     const views::ViewModel* view_model = shelf_view->view_model_for_test();
-    gfx::Point center =
-        view_model->view_at(2)->GetBoundsInScreen().CenterPoint();
+    gfx::Point center = view_model->view_at(kBrowserAppIndexOnShelf)
+                            ->GetBoundsInScreen()
+                            .CenterPoint();
 
     // Click on the shelf item.
     ui::test::EventGenerator* generator = GetEventGenerator();
diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc
index bb189893..7da49e70 100644
--- a/ash/drag_drop/drag_drop_controller_unittest.cc
+++ b/ash/drag_drop/drag_drop_controller_unittest.cc
@@ -613,11 +613,11 @@
   std::string clip_str("I am on the clipboard");
   {
     // We first copy some text to the clipboard.
-    ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
     scw.WriteText(base::ASCIIToUTF16(clip_str));
   }
   EXPECT_TRUE(cb->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextType(),
-                                    ui::CLIPBOARD_TYPE_COPY_PASTE));
+                                    ui::ClipboardType::kCopyPaste));
 
   std::unique_ptr<views::Widget> widget = CreateFramelessWidget();
   DragTestView* drag_view = new DragTestView;
@@ -638,8 +638,8 @@
   // Verify the clipboard contents haven't changed
   std::string result;
   EXPECT_TRUE(cb->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextType(),
-                                    ui::CLIPBOARD_TYPE_COPY_PASTE));
-  cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+                                    ui::ClipboardType::kCopyPaste));
+  cb->ReadAsciiText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(clip_str, result);
   // Destroy the clipboard here because ash doesn't delete it.
   // crbug.com/158150.
diff --git a/ash/kiosk_next/kiosk_next_shell_controller_impl.cc b/ash/kiosk_next/kiosk_next_shell_controller_impl.cc
index 0b101713..27e4e63 100644
--- a/ash/kiosk_next/kiosk_next_shell_controller_impl.cc
+++ b/ash/kiosk_next/kiosk_next_shell_controller_impl.cc
@@ -25,28 +25,6 @@
 
 namespace ash {
 
-namespace {
-
-std::unique_ptr<ShelfModel> CreateKioskNextShelfModel() {
-  auto shelf_model = std::make_unique<ShelfModel>();
-
-  DCHECK_EQ(0, shelf_model->ItemIndexByID(ShelfID(kBackButtonId)));
-  DCHECK_EQ(1, shelf_model->ItemIndexByID(ShelfID(kAppListId)));
-
-  ShelfItem back_item = shelf_model->items()[0];
-  ShelfItem home_item = shelf_model->items()[1];
-
-  back_item.title = l10n_util::GetStringUTF16(IDS_ASH_SHELF_BACK_BUTTON_TITLE);
-  home_item.title =
-      l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE);
-
-  shelf_model->Set(0, back_item);
-  shelf_model->Set(1, home_item);
-  return shelf_model;
-}
-
-}  // namespace
-
 KioskNextShellControllerImpl::KioskNextShellControllerImpl() = default;
 
 KioskNextShellControllerImpl::~KioskNextShellControllerImpl() = default;
@@ -115,7 +93,9 @@
       session_controller->GetPrimaryUserSession()->user_info.account_id);
   UMA_HISTOGRAM_BOOLEAN("KioskNextShell.Launched", true);
 
-  shelf_model_ = CreateKioskNextShelfModel();
+  // Since the kiosk next shelf only has navigation buttons (back and home),
+  // its shelf model for apps is empty.
+  shelf_model_ = std::make_unique<ShelfModel>();
 
   // Notify observers that KioskNextShell has been enabled.
   for (KioskNextShellObserver& observer : observer_list_) {
diff --git a/ash/login/ui/lock_screen_sanity_unittest.cc b/ash/login/ui/lock_screen_sanity_unittest.cc
index 63596f8..e68aa322 100644
--- a/ash/login/ui/lock_screen_sanity_unittest.cc
+++ b/ash/login/ui/lock_screen_sanity_unittest.cc
@@ -410,7 +410,7 @@
 
 TEST_F(LockScreenSanityTest, LockScreenKillsPreventsClipboardPaste) {
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16("password"));
   }
 
diff --git a/ash/metrics/user_metrics_recorder_unittest.cc b/ash/metrics/user_metrics_recorder_unittest.cc
index 95fc010..62c4687 100644
--- a/ash/metrics/user_metrics_recorder_unittest.cc
+++ b/ash/metrics/user_metrics_recorder_unittest.cc
@@ -132,11 +132,9 @@
 TEST_F(UserMetricsRecorderTest, ValuesRecordedByRecordShelfItemCounts) {
   CreateUserSessions(1);
 
-  // Make sure the shelf contains the app list launcher and back button.
+  // Make sure the shelf model is empty at first.
   ShelfModel* shelf_model = ShelfModel::Get();
-  ASSERT_EQ(2u, shelf_model->items().size());
-  ASSERT_EQ(TYPE_BACK_BUTTON_DEPRECATED, shelf_model->items()[0].type);
-  ASSERT_EQ(TYPE_APP_LIST_DEPRECATED, shelf_model->items()[1].type);
+  ASSERT_EQ(0u, shelf_model->items().size());
 
   ShelfItem shelf_item;
   shelf_item.type = ash::TYPE_PINNED_APP;
diff --git a/ash/public/cpp/shelf_model.cc b/ash/public/cpp/shelf_model.cc
index ac2d19ac..ed43043d 100644
--- a/ash/public/cpp/shelf_model.cc
+++ b/ash/public/cpp/shelf_model.cc
@@ -56,25 +56,7 @@
   g_shelf_model = shelf_model;
 }
 
-ShelfModel::ShelfModel() {
-  // Add the back button and app list item; its title and delegate are set in
-  // ShelfController. This avoids an ash/public dep on ash/strings, and a
-  // Chrome-side delegate.
-  // TODO(manucornet): The back button and the app list shelf items are now
-  // ignored at the view level and handled separately. Remove the creation bit
-  // here as well.
-  ShelfItem back_button_item;
-  back_button_item.type = TYPE_BACK_BUTTON_DEPRECATED;
-  back_button_item.id = ShelfID(kBackButtonId);
-  const int back_button_index = Add(back_button_item);
-  DCHECK_EQ(0, back_button_index);
-
-  ShelfItem app_list_item;
-  app_list_item.type = TYPE_APP_LIST_DEPRECATED;
-  app_list_item.id = ShelfID(kAppListId);
-  const int app_list_index = Add(app_list_item);
-  DCHECK_EQ(1, app_list_index);
-}
+ShelfModel::ShelfModel() = default;
 
 ShelfModel::~ShelfModel() = default;
 
diff --git a/ash/public/cpp/shelf_model_unittest.cc b/ash/public/cpp/shelf_model_unittest.cc
index 62b207b..93113cd 100644
--- a/ash/public/cpp/shelf_model_unittest.cc
+++ b/ash/public/cpp/shelf_model_unittest.cc
@@ -105,24 +105,13 @@
   DISALLOW_COPY_AND_ASSIGN(ShelfModelTest);
 };
 
-TEST_F(ShelfModelTest, InitializesAppListItem) {
-  EXPECT_EQ(2, model_->item_count());
-  EXPECT_EQ(kBackButtonId, model_->items()[0].id.app_id);
-  EXPECT_EQ(kAppListId, model_->items()[1].id.app_id);
-  // The ShelfModel does not initialize the back button's or AppList's
-  // ShelfItemDelegate. ShelfController does that to prevent Chrome from
-  // creating its own delegate.
-  EXPECT_FALSE(model_->GetShelfItemDelegate(ShelfID(kBackButtonId)));
-  EXPECT_FALSE(model_->GetShelfItemDelegate(ShelfID(kAppListId)));
-}
-
 TEST_F(ShelfModelTest, BasicAssertions) {
   // Add an item.
   ShelfItem item1;
   item1.id = ShelfID("item1");
   item1.type = TYPE_PINNED_APP;
   int index = model_->Add(item1);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_LE(0, model_->ItemIndexByID(item1.id));
   EXPECT_NE(model_->items().end(), model_->ItemByID(item1.id));
   EXPECT_EQ("added=1", observer_->StateStringAndClear());
@@ -138,7 +127,7 @@
 
   // Remove the item.
   model_->RemoveItemAt(index);
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
   EXPECT_EQ(-1, model_->ItemIndexByID(item1.id));
   EXPECT_EQ(model_->items().end(), model_->ItemByID(item1.id));
   EXPECT_EQ("removed=1", observer_->StateStringAndClear());
@@ -148,7 +137,7 @@
   item2.id = ShelfID("item2");
   item2.type = TYPE_PINNED_APP;
   index = model_->Add(item2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_LE(0, model_->ItemIndexByID(item2.id));
   EXPECT_NE(model_->items().end(), model_->ItemByID(item2.id));
   EXPECT_EQ("added=1", observer_->StateStringAndClear());
@@ -166,7 +155,7 @@
   item3.id = ShelfID("item3");
   item3.type = TYPE_PINNED_APP;
   model_->Add(item3);
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_LE(0, model_->ItemIndexByID(item3.id));
   EXPECT_NE(model_->items().end(), model_->ItemByID(item3.id));
   EXPECT_EQ("added=1", observer_->StateStringAndClear());
@@ -188,23 +177,23 @@
 
 // Assertions around where items are added.
 TEST_F(ShelfModelTest, AddIndices) {
-  // Insert a browser shortcut, like Chrome does, it should be added at index 2.
+  // Insert a browser shortcut, like Chrome does, it should be added at index 0.
   ShelfItem browser_shortcut;
   browser_shortcut.id = ShelfID("browser");
   browser_shortcut.type = TYPE_BROWSER_SHORTCUT;
-  EXPECT_EQ(2, model_->Add(browser_shortcut));
+  EXPECT_EQ(0, model_->Add(browser_shortcut));
 
   // App items should be after the browser shortcut.
   ShelfItem item;
   item.type = TYPE_APP;
   item.id = ShelfID("id1");
   int platform_app_index1 = model_->Add(item);
-  EXPECT_EQ(3, platform_app_index1);
+  EXPECT_EQ(1, platform_app_index1);
 
   // Add another platform app item, it should follow first.
   item.id = ShelfID("id2");
   int platform_app_index2 = model_->Add(item);
-  EXPECT_EQ(4, platform_app_index2);
+  EXPECT_EQ(2, platform_app_index2);
 
   // TYPE_PINNED_APP priority is higher than TYPE_APP but same as
   // TYPE_BROWSER_SHORTCUT. So TYPE_PINNED_APP is located after
@@ -212,104 +201,99 @@
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("id3");
   int app_shortcut_index1 = model_->Add(item);
-  EXPECT_EQ(3, app_shortcut_index1);
+  EXPECT_EQ(1, app_shortcut_index1);
 
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("id4");
   int app_shortcut_index2 = model_->Add(item);
-  EXPECT_EQ(4, app_shortcut_index2);
+  EXPECT_EQ(2, app_shortcut_index2);
 
   // Check that AddAt() figures out the correct indexes for app shortcuts.
   // TYPE_PINNED_APP and TYPE_BROWSER_SHORTCUT has the same weight.
-  // So TYPE_PINNED_APP is located at index 2. And, TYPE_BROWSER_SHORTCUT is
-  // located at index 3.
+  // So TYPE_PINNED_APP is located at index 0. And, TYPE_BROWSER_SHORTCUT is
+  // located at index 1.
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("id5");
-  int app_shortcut_index3 = model_->AddAt(2, item);
-  EXPECT_EQ(2, app_shortcut_index3);
+  int app_shortcut_index3 = model_->AddAt(0, item);
+  EXPECT_EQ(0, app_shortcut_index3);
 
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("id6");
-  int app_shortcut_index4 = model_->AddAt(7, item);
-  EXPECT_EQ(6, app_shortcut_index4);
+  int app_shortcut_index4 = model_->AddAt(5, item);
+  EXPECT_EQ(4, app_shortcut_index4);
 
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("id7");
-  int app_shortcut_index5 = model_->AddAt(3, item);
-  EXPECT_EQ(3, app_shortcut_index5);
+  int app_shortcut_index5 = model_->AddAt(1, item);
+  EXPECT_EQ(1, app_shortcut_index5);
 
   // Check that AddAt() figures out the correct indexes for apps.
   item.type = TYPE_APP;
   item.id = ShelfID("id8");
-  int platform_app_index3 = model_->AddAt(4, item);
-  EXPECT_EQ(8, platform_app_index3);
+  int platform_app_index3 = model_->AddAt(2, item);
+  EXPECT_EQ(6, platform_app_index3);
 
   item.type = TYPE_APP;
   item.id = ShelfID("id9");
-  int platform_app_index4 = model_->AddAt(8, item);
-  EXPECT_EQ(8, platform_app_index4);
+  int platform_app_index4 = model_->AddAt(6, item);
+  EXPECT_EQ(6, platform_app_index4);
 
-  EXPECT_EQ(TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
-  EXPECT_EQ(TYPE_BROWSER_SHORTCUT, model_->items()[4].type);
+  EXPECT_EQ(TYPE_BROWSER_SHORTCUT, model_->items()[2].type);
 }
 
 // Test that the indexes for the running applications are properly determined.
 TEST_F(ShelfModelTest, FirstRunningAppIndex) {
-  // Insert the browser shortcut at index 2 and check that the running
+  // Insert the browser shortcut at index 0 and check that the running
   // application index would be behind it.
   ShelfItem item;
   item.id = ShelfID("browser");
   item.type = TYPE_BROWSER_SHORTCUT;
-  EXPECT_EQ(2, model_->Add(item));
-  EXPECT_EQ(3, model_->FirstRunningAppIndex());
+  EXPECT_EQ(0, model_->Add(item));
+  EXPECT_EQ(1, model_->FirstRunningAppIndex());
 
   // Insert an application shortcut and make sure that the running application
   // index would be behind it.
   item.type = TYPE_PINNED_APP;
   item.id = ShelfID("pinned app");
-  EXPECT_EQ(3, model_->Add(item));
-  EXPECT_EQ(4, model_->FirstRunningAppIndex());
+  EXPECT_EQ(1, model_->Add(item));
+  EXPECT_EQ(2, model_->FirstRunningAppIndex());
 
   // Insert a two app items and check the first running app index.
   item.type = TYPE_APP;
   item.id = ShelfID("app1");
-  EXPECT_EQ(4, model_->Add(item));
-  EXPECT_EQ(4, model_->FirstRunningAppIndex());
+  EXPECT_EQ(2, model_->Add(item));
+  EXPECT_EQ(2, model_->FirstRunningAppIndex());
   item.id = ShelfID("app2");
-  EXPECT_EQ(5, model_->Add(item));
-  EXPECT_EQ(4, model_->FirstRunningAppIndex());
+  EXPECT_EQ(3, model_->Add(item));
+  EXPECT_EQ(2, model_->FirstRunningAppIndex());
 }
 
 // Test item reordering on type/weight (eg. pinning) changes. crbug.com/248769.
 TEST_F(ShelfModelTest, ReorderOnTypeChanges) {
-  EXPECT_EQ(TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
-
   // Add three pinned items.
   ShelfItem item1;
   item1.type = TYPE_PINNED_APP;
   item1.id = ShelfID("id1");
   int app1_index = model_->Add(item1);
-  EXPECT_EQ(2, app1_index);
+  EXPECT_EQ(0, app1_index);
 
   ShelfItem item2;
   item2.type = TYPE_PINNED_APP;
   item2.id = ShelfID("id2");
   int app2_index = model_->Add(item2);
-  EXPECT_EQ(3, app2_index);
+  EXPECT_EQ(1, app2_index);
 
   ShelfItem item3;
   item3.type = TYPE_PINNED_APP;
   item3.id = ShelfID("id3");
   int app3_index = model_->Add(item3);
-  EXPECT_EQ(4, app3_index);
+  EXPECT_EQ(2, app3_index);
 
   // Unpinning an item moves it behind the shortcuts.
-  EXPECT_EQ(item3.id, model_->items()[4].id);
+  EXPECT_EQ(item3.id, model_->items()[2].id);
   item2.type = TYPE_APP;
   model_->Set(app2_index, item2);
-  EXPECT_EQ(item2.id, model_->items()[4].id);
+  EXPECT_EQ(item2.id, model_->items()[2].id);
 }
 
 // Test getting the index of ShelfIDs as a check for item presence.
@@ -347,31 +331,31 @@
 
   // Check the initial state.
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
 
   // Pinning a previously unknown app should add an item.
   model_->PinAppWithID(app_id);
   EXPECT_TRUE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
-  EXPECT_EQ(TYPE_PINNED_APP, model_->items()[2].type);
-  EXPECT_EQ(app_id, model_->items()[2].id.app_id);
+  EXPECT_EQ(1, model_->item_count());
+  EXPECT_EQ(TYPE_PINNED_APP, model_->items()[0].type);
+  EXPECT_EQ(app_id, model_->items()[0].id.app_id);
 
   // Pinning the same app id again should have no change.
   model_->PinAppWithID(app_id);
   EXPECT_TRUE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
-  EXPECT_EQ(TYPE_PINNED_APP, model_->items()[2].type);
-  EXPECT_EQ(app_id, model_->items()[2].id.app_id);
+  EXPECT_EQ(1, model_->item_count());
+  EXPECT_EQ(TYPE_PINNED_APP, model_->items()[0].type);
+  EXPECT_EQ(app_id, model_->items()[0].id.app_id);
 
   // Unpinning the app should remove the item.
   model_->UnpinAppWithID(app_id);
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
 
   // Unpinning the same app id again should have no change.
   model_->UnpinAppWithID(app_id);
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
 }
 
 // Test pinning and unpinning a running app, and checking if it is pinned.
@@ -380,7 +364,7 @@
 
   // Check the initial state.
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
 
   // Add an example running app.
   ShelfItem item;
@@ -391,35 +375,35 @@
 
   // The item should be added but not pinned.
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_EQ(TYPE_APP, model_->items()[index].type);
   EXPECT_EQ(item.id, model_->items()[index].id);
 
   // Pinning the item should just change its type.
   model_->PinAppWithID(app_id);
   EXPECT_TRUE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_EQ(TYPE_PINNED_APP, model_->items()[index].type);
   EXPECT_EQ(item.id, model_->items()[index].id);
 
   // Pinning the same app id again should have no change.
   model_->PinAppWithID(app_id);
   EXPECT_TRUE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_EQ(TYPE_PINNED_APP, model_->items()[index].type);
   EXPECT_EQ(item.id, model_->items()[index].id);
 
   // Unpinning the app should leave the item unpinnned but running.
   model_->UnpinAppWithID(app_id);
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_EQ(TYPE_APP, model_->items()[index].type);
   EXPECT_EQ(item.id, model_->items()[index].id);
 
   // Unpinning the same app id again should have no change.
   model_->UnpinAppWithID(app_id);
   EXPECT_FALSE(model_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_EQ(TYPE_APP, model_->items()[index].type);
   EXPECT_EQ(item.id, model_->items()[index].id);
 }
@@ -542,7 +526,7 @@
   item1.id = ShelfID("item1");
   item1.type = TYPE_PINNED_APP;
   model_->Add(item1);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_LE(0, model_->ItemIndexByID(item1.id));
   EXPECT_NE(model_->items().end(), model_->ItemByID(item1.id));
   EXPECT_EQ("added=1", observer_->StateStringAndClear());
@@ -555,7 +539,7 @@
 
   // Remove the item.
   auto taken_delegate = model_->RemoveItemAndTakeShelfItemDelegate(item1.id);
-  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(0, model_->item_count());
   EXPECT_EQ(-1, model_->ItemIndexByID(item1.id));
   EXPECT_EQ(model_->items().end(), model_->ItemByID(item1.id));
   EXPECT_EQ("removed=1", observer_->StateStringAndClear());
diff --git a/ash/shelf/default_shelf_view.cc b/ash/shelf/default_shelf_view.cc
index cc67496..0703b959 100644
--- a/ash/shelf/default_shelf_view.cc
+++ b/ash/shelf/default_shelf_view.cc
@@ -27,11 +27,6 @@
 
 namespace {
 
-// Indices of the start-aligned system buttons (the "back" button in tablet
-// mode, and the "app list" button).
-constexpr int kBackButtonIndex = 0;
-constexpr int kAppListButtonIndex = 1;
-
 // White with ~20% opacity.
 constexpr SkColor kSeparatorColor = SkColorSetARGB(0x32, 0xFF, 0xFF, 0xFF);
 
@@ -199,18 +194,14 @@
     }
   }
 
-  // We've already processed the back and home buttons.
-  for (int i = kAppListButtonIndex + 1; i < view_model()->view_size(); ++i) {
+  for (int i = 0; i < view_model()->view_size(); ++i) {
     if (is_overflow_mode() && i < first_visible_index()) {
       view_model()->set_ideal_bounds(i, gfx::Rect(x, y, 0, 0));
       continue;
     }
 
     view_model()->set_ideal_bounds(
-        i,
-        gfx::Rect(
-            x, y, shelf()->PrimaryAxisValue(kShelfButtonSize, kShelfButtonSize),
-            shelf()->PrimaryAxisValue(kShelfButtonSize, kShelfButtonSize)));
+        i, gfx::Rect(x, y, kShelfButtonSize, kShelfButtonSize));
 
     x = shelf()->PrimaryAxisValue(x + kShelfButtonSize + button_spacing, x);
     y = shelf()->PrimaryAxisValue(y, y + kShelfButtonSize + button_spacing);
@@ -237,12 +228,9 @@
     UpdateAllButtonsVisibilityInOverflowMode();
     return;
   }
-  // In the main shelf, the first visible index is either the back button (in
-  // tablet mode) or the launcher button (otherwise).
-  if (!is_overflow_mode()) {
-    set_first_visible_index(IsTabletModeEnabled() ? kBackButtonIndex
-                                                  : kAppListButtonIndex);
-  }
+  // In the main shelf, the first visible index is either the first app, or -1
+  // if there are no apps.
+  set_first_visible_index(view_model()->view_size() == 0 ? -1 : 0);
 
   for (int i = 0; i < view_model()->view_size(); ++i) {
     // To receive drag event continuously from |drag_view_| during the dragging
@@ -251,13 +239,9 @@
     // FinalizeRipOffDrag().
     if (dragged_off_shelf() && view_model()->view_at(i) == drag_view())
       continue;
-    // If the virtual keyboard is visible, only the back button and the app
-    // list button are shown.
-    const bool is_visible_item = !virtual_keyboard_visible ||
-                                 i == kBackButtonIndex ||
-                                 i == kAppListButtonIndex;
+    // If the virtual keyboard is visible, do not show any apps.
     view_model()->view_at(i)->SetVisible(i <= last_visible_index() &&
-                                         is_visible_item);
+                                         !virtual_keyboard_visible);
   }
 
   overflow_button()->SetVisible(app_centering_strategy.overflow);
@@ -346,8 +330,7 @@
   int available_space_for_screen_centering =
       screen_size - 2 * (status_widget_size + kAppIconGroupMargin);
 
-  // Views at index 0 and 1 are the back button and app list button.
-  if (GetSizeOfAppIcons(view_model()->view_size() - 2, false) <
+  if (GetSizeOfAppIcons(view_model()->view_size(), false) <
       available_space_for_screen_centering) {
     // Everything fits in the center of the screen.
     set_last_visible_index(view_model()->view_size() - 1);
@@ -356,11 +339,11 @@
   }
 
   const int available_size_for_app_icons = GetAvailableSpaceForAppIcons();
-  set_last_visible_index(1);
+  set_last_visible_index(-1);
   // We know that replacing the last app that fits with the overflow button
   // will not change the outcome, so we ignore that case for now.
   while (last_visible_index() < view_model()->view_size() - 1) {
-    if (GetSizeOfAppIcons(last_visible_index(), false) <=
+    if (GetSizeOfAppIcons(last_visible_index() + 2, false) <=
         available_size_for_app_icons) {
       set_last_visible_index(last_visible_index() + 1);
     } else {
diff --git a/ash/shelf/kiosk_next_shelf_view.cc b/ash/shelf/kiosk_next_shelf_view.cc
index 67251316..dc55061 100644
--- a/ash/shelf/kiosk_next_shelf_view.cc
+++ b/ash/shelf/kiosk_next_shelf_view.cc
@@ -109,12 +109,13 @@
                                        Shelf* shelf,
                                        ShelfWidget* shelf_widget)
     : ShelfView(model, shelf, shelf_widget) {
-  // Kiosk next shelf has 2 buttons and it is expected to be used in tablet mode
-  // with bottom shelf alignment. It can be adapted to different requirements,
-  // but they should be explicitly verified first.
+  // Kiosk next shelf has 2 navigation buttons (back and home), no app items
+  // in its shelf model, and it is expected to be used in tablet mode with
+  // bottom shelf alignment. It can be adapted to different requirements, but
+  // they should be explicitly verified first.
   DCHECK(IsTabletModeEnabled());
   DCHECK(shelf->IsHorizontalAlignment());
-  DCHECK_EQ(2, model->item_count());
+  DCHECK_EQ(0, model->item_count());
 }
 
 KioskNextShelfView::~KioskNextShelfView() = default;
@@ -128,14 +129,11 @@
   // code should be removed.
   DCHECK(overflow_button());
   overflow_button()->SetVisible(false);
-
-  set_first_visible_index(0);
-  set_last_visible_index(model()->item_count() - 1);
 }
 
 void KioskNextShelfView::CalculateIdealBounds() {
   DCHECK(shelf()->IsHorizontalAlignment());
-  DCHECK_EQ(2, model()->item_count());
+  DCHECK_EQ(0, model()->item_count());
   DCHECK_GE(kShelfSize, kKioskNextShelfControlHeightDp);
 
   // TODO(https://crbug.com/965690): Button spacing might be relative to shelf
diff --git a/ash/shelf/shelf_controller.cc b/ash/shelf/shelf_controller.cc
index 267f2f59..ff29544 100644
--- a/ash/shelf/shelf_controller.cc
+++ b/ash/shelf/shelf_controller.cc
@@ -106,20 +106,6 @@
       message_center_observer_(this) {
   ShelfModel::SetInstance(&model_);
 
-  // Set the delegate and title string for the back button.
-  model_.SetShelfItemDelegate(ShelfID(kBackButtonId), nullptr);
-  DCHECK_EQ(0, model_.ItemIndexByID(ShelfID(kBackButtonId)));
-  ShelfItem back_item = model_.items()[0];
-  back_item.title = l10n_util::GetStringUTF16(IDS_ASH_SHELF_BACK_BUTTON_TITLE);
-  model_.Set(0, back_item);
-
-  // Set the title string for the home button.
-  DCHECK_EQ(1, model_.ItemIndexByID(ShelfID(kAppListId)));
-  ShelfItem launcher_item = model_.items()[1];
-  launcher_item.title =
-      l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE);
-  model_.Set(1, launcher_item);
-
   Shell::Get()->session_controller()->AddObserver(this);
   Shell::Get()->tablet_mode_controller()->AddObserver(this);
   Shell::Get()->window_tree_host_manager()->AddObserver(this);
diff --git a/ash/shelf/shelf_controller_unittest.cc b/ash/shelf/shelf_controller_unittest.cc
index 4bece12..899b0f37 100644
--- a/ash/shelf/shelf_controller_unittest.cc
+++ b/ash/shelf/shelf_controller_unittest.cc
@@ -54,14 +54,6 @@
 
 using ShelfControllerTest = AshTestBase;
 
-TEST_F(ShelfControllerTest, InitializesBackButtonAndAppListItemDelegate) {
-  ShelfModel* model = Shell::Get()->shelf_controller()->model();
-  EXPECT_EQ(2, model->item_count());
-  EXPECT_EQ(kBackButtonId, model->items()[0].id.app_id);
-  EXPECT_FALSE(model->GetShelfItemDelegate(ShelfID(kBackButtonId)));
-  EXPECT_EQ(kAppListId, model->items()[1].id.app_id);
-}
-
 TEST_F(ShelfControllerTest, Shutdown) {
   // Simulate a display change occurring during shutdown (e.g. due to a screen
   // rotation animation being canceled).
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 9178e00d..b6ce992 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -594,6 +594,11 @@
   return !pip_container->children().empty();
 }
 
+void ShelfLayoutManager::CancelDragOnShelfIfInProgress() {
+  if (drag_status_ == kDragInProgress || drag_status_ == kDragAppListInProgress)
+    CancelDrag();
+}
+
 void ShelfLayoutManager::OnWindowResized() {
   LayoutShelf();
 }
diff --git a/ash/shelf/shelf_layout_manager.h b/ash/shelf/shelf_layout_manager.h
index 721f633..1e9b8b5 100644
--- a/ash/shelf/shelf_layout_manager.h
+++ b/ash/shelf/shelf_layout_manager.h
@@ -126,6 +126,9 @@
   // Returns true if at least one window is visible.
   bool HasVisibleWindow() const;
 
+  // Cancel the drag if the shelf is in drag progress.
+  void CancelDragOnShelfIfInProgress();
+
   // wm::WmSnapToPixelLayoutManager:
   void OnWindowResized() override;
   void SetChildBounds(aura::Window* child,
diff --git a/ash/shelf/shelf_layout_manager_unittest.cc b/ash/shelf/shelf_layout_manager_unittest.cc
index 80d4771..a56dc92 100644
--- a/ash/shelf/shelf_layout_manager_unittest.cc
+++ b/ash/shelf/shelf_layout_manager_unittest.cc
@@ -89,7 +89,7 @@
 namespace {
 
 void PressAppListButton() {
-  ash::Shell::Get()->app_list_controller()->OnAppListButtonPressed(
+  Shell::Get()->app_list_controller()->OnAppListButtonPressed(
       display::Screen::GetScreen()->GetPrimaryDisplay().id(),
       app_list::AppListShowSource::kShelfButton, base::TimeTicks());
 }
@@ -107,6 +107,15 @@
   return AshTestBase::GetPrimaryShelf()->shelf_layout_manager();
 }
 
+gfx::Rect GetScreenAvailableBounds() {
+  const WorkAreaInsets* const work_area =
+      WorkAreaInsets::ForWindow(GetShelfWidget()->GetNativeWindow());
+  gfx::Rect available_bounds = screen_util::GetDisplayBoundsWithShelf(
+      GetShelfWidget()->GetNativeWindow());
+  available_bounds.Inset(work_area->GetAccessibilityInsets());
+  return available_bounds;
+}
+
 // Class which waits till the shelf finishes animating to the target size and
 // counts the number of animation steps.
 class ShelfAnimationWaiter : views::WidgetObserver {
@@ -2643,18 +2652,12 @@
 // Tests that the auto-hide shelf has expected behavior when pressing the
 // AppList button while the shelf is being dragged by gesture (see
 // https://crbug.com/953877).
-TEST_F(ShelfLayoutManagerTest, PressAppListBtnWhenShelfBeingDragged) {
+TEST_F(ShelfLayoutManagerTest, PressAppListBtnWhenAutoHideShelfBeingDragged) {
   // Create a widget to hide the shelf in auto-hide mode.
   CreateTestWidget();
   GetPrimaryShelf()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
   EXPECT_FALSE(GetPrimaryShelf()->IsVisible());
 
-  const WorkAreaInsets* const work_area =
-      WorkAreaInsets::ForWindow(GetShelfWidget()->GetNativeWindow());
-  gfx::Rect available_bounds = screen_util::GetDisplayBoundsWithShelf(
-      GetShelfWidget()->GetNativeWindow());
-  available_bounds.Inset(work_area->GetAccessibilityInsets());
-
   // Emulate to drag the shelf to show it.
   gfx::Point gesture_location = display::Screen::GetScreen()
                                     ->GetPrimaryDisplay()
@@ -2705,7 +2708,7 @@
   // (1) Shelf is hidden
   // (2) Shelf has correct bounds in screen coordinate.
   PressAppListButton();
-  EXPECT_EQ(available_bounds.bottom_left() +
+  EXPECT_EQ(GetScreenAvailableBounds().bottom_left() +
                 gfx::Point(0, -kHiddenShelfInScreenPortion).OffsetFromOrigin(),
             GetPrimaryShelf()
                 ->GetShelfViewForTesting()
@@ -2714,6 +2717,54 @@
   EXPECT_FALSE(GetPrimaryShelf()->IsVisible());
 }
 
+// Tests that the shelf has expected bounds when dragging the shelf by gesture
+// and pressing the AppList button by mouse during drag (see
+// https://crbug.com/968768).
+TEST_F(ShelfLayoutManagerTest, MousePressAppListBtnWhenShelfBeingDragged) {
+  // Drag the shelf upward. Notice that in order to drag shelf instead of
+  // AppList from shelf, we need to drag the shelf downward a little bit then
+  // upward. Because the bug is related with RootView, the event should be sent
+  // through the shelf widget.
+  gfx::Point gesture_location =
+      GetPrimaryShelf()->GetShelfViewForTesting()->bounds().CenterPoint();
+  int delta_y = 1;
+  base::TimeTicks timestamp = base::TimeTicks::Now();
+  ui::GestureEvent start_event = ui::GestureEvent(
+      gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
+      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, delta_y));
+  GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&start_event);
+  delta_y = -5;
+  timestamp += base::TimeDelta::FromMilliseconds(200);
+  ui::GestureEvent update_event = ui::GestureEvent(
+      gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
+      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 0, delta_y));
+  GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&update_event);
+
+  // Press the AppList button by mouse.
+  views::View* app_list_button =
+      GetPrimaryShelf()->GetShelfViewForTesting()->GetAppListButton();
+  GetEventGenerator()->MoveMouseTo(
+      app_list_button->GetBoundsInScreen().CenterPoint());
+  GetEventGenerator()->ClickLeftButton();
+
+  // End the gesture event.
+  delta_y -= 1;
+  gesture_location.Offset(0, delta_y);
+  timestamp += base::TimeDelta::FromMilliseconds(200);
+  ui::GestureEvent scroll_end_event = ui::GestureEvent(
+      gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
+      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END));
+  GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&scroll_end_event);
+
+  // Verify that the shelf has expected bounds.
+  EXPECT_EQ(GetScreenAvailableBounds().bottom_left() +
+                gfx::Point(0, -kShelfSize).OffsetFromOrigin(),
+            GetPrimaryShelf()
+                ->GetShelfViewForTesting()
+                ->GetBoundsInScreen()
+                .origin());
+}
+
 // Tests that tap outside of the AUTO_HIDE_SHOWN shelf should hide it.
 TEST_F(ShelfLayoutManagerTest, TapOutsideOfAutoHideShownShelf) {
   views::Widget* widget = CreateTestWidget();
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 4729d6c..2130b20 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -86,9 +86,6 @@
 constexpr int kMarginBetweenAppsAndOverflow = 16;
 }  // namespace
 
-constexpr int kBackButtonIndex = 0;
-constexpr int kAppListButtonIndex = 1;
-
 // The distance of the cursor from the outer rim of the shelf before it
 // separates.
 constexpr int kRipOffDistance = 48;
@@ -168,11 +165,13 @@
     ShelfView* main_shelf = shelf_view_->main_shelf();
     ShelfView* overflow_shelf = shelf_view_->overflow_shelf();
 
+    if (IsTabletModeEnabled())
+      focusable_views.push_back(main_shelf->GetBackButton());
+
+    focusable_views.push_back(main_shelf->GetAppListButton());
     for (int i = main_shelf->first_visible_index();
          i <= main_shelf->last_visible_index(); ++i) {
-      views::View* view = main_shelf->view_model()->view_at(i);
-      if (view != main_shelf->GetBackButton() || IsTabletModeEnabled())
-        focusable_views.push_back(view);
+      focusable_views.push_back(main_shelf->view_model()->view_at(i));
     }
     if (main_shelf->GetOverflowButton()->GetVisible())
       focusable_views.push_back(main_shelf->GetOverflowButton());
@@ -356,12 +355,10 @@
   std::unique_ptr<BackButton> back_button_ptr = CreateBackButton();
   ConfigureChildView(back_button_ptr.get());
   back_button_ = AddChildView(std::move(back_button_ptr));
-  view_model_->Add(back_button_, kBackButtonIndex);
 
   std::unique_ptr<AppListButton> home_button_ptr = CreateHomeButton();
   ConfigureChildView(home_button_ptr.get());
   home_button_ = AddChildView(std::move(home_button_ptr));
-  view_model_->Add(home_button_, kAppListButtonIndex);
   home_button_->set_context_menu_controller(this);
 
   for (ShelfItems::const_iterator i = items.begin(); i != items.end(); ++i) {
@@ -436,15 +433,9 @@
 
 void ShelfView::UpdateVisibleShelfItemBoundsUnion() {
   visible_shelf_item_bounds_union_.SetRect(0, 0, 0, 0);
-  for (int i = first_visible_index_; i <= last_visible_index_; ++i) {
+  for (int i = std::max(0, first_visible_index_); i <= last_visible_index_;
+       ++i) {
     const views::View* child = view_model_->view_at(i);
-    // Since shelf items are centered, we don't want to include the app list
-    // button, otherwise tooltips will show when hovering a potentially large
-    // amount of white space between the app list button and the first item.
-    if (child == GetAppListButton())
-      continue;
-    if (!IsTabletModeEnabled() && child == GetBackButton())
-      continue;
     if (ShouldShowTooltipForView(child))
       visible_shelf_item_bounds_union_.Union(child->GetMirroredBounds());
   }
@@ -500,9 +491,14 @@
 }
 
 gfx::Size ShelfView::CalculatePreferredSize() const {
-  // Use |last_visible_index_| != -1 as sentinel to ensure
-  // CalculateIdealBounds() is called before getting here.
-  DCHECK_NE(last_visible_index_, -1);
+  if (model_->item_count() == 0) {
+    // There are no apps.
+    return shelf_->IsHorizontalAlignment()
+               ? gfx::Size(GetAppListButton()->bounds().right(),
+                           ShelfConstants::shelf_size())
+               : gfx::Size(ShelfConstants::shelf_size(),
+                           GetAppListButton()->bounds().bottom());
+  }
 
   int last_button_index = last_visible_index_;
   if (!is_overflow_mode() && overflow_button_ && overflow_button_->GetVisible())
@@ -845,12 +841,15 @@
 views::View* ShelfView::FindFirstFocusableChild() {
   if (is_overflow_mode())
     return main_shelf()->FindFirstFocusableChild();
-  return view_model_->view_at(first_visible_index());
+  return IsTabletModeEnabled() ? static_cast<views::View*>(GetBackButton())
+                               : static_cast<views::View*>(GetAppListButton());
 }
 
 views::View* ShelfView::FindLastFocusableChild() {
   if (IsShowingOverflowBubble())
     return overflow_shelf()->FindLastFocusableChild();
+  if (view_model_->view_size() == 0)
+    return static_cast<views::View*>(GetAppListButton());
   return overflow_button_->GetVisible()
              ? overflow_button_
              : view_model_->view_at(last_visible_index());
@@ -1035,11 +1034,18 @@
   if (event.flags() & ui::EF_IS_DOUBLE_CLICK)
     return false;
 
+  const bool repost = IsRepostEvent(event);
+
+  // The back and app buttons are not part of the view model, treat them
+  // separately.
+  if (view == GetAppListButton() || view == GetBackButton())
+    return !repost;
+
   // Ignore if this is a repost event on the last pressed shelf item.
   int index = view_model_->GetIndexOfView(view);
   if (index == -1)
     return false;
-  return !IsRepostEvent(event) || last_pressed_index_ != index;
+  return !repost || last_pressed_index_ != index;
 }
 
 void ShelfView::SwapButtons(ShelfButton* button_to_swap, bool with_next) {
@@ -1060,8 +1066,7 @@
   }
 
   const int target_index = with_next ? src_index + 1 : src_index - 1;
-  const int first_swappable_index =
-      std::max(first_visible_index_, kAppListButtonIndex + 1);
+  const int first_swappable_index = std::max(first_visible_index_, 0);
   const int last_swappable_index = last_visible_index_;
   if (src_index == -1 || (target_index > last_swappable_index) ||
       (target_index < first_swappable_index)) {
@@ -1091,7 +1096,7 @@
     shelf_menu_model_adapter_->Cancel();
 
   int index = view_model_->GetIndexOfView(view);
-  if (index == -1 || view_model_->view_size() <= 1)
+  if (index == -1 || view_model_->view_size() < 1)
     return;  // View is being deleted, ignore request.
 
   if (view == GetAppListButton() || view == GetBackButton())
@@ -1175,7 +1180,6 @@
 }
 
 void ShelfView::LayoutOverflowButton() const {
-  DCHECK_NE(0, view_model_->view_size());
   int x = 0;
   int y = 0;
   if (last_visible_index_ != -1) {
@@ -1212,7 +1216,7 @@
   if (home->border())
     home->SetBorder(views::NullBorder());
 
-  for (int i = kAppListButtonIndex + 1; i < view_model_->view_size(); ++i) {
+  for (int i = 0; i < view_model_->view_size(); ++i) {
     View* view = view_model_->view_at(i);
     bounds_animator_->AnimateViewTo(view, view_model_->ideal_bounds(i));
     // Now that the item animation starts, we have to make sure that the
@@ -1636,12 +1640,8 @@
       max_index = i;
     }
   }
-  DCHECK_EQ(1, model_->GetItemIndexForType(TYPE_APP_LIST_DEPRECATED));
   min_index =
-      std::max(min_index,
-               is_overflow_mode()
-                   ? first_visible_index_
-                   : model_->GetItemIndexForType(TYPE_APP_LIST_DEPRECATED) + 1);
+      std::max(min_index, is_overflow_mode() ? first_visible_index_ : 0);
   max_index = std::min(max_index, last_visible_index_);
   return std::pair<int, int>(min_index, max_index);
 }
diff --git a/ash/shelf/shelf_view.h b/ash/shelf/shelf_view.h
index 53981c0..a8d2283 100644
--- a/ash/shelf/shelf_view.h
+++ b/ash/shelf/shelf_view.h
@@ -77,38 +77,33 @@
 //
 // If there is enough screen space, all icons can fit:
 //
-// -------------------------------------------------------------------------
-// | 1 |         | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
-// -------------------------------------------------------------------------
-//   ^                                                        ^
-//   |                                                        |
-// first_visible_index = 1 (app list)                 last_visible_index = 12
-// (back button = 0 is hidden)
+// ------------------------------------------------------------
+// | o |         | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
+// ------------------------------------------------------------
+//                 ^                                        ^
+//                 |                                        |
+//             first_visible_index = 0            last_visible_index = 10
 //
-// Where:
-//     0 = back button (only shown in tablet mode)
-//     1 = app list button
+// Where "o" is the home button (back button is hidden).
 //
 // If screen space is more constrained, some icons are placed in an overflow
 // menu (which holds its own instance of ShelfView):
 //
-//             first_visible_index = 10          last_visible_index = 13
-//                    (for the overflow)         (for overflow)
-//                                     |               |
-//                                     v               v
+//                first_visible_index = 8        last_visible_index = 11
+//                     (for the overflow)        (for overflow)
+//                                     |             |
+//                                     v             v
 //                                   ---------------------
-//                                   | 10 | 11 | 12 | 13 |
+//                                   | 8 | 9 | 10 | 11 |
 //                                   ---------------------
-//                                           ^
+//                                             ^
 // --------------------------------------------------
-// | 1 |    | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... |
+// | o |    | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... |
 // --------------------------------------------------
-//   ^                                    ^    ^
-//   |                                    |    L-- overflow button
-// first_visible_index = 1                |
-//   (for the main shelf)        last_visible_index = 9
-//   (back button = 0
-//             is hidden)
+//            ^                           ^    ^
+//            |                           |    L-- overflow button
+//     first_visible_index = 0            |
+//      (for the main shelf)        last_visible_index = 7
 //
 
 class ASH_EXPORT ShelfView : public views::View,
@@ -320,9 +315,9 @@
   int last_visible_index() const { return last_visible_index_; }
   int number_of_visible_apps() const {
     if (is_overflow_mode())
-      return last_visible_index_ - first_visible_index_ + 1;
+      return std::max(0, last_visible_index_ - first_visible_index_ + 1);
     else
-      return last_visible_index_ - 1;
+      return std::max(0, last_visible_index_ + 1);
   }
   ShelfWidget* shelf_widget() const { return shelf_widget_; }
   OverflowBubble* overflow_bubble() { return overflow_bubble_.get(); }
@@ -554,15 +549,15 @@
   // item in |model_|.
   std::unique_ptr<views::ViewModel> view_model_;
 
-  // Index of the first visible launcher item. This is either:
-  // * 0 (back button) for the main shelf when tablet mode is on
-  // * 1 (app list button) for the main shelf when tablet mode is off
-  // * > 1 when this shelf view is the overflow shelf view and only shows a
+  // Index of the first visible app item. This is either:
+  // * -1 if there are no apps.
+  // * 0 if there is at least one app.
+  // > 0 when this shelf view is the overflow shelf view and only shows a
   //   subset of items.
-  int first_visible_index_ = 0;
+  int first_visible_index_ = -1;
 
-  // Last index of a launcher button that is visible (does not go into
-  // overflow).
+  // Last index of an app launcher button that is visible (does not go into
+  // overflow), or -1 if there are no apps.
   int last_visible_index_ = -1;
 
   std::unique_ptr<views::BoundsAnimator> bounds_animator_;
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 941bc46..9e8f0cb 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -512,10 +512,9 @@
     // Add 5 app shelf buttons for testing.
     for (int i = 0; i < 5; ++i) {
       ShelfID id = AddAppShortcut();
-      // The back button is located at index 0, the app icon is located at
-      // index 1, and the browser shortcut is located at index 2. So we should
-      // start to add app shortcuts at index 3.
-      id_map->insert(id_map->begin() + i + 3,
+      // The browser shortcut is located at index 0. So we should start to add
+      // app shortcuts at index 1.
+      id_map->insert(id_map->begin() + i + 1,
                      std::make_pair(id, GetButtonByID(id)));
     }
     ASSERT_NO_FATAL_FAILURE(CheckModelIDs(*id_map));
@@ -1017,34 +1016,34 @@
   SetupForDragTest(&id_map);
 
   // Dragging browser shortcut at index 1.
-  EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT);
-  views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false);
-  std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5);
+  EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT);
+  views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false);
+  std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3);
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
   shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false);
-  EXPECT_TRUE(model_->items()[4].type == TYPE_BROWSER_SHORTCUT);
+  EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT);
 
   // Dragging changes model order.
-  dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false);
-  std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5);
+  dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false);
+  std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3);
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
 
   // Cancelling the drag operation restores previous order.
   shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, true);
-  std::rotate(id_map.begin() + 2, id_map.begin() + 4, id_map.begin() + 5);
+  std::rotate(id_map.begin(), id_map.begin() + 2, id_map.begin() + 3);
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
 
   // Deleting an item keeps the remaining intact.
-  dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false);
-  model_->RemoveItemAt(2);
-  id_map.erase(id_map.begin() + 2);
+  dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false);
+  model_->RemoveItemAt(0);
+  id_map.erase(id_map.begin());
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
   shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false);
 
   // Adding a shelf item cancels the drag and respects the order.
-  dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false);
+  dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false);
   ShelfID new_id = AddAppShortcut();
-  id_map.insert(id_map.begin() + 7,
+  id_map.insert(id_map.begin() + 5,
                 std::make_pair(new_id, GetButtonByID(new_id)));
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
   shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false);
@@ -1088,77 +1087,35 @@
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
 }
 
-// Ensure the app list button cannot be dragged and other items cannot be
-// dragged in front of the back button or app list button.
-TEST_F(ShelfViewTest, DragWithNotDraggableItemInFront) {
-  // The expected id order is initialized as: 1, 2, 3, 4, 5, 6, 7
-  std::vector<std::pair<ShelfID, views::View*>> id_map;
-  SetupForDragTest(&id_map);
-
-  // Ensure that the back button cannot be dragged.
-  // The expected id order is unchanged: 1, 2, 3, 4, 5, 6, 7
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 1, shelf_view_, id_map));
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 2, shelf_view_, id_map));
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 5, shelf_view_, id_map));
-
-  // Ensure that the app list button cannot be dragged.
-  // The expected id order is unchanged: 1, 2, 3, 4, 5, 6, 7
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 1, shelf_view_, id_map));
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 2, shelf_view_, id_map));
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 5, shelf_view_, id_map));
-
-  // Ensure that items cannot be dragged in front of the back button.
-  // Attempting to do so will order buttons immediately after the app list.
-  // Dragging the third button in front should no-op: 1, 2, 3, 4, 5, 6, 7
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(2, 0, shelf_view_, id_map));
-  // Dragging the fourth button in front should yield: 1, 2, 4, 3, 5, 6, 7
-  std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 4);
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(3, 0, shelf_view_, id_map));
-  // Dragging the sixth button in front should yield: 1, 2, 6, 4, 3, 5, 7
-  std::rotate(id_map.begin() + 2, id_map.begin() + 5, id_map.begin() + 6);
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(5, 0, shelf_view_, id_map));
-
-  // Ensure that items cannot be dragged in front of the app list button.
-  // Attempting to do so will order buttons immediately after the app list.
-  // Dragging the third button in front should no-op: 1, 2, 6, 4, 3, 5, 7
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(2, 1, shelf_view_, id_map));
-  // Dragging the fourth button in front should yield: 1, 2, 4, 6, 3, 5, 7
-  std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 4);
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(3, 1, shelf_view_, id_map));
-  // Dragging the sixth button in front should yield: 1, 2, 5, 4, 6, 3, 7
-  std::rotate(id_map.begin() + 2, id_map.begin() + 5, id_map.begin() + 6);
-  ASSERT_NO_FATAL_FAILURE(DragAndVerify(5, 1, shelf_view_, id_map));
-}
-
 // Ensure that clicking on one item and then dragging another works as expected.
 TEST_F(ShelfViewTest, ClickOneDragAnother) {
   std::vector<std::pair<ShelfID, views::View*>> id_map;
   SetupForDragTest(&id_map);
 
-  // A click on the item at index 2 is simulated.
-  SimulateClick(3);
+  // A click on the item at index 1 is simulated.
+  SimulateClick(1);
 
-  // Dragging the browser item at index 1 should change the model order.
-  EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT);
-  views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false);
-  std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5);
+  // Dragging the browser item at index 0 should change the model order.
+  EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT);
+  views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false);
+  std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3);
   ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
   shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false);
-  EXPECT_TRUE(model_->items()[4].type == TYPE_BROWSER_SHORTCUT);
+  EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT);
 }
 
 // Tests that double-clicking an item does not activate it twice.
 TEST_F(ShelfViewTest, ClickingTwiceActivatesOnce) {
   // Watch for selection of the browser shortcut.
   ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker;
-  model_->SetShelfItemDelegate(model_->items()[2].id,
+  model_->SetShelfItemDelegate(model_->items()[0].id,
                                base::WrapUnique(selection_tracker));
 
   // A single click selects the item, but a double-click does not.
   EXPECT_EQ(0u, selection_tracker->item_selected_count());
-  SimulateClick(2);
+  SimulateClick(0);
   EXPECT_EQ(1u, selection_tracker->item_selected_count());
-  SimulateDoubleClick(2);
+  SimulateDoubleClick(0);
   EXPECT_EQ(1u, selection_tracker->item_selected_count());
 }
 
@@ -1821,8 +1778,9 @@
   ShelfView* shelf_view_for_secondary =
       secondary_shelf->GetShelfViewForTesting();
 
+  AddAppShortcut();
   ShelfViewTestAPI test_api_for_secondary_shelf_view(shelf_view_for_secondary);
-  ShelfAppButton* button = test_api_for_secondary_shelf_view.GetButton(2);
+  ShelfAppButton* button = test_api_for_secondary_shelf_view.GetButton(0);
 
   // Fetch the start point of dragging.
   gfx::Point start_point = button->GetBoundsInScreen().CenterPoint();
@@ -1931,10 +1889,10 @@
 
   ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker;
   model_->SetShelfItemDelegate(
-      model_->items()[2].id,
+      model_->items()[0].id,
       base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker));
 
-  SimulateClick(2);
+  SimulateClick(0);
   EXPECT_EQ(1,
             user_action_tester.GetActionCount("Launcher_ButtonPressed_Mouse"));
 }
@@ -1947,10 +1905,10 @@
   ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker;
   selection_tracker->set_item_selected_action(SHELF_ACTION_NEW_WINDOW_CREATED);
   model_->SetShelfItemDelegate(
-      model_->items()[2].id,
+      model_->items()[0].id,
       base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker));
 
-  SimulateClick(2);
+  SimulateClick(0);
   EXPECT_EQ(1, user_action_tester.GetActionCount("Launcher_LaunchTask"));
 }
 
@@ -1962,14 +1920,14 @@
 
   ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker;
   model_->SetShelfItemDelegate(
-      model_->items()[2].id,
+      model_->items()[0].id,
       base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker));
 
   selection_tracker->set_item_selected_action(SHELF_ACTION_WINDOW_MINIMIZED);
-  SimulateClick(2);
+  SimulateClick(0);
 
   selection_tracker->set_item_selected_action(SHELF_ACTION_WINDOW_ACTIVATED);
-  SimulateClick(2);
+  SimulateClick(0);
 
   histogram_tester.ExpectTotalCount(
       kTimeBetweenWindowMinimizedAndActivatedActionsHistogramName, 1);
@@ -2318,7 +2276,7 @@
 
   // At the start, we have exactly one app icon for the browser. That should
   // be centered on the screen.
-  const ShelfAppButton* button1 = GetButtonByID(model_->items()[2].id);
+  const ShelfAppButton* button1 = GetButtonByID(model_->items()[0].id);
   ExpectWithinOnePixel(screen_center,
                        button1->GetBoundsInScreen().CenterPoint().x());
   // Also check that the distance between the icon edge and the screen edge is
@@ -2329,7 +2287,7 @@
   const int apps_that_can_easily_fit_at_center_of_screen = 3;
   std::vector<ShelfAppButton*> app_buttons;
   // Start with just the browser app button.
-  app_buttons.push_back(GetButtonByID(model_->items()[2].id));
+  app_buttons.push_back(GetButtonByID(model_->items()[0].id));
   int n_buttons = 1;
 
   // Now repeat the same process by adding apps until they can't fit at the
@@ -2370,22 +2328,22 @@
 }
 
 TEST_F(ShelfViewTest, FirstAndLastVisibleIndex) {
-  // At the start, the only things visible on the shelf are the app list button
-  // (index 1) and the browser app button (index 2).
-  EXPECT_EQ(1, shelf_view_->first_visible_index());
-  EXPECT_EQ(2, shelf_view_->last_visible_index());
-  // By enabling tablet mode, the back button (index 0) should become visible.
+  // At the start, the only visible app on the shelf is the browser app button
+  // (index 0).
+  EXPECT_EQ(0, shelf_view_->first_visible_index());
+  EXPECT_EQ(0, shelf_view_->last_visible_index());
+  // By enabling tablet mode, the back button (index 0) should become visible,
+  // but that does not change the first and last visible indices.
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(0, shelf_view_->first_visible_index());
-  EXPECT_EQ(2, shelf_view_->last_visible_index());
-  // And things should return back to the previous state once tablet mode is off
-  // again.
+  EXPECT_EQ(0, shelf_view_->last_visible_index());
+  // Turn tablet mode off again.
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false);
-  EXPECT_EQ(1, shelf_view_->first_visible_index());
-  EXPECT_EQ(2, shelf_view_->last_visible_index());
+  EXPECT_EQ(0, shelf_view_->first_visible_index());
+  EXPECT_EQ(0, shelf_view_->last_visible_index());
   // Now let's add some apps until the overflow button shows up, each time
   // checking the first and last visible indices are what we expect.
-  int last_visible_index = 2;
+  int last_visible_index = 0;
   int last_visible_index_before_overflow;
   ShelfID last_added_item_id;
   while (true) {
@@ -2395,7 +2353,7 @@
       break;
     }
     last_visible_index++;
-    EXPECT_EQ(1, shelf_view_->first_visible_index());
+    EXPECT_EQ(0, shelf_view_->first_visible_index());
     EXPECT_EQ(last_visible_index, shelf_view_->last_visible_index());
   }
 
@@ -2409,7 +2367,7 @@
   // Now remove the last item we just added. That should get rid of the
   // overflow button, and get back to the previous state.
   RemoveByID(last_added_item_id);
-  EXPECT_EQ(1, shelf_view_->first_visible_index());
+  EXPECT_EQ(0, shelf_view_->first_visible_index());
   EXPECT_EQ(last_visible_index_before_overflow,
             shelf_view_->last_visible_index());
 
@@ -2738,7 +2696,7 @@
   }
 
   void InitBrowserButtonInkDrop() {
-    browser_button_ = test_api_->GetButton(2);
+    browser_button_ = test_api_->GetButton(0);
 
     auto browser_button_ink_drop =
         std::make_unique<InkDropSpy>(std::make_unique<views::InkDropImpl>(
@@ -3099,7 +3057,7 @@
   InitBrowserButtonInkDrop();
 
   // Set a delegate for the shelf item that returns an app list menu.
-  model_->SetShelfItemDelegate(model_->items()[2].id,
+  model_->SetShelfItemDelegate(model_->items()[0].id,
                                std::make_unique<ListMenuShelfItemDelegate>());
 
   views::Button* button = browser_button_;
@@ -3653,27 +3611,28 @@
 TEST_F(ShelfViewFocusTest, Basic) {
   EXPECT_FALSE(shelf_view_->IsShowingOverflowBubble());
 
-  // There are five buttons. The back button and launcher are always there, the
-  // browser shortcut is added in ShelfViewTest and the two test apps added in
-  // ShelfViewFocusTest.
-  EXPECT_EQ(5, test_api_->GetButtonCount());
+  // There are five buttons, including 3 app buttons. The back button and
+  // launcher are always there, the browser shortcut is added in
+  // ShelfViewTest and the two test apps added in ShelfViewFocusTest.
+  EXPECT_EQ(3, test_api_->GetButtonCount());
   EXPECT_TRUE(shelf_view_->shelf_widget()->IsActive());
 
-  // The item at index 1 instead of index 0 is focused initially because index 0
-  // is the back button which is only visible in tablet mode.
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  // The home button is focused initially because the back button is only
+  // visible in tablet mode.
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
 }
 
 // Tests that the expected views have focus when cycling through shelf items
 // with tab.
 TEST_F(ShelfViewFocusTest, ForwardCycling) {
-  // Pressing tab once should advance focus to the next element.
+  // Pressing tab once should advance focus to the next element after the
+  // home button, which is the first app.
   DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus());
+  EXPECT_TRUE(test_api_->GetViewAt(0)->HasFocus());
 
   DoTab();
   DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus());
+  EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus());
 }
 
 // Tests that the expected views have focus when cycling backwards through shelf
@@ -3681,14 +3640,15 @@
 TEST_F(ShelfViewFocusTest, BackwardCycling) {
   // The first element is currently focused. Let's advance to the last element
   // first.
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
   DoTab();
   DoTab();
   DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus());
+  EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus());
 
   // Pressing shift tab once should advance focus to the previous element.
   DoShiftTab();
-  EXPECT_TRUE(test_api_->GetViewAt(3)->HasFocus());
+  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
 }
 
 // Verify that the overflow bubble does not activate when it is opened.
@@ -3703,15 +3663,16 @@
 
 // Verifies that focus moves as expected between the shelf and the status area.
 TEST_F(ShelfViewFocusTest, FocusCyclingBetweenShelfAndStatusWidget) {
-  // The first element of the shelf is focused at start.
+  // The first element of the shelf (the home button) is focused at start.
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
 
   // Focus the next few elements.
   DoTab();
+  EXPECT_TRUE(test_api_->GetViewAt(0)->HasFocus());
+  DoTab();
+  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  DoTab();
   EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus());
-  DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(3)->HasFocus());
-  DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus());
 
   // This is the last element. Tabbing once more should go into the status
   // area.
@@ -3721,7 +3682,7 @@
 
   // Shift-tab: we should be back at the last element in the shelf.
   DoShiftTab();
-  EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus());
+  EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus());
   ExpectNotFocused(status_area_);
 
   // Go into the status area again.
@@ -3732,7 +3693,7 @@
   // And keep going forward, now we should be cycling back to the first shelf
   // element.
   DoTab();
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
   ExpectNotFocused(status_area_);
 }
 
@@ -3783,14 +3744,14 @@
 
   EXPECT_EQ(last_item_on_main_shelf_index_, items_ - 5);
   EXPECT_TRUE(shelf_view_->shelf_widget()->IsActive());
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
 }
 
 TEST_F(ShelfViewOverflowFocusTest, OpenOverflow) {
   OpenOverflow();
   ASSERT_TRUE(overflow_shelf_test_api_);
   EXPECT_TRUE(shelf_view_->IsShowingOverflowBubble());
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
 }
 
 // Tests that when cycling through the items with tab, the items in the overflow
@@ -3897,7 +3858,7 @@
   // Focus the shelf again.
   DoTab();
   ExpectFocused(shelf_view_);
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
   ExpectNotFocused(status_area_);
 
   // Now advance to the last item on the main shelf.
@@ -3935,7 +3896,7 @@
   while (status_area_->GetWidget()->IsActive())
     DoTab();
   // This should have brought focus to the first element on the shelf.
-  EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus());
 }
 
 class KioskNextShelfViewTest : public ShelfViewTest {
@@ -3993,7 +3954,7 @@
   EXPECT_TRUE(shelf_view_->GetBackButton()->GetVisible());
 
   ASSERT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
-  EXPECT_EQ(1, shelf_view_->last_visible_index());
+  EXPECT_EQ(-1, shelf_view_->last_visible_index());
 }
 
 // Tests that control buttons (back/home) are positioned correctly in Kiosk Next
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc
index 851c7e5..3670b57 100644
--- a/ash/shelf/shelf_widget.cc
+++ b/ash/shelf/shelf_widget.cc
@@ -631,8 +631,16 @@
 }
 
 void ShelfWidget::OnMouseEvent(ui::MouseEvent* event) {
-  if (event->type() == ui::ET_MOUSE_PRESSED)
+  if (event->type() == ui::ET_MOUSE_PRESSED) {
     keyboard::KeyboardController::Get()->HideKeyboardImplicitlyByUser();
+
+    // If the shelf receives the mouse pressing event, the RootView of the shelf
+    // will reset the gesture handler. As a result, if the shelf is in drag
+    // progress when the mouse is pressed, shelf will not receive the gesture
+    // end event. So explicitly cancel the drag in this scenario.
+    shelf_layout_manager_->CancelDragOnShelfIfInProgress();
+  }
+
   views::Widget::OnMouseEvent(event);
 }
 
diff --git a/ash/shelf/shelf_window_watcher.cc b/ash/shelf/shelf_window_watcher.cc
index 47bfed8..7b36a92e 100644
--- a/ash/shelf/shelf_window_watcher.cc
+++ b/ash/shelf/shelf_window_watcher.cc
@@ -237,7 +237,7 @@
 
   // Update an existing ShelfWindowWatcher item when a window property changes.
   int index = model_->ItemIndexByID(GetShelfID(window));
-  if (index > 0 && user_windows_with_items_.count(window) > 0) {
+  if (index >= 0 && user_windows_with_items_.count(window) > 0) {
     ShelfItem item = model_->items()[index];
     UpdateShelfItemForWindow(&item, window);
     model_->Set(index, item);
diff --git a/ash/shelf/shelf_window_watcher_unittest.cc b/ash/shelf/shelf_window_watcher_unittest.cc
index 6cc5942..27fc3ba 100644
--- a/ash/shelf/shelf_window_watcher_unittest.cc
+++ b/ash/shelf/shelf_window_watcher_unittest.cc
@@ -53,23 +53,22 @@
 // Ensure shelf items are added and removed as windows are opened and closed.
 TEST_F(ShelfWindowWatcherTest, OpenAndClose) {
   ShelfModel* model = ShelfModel::Get();
-  // ShelfModel creates an app list item and back button.
-  ASSERT_EQ(2, model->item_count());
+  ASSERT_EQ(0, model->item_count());
   // Windows with valid ShelfItemType and ShelfID properties get shelf items.
   std::unique_ptr<views::Widget> widget1 = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   CreateShelfItem(widget1->GetNativeWindow());
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   std::unique_ptr<views::Widget> widget2 = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   CreateShelfItem(widget2->GetNativeWindow());
-  EXPECT_EQ(4, model->item_count());
+  EXPECT_EQ(2, model->item_count());
 
   // Each ShelfItem is removed when the associated window is destroyed.
   widget1.reset();
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   widget2.reset();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 }
 
 TEST_F(ShelfWindowWatcherTest, CreateAndRemoveShelfItemProperties) {
@@ -79,18 +78,18 @@
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   std::unique_ptr<views::Widget> widget2 = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 
   // Create a ShelfItem for the first window.
   ShelfID id_w1 = CreateShelfItem(widget1->GetNativeWindow());
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   int index_w1 = model->ItemIndexByID(id_w1);
   EXPECT_EQ(STATUS_RUNNING, model->items()[index_w1].status);
 
   // Create a ShelfItem for the second window.
   ShelfID id_w2 = CreateShelfItem(widget2->GetNativeWindow());
-  EXPECT_EQ(4, model->item_count());
+  EXPECT_EQ(2, model->item_count());
 
   int index_w2 = model->ItemIndexByID(id_w2);
   EXPECT_EQ(STATUS_RUNNING, model->items()[index_w2].status);
@@ -98,20 +97,20 @@
   // ShelfItem is removed when the type property is cleared.
   widget1->GetNativeWindow()->SetProperty(kShelfItemTypeKey,
                                           static_cast<int32_t>(TYPE_UNDEFINED));
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey,
                                           static_cast<int32_t>(TYPE_UNDEFINED));
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
   // Clearing twice doesn't do anything.
   widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey,
                                           static_cast<int32_t>(TYPE_UNDEFINED));
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 
   // Closing the windows once the properties are cleared doesn't do anything.
   widget1->CloseNow();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
   widget2->CloseNow();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 }
 
 TEST_F(ShelfWindowWatcherTest, UpdateWindowProperty) {
@@ -120,13 +119,13 @@
   std::unique_ptr<views::Widget> widget = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   ShelfID id = CreateShelfItem(widget->GetNativeWindow());
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   int index = model->ItemIndexByID(id);
   EXPECT_EQ(STATUS_RUNNING, model->items()[index].status);
 
   // No new item is created after updating a launcher item.
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   // index and id are not changed after updating a launcher item.
   EXPECT_EQ(index, model->ItemIndexByID(id));
   EXPECT_EQ(id, model->items()[index].id);
@@ -138,7 +137,7 @@
   std::unique_ptr<views::Widget> widget = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   ShelfID id = CreateShelfItem(widget->GetNativeWindow());
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   int index = model->ItemIndexByID(id);
   EXPECT_EQ(STATUS_RUNNING, model->items()[index].status);
@@ -149,7 +148,7 @@
   window_state->Maximize();
   EXPECT_TRUE(window_state->IsMaximized());
   // No new item is created after maximizing the window.
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   // index and id are not changed after maximizing the window.
   EXPECT_EQ(index, model->ItemIndexByID(id));
   EXPECT_EQ(id, model->items()[index].id);
@@ -158,7 +157,7 @@
   window_state->Restore();
   EXPECT_FALSE(window_state->IsMaximized());
   // No new item is created after restoring the window.
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   // Index and id are not changed after maximizing the window.
   EXPECT_EQ(index, model->ItemIndexByID(id));
   EXPECT_EQ(id, model->items()[index].id);
@@ -172,7 +171,7 @@
   std::unique_ptr<views::Widget> widget = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   ShelfID id = CreateShelfItem(widget->GetNativeWindow());
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   int index = model->ItemIndexByID(id);
   EXPECT_EQ(STATUS_RUNNING, model->items()[index].status);
@@ -199,7 +198,7 @@
   aura::Window* dialog = dialog_widget->GetNativeWindow();
   dialog->SetProperty(kShelfIDKey, ShelfID("a").Serialize());
   dialog->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_DIALOG));
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   // An item is not created for an app window.
   std::unique_ptr<views::Widget> app_widget = CreateTestWidget(
@@ -207,12 +206,12 @@
   aura::Window* app = app_widget->GetNativeWindow();
   app->SetProperty(kShelfIDKey, ShelfID("c").Serialize());
   app->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP));
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   app_widget.reset();
 
   // Each ShelfItem is removed when the associated window is destroyed.
   dialog_widget.reset();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 }
 
 // Ensure items use the app icon and window icon aura::Window properties.
@@ -223,25 +222,25 @@
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   aura::Window* window = widget->GetNativeWindow();
   ShelfID id = CreateShelfItem(window);
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
   gfx::Image default_image = rb.GetImageNamed(IDR_DEFAULT_FAVICON_32);
-  EXPECT_TRUE(model->items()[2].image.BackedBySameObjectAs(
+  EXPECT_TRUE(model->items()[0].image.BackedBySameObjectAs(
       default_image.AsImageSkia()));
 
   // Setting a window icon should update the item icon.
   gfx::ImageSkia red = CreateImageSkiaIcon(SK_ColorRED);
   window->SetProperty(aura::client::kWindowIconKey, std::move(red));
-  EXPECT_EQ(SK_ColorRED, model->items()[2].image.bitmap()->getColor(0, 0));
+  EXPECT_EQ(SK_ColorRED, model->items()[0].image.bitmap()->getColor(0, 0));
 
   // Setting an app icon should override the window icon.
   gfx::ImageSkia blue = CreateImageSkiaIcon(SK_ColorBLUE);
   window->SetProperty(aura::client::kAppIconKey, std::move(blue));
-  EXPECT_EQ(SK_ColorBLUE, model->items()[2].image.bitmap()->getColor(0, 0));
+  EXPECT_EQ(SK_ColorBLUE, model->items()[0].image.bitmap()->getColor(0, 0));
 
   // Clearing the app icon should restore the window icon to the shelf item.
   window->ClearProperty(aura::client::kAppIconKey);
-  EXPECT_EQ(SK_ColorRED, model->items()[2].image.bitmap()->getColor(0, 0));
+  EXPECT_EQ(SK_ColorRED, model->items()[0].image.bitmap()->getColor(0, 0));
 }
 
 TEST_F(ShelfWindowWatcherTest, DontCreateShelfEntriesForChildWindows) {
@@ -255,7 +254,7 @@
       ->GetChildById(desks_util::GetActiveDeskContainerId())
       ->AddChild(window.get());
   window->Show();
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   std::unique_ptr<aura::Window> child =
       window_factory::NewWindow(nullptr, aura::client::WINDOW_TYPE_NORMAL);
@@ -265,12 +264,12 @@
   window->AddChild(child.get());
   child->Show();
   // There should not be a new shelf item for |child|.
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   child.reset();
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   window.reset();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 }
 
 TEST_F(ShelfWindowWatcherTest, CreateShelfEntriesForTransientWindows) {
@@ -284,7 +283,7 @@
       ->GetChildById(desks_util::GetActiveDeskContainerId())
       ->AddChild(window.get());
   window->Show();
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 
   std::unique_ptr<aura::Window> transient =
       window_factory::NewWindow(nullptr, aura::client::WINDOW_TYPE_NORMAL);
@@ -299,12 +298,12 @@
                                                             transient.get());
   transient->Show();
   // There should be a new shelf item for |transient|.
-  EXPECT_EQ(4, model->item_count());
+  EXPECT_EQ(2, model->item_count());
 
   transient.reset();
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
   window.reset();
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 }
 
 // Ensures ShelfWindowWatcher supports windows opened prior to session start.
@@ -314,18 +313,17 @@
   ASSERT_FALSE(
       Shell::Get()->session_controller()->IsActiveUserSessionStarted());
 
-  // ShelfModel creates an app list item and back button.
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 
   // Construct a window that should get a shelf item once the session starts.
   std::unique_ptr<views::Widget> widget = CreateTestWidget(
       nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect());
   CreateShelfItem(widget->GetNativeWindow());
-  EXPECT_EQ(2, model->item_count());
+  EXPECT_EQ(0, model->item_count());
 
   // Start the test user session; ShelfWindowWatcher will find the open window.
   CreateUserSessions(1);
-  EXPECT_EQ(3, model->item_count());
+  EXPECT_EQ(1, model->item_count());
 }
 
 }  // namespace
diff --git a/ash/system/accessibility/autoclick_scroll_view.cc b/ash/system/accessibility/autoclick_scroll_view.cc
index 0912248..1e33a5f 100644
--- a/ash/system/accessibility/autoclick_scroll_view.cc
+++ b/ash/system/accessibility/autoclick_scroll_view.cc
@@ -92,6 +92,10 @@
     views::ImageButton::PaintButtonContents(canvas);
   }
 
+  const char* GetClassName() const override {
+    return "AutoclickScrollCloseButton";
+  }
+
  private:
   bool hovered_ = false;
   DISALLOW_COPY_AND_ASSIGN(AutoclickScrollCloseButton);
@@ -282,6 +286,8 @@
     SchedulePaint();
   }
 
+  const char* GetClassName() const override { return "AutoclickScrollButton"; }
+
  private:
   const AutoclickController::ScrollPadAction action_;
   gfx::Size size_;
@@ -365,4 +371,8 @@
       kScrollButtonCloseSizeDips, kScrollButtonCloseSizeDips);
 }
 
+const char* AutoclickScrollView::GetClassName() const {
+  return "AutoclickScrollView";
+}
+
 }  // namespace ash
diff --git a/ash/system/accessibility/autoclick_scroll_view.h b/ash/system/accessibility/autoclick_scroll_view.h
index 59187e1..f4355f2 100644
--- a/ash/system/accessibility/autoclick_scroll_view.h
+++ b/ash/system/accessibility/autoclick_scroll_view.h
@@ -55,6 +55,9 @@
   AutoclickScrollView();
   ~AutoclickScrollView() override = default;
 
+  // views::View:
+  const char* GetClassName() const override;
+
  private:
   // views::View:
   void Layout() override;
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index 58c08c6..91e38d37 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -768,10 +768,10 @@
     const gfx::Rect& new_bounds,
     ui::PropertyChangeReason reason) {
   if (split_view_type_ != SplitViewType::kClamshellType ||
-      reason == ui::PropertyChangeReason::FROM_ANIMATION) {
+      reason == ui::PropertyChangeReason::FROM_ANIMATION ||
+      !InSplitViewMode()) {
     return;
   }
-  DCHECK(InSplitViewMode());
 
   wm::WindowState* window_state = wm::GetWindowState(window);
   const bool is_window_moved = window_state->is_dragged() &&
@@ -1109,14 +1109,37 @@
   UpdateSnappedWindowsAndDividerBounds();
 }
 
-void SplitViewController::OnTabletModeStarted() {
+void SplitViewController::OnTabletModeStarting() {
   split_view_type_ = SplitViewType::kTabletType;
+
+  // If splitview is active when tablet mode is starting, do the clamshell mode
+  // splitview to tablet mode splitview transition by adding the split view
+  // divider bar.
+  if (InSplitViewMode()) {
+    divider_position_ = GetClosestFixedDividerPosition();
+    split_view_divider_ = std::make_unique<SplitViewDivider>(
+        this, GetDefaultSnappedWindow()->GetRootWindow());
+    UpdateSnappedWindowsAndDividerBounds();
+    NotifyDividerPositionChanged();
+  }
 }
 
 void SplitViewController::OnTabletModeEnding() {
-  if (IsClamshellSplitViewModeEnabled())
+  if (IsClamshellSplitViewModeEnabled()) {
     split_view_type_ = SplitViewType::kClamshellType;
-  EndSplitView();
+
+    // If splitview is active when tablet mode is ending, simply destroy the
+    // split view divider bar as we don't have the bar in clamshell split view
+    // mode.
+    if (InSplitViewMode())
+      split_view_divider_.reset();
+  } else if (InSplitViewMode()) {
+    // If clamshell splitview mode is not enabled, fall back to the old
+    // behavior: end splitview and overivew and all windows will return to its
+    // old window state before entering tablet mode.
+    EndSplitView();
+    EndOverview();
+  }
 }
 
 void SplitViewController::OnTabletControllerDestroyed() {
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h
index 7a4a801..fcde393 100644
--- a/ash/wm/splitview/split_view_controller.h
+++ b/ash/wm/splitview/split_view_controller.h
@@ -59,18 +59,17 @@
   // top of the screen.
   enum SnapPosition { NONE, LEFT, RIGHT };
 
-  // Why splitview was ended. For now, all reasons will be kNormal except when
-  // the home launcher button is pressed, an unsnappable window just got
-  // activated, the active user session changed, or the window dragging
-  // started.
+  // Why splitview was ended.
   enum class EndReason {
     kNormal = 0,
     kHomeLauncherPressed,
     kUnsnappableWindowActivated,
     kActiveUserChanged,
     kWindowDragStarted,
-    // TODO(950827): Consider not ending Split-View on PIP expand.
+    // TODO(edcourtney): Consider not ending Split-View on PIP expand.
+    // See crbug.com/950827.
     kPipExpanded,
+    kExitTabletMode,
   };
 
   // The behaviors of split view are very different when in tablet mode and in
@@ -192,7 +191,7 @@
                                uint32_t metrics) override;
 
   // TabletModeObserver:
-  void OnTabletModeStarted() override;
+  void OnTabletModeStarting() override;
   void OnTabletModeEnding() override;
   void OnTabletControllerDestroyed() override;
 
diff --git a/ash/wm/splitview/split_view_divider.cc b/ash/wm/splitview/split_view_divider.cc
index bedb6a2b..08cf190 100644
--- a/ash/wm/splitview/split_view_divider.cc
+++ b/ash/wm/splitview/split_view_divider.cc
@@ -251,8 +251,7 @@
   divider_widget_->Close();
   split_view_window_targeter_.reset();
   for (auto* iter : observed_windows_)
-    iter->RemoveObserver(this);
-  observed_windows_.clear();
+    RemoveObservedWindow(iter);
 }
 
 // static
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index 8a8eaae..0160c68d 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -910,6 +910,8 @@
 }
 
 void TabletModeController::FinishInitTabletMode() {
+  for (auto& observer : tablet_mode_observers_)
+    observer.OnTabletModeStarting();
   tablet_mode_window_manager_ = std::make_unique<TabletModeWindowManager>();
   tablet_mode_window_manager_->Init();
 
diff --git a/ash/wm/tablet_mode/tablet_mode_observer.h b/ash/wm/tablet_mode/tablet_mode_observer.h
index 80eec39..bcf7a45e 100644
--- a/ash/wm/tablet_mode/tablet_mode_observer.h
+++ b/ash/wm/tablet_mode/tablet_mode_observer.h
@@ -13,6 +13,9 @@
 // NOTE: Code in chrome should use TabletModeClientObserver.
 class ASH_EXPORT TabletModeObserver {
  public:
+  // Called when the tablet mode is about to start.
+  virtual void OnTabletModeStarting() {}
+
   // Called when the tablet mode has started. Windows might still be animating
   // though.
   virtual void OnTabletModeStarted() {}
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index cb36af4..d73b1bd 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -9,6 +9,7 @@
 #include "ash/public/cpp/app_types.h"
 #include "ash/public/cpp/ash_switches.h"
 #include "ash/public/cpp/shell_window_ids.h"
+#include "ash/public/cpp/window_properties.h"
 #include "ash/root_window_controller.h"
 #include "ash/scoped_animation_disabler.h"
 #include "ash/session/session_controller_impl.h"
@@ -36,25 +37,18 @@
 
 namespace {
 
-// Exits overview mode if it is currently active. Returns true if overview is
-// active before cancelling it.
-bool CancelOverview() {
-  OverviewController* controller = Shell::Get()->overview_controller();
-  if (controller->InOverviewSession()) {
-    controller->EndOverview();
-    return true;
-  }
-  return false;
-}
-
-// Returns true if windows[i] exists, can snap in split view, and is not ARC. A
-// window snapped in clamshell mode must meet these criteria to potentially
-// carry over into tablet mode split view. We want ARC windows to be included,
-// but there is an obstacle (see https://crbug.com/922282 and
+// This function is called to check if window[i] is eligible to be carried over
+// to split view mode during clamshell <-> tablet mode transition. Returns true
+// if windows[i] exists, can snap in split view, is not showing in overview, and
+// is not ARC window.
+// TODO(xdai): Make it work for ARC windows. (see
+// https://crbug.com/922282 and
 // https://buganizer.corp.google.com/issues/123432223).
-bool IsCandidateForSplitView(const MruWindowTracker::WindowList& windows,
-                             size_t i) {
+bool IsCarryOverCandidateForSplitView(
+    const MruWindowTracker::WindowList& windows,
+    size_t i) {
   return windows.size() > i && CanSnapInSplitview(windows[i]) &&
+         !windows[i]->GetProperty(kIsShowingInOverviewKey) &&
          static_cast<ash::AppType>(windows[i]->GetProperty(
              aura::client::kAppType)) != AppType::ARC_APP;
 }
@@ -73,6 +67,24 @@
     split_view_controller->SnapWindow(windows[i], positions[i]);
 }
 
+// Returns the windows that are currently showing in splitscreen.
+base::flat_map<aura::Window*, WindowStateType> GetWindowsInSplitView() {
+  base::flat_map<aura::Window*, WindowStateType> windows;
+  SplitViewController* split_view_controller =
+      Shell::Get()->split_view_controller();
+  if (split_view_controller && split_view_controller->InSplitViewMode()) {
+    if (split_view_controller->left_window()) {
+      windows.emplace(split_view_controller->left_window(),
+                      WindowStateType::kLeftSnapped);
+    }
+    if (split_view_controller->right_window()) {
+      windows.emplace(split_view_controller->right_window(),
+                      WindowStateType::kRightSnapped);
+    }
+  }
+  return windows;
+}
+
 }  // namespace
 
 // Class which tells tablet mode controller to observe a given window for UMA
@@ -132,9 +144,19 @@
 }
 
 void TabletModeWindowManager::Init() {
-  // The overview mode needs to be ended before the tablet mode is started. To
-  // guarantee the proper order, it will be turned off from here.
-  CancelOverview();
+  // There are 3 cases when entering tablet mode:
+  // 1) overview is active but split view is inactive: keep overview active in
+  //    tablet mode.
+  // 2) overview and splitview are both active (splitview can only be active
+  //    when overview is active in clamshell mode): keep overview and splitview
+  //    both active in tablet mode.
+  // 3) overview is inactive: keep the current behavior, i.e.,
+  //    a. if the top window is a snapped window, put it in splitview
+  //    b. if the second top window is also a snapped window and snapped to
+  //       the other side, put it in split view as well. Otherwise, open
+  //       overview on the other side of the screen
+  //    c. if the top window is not a snapped window, maximize all windows
+  //       when entering tablet mode.
 
   {
     ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this,
@@ -153,10 +175,41 @@
 }
 
 void TabletModeWindowManager::Shutdown() {
-  // Overview mode needs to be ended before exiting tablet mode to prevent
-  // transforming windows which are currently in
-  // overview: http://crbug.com/366605
-  const bool was_in_overview = CancelOverview();
+  // There are 4 cases when exiting tablet mode:
+  // 1) overview is active but split view is inactive: keep overview active in
+  //    clamshell mode.
+  // 2) overview and splitview are both active: keep overview and splitview both
+  //    active in clamshell mode, unless if it's single split state, splitview
+  //    and overview will both be ended.
+  // 3) overview is inactive but split view is active (two snapped windows):
+  //    split view is no longer active. But the two snapped windows will still
+  //    keep snapped in clamshell mode.
+  // 4) overview and splitview are both inactive: keep the current behavior,
+  //    i.e., restore all windows to its window state before entering tablet
+  //    mode.
+
+  // TODO(xdai): Instead of caching snapped windows and their state here, we
+  // should try to see if it can be done in the WindowState::State impl.
+  base::flat_map<aura::Window*, WindowStateType> windows_in_splitview =
+      GetWindowsInSplitView();
+
+  // For case 2 and 3: End splitview mode for two snapped windows case or single
+  // split case to match the clamshell split view behavior. (there is no both
+  // snapped state or single split state in clamshell split view). The windows
+  // will still be kept snapped though.
+  SplitViewController* split_view_controller =
+      Shell::Get()->split_view_controller();
+  if (split_view_controller->InSplitViewMode()) {
+    OverviewController* overview_controller =
+        Shell::Get()->overview_controller();
+    if (!overview_controller->InOverviewSession() ||
+        overview_controller->overview_session()->IsEmpty()) {
+      Shell::Get()->split_view_controller()->EndSplitView(
+          SplitViewController::EndReason::kExitTabletMode);
+      overview_controller->EndOverview();
+    }
+  }
+
   for (aura::Window* window : added_windows_)
     window->RemoveObserver(this);
   added_windows_.clear();
@@ -169,7 +222,7 @@
 
   ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this,
                                               /*exiting_tablet_mode=*/true);
-  ArrangeWindowsForDesktopMode(was_in_overview);
+  ArrangeWindowsForClamshellMode(windows_in_splitview);
 }
 
 int TabletModeWindowManager::GetNumberOfManagedWindows() {
@@ -238,6 +291,7 @@
     case SplitViewController::EndReason::kHomeLauncherPressed:
     case SplitViewController::EndReason::kActiveUserChanged:
     case SplitViewController::EndReason::kWindowDragStarted:
+    case SplitViewController::EndReason::kExitTabletMode:
       // For the case of kHomeLauncherPressed, the home launcher will minimize
       // the snapped windows after ending splitview, so avoid maximizing them
       // here. For the case of kActiveUserChanged, the snapped windows will be
@@ -442,7 +496,7 @@
 TabletModeWindowManager::GetSnapPositions(
     const MruWindowTracker::WindowList& windows) const {
   std::vector<SplitViewController::SnapPosition> result;
-  if (!IsCandidateForSplitView(windows, 0u))
+  if (!IsCarryOverCandidateForSplitView(windows, 0u))
     return result;
   switch (GetDesktopWindowStateType(windows[0])) {
     case WindowStateType::kLeftSnapped:
@@ -450,7 +504,7 @@
       // the left in split view. If windows[1] was snapped on the right in
       // desktop mode, then snap windows[1] on the right in split view.
       result.push_back(SplitViewController::LEFT);
-      if (IsCandidateForSplitView(windows, 1u) &&
+      if (IsCarryOverCandidateForSplitView(windows, 1u) &&
           GetDesktopWindowStateType(windows[1]) ==
               WindowStateType::kRightSnapped) {
         result.push_back(SplitViewController::RIGHT);
@@ -461,7 +515,7 @@
       // the right in split view. If windows[1] was snapped on the left in
       // desktop mode, then snap windows[1] on the left in split view.
       result.push_back(SplitViewController::RIGHT);
-      if (IsCandidateForSplitView(windows, 1u) &&
+      if (IsCarryOverCandidateForSplitView(windows, 1u) &&
           GetDesktopWindowStateType(windows[1]) ==
               WindowStateType::kLeftSnapped) {
         result.push_back(SplitViewController::LEFT);
@@ -511,11 +565,25 @@
   DoSplitView(split_view_eligible_windows, snap_positions);
 }
 
-void TabletModeWindowManager::ArrangeWindowsForDesktopMode(
-    bool was_in_overview) {
+void TabletModeWindowManager::ArrangeWindowsForClamshellMode(
+    base::flat_map<aura::Window*, WindowStateType> windows_in_splitview) {
   while (window_state_map_.size()) {
     aura::Window* window = window_state_map_.begin()->first;
-    ForgetWindow(window, /*destroyed=*/false, was_in_overview);
+    ForgetWindow(window, /*destroyed=*/false);
+
+    // Arriving here the window state has changed to its clamshell window state.
+    // Since we need to keep the windows that were in splitview still be snapped
+    // in clamshell mode, change its window state to the corresponding snapped
+    // window state.
+    if (windows_in_splitview.find(window) != windows_in_splitview.end() &&
+        IsClamshellSplitViewModeEnabled()) {
+      WindowStateType type = windows_in_splitview[window];
+      const wm::WMEvent event((type == WindowStateType::kLeftSnapped)
+                                  ? wm::WM_EVENT_SNAP_LEFT
+                                  : wm::WM_EVENT_SNAP_RIGHT);
+      wm::GetWindowState(window)->OnWMEvent(&event);
+      windows_in_splitview.erase(window);
+    }
   }
 }
 
@@ -538,8 +606,7 @@
 }
 
 void TabletModeWindowManager::ForgetWindow(aura::Window* window,
-                                           bool destroyed,
-                                           bool was_in_overview) {
+                                           bool destroyed) {
   added_windows_.erase(window);
   window->RemoveObserver(this);
 
@@ -560,7 +627,7 @@
   } else {
     // By telling the state object to revert, it will switch back the old
     // State object and destroy itself, calling WindowStateDestroyed().
-    it->second->LeaveTabletMode(wm::GetWindowState(it->first), was_in_overview);
+    it->second->LeaveTabletMode(wm::GetWindowState(it->first));
     DCHECK(!IsTrackingWindow(window));
   }
 }
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.h b/ash/wm/tablet_mode/tablet_mode_window_manager.h
index 42cec9a..64d82e5 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.h
@@ -124,9 +124,10 @@
   void ArrangeWindowsForTabletMode();
 
   // Revert all windows to how they were arranged before tablet mode.
-  // |was_in_overview| indicates whether it was in overview before entering
-  // desktop mode.
-  void ArrangeWindowsForDesktopMode(bool was_in_overview = false);
+  // |windows_in_splitview| contains the windows that were in splitview before
+  // entering clamshell mode.
+  void ArrangeWindowsForClamshellMode(
+      base::flat_map<aura::Window*, WindowStateType> windows_in_splitview);
 
   // If the given window should be handled by us, this function will add it to
   // the list of known windows (remembering the initial show state).
@@ -137,13 +138,10 @@
                    bool snap = false,
                    bool animate_bounds_on_attach = true);
 
-  // Remove a window from our tracking list. |was_in_overview| used when
-  // |destroyed| is false to help handle leaving tablet mode. If the window is
-  // going to be destroyed, do not restore its old previous window state object
-  // as it will send unnecessary window state change event.
-  void ForgetWindow(aura::Window* window,
-                    bool destroyed,
-                    bool was_in_overview = false);
+  // Remove a window from our tracking list. If the window is going to be
+  // destroyed, do not restore its old previous window state object as it will
+  // send unnecessary window state change event.
+  void ForgetWindow(aura::Window* window, bool destroyed);
 
   // Returns true when the given window should be modified in any way by us.
   bool ShouldHandleWindow(aura::Window* window);
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
index b760d446..5452f7ae 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <string>
 
+#include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/ash_switches.h"
 #include "ash/public/cpp/shelf_prefs.h"
 #include "ash/public/cpp/test/shell_test_api.h"
@@ -20,6 +21,7 @@
 #include "ash/test/ash_test_base.h"
 #include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/overview/overview_controller.h"
+#include "ash/wm/splitview/split_view_utils.h"
 #include "ash/wm/switchable_windows.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller_test_api.h"
@@ -33,6 +35,7 @@
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/values.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/test/test_window_delegate.h"
@@ -1302,33 +1305,6 @@
   EXPECT_EQ(first_dragged_origin.y() + 5, window->bounds().y());
 }
 
-// Test that overview is exited before entering / exiting tablet mode so that
-// the window changes made by TabletModeWindowManager do not conflict with
-// those made in WindowOverview.
-TEST_F(TabletModeWindowManagerTest, ExitsOverview) {
-  // Bounds for windows we know can be controlled.
-  gfx::Rect rect1(10, 10, 200, 50);
-  gfx::Rect rect2(10, 60, 200, 50);
-  std::unique_ptr<aura::Window> w1(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect1));
-  std::unique_ptr<aura::Window> w2(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect2));
-
-  OverviewController* overview_controller = Shell::Get()->overview_controller();
-  ASSERT_TRUE(overview_controller->StartOverview());
-  ASSERT_TRUE(overview_controller->InOverviewSession());
-  TabletModeWindowManager* manager = CreateTabletModeWindowManager();
-  ASSERT_TRUE(manager);
-  EXPECT_FALSE(overview_controller->InOverviewSession());
-
-  ASSERT_TRUE(overview_controller->StartOverview());
-  ASSERT_TRUE(overview_controller->InOverviewSession());
-  // Destroy the manager again and check that the windows return to their
-  // previous state.
-  DestroyTabletModeWindowManager();
-  EXPECT_FALSE(overview_controller->InOverviewSession());
-}
-
 // Test that an edge swipe from the top will end full screen mode.
 TEST_F(TabletModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromTop) {
   gfx::Rect rect(10, 10, 200, 50);
@@ -1810,4 +1786,218 @@
   EXPECT_EQ(rect.size(), child->bounds().size());
 }
 
+// Test clamshell mode <-> tablet mode transition if clamshell splitscreen is
+// not enabled.
+TEST_F(TabletModeWindowManagerTest, ClamshellTabletTransitionTest) {
+  gfx::Rect rect(10, 10, 200, 50);
+  std::unique_ptr<aura::Window> window(
+      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
+
+  // 1. Clamshell -> tablet. If overview is active, it should still be kept
+  // active after transition.
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
+  EXPECT_TRUE(overview_controller->StartOverview());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  TabletModeWindowManager* manager = CreateTabletModeWindowManager();
+  EXPECT_TRUE(manager);
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // 2. Tablet -> Clamshell. If overview is active, it should still be kept
+  // active after transition.
+  DestroyTabletModeWindowManager();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // 3. Clamshell -> tablet. If overview is inactive, it should still be kept
+  // inactive after transition. All windows will be maximized.
+  EXPECT_TRUE(overview_controller->EndOverview());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  CreateTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized());
+
+  // 4. Tablet -> Clamshell. The window should be restored to its old state.
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_FALSE(wm::GetWindowState(window.get())->IsMaximized());
+
+  // 5. Clamshell -> Tablet. If the window is snapped, it will be carried over
+  // to splitview in tablet mode.
+  const wm::WMEvent event(wm::WM_EVENT_SNAP_LEFT);
+  wm::GetWindowState(window.get())->OnWMEvent(&event);
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+  // After transition, we should be in single split screen.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+
+  // 6. Tablet -> Clamshell. Since clamshell splitscreen is not enabled, oveview
+  // and splitview will be both ended, and the window is restored to its old
+  // state.
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+
+  // Create another normal state window to test additional scenarios.
+  std::unique_ptr<aura::Window> window2(
+      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
+  wm::ActivateWindow(window2.get());
+
+  // 7. Clamshell -> Tablet. Since the top active window is not a snapped
+  // window, all windows will be maximized after the transition.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized());
+  EXPECT_TRUE(wm::GetWindowState(window2.get())->IsMaximized());
+
+  // 8. Tablet -> Clamshell. If the two windows are in splitscreen in tablet
+  // mode, after transition they will restore to their old window states.
+  Shell::Get()->split_view_controller()->SnapWindow(window.get(),
+                                                    SplitViewController::LEFT);
+  Shell::Get()->split_view_controller()->SnapWindow(window2.get(),
+                                                    SplitViewController::RIGHT);
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+  EXPECT_FALSE(wm::GetWindowState(window2.get())->IsSnapped());
+
+  // 9. Clamshell -> Tablet. If the top two windows are snapped to both sides of
+  // the screen, they will carry over to tablet split view mode.
+  const wm::WMEvent event2(wm::WM_EVENT_SNAP_RIGHT);
+  wm::GetWindowState(window2.get())->OnWMEvent(&event2);
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+
+  // 10. Tablet -> Clamshell. If overview and splitview are both active, they
+  // will be both ended after the transition.
+  overview_controller->StartOverview();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode());
+}
+
+// The class to test TabletModeWindowManagerTest related functionalities when
+// clamshell split screen feature is enabled.
+class TabletModeWindowManagerWithClamshellSplitViewTest
+    : public TabletModeWindowManagerTest {
+ public:
+  TabletModeWindowManagerWithClamshellSplitViewTest() = default;
+  ~TabletModeWindowManagerWithClamshellSplitViewTest() override = default;
+
+  // AshTestBase:
+  void SetUp() override {
+    scoped_feature_list_.InitAndEnableFeature(
+        ash::features::kDragToSnapInClamshellMode);
+    TabletModeWindowManagerTest::SetUp();
+    DCHECK(ShouldAllowSplitView());
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  DISALLOW_COPY_AND_ASSIGN(TabletModeWindowManagerWithClamshellSplitViewTest);
+};
+
+// Test clamshell mode <-> tablet mode transition if clamshell splitscreen is
+// enabled.
+TEST_F(TabletModeWindowManagerWithClamshellSplitViewTest,
+       ClamshellTabletTransitionTest) {
+  gfx::Rect rect(10, 10, 200, 50);
+  std::unique_ptr<aura::Window> window(
+      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
+
+  // 1. Clamshell -> tablet. If overview is active, it should still be kept
+  // active after transition.
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
+  EXPECT_TRUE(overview_controller->StartOverview());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  TabletModeWindowManager* manager = CreateTabletModeWindowManager();
+  EXPECT_TRUE(manager);
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // 2. Tablet -> Clamshell. If overview is active, it should still be kept
+  // active after transition.
+  DestroyTabletModeWindowManager();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // 3. Clamshell -> tablet. If overview is inactive, it should still be kept
+  // inactive after transition. All windows will be maximized.
+  EXPECT_TRUE(overview_controller->EndOverview());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  CreateTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized());
+
+  // 4. Tablet -> Clamshell. The window should be restored to its old state.
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_FALSE(wm::GetWindowState(window.get())->IsMaximized());
+
+  // 5. Clamshell -> Tablet. If the window is snapped, it will be carried over
+  // to splitview in tablet mode.
+  const wm::WMEvent event(wm::WM_EVENT_SNAP_LEFT);
+  wm::GetWindowState(window.get())->OnWMEvent(&event);
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+  // After transition, we should be in single split screen.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+
+  // 6. Tablet -> Clamshell. Since there is only 1 window, splitview and
+  // overview will be both ended. The window will be kept snapped.
+  DestroyTabletModeWindowManager();
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+
+  // Create another normal state window to test additional scenarios.
+  std::unique_ptr<aura::Window> window2(
+      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
+  wm::ActivateWindow(window2.get());
+  // 7. Clamshell -> Tablet. Since top window is not a snapped window, all
+  // windows will be maximized.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized());
+  EXPECT_TRUE(wm::GetWindowState(window2.get())->IsMaximized());
+
+  // 8. Tablet -> Clamshell. If tablet splitscreen is active with two snapped
+  // windows, the two windows will remain snapped in clamshell mode.
+  Shell::Get()->split_view_controller()->SnapWindow(window.get(),
+                                                    SplitViewController::LEFT);
+  Shell::Get()->split_view_controller()->SnapWindow(window2.get(),
+                                                    SplitViewController::RIGHT);
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  DestroyTabletModeWindowManager();
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+  EXPECT_TRUE(wm::GetWindowState(window2.get())->IsSnapped());
+  EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+
+  // 9. Clamshell -> Tablet. If two window are snapped to two sides of the
+  // screen, they will carry over to splitscreen in tablet mode.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped());
+  EXPECT_TRUE(wm::GetWindowState(window2.get())->IsSnapped());
+
+  // 10. Tablet -> Clamshell. If overview and splitview are both active, after
+  // transition, they will remain both active.
+  overview_controller->StartOverview();
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  DestroyTabletModeWindowManager();
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // 11. Clamshell -> Tablet. The same as 10.
+  CreateTabletModeWindowManager();
+  EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+}
+
 }  // namespace ash
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.cc b/ash/wm/tablet_mode/tablet_mode_window_state.cc
index 6cc5bcc..fb155d5 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_state.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_state.cc
@@ -197,18 +197,19 @@
   creator_->WindowStateDestroyed(window_);
 }
 
-void TabletModeWindowState::LeaveTabletMode(wm::WindowState* window_state,
-                                            bool was_in_overview) {
-  // TODO(minch): Keep the current animation if leaving tablet mode from
-  // overview. Need more investigation for windows' transform animation and
-  // updates bounds animation when overview is active.
-  bool use_default = was_in_overview || window_state->IsSnapped() ||
-                     IsTopWindow(window_state->window());
+void TabletModeWindowState::LeaveTabletMode(wm::WindowState* window_state) {
+  // Only do bounds change animation if the window is the top window or a window
+  // showing in splitview, and the window has changed its state. Otherwise,
+  // restore its bounds immediately.
+  EnterAnimationType animation_type =
+      window_state->IsSnapped() || IsTopWindow(window_state->window())
+          ? DEFAULT
+          : IMMEDIATE;
   if (old_state_->GetType() == window_state->GetStateType() &&
       !window_state->IsNormalStateType()) {
-    use_default = false;
+    animation_type = IMMEDIATE;
   }
-  old_state_->set_enter_animation_type(use_default ? DEFAULT : IMMEDIATE);
+  old_state_->set_enter_animation_type(animation_type);
   // Note: When we return we will destroy ourselves with the |our_reference|.
   std::unique_ptr<wm::WindowState::State> our_reference =
       window_state->SetStateObject(std::move(old_state_));
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.h b/ash/wm/tablet_mode/tablet_mode_window_state.h
index edbe9b99..d4b9494 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_state.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_state.h
@@ -41,7 +41,7 @@
   void set_ignore_wm_events(bool ignore) { ignore_wm_events_ = ignore; }
 
   // Leaves the tablet mode by reverting to previous state object.
-  void LeaveTabletMode(wm::WindowState* window_state, bool was_in_overview);
+  void LeaveTabletMode(wm::WindowState* window_state);
 
   // WindowState::State overrides:
   void OnWMEvent(wm::WindowState* window_state,
diff --git a/base/base_switches.cc b/base/base_switches.cc
index 89e303d..f4ee42e 100644
--- a/base/base_switches.cc
+++ b/base/base_switches.cc
@@ -7,7 +7,7 @@
 
 namespace switches {
 
-// Delays execution of base::TaskPriority::BEST_EFFORT tasks until shutdown.
+// Delays execution of TaskPriority::BEST_EFFORT tasks until shutdown.
 const char kDisableBestEffortTasks[] = "disable-best-effort-tasks";
 
 // Disables the crash reporting.
@@ -16,6 +16,9 @@
 // Comma-separated list of feature names to disable. See also kEnableFeatures.
 const char kDisableFeatures[] = "disable-features";
 
+// Force disabling of low-end device mode when set.
+const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode";
+
 // Indicates that crash reporting should be enabled. On platforms where helper
 // processes cannot access to files needed to make this decision, this flag is
 // generated internally.
@@ -24,15 +27,9 @@
 // Comma-separated list of feature names to enable. See also kDisableFeatures.
 const char kEnableFeatures[] = "enable-features";
 
-// Generates full memory crash dump.
-const char kFullMemoryCrashReport[]         = "full-memory-crash-report";
-
 // Force low-end device mode when set.
 const char kEnableLowEndDeviceMode[]        = "enable-low-end-device-mode";
 
-// Force disabling of low-end device mode when set.
-const char kDisableLowEndDeviceMode[]       = "disable-low-end-device-mode";
-
 // This option can be used to force field trials when testing changes locally.
 // The argument is a list of name and value pairs, separated by slashes. If a
 // trial name is prefixed with an asterisk, that trial will start activated.
@@ -43,44 +40,12 @@
 // FieldTrialList::CreateTrialsFromString() in field_trial.h for details.
 const char kForceFieldTrials[]              = "force-fieldtrials";
 
+// Generates full memory crash dump.
+const char kFullMemoryCrashReport[] = "full-memory-crash-report";
+
 // Suppresses all error dialogs when present.
 const char kNoErrorDialogs[]                = "noerrdialogs";
 
-// When running certain tests that spawn child processes, this switch indicates
-// to the test framework that the current process is a child process.
-const char kTestChildProcess[]              = "test-child-process";
-
-// When running certain tests that spawn child processes, this switch indicates
-// to the test framework that the current process should not initialize ICU to
-// avoid creating any scoped handles too early in startup.
-const char kTestDoNotInitializeIcu[]        = "test-do-not-initialize-icu";
-
-// Gives the default maximal active V-logging level; 0 is the default.
-// Normally positive values are used for V-logging levels.
-const char kV[]                             = "v";
-
-// Gives the per-module maximal V-logging levels to override the value
-// given by --v.  E.g. "my_module=2,foo*=3" would change the logging
-// level for all code in source files "my_module.*" and "foo*.*"
-// ("-inl" suffixes are also disregarded for this matching).
-//
-// Any pattern containing a forward or backward slash will be tested
-// against the whole pathname and not just the module.  E.g.,
-// "*/foo/bar/*=2" would change the logging level for all code in
-// source files under a "foo/bar" directory.
-const char kVModule[]                       = "vmodule";
-
-// Will wait for 60 seconds for a debugger to come to attach to the process.
-const char kWaitForDebugger[]               = "wait-for-debugger";
-
-// Sends trace events from these categories to a file.
-// --trace-to-file on its own sends to default categories.
-const char kTraceToFile[]                   = "trace-to-file";
-
-// Specifies the file name for --trace-to-file. If unspecified, it will
-// go to a default file name.
-const char kTraceToFileName[]               = "trace-to-file-name";
-
 // Starts the sampling based profiler for the browser process at startup. This
 // will only work if chrome has been built with the gn arg enable_profiling =
 // true. The output will go to the value of kProfilingFile.
@@ -102,6 +67,41 @@
 // specified.
 const char kProfilingFlush[] = "profiling-flush";
 
+// When running certain tests that spawn child processes, this switch indicates
+// to the test framework that the current process is a child process.
+const char kTestChildProcess[] = "test-child-process";
+
+// When running certain tests that spawn child processes, this switch indicates
+// to the test framework that the current process should not initialize ICU to
+// avoid creating any scoped handles too early in startup.
+const char kTestDoNotInitializeIcu[] = "test-do-not-initialize-icu";
+
+// Sends trace events from these categories to a file.
+// --trace-to-file on its own sends to default categories.
+const char kTraceToFile[] = "trace-to-file";
+
+// Specifies the file name for --trace-to-file. If unspecified, it will
+// go to a default file name.
+const char kTraceToFileName[] = "trace-to-file-name";
+
+// Gives the default maximal active V-logging level; 0 is the default.
+// Normally positive values are used for V-logging levels.
+const char kV[] = "v";
+
+// Gives the per-module maximal V-logging levels to override the value
+// given by --v.  E.g. "my_module=2,foo*=3" would change the logging
+// level for all code in source files "my_module.*" and "foo*.*"
+// ("-inl" suffixes are also disregarded for this matching).
+//
+// Any pattern containing a forward or backward slash will be tested
+// against the whole pathname and not just the module.  E.g.,
+// "*/foo/bar/*=2" would change the logging level for all code in
+// source files under a "foo/bar" directory.
+const char kVModule[] = "vmodule";
+
+// Will wait for 60 seconds for a debugger to come to attach to the process.
+const char kWaitForDebugger[] = "wait-for-debugger";
+
 #if defined(OS_WIN)
 // Disables the USB keyboard detection for blocking the OSK on Win8+.
 const char kDisableUsbKeyboardDetect[]      = "disable-usb-keyboard-detect";
diff --git a/base/fuchsia/startup_context.cc b/base/fuchsia/startup_context.cc
index bf9f5cb..227b42a 100644
--- a/base/fuchsia/startup_context.cc
+++ b/base/fuchsia/startup_context.cc
@@ -64,6 +64,17 @@
         fidl::InterfaceHandle<::fuchsia::io::Directory>(
             std::move(incoming_directory)));
   }
+
+  if (!incoming_services_) {
+    LOG(WARNING) << "Component started without a service directory";
+
+    // Create a dummy ServiceDirectoryClient with a channel that's not
+    // connected on the other end.
+    fidl::InterfaceHandle<::fuchsia::io::Directory> dummy_directory;
+    ignore_result(dummy_directory.NewRequest());
+    incoming_services_ =
+        std::make_unique<ServiceDirectoryClient>(std::move(dummy_directory));
+  }
 }
 
 StartupContext::~StartupContext() {
diff --git a/base/system/sys_info_fuchsia.cc b/base/system/sys_info_fuchsia.cc
index 51a2dd6..4e44d8e7 100644
--- a/base/system/sys_info_fuchsia.cc
+++ b/base/system/sys_info_fuchsia.cc
@@ -32,4 +32,9 @@
   return 0;
 }
 
+// static
+std::string SysInfo::OperatingSystemName() {
+  return "Fuchsia";
+}
+
 }  // namespace base
diff --git a/base/system/sys_info_posix.cc b/base/system/sys_info_posix.cc
index 9700395..ad7490e7 100644
--- a/base/system/sys_info_posix.cc
+++ b/base/system/sys_info_posix.cc
@@ -167,7 +167,7 @@
   return total;
 }
 
-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
+#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
 // static
 std::string SysInfo::OperatingSystemName() {
   struct utsname info;
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc
index aedd3b3..eefb923 100644
--- a/base/win/windows_version.cc
+++ b/base/win/windows_version.cc
@@ -269,6 +269,8 @@
 // static
 Version OSInfo::MajorMinorBuildToVersion(int major, int minor, int build) {
   if (major == 10) {
+    if (build >= 18362)
+      return Version::WIN10_19H1;
     if (build >= 17763)
       return Version::WIN10_RS5;
     if (build >= 17134)
diff --git a/base/win/windows_version.h b/base/win/windows_version.h
index 78ed86e..daa6c5a 100644
--- a/base/win/windows_version.h
+++ b/base/win/windows_version.h
@@ -49,6 +49,7 @@
   WIN10_RS3 = 11,   // Redstone 3: Version 1709, Build 16299.
   WIN10_RS4 = 12,   // Redstone 4: Version 1803, Build 17134.
   WIN10_RS5 = 13,   // Redstone 5: Version 1809, Build 17763.
+  WIN10_19H1 = 14,  // 19H1: Version 1903, Build 18362.
   // On edit, update tools\metrics\histograms\enums.xml "WindowsVersion" and
   // "GpuBlacklistFeatureTestResultsWindows2".
   WIN_LAST,  // Indicates error condition.
diff --git a/base/win/windows_version_unittest.cc b/base/win/windows_version_unittest.cc
index b8e106e..06d4cfe0 100644
--- a/base/win/windows_version_unittest.cc
+++ b/base/win/windows_version_unittest.cc
@@ -18,7 +18,10 @@
 }
 
 TEST(OSInfo, MajorMinorBuildToVersion) {
-  EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 32767), Version::WIN10_RS5);
+  EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 32767),
+            Version::WIN10_19H1);
+  EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 18362),
+            Version::WIN10_19H1);
   EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 17763), Version::WIN10_RS5);
   EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 17134), Version::WIN10_RS4);
   EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 16299), Version::WIN10_RS3);
diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn
index ba473c7..233e8b0e 100644
--- a/build/config/android/BUILD.gn
+++ b/build/config/android/BUILD.gn
@@ -36,13 +36,6 @@
     ]
   }
 
-  if (current_cpu == "x86") {
-    cflags += [
-      # Forces same alignment between x86 and x64. https://crbug.com/781095
-      "-malign-double",
-    ]
-  }
-
   ldflags = [
     # Don't allow visible symbols from libgcc or libc++ to be
     # re-exported.
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index bce8261..dd6c1ac 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8910211088305445984
\ No newline at end of file
+8910186499721502448
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 00682a0..8355f76c6 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8910242259586842256
\ No newline at end of file
+8910186980098289872
\ No newline at end of file
diff --git a/build/sanitizers/tsan_suppressions.cc b/build/sanitizers/tsan_suppressions.cc
index 9753da3..8bd0656 100644
--- a/build/sanitizers/tsan_suppressions.cc
+++ b/build/sanitizers/tsan_suppressions.cc
@@ -40,15 +40,6 @@
     // http://crbug.com/157586
     "race:third_party/libvpx/source/libvpx/vp8/decoder/threading.c\n"
 
-    // http://crbug.com/158718
-    "race:third_party/ffmpeg/libavcodec/pthread.c\n"
-    "race:third_party/ffmpeg/libavcodec/pthread_frame.c\n"
-    "race:third_party/ffmpeg/libavcodec/vp8.c\n"
-    "race:third_party/ffmpeg/libavutil/mem.c\n"
-    "race:*HashFrameForTesting\n"
-    "race:third_party/ffmpeg/libavcodec/h264pred.c\n"
-    "race:media::ReleaseData\n"
-
     // http://crbug.com/244755
     "race:v8::internal::Zone::NewExpand\n"
 
@@ -157,13 +148,6 @@
     // https://crbug.com/965722
     "race:content::(anonymous namespace)::CorruptDBRequestHandler\n"
 
-    // https://crbug.com/965724
-    "race:content::NetworkServiceRestartBrowserTest::MonitorRequest\n"
-
-    // https://crbug.com/965726
-    "race:content::RenderFrameHostManagerUnloadBrowserTest::"
-    "MonitorResourceRequest\n"
-
     // End of suppressions.
     ;  // Please keep this semicolon.
 
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
index 591086ec..35f58477c 100644
--- a/cc/layers/layer.cc
+++ b/cc/layers/layer.cc
@@ -23,6 +23,7 @@
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/picture_layer.h"
 #include "cc/tiles/frame_viewer_instrumentation.h"
+#include "cc/trees/clip_node.h"
 #include "cc/trees/draw_property_utils.h"
 #include "cc/trees/layer_tree_host.h"
 #include "cc/trees/layer_tree_impl.h"
@@ -100,6 +101,7 @@
       may_contain_video_(false),
       needs_show_scrollbars_(false),
       has_transform_node_(false),
+      has_clip_node_(false),
       subtree_has_copy_request_(false),
       safe_opaque_background_color_(0),
       compositing_reasons_(0),
@@ -534,6 +536,30 @@
   SetSubtreePropertyChanged();
 }
 
+void Layer::SetClipRect(const gfx::Rect& clip_rect) {
+  DCHECK(IsPropertyChangeAllowed());
+  if (inputs_.clip_rect == clip_rect)
+    return;
+  inputs_.clip_rect = clip_rect;
+
+  // If the clip bounds have been cleared, the property trees needs a rebuild.
+  const bool force_rebuild = clip_rect.IsEmpty() || !has_clip_node_;
+
+  SetSubtreePropertyChanged();
+  if (clip_tree_index() != ClipTree::kInvalidNodeId && !force_rebuild) {
+    PropertyTrees* property_trees = layer_tree_host_->property_trees();
+    if (ClipNode* node = property_trees->clip_tree.Node(clip_tree_index())) {
+      node->clip = gfx::RectF(
+          gfx::PointF(clip_rect.origin()) + offset_to_transform_parent(),
+          gfx::SizeF(clip_rect.size()));
+      property_trees->clip_tree.set_needs_update(true);
+    }
+  } else {
+    SetPropertyTreesNeedRebuild();
+  }
+  SetNeedsCommit();
+}
+
 void Layer::SetMaskLayer(PictureLayer* mask_layer) {
   DCHECK(IsPropertyChangeAllowed());
   if (inputs_.mask_layer.get() == mask_layer)
diff --git a/cc/layers/layer.h b/cc/layers/layer.h
index daac85f..58631ace3 100644
--- a/cc/layers/layer.h
+++ b/cc/layers/layer.h
@@ -216,6 +216,12 @@
   void SetMasksToBounds(bool masks_to_bounds);
   bool masks_to_bounds() const { return inputs_.masks_to_bounds; }
 
+  // Set or get the clip rect for this layer. |clip_rect| is relative to |this|
+  // layer. If you are trying to clip the subtree to the bounds of this layer,
+  // SetMasksToBounds() would be a better alternative.
+  void SetClipRect(const gfx::Rect& clip_rect);
+  const gfx::Rect& clip_rect() const { return inputs_.clip_rect; }
+
   // Set or get a layer that is not an ancestor of this layer, but which should
   // be clipped to this layer's bounds if SetMasksToBounds() is set to true.
   // The parent layer does *not* retain ownership of a reference on this layer.
@@ -251,6 +257,8 @@
   // Set or get the rounded corner radii which is applied to the layer and its
   // subtree (as if they are together as a single composited entity) when
   // blitting into their target. Setting this makes the layer masked to bounds.
+  // If the layer has a clip of its own, the rounded corner will be applied
+  // along the layer's clip rect corners.
   void SetRoundedCorner(const gfx::RoundedCornersF& corner_radii);
   const gfx::RoundedCornersF& corner_radii() const {
     return inputs_.corner_radii;
@@ -609,6 +617,9 @@
   void SetHasTransformNode(bool val) { has_transform_node_ = val; }
   bool has_transform_node() { return has_transform_node_; }
 
+  // This value indicates whether a clip node was created for |this| layer.
+  void SetHasClipNode(bool val) { has_clip_node_ = val; }
+
   // Sets that the content shown in this layer may be a video. This may be used
   // by the system compositor to distinguish between animations updating the
   // screen and video, which the user would be watching. This allows
@@ -932,6 +943,7 @@
 
     gfx::Size bounds;
     bool masks_to_bounds;
+    gfx::Rect clip_rect;
 
     scoped_refptr<PictureLayer> mask_layer;
 
@@ -1064,6 +1076,7 @@
   bool may_contain_video_ : 1;
   bool needs_show_scrollbars_ : 1;
   bool has_transform_node_ : 1;
+  bool has_clip_node_ : 1;
   // This value is valid only when LayerTreeHost::has_copy_request() is true
   bool subtree_has_copy_request_ : 1;
   SkColor safe_opaque_background_color_;
diff --git a/cc/test/pixel_test.h b/cc/test/pixel_test.h
index 3b8f5201..adac588 100644
--- a/cc/test/pixel_test.h
+++ b/cc/test/pixel_test.h
@@ -45,7 +45,6 @@
 namespace cc {
 class FakeOutputSurfaceClient;
 class OutputSurface;
-class VulkanSkiaRenderer;
 
 class PixelTest : public testing::Test {
  protected:
@@ -152,10 +151,6 @@
 
   bool use_gpu() { return !!child_context_provider_; }
 
-  bool use_vulkan() {
-    return std::is_base_of<VulkanSkiaRenderer, RendererType>::value;
-  }
-
  protected:
   void SetUp() override;
 };
@@ -226,7 +221,7 @@
                      mode) {}
 };
 
-class VulkanSkiaRendererWithFlippedSurface : public VulkanSkiaRenderer {
+class VulkanSkiaRendererWithFlippedSurface : public viz::SkiaRenderer {
  public:
   VulkanSkiaRendererWithFlippedSurface(
       const viz::RendererSettings* settings,
@@ -234,11 +229,11 @@
       viz::DisplayResourceProvider* resource_provider,
       viz::SkiaOutputSurface* skia_output_surface,
       DrawMode mode)
-      : VulkanSkiaRenderer(settings,
-                           output_surface,
-                           resource_provider,
-                           skia_output_surface,
-                           mode) {}
+      : SkiaRenderer(settings,
+                     output_surface,
+                     resource_provider,
+                     skia_output_surface,
+                     mode) {}
 };
 
 template <>
diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc
index 90888a3..f031478 100644
--- a/cc/trees/layer_tree_host_common_unittest.cc
+++ b/cc/trees/layer_tree_host_common_unittest.cc
@@ -11677,5 +11677,229 @@
                   kRoundedCorner4Radius * kDeviceScale);
 }
 
+TEST_F(LayerTreeHostCommonTest, CustomLayerClipBounds) {
+  // The custom clip API should have the same effect as if an intermediate
+  // clip layer has been added to the layer tree. To check this the test creates
+  // 2 subtree for a root layer. One of the subtree uses the clip API to clip
+  // its subtree while the other uses an intermediate layer. The resulting clip
+  // in draw properties are expected to be the same.
+  // -Root
+  //   - Parent [Clip set to |kClipBounds| using API]
+  //     - Child
+  //   - Clip Layer [Masks to bounds = true] [Layer bounds set to |kClipBounds|]
+  //     - Expected Parent
+  //       - Expected Child
+  constexpr float kDeviceScale = 1.f;
+
+  const gfx::Rect kRootLayerBounds(0, 0, 100, 100);
+  const gfx::Rect kParentLayerBounds(0, 0, 50, 100);
+  const gfx::Rect kChildLayerBounds(20, 20, 30, 60);
+
+  constexpr gfx::Rect kClipBounds(10, 10, 50, 50);
+
+  // The position of |Expected Parent| on screen should be same as |Parent|.
+  const gfx::Rect kExpectedParentLayerBounds(
+      gfx::Point(0, 0) - kClipBounds.OffsetFromOrigin(), gfx::Size(50, 100));
+
+  scoped_refptr<Layer> root = Layer::Create();
+  scoped_refptr<Layer> parent = Layer::Create();
+  scoped_refptr<Layer> child = Layer::Create();
+
+  scoped_refptr<Layer> clip_layer = Layer::Create();
+  scoped_refptr<Layer> expected_parent = Layer::Create();
+  scoped_refptr<Layer> expected_child = Layer::Create();
+
+  root->AddChild(parent);
+  parent->AddChild(child);
+
+  root->AddChild(clip_layer);
+  clip_layer->AddChild(expected_parent);
+  expected_parent->AddChild(expected_child);
+
+  host()->SetRootLayer(root);
+
+  root->SetIsDrawable(true);
+  parent->SetIsDrawable(true);
+  child->SetIsDrawable(true);
+  expected_parent->SetIsDrawable(true);
+  expected_child->SetIsDrawable(true);
+
+  // Set layer positions.
+  root->SetPosition(gfx::PointF(kRootLayerBounds.origin()));
+  parent->SetPosition(gfx::PointF(kParentLayerBounds.origin()));
+  child->SetPosition(gfx::PointF(kChildLayerBounds.origin()));
+
+  clip_layer->SetPosition(gfx::PointF(kClipBounds.origin()));
+  expected_parent->SetPosition(
+      gfx::PointF(kExpectedParentLayerBounds.origin()));
+  expected_child->SetPosition(gfx::PointF(kChildLayerBounds.origin()));
+
+  root->SetBounds(kRootLayerBounds.size());
+  parent->SetBounds(kParentLayerBounds.size());
+  child->SetBounds(kChildLayerBounds.size());
+
+  clip_layer->SetBounds(kClipBounds.size());
+  expected_parent->SetBounds(kExpectedParentLayerBounds.size());
+  expected_child->SetBounds(kChildLayerBounds.size());
+
+  parent->SetClipRect(kClipBounds);
+  clip_layer->SetMasksToBounds(true);
+
+  ExecuteCalculateDrawProperties(root.get(), kDeviceScale);
+
+  const ClipTree& clip_tree =
+      root->layer_tree_host()->property_trees()->clip_tree;
+
+  const ClipNode* parent_clip_node = clip_tree.Node(parent->clip_tree_index());
+  EXPECT_EQ(parent_clip_node->clip, gfx::RectF(kClipBounds));
+  EXPECT_TRUE(!parent->clip_rect().IsEmpty());
+
+  const ClipNode* child_clip_node = clip_tree.Node(child->clip_tree_index());
+  EXPECT_EQ(child_clip_node->clip, gfx::RectF(kClipBounds));
+
+  host()->host_impl()->CreatePendingTree();
+  host()->CommitAndCreatePendingTree();
+  // TODO(https://crbug.com/939968) This call should be handled by
+  // FakeLayerTreeHost instead of manually pushing the properties from the
+  // layer tree host to the pending tree.
+  root->layer_tree_host()->PushLayerTreePropertiesTo(host()->pending_tree());
+  host()->host_impl()->ActivateSyncTree();
+  LayerTreeImpl* layer_tree_impl = host()->host_impl()->active_tree();
+
+  // Get the layer impl for each Layer.
+  LayerImpl* root_impl = layer_tree_impl->LayerById(root->id());
+  LayerImpl* parent_impl = layer_tree_impl->LayerById(parent->id());
+  LayerImpl* child_impl = layer_tree_impl->LayerById(child->id());
+  LayerImpl* expected_parent_impl =
+      layer_tree_impl->LayerById(expected_parent->id());
+  LayerImpl* expected_child_impl =
+      layer_tree_impl->LayerById(expected_child->id());
+
+  ExecuteCalculateDrawProperties(root_impl, kDeviceScale);
+
+  EXPECT_TRUE(parent_impl->is_clipped());
+  EXPECT_TRUE(child_impl->is_clipped());
+  ASSERT_TRUE(expected_parent_impl->is_clipped());
+  ASSERT_TRUE(expected_child_impl->is_clipped());
+
+  EXPECT_EQ(parent_impl->clip_rect(), expected_parent_impl->clip_rect());
+  EXPECT_EQ(child_impl->clip_rect(), expected_child_impl->clip_rect());
+}
+
+TEST_F(LayerTreeHostCommonTest, CustomLayerClipBoundsWithMaskToBounds) {
+  // The custom clip API should have the same effect as if an intermediate
+  // clip layer has been added to the layer tree. To check this the test creates
+  // 2 subtree for a root layer. One of the subtree uses the clip API to clip
+  // its subtree while the other uses an intermediate layer. The resulting clip
+  // in draw properties are expected to be the same. In this test, the subtree
+  // roots also have their masks to bounds property set.
+  // -Root
+  //   - Parent [Clip set to |kClipBounds| using API]
+  //     - Child
+  //   - Clip Layer [Masks to bounds = true] [Layer bounds set to |kClipBounds|]
+  //     - Expected Parent [Masks to bounds = true]
+  //       - Expected Child
+  constexpr float kDeviceScale = 1.f;
+
+  const gfx::Rect kRootLayerBounds(0, 0, 100, 100);
+  const gfx::Rect kParentLayerBounds(0, 0, 50, 100);
+  const gfx::Rect kChildLayerBounds(20, 20, 30, 60);
+
+  constexpr gfx::Rect kClipBounds(10, 10, 50, 50);
+
+  // The position of |Expected Parent| on screen should be same as |Parent|.
+  const gfx::Rect kExpectedParentLayerBounds(
+      gfx::Point(0, 0) - kClipBounds.OffsetFromOrigin(), gfx::Size(50, 100));
+
+  scoped_refptr<Layer> root = Layer::Create();
+  scoped_refptr<Layer> parent = Layer::Create();
+  scoped_refptr<Layer> child = Layer::Create();
+
+  scoped_refptr<Layer> clip_layer = Layer::Create();
+  scoped_refptr<Layer> expected_parent = Layer::Create();
+  scoped_refptr<Layer> expected_child = Layer::Create();
+
+  root->AddChild(parent);
+  parent->AddChild(child);
+
+  root->AddChild(clip_layer);
+  clip_layer->AddChild(expected_parent);
+  expected_parent->AddChild(expected_child);
+
+  host()->SetRootLayer(root);
+
+  root->SetIsDrawable(true);
+  parent->SetIsDrawable(true);
+  child->SetIsDrawable(true);
+  expected_parent->SetIsDrawable(true);
+  expected_child->SetIsDrawable(true);
+
+  // Set layer positions.
+  root->SetPosition(gfx::PointF(kRootLayerBounds.origin()));
+  parent->SetPosition(gfx::PointF(kParentLayerBounds.origin()));
+  child->SetPosition(gfx::PointF(kChildLayerBounds.origin()));
+
+  clip_layer->SetPosition(gfx::PointF(kClipBounds.origin()));
+  expected_parent->SetPosition(
+      gfx::PointF(kExpectedParentLayerBounds.origin()));
+  expected_child->SetPosition(gfx::PointF(kChildLayerBounds.origin()));
+
+  root->SetBounds(kRootLayerBounds.size());
+  parent->SetBounds(kParentLayerBounds.size());
+  child->SetBounds(kChildLayerBounds.size());
+
+  clip_layer->SetBounds(kClipBounds.size());
+  expected_parent->SetBounds(kExpectedParentLayerBounds.size());
+  expected_child->SetBounds(kChildLayerBounds.size());
+
+  parent->SetClipRect(kClipBounds);
+  parent->SetMasksToBounds(true);
+
+  clip_layer->SetMasksToBounds(true);
+  expected_parent->SetMasksToBounds(true);
+
+  ExecuteCalculateDrawProperties(root.get(), kDeviceScale);
+
+  const ClipTree& clip_tree =
+      root->layer_tree_host()->property_trees()->clip_tree;
+
+  const ClipNode* parent_clip_node = clip_tree.Node(parent->clip_tree_index());
+  const gfx::RectF expected_clip_bounds = gfx::IntersectRects(
+      gfx::RectF(kClipBounds), gfx::RectF(kParentLayerBounds));
+  EXPECT_EQ(parent_clip_node->clip, expected_clip_bounds);
+  EXPECT_TRUE(!parent->clip_rect().IsEmpty());
+
+  const ClipNode* child_clip_node = clip_tree.Node(child->clip_tree_index());
+  EXPECT_EQ(child_clip_node->clip, expected_clip_bounds);
+
+  host()->host_impl()->CreatePendingTree();
+  host()->CommitAndCreatePendingTree();
+  // TODO(https://crbug.com/939968) This call should be handled by
+  // FakeLayerTreeHost instead of manually pushing the properties from the
+  // layer tree host to the pending tree.
+  root->layer_tree_host()->PushLayerTreePropertiesTo(host()->pending_tree());
+  host()->host_impl()->ActivateSyncTree();
+  LayerTreeImpl* layer_tree_impl = host()->host_impl()->active_tree();
+
+  // Get the layer impl for each Layer.
+  LayerImpl* root_impl = layer_tree_impl->LayerById(root->id());
+  LayerImpl* parent_impl = layer_tree_impl->LayerById(parent->id());
+  LayerImpl* child_impl = layer_tree_impl->LayerById(child->id());
+  LayerImpl* expected_parent_impl =
+      layer_tree_impl->LayerById(expected_parent->id());
+  LayerImpl* expected_child_impl =
+      layer_tree_impl->LayerById(expected_child->id());
+
+  ExecuteCalculateDrawProperties(root_impl, kDeviceScale);
+
+  EXPECT_TRUE(parent_impl->is_clipped());
+  EXPECT_TRUE(child_impl->is_clipped());
+  ASSERT_TRUE(expected_parent_impl->is_clipped());
+  ASSERT_TRUE(expected_child_impl->is_clipped());
+
+  EXPECT_EQ(parent_impl->clip_rect(), expected_parent_impl->clip_rect());
+  EXPECT_EQ(child_impl->clip_rect(), expected_child_impl->clip_rect());
+}
+
 }  // namespace
 }  // namespace cc
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc
index f6b83202..9a66fe86 100644
--- a/cc/trees/layer_tree_host_pixeltest_filters.cc
+++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -347,9 +347,6 @@
                                      0);
   invert->SetBackdropFilterBounds(backdrop_filter_bounds);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL(
                    "backdrop_filter_bounds_with_children.png")));
@@ -422,9 +419,6 @@
   filters.Append(FilterOperation::CreateReferenceFilter(nullptr));
   foreground->SetFilters(filters);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), foreground,
                base::FilePath(FILE_PATH_LITERAL("green.png")));
 }
@@ -480,9 +474,6 @@
   transform.Translate(0.0, -100.0);
   foreground->SetTransform(transform);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")));
 }
@@ -515,9 +506,6 @@
   // applied only to the top 100 pixels, not the bottom.
   foreground->SetFiltersOrigin(gfx::PointF(0.0f, -100.0f));
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")));
 }
@@ -644,20 +632,6 @@
       average_error_allowed_in_bad_pixels, large_error_allowed,
       small_error_allowed));
 
-  if (renderer_type() == RENDERER_SKIA_VK) {
-    constexpr bool discard_alpha = false;
-    constexpr float error_pixels_percentage_limit = 5.f;
-    constexpr float small_error_pixels_percentage_limit = 0.f;
-    constexpr float avg_abs_error_limit = 1.f;
-    constexpr int max_abs_error_limit = 2;
-    constexpr int small_error_threshold = 0;
-
-    pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
-        discard_alpha, error_pixels_percentage_limit,
-        small_error_pixels_percentage_limit, avg_abs_error_limit,
-        max_abs_error_limit, small_error_threshold);
-  }
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("backdrop_filter_rotated_.png"))
                    .InsertBeforeExtensionASCII(GetRendererSuffix()));
@@ -708,9 +682,6 @@
         small_error_allowed));
   }
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(
       renderer_type(), background,
       base::FilePath(FILE_PATH_LITERAL("scaled_render_surface_layer_.png"))
@@ -954,9 +925,6 @@
   // Force the allocation a larger textures.
   set_enlarge_texture_amount(gfx::Size(50, 50));
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(
       renderer_type(), background,
       base::FilePath(FILE_PATH_LITERAL("enlarged_texture_on_threshold.png")));
@@ -995,9 +963,6 @@
   // Force the allocation a larger textures.
   set_enlarge_texture_amount(gfx::Size(50, 50));
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(
       renderer_type(), background,
       base::FilePath(FILE_PATH_LITERAL("enlarged_texture_on_crop_offset.png")));
diff --git a/cc/trees/layer_tree_host_pixeltest_readback.cc b/cc/trees/layer_tree_host_pixeltest_readback.cc
index 88a69cc..76e0ab0 100644
--- a/cc/trees/layer_tree_host_pixeltest_readback.cc
+++ b/cc/trees/layer_tree_host_pixeltest_readback.cc
@@ -9,7 +9,6 @@
 #include "cc/test/fake_picture_layer.h"
 #include "cc/test/fake_picture_layer_impl.h"
 #include "cc/test/layer_tree_pixel_test.h"
-#include "cc/test/pixel_comparator.h"
 #include "cc/test/solid_color_content_layer_client.h"
 #include "cc/test/test_layer_tree_frame_sink.h"
 #include "cc/trees/layer_tree_impl.h"
@@ -394,9 +393,6 @@
   blue->RequestCopyOfOutput(viz::CopyOutputRequest::CreateStubForTesting());
   background->AddChild(blue);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true);
-
   RunPixelTestWithReadbackTarget(
       renderer_type(), background, background.get(),
       base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
diff --git a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
index 9b8d1b6..1e6cc926 100644
--- a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
+++ b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
@@ -112,9 +112,6 @@
   layer->SetBounds(gfx::Size(200, 200));
   background->AddChild(layer);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("spiral.png")));
 }
@@ -134,9 +131,6 @@
   layer->SetBounds(gfx::Size(100, 100));
   background->AddChild(layer);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("spiral_double_scale.png")));
 }
@@ -158,9 +152,6 @@
   scale_transform.Scale(2.0, 2.0);
   layer->SetTransform(scale_transform);
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(renderer_type(), background,
                base::FilePath(FILE_PATH_LITERAL("spiral_double_scale.png")));
 }
@@ -294,9 +285,6 @@
 
   layer->SetPosition(gfx::PointF(185, 10));
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(
       renderer_type(), background,
       base::FilePath(FILE_PATH_LITERAL("overlay_scrollbar_scaled_up.png")));
@@ -321,9 +309,6 @@
 
   layer->SetPosition(gfx::PointF(185, 10));
 
-  if (renderer_type() == RENDERER_SKIA_VK)
-    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false);
-
   RunPixelTest(
       renderer_type(), background,
       base::FilePath(FILE_PATH_LITERAL("overlay_scrollbar_scaled_down.png")));
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index bd5882e..7d20ffa 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -180,6 +180,14 @@
   return layer->test_properties()->clip_parent;
 }
 
+static bool HasClipRect(Layer* layer) {
+  return !layer->clip_rect().IsEmpty();
+}
+
+static bool HasClipRect(LayerImpl* layer) {
+  return false;
+}
+
 static inline const FilterOperations& Filters(Layer* layer) {
   return layer->filters();
 }
@@ -204,15 +212,6 @@
   return !layer->test_properties()->rounded_corner_bounds.IsEmpty();
 }
 
-static gfx::RRectF RoundedCornerBounds(Layer* layer) {
-  return gfx::RRectF(gfx::RectF(gfx::Rect(layer->bounds())),
-                     layer->corner_radii());
-}
-
-static gfx::RRectF RoundedCornerBounds(LayerImpl* layer) {
-  return layer->test_properties()->rounded_corner_bounds;
-}
-
 static PictureLayer* MaskLayer(Layer* layer) {
   return layer->mask_layer();
 }
@@ -310,9 +309,46 @@
 }
 
 template <typename LayerType>
+static bool LayerClipsSubtreeToItsBounds(LayerType* layer) {
+  return layer->masks_to_bounds() || MaskLayer(layer);
+}
+
+template <typename LayerType>
 static bool LayerClipsSubtree(LayerType* layer) {
-  return layer->masks_to_bounds() || MaskLayer(layer) ||
-         HasRoundedCorner(layer);
+  return LayerClipsSubtreeToItsBounds(layer) || HasRoundedCorner(layer) ||
+         HasClipRect(layer);
+}
+
+gfx::RectF EffectiveClipRect(Layer* layer) {
+  // If the layer does not have a clip rect set, then the subtree is clipped by
+  // the bounds of this layer.
+  const gfx::RectF layer_bounds(gfx::PointF(), gfx::SizeF(layer->bounds()));
+  if (!HasClipRect(layer))
+    return layer_bounds;
+
+  const gfx::RectF clip_rect(layer->clip_rect());
+
+  // Layer needs to clip to its bounds as well apply a clip rect. Intersect the
+  // two to get the effective clip.
+  if (LayerClipsSubtreeToItsBounds(layer) ||
+      Filters(layer).HasFilterThatMovesPixels()) {
+    return gfx::IntersectRects(layer_bounds, clip_rect);
+  }
+
+  // Clip rect is the only clip effecting the layer.
+  return clip_rect;
+}
+
+gfx::RectF EffectiveClipRect(LayerImpl* layer) {
+  return gfx::RectF(gfx::PointF(), gfx::SizeF(layer->bounds()));
+}
+
+static gfx::RRectF RoundedCornerBounds(Layer* layer) {
+  return gfx::RRectF(EffectiveClipRect(layer), layer->corner_radii());
+}
+
+static gfx::RRectF RoundedCornerBounds(LayerImpl* layer) {
+  return layer->test_properties()->rounded_corner_bounds;
 }
 
 template <typename LayerType>
@@ -355,6 +391,12 @@
   return true;
 }
 
+static inline void SetHasClipNode(Layer* layer, bool val) {
+  layer->SetHasClipNode(val);
+}
+
+static inline void SetHasClipNode(LayerImpl* layer, bool val) {}
+
 template <typename LayerType>
 void PropertyTreeBuilderContext<LayerType>::AddClipNodeIfNeeded(
     const DataForRecursion& data_from_ancestor,
@@ -376,8 +418,11 @@
     data_for_children->clip_tree_parent = parent_id;
   } else {
     ClipNode node;
-    node.clip = gfx::RectF(gfx::PointF() + layer->offset_to_transform_parent(),
-                           gfx::SizeF(layer->bounds()));
+    node.clip = EffectiveClipRect(layer);
+
+    // Move the clip bounds so that it is relative to the transform parent.
+    node.clip += layer->offset_to_transform_parent();
+
     node.transform_id = created_transform_node
                             ? data_for_children->transform_tree_parent
                             : GetTransformParent(data_from_ancestor, layer);
@@ -391,6 +436,7 @@
     data_for_children->clip_tree_parent = clip_tree_.Insert(node, parent_id);
   }
 
+  SetHasClipNode(layer, requires_node);
   layer->SetClipTreeIndex(data_for_children->clip_tree_parent);
 }
 
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index a0ac7439..4437ed7c 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -2098,24 +2098,6 @@
   }
 }
 
-# Chrome smoke test is a minimal test to ensure Chrome is not DOA.  It is deigned to
-# be runnable against uninstrumented Chrome apks.
-instrumentation_test_apk("chrome_smoke_test") {
-  apk_name = "ChromeSmokeTest"
-  apk_under_test = "//chrome/android:chrome_public_apk"
-  android_manifest =
-      "javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml"
-  testonly = true
-  java_files =
-      [ "javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java" ]
-  deps = [
-    "//base:base_java_test_support",
-    "//chrome/test/android:chrome_java_test_pagecontroller",
-    "//content/public/test/android:content_java_test_support",
-    "//third_party/junit",
-  ]
-}
-
 if (defined(expected_static_initializer_count)) {
   action_with_pydeps("monochrome_static_initializers") {
     script = "//build/android/gyp/assert_static_initializers.py"
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index aa22d18a0..fcb98c5 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1272,6 +1272,7 @@
   "java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java",
   "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java",
   "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceAdapter.java",
+  "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java",
   "java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java",
   "java/src/org/chromium/chrome/browser/preferences/languages/AddLanguageFragment.java",
   "java/src/org/chromium/chrome/browser/preferences/languages/LanguageItem.java",
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java
index 77facdb..ab524e3 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java
@@ -20,7 +20,13 @@
     /**
      * Interface to control the GridTabSwitcher.
      */
-    interface GridController extends OverviewModeController {}
+    interface GridController extends OverviewModeController {
+        /**
+         * Called by the GridTabSwitcherLayout when the system back button is pressed.
+         * @return Whether or not the GridTabSwitcher consumed the event.
+         */
+        boolean onBackPressed();
+    }
 
     /**
      * An observer that is notified when the GridTabSwitcher view state changes.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java
index be456bc..4a1eddfd 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java
@@ -18,6 +18,7 @@
 import org.chromium.base.Log;
 import org.chromium.base.Supplier;
 import org.chromium.base.VisibleForTesting;
+import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.ChromeVersionInfo;
 import org.chromium.chrome.browser.compositor.LayerTitleCache;
@@ -137,15 +138,15 @@
     }
 
     @Override
+    public void doneHiding() {
+        super.doneHiding();
+        RecordUserAction.record("MobileExitStackView");
+    }
+
+    @Override
     public boolean onBackPressed() {
         if (mTabModelSelector.getCurrentModel().getCount() == 0) return false;
-
-        if (mGridController.overviewVisible()) {
-            mGridController.hideOverview(true);
-            return true;
-        }
-
-        return false;
+        return mGridController.onBackPressed();
     }
 
     @Override
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java
index f0efccf..e35900e 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java
@@ -20,6 +20,7 @@
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.ObserverList;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -104,6 +105,10 @@
      */
     private boolean mShouldIgnoreNextSelect;
 
+    private int mModelIndexWhenShown;
+    private int mTabIdwhenShown;
+    private int mIndexInNewModelWhenSwitched;
+
     /**
      * Interface to delegate resetting the tab grid.
      */
@@ -144,6 +149,7 @@
             @Override
             public void onTabModelSelected(TabModel newModel, TabModel oldModel) {
                 mShouldIgnoreNextSelect = true;
+                mIndexInNewModelWhenSwitched = newModel.index();
 
                 TabList currentTabModelFilter =
                         mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter();
@@ -171,6 +177,10 @@
                     if (modelFilter instanceof TabGroupModelFilter) {
                         ((TabGroupModelFilter) modelFilter).recordSessionsCount(tab);
                     }
+
+                    // Use TabSelectionType.From_USER to filter the new tab creation case.
+                    if (type == TabSelectionType.FROM_USER) recordUserSwitchedTab(tab, lastId);
+
                     hideOverview(
                             !ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION));
                 }
@@ -248,6 +258,53 @@
         mCompositorViewHolder.setContentOverlayVisibility(isVisible, true);
     }
 
+    /**
+     * Record tab switch related metric for GTS.
+     * @param tab The new selected tab.
+     * @param lastId The id of the previous selected tab, and that tab is still a valid tab
+     *               in TabModel.
+     */
+    private void recordUserSwitchedTab(Tab tab, int lastId) {
+        Tab fromTab = TabModelUtils.getTabById(mTabModelSelector.getCurrentModel(), lastId);
+        assert fromTab != null;
+
+        if (mModelIndexWhenShown == mTabModelSelector.getCurrentModelIndex()) {
+            if (tab.getId() == mTabIdwhenShown) {
+                RecordUserAction.record("MobileTabReturnedToCurrentTab");
+                RecordHistogram.recordSparseHistogram(
+                        "Tabs.TabOffsetOfSwitch." + GridTabSwitcherCoordinator.COMPONENT_NAME, 0);
+            } else {
+                int fromIndex = mTabModelSelector.getTabModelFilterProvider()
+                                        .getCurrentTabModelFilter()
+                                        .indexOf(fromTab);
+                int toIndex = mTabModelSelector.getTabModelFilterProvider()
+                                      .getCurrentTabModelFilter()
+                                      .indexOf(tab);
+
+                if (fromIndex != toIndex || fromTab.getId() == tab.getId()) {
+                    RecordUserAction.record(
+                            "MobileTabSwitched." + GridTabSwitcherCoordinator.COMPONENT_NAME);
+                    RecordHistogram.recordSparseHistogram(
+                            "Tabs.TabOffsetOfSwitch." + GridTabSwitcherCoordinator.COMPONENT_NAME,
+                            fromIndex - toIndex);
+                }
+            }
+        } else {
+            int newSelectedTabIndex =
+                    TabModelUtils.getTabIndexById(mTabModelSelector.getCurrentModel(), tab.getId());
+            if (newSelectedTabIndex == mIndexInNewModelWhenSwitched) {
+                // TabModelImpl logs this action only when a different index is set within a
+                // TabModelImpl. If we switch between normal tab model and incognito tab model and
+                // leave the index the same (i.e. after switched tab model and select the
+                // highlighted tab), TabModelImpl doesn't catch this case. Therefore, we record it
+                // here.
+                RecordUserAction.record("MobileTabSwitched");
+            }
+            RecordUserAction.record(
+                    "MobileTabSwitched." + GridTabSwitcherCoordinator.COMPONENT_NAME);
+        }
+    }
+
     @Override
     public boolean overviewVisible() {
         return mContainerViewModel.get(IS_VISIBLE);
@@ -294,6 +351,8 @@
                 ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION));
         if (!animate) mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, false);
         setVisibility(true);
+        mModelIndexWhenShown = mTabModelSelector.getCurrentModelIndex();
+        mTabIdwhenShown = mTabModelSelector.getCurrentTabId();
         mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, true);
     }
 
@@ -327,6 +386,16 @@
         }
     }
 
+    @Override
+    public boolean onBackPressed() {
+        if (!mContainerViewModel.get(IS_VISIBLE)) return false;
+
+        recordUserSwitchedTab(
+                mTabModelSelector.getCurrentTab(), mTabModelSelector.getCurrentTabId());
+        hideOverview(!ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION));
+        return true;
+    }
+
     /**
      * Do clean-up work after the overview hiding animation is finished.
      * @see GridTabSwitcher#postHiding
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
index edc17b3..57dfe68 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -210,32 +210,47 @@
 
             Tab newlySelectedTab = mTabModelSelector.getCurrentTab();
 
-            if (currentTab == newlySelectedTab) {
-                RecordUserAction.record("MobileTabReturnedToCurrentTab." + mComponentName);
-            } else {
-                recordTabOffsetOfSwitch(currentTab, newlySelectedTab);
-                RecordUserAction.record("MobileTabSwitched." + mComponentName);
+            if (!mActionsOnAllRelatedTabs) {
+                // We filtered the tab switching related metric for components that takes actions on
+                // all related tabs (e.g. GTS) because that component can switch to different
+                // TabModel before switching tabs, while this class only contains information for
+                // all tabs that are in the same TabModel, more specifically:
+                //   * For Tabs.TabOffsetOfSwitch, we do not want to log anything if the user
+                //     switched from normal to incognito or vice-versa.
+                //   * For MobileTabSwitched, as compared to the VTS, we need to account for
+                //     MobileTabReturnedToCurrentTab action. This action is defined as return to the
+                //     same tab as before entering the component, and we don't have this information
+                //     here.
+                recordUserSwitchedTab(currentTab, newlySelectedTab);
             }
         }
-        private void recordTabOffsetOfSwitch(Tab fromTab, Tab toTab) {
-            assert fromTab != toTab;
 
-            int fromIndex = mTabModelSelector.getTabModelFilterProvider()
-                                    .getCurrentTabModelFilter()
-                                    .indexOf(fromTab);
-            int toIndex = mTabModelSelector.getTabModelFilterProvider()
-                                  .getCurrentTabModelFilter()
-                                  .indexOf(toTab);
+        /**
+         * Records Tabs.TabOffsetOfSwitch and MobileTabSwitched for the component only if the
+         * fromTab and toTab have the same filter index.
+         *
+         * @param fromTab The previous selected tab.
+         * @param toTab The new selected tab.
+         */
+        private void recordUserSwitchedTab(Tab fromTab, Tab toTab) {
+            int fromFilterIndex = mTabModelSelector.getTabModelFilterProvider()
+                                          .getCurrentTabModelFilter()
+                                          .indexOf(fromTab);
+            int toFilterIndex = mTabModelSelector.getTabModelFilterProvider()
+                                        .getCurrentTabModelFilter()
+                                        .indexOf(toTab);
 
-            if (fromIndex == toIndex) {
-                fromIndex = TabModelUtils.getTabIndexById(
-                        mTabModelSelector.getCurrentModel(), fromTab.getId());
-                toIndex = TabModelUtils.getTabIndexById(
-                        mTabModelSelector.getCurrentModel(), toTab.getId());
-            }
+            if (fromFilterIndex != toFilterIndex) return;
+
+            int fromIndex = TabModelUtils.getTabIndexById(
+                    mTabModelSelector.getCurrentModel(), fromTab.getId());
+            int toIndex = TabModelUtils.getTabIndexById(
+                    mTabModelSelector.getCurrentModel(), toTab.getId());
 
             RecordHistogram.recordSparseHistogram(
                     "Tabs.TabOffsetOfSwitch." + mComponentName, fromIndex - toIndex);
+
+            RecordUserAction.record("MobileTabSwitched." + mComponentName);
         }
     };
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java
index 84a3451..f17bdab4 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java
@@ -5,18 +5,23 @@
 package org.chromium.chrome.browser.tasks.tab_management;
 
 import android.content.Context;
+import android.content.res.ColorStateList;
+import android.support.v7.content.res.AppCompatResources;
 import android.util.AttributeSet;
 import android.widget.Button;
 
+import org.chromium.chrome.browser.widget.TintedDrawable;
 import org.chromium.chrome.browser.widget.selection.SelectableListToolbar;
 import org.chromium.chrome.tab_ui.R;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
  * Handles toolbar functionality for TabSelectionEditor.
  */
 class TabSelectionEditorToolbar extends SelectableListToolbar<Integer> {
+    private static final List<Integer> sEmptyIntegerList = Collections.emptyList();
     private Button mGroupButton;
 
     public TabSelectionEditorToolbar(Context context, AttributeSet attrs) {
@@ -26,16 +31,39 @@
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
+
+        showNavigationButton();
         mGroupButton = (Button) findViewById(org.chromium.chrome.R.id.action_button);
         mNumberRollView.setStringForZero(R.string.tab_selection_editor_toolbar_select_tabs);
     }
 
+    private void showNavigationButton() {
+        TintedDrawable navigationIconDrawable = TintedDrawable.constructTintedDrawable(
+                getContext(), org.chromium.chrome.R.drawable.ic_arrow_back_white_24dp);
+        ColorStateList lightIconColorList = AppCompatResources.getColorStateList(
+                getContext(), org.chromium.chrome.R.color.default_icon_color_inverse);
+        navigationIconDrawable.setTint(lightIconColorList);
+
+        setNavigationIcon(navigationIconDrawable);
+        setNavigationContentDescription(R.string.close);
+    }
+
     @Override
     public void onSelectionStateChange(List<Integer> selectedItems) {
         super.onSelectionStateChange(selectedItems);
         mGroupButton.setEnabled(selectedItems.size() > 1);
     }
 
+    @Override
+    protected void setNavigationButton(int navigationButton) {}
+
+    @Override
+    protected void showNormalView() {
+        // TODO(976523): This is a temporary way to force the toolbar always in the selection
+        // mode until the associated bug is addressed.
+        showSelectionView(sEmptyIntegerList, true);
+    }
+
     /**
      * Sets a {@link android.view.View.OnClickListener} to respond to {@code mGroupButton} clicking
      * event.
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java
index 15d7ffc..a5f29f4 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java
@@ -152,11 +152,17 @@
                 .addTabModelFilterObserver(mTabModelObserverCaptor.capture());
         doReturn(mTab1).when(mTabModelFilter).getTabAt(0);
         doReturn(mTab2).when(mTabModelFilter).getTabAt(1);
-        doReturn(mTab2).when(mTabModelFilter).getTabAt(2);
+        doReturn(mTab3).when(mTabModelFilter).getTabAt(2);
         doReturn(false).when(mTabModelFilter).isIncognito();
         doReturn(2).when(mTabModelFilter).index();
         doReturn(3).when(mTabModelFilter).getCount();
 
+        doReturn(2).when(mTabModel).index();
+        doReturn(3).when(mTabModel).getCount();
+        doReturn(mTab1).when(mTabModel).getTabAt(0);
+        doReturn(mTab2).when(mTabModel).getTabAt(1);
+        doReturn(mTab3).when(mTabModel).getTabAt(2);
+
         doReturn(CONTROL_HEIGHT_DEFAULT).when(mFullscreenManager).getBottomControlsHeight();
         doReturn(CONTROL_HEIGHT_DEFAULT).when(mFullscreenManager).getTopControlsHeight();
         doNothing().when(mFullscreenManager).addListener(mFullscreenListenerCaptor.capture());
diff --git a/chrome/android/java/res/layout/tab_switcher_toolbar.xml b/chrome/android/java/res/layout/tab_switcher_toolbar.xml
index efa467a..da567ec2 100644
--- a/chrome/android/java/res/layout/tab_switcher_toolbar.xml
+++ b/chrome/android/java/res/layout/tab_switcher_toolbar.xml
@@ -5,10 +5,36 @@
 
 <org.chromium.chrome.browser.toolbar.top.TabSwitcherModeTTPhone
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/tab_switcher_toolbar"
     android:layout_width="match_parent"
     android:layout_height="@dimen/toolbar_height_no_shadow" >
 
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:id="@+id/new_tab_view"
+        android:background="?attr/selectableItemBackground"
+        android:orientation="horizontal"
+        android:visibility="gone">
+        <ImageView
+            android:layout_width="@dimen/toolbar_button_width"
+            android:layout_height="56dp"
+            android:layout_gravity="start|top"
+            android:scaleType="center"
+            android:paddingStart="16dp"
+            android:paddingEnd="16dp"
+            app:srcCompat="@drawable/new_tab_icon"
+            android:contentDescription="@string/accessibility_toolbar_btn_new_tab"/>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:paddingEnd="16dp"
+            android:gravity="center_vertical"
+            android:text="@string/button_new_tab"
+            android:textAppearance="@style/TextAppearance.BlackTitle2" />
+    </LinearLayout>
+
     <org.chromium.chrome.browser.toolbar.NewTabButton
         android:id="@+id/new_tab_button"
         style="@style/ToolbarButton"
diff --git a/chrome/android/java/res/xml/download_preferences.xml b/chrome/android/java/res/xml/download_preferences.xml
index e0ef6f5..894a886 100644
--- a/chrome/android/java/res/xml/download_preferences.xml
+++ b/chrome/android/java/res/xml/download_preferences.xml
@@ -3,20 +3,20 @@
      Use of this source code is governed by a BSD-style license that can be
      found in the LICENSE file. -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
     <org.chromium.chrome.browser.preferences.download.DownloadLocationPreference
         android:key="location_change"
         android:title="@string/downloads_location_selector_title"
         android:positiveButtonText="@string/done"
         android:negativeButtonText="@null"  />
 
-    <org.chromium.chrome.browser.preferences.ChromeSwitchPreference
+    <org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat
         android:key="location_prompt_enabled"
         android:title="@string/download_location_prompt_enabled_title"
         android:summaryOn="@string/text_on"
         android:summaryOff="@string/text_off" />
 
-    <org.chromium.chrome.browser.preferences.ChromeSwitchPreference
+    <org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat
         android:key="prefetching_enabled"
         android:title="@string/download_settings_enable_prefetch_title" />
-</PreferenceScreen>
+</android.support.v7.preference.PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java
index 8aebfd5..7d34e5a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java
@@ -1458,6 +1458,7 @@
         mIsHidingBecauseOfNewTabCreation = false;
 
         super.doneHiding();
+        RecordUserAction.record("MobileExitStackView");
 
         mInnerMarginPercent = 0.0f;
         mStackOffsetYPercent = 0.0f;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java
index 8e71dbc..9e270a7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java
@@ -169,7 +169,7 @@
     @Override
     public void openSettings() {
         RecordUserAction.record("Android.DownloadManager.Settings");
-        PreferencesLauncher.launchSettingsPage(mActivity, DownloadPreferences.class);
+        PreferencesLauncher.launchSettingsPageCompat(mActivity, DownloadPreferences.class);
     }
 
     private void notifyFilterChanged(@FilterType int filter) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
index abe4c17..996b7bc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
@@ -388,7 +388,7 @@
             mToolbar.showSearchView();
             return true;
         } else if (item.getItemId() == R.id.settings_menu_id) {
-            PreferencesLauncher.launchSettingsPage(mActivity, DownloadPreferences.class);
+            PreferencesLauncher.launchSettingsPageCompat(mActivity, DownloadPreferences.class);
             return true;
         }
         return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java
index 998a22d2..eda8cf21 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java
@@ -60,6 +60,9 @@
      *
      * @param context The current Activity, or an application context if no Activity is available.
      * @param fragment The fragment to show, or null to show the top-level page.
+     *
+     * TODO(crbug.com/967022): Remove this method when Preference Support Library migration is
+     * complete.
      */
     public static void launchSettingsPage(
             Context context, @Nullable Class<? extends Fragment> fragment) {
@@ -70,8 +73,22 @@
      * Launches settings, either on the top-level page or on a subpage.
      *
      * @param context The current Activity, or an application context if no Activity is available.
+     * @param fragment The fragment to show, or null to show the top-level page.
+     */
+    public static void launchSettingsPageCompat(
+            Context context, @Nullable Class<? extends android.support.v4.app.Fragment> fragment) {
+        launchSettingsPageCompat(context, fragment, null);
+    }
+
+    /**
+     * Launches settings, either on the top-level page or on a subpage.
+     *
+     * @param context The current Activity, or an application context if no Activity is available.
      * @param fragment The name of the fragment to show, or null to show the top-level page.
      * @param fragmentArgs The arguments bundle to initialize the instance of subpage fragment.
+     *
+     * TODO(crbug.com/967022): Remove this method when Preference Support Library migration is
+     * complete.
      */
     public static void launchSettingsPage(Context context,
             @Nullable Class<? extends Fragment> fragment, @Nullable Bundle fragmentArgs) {
@@ -81,6 +98,21 @@
     }
 
     /**
+     * Launches settings, either on the top-level page or on a subpage.
+     *
+     * @param context The current Activity, or an application context if no Activity is available.
+     * @param fragment The name of the fragment to show, or null to show the top-level page.
+     * @param fragmentArgs The arguments bundle to initialize the instance of subpage fragment.
+     */
+    public static void launchSettingsPageCompat(Context context,
+            @Nullable Class<? extends android.support.v4.app.Fragment> fragment,
+            @Nullable Bundle fragmentArgs) {
+        String fragmentName = fragment != null ? fragment.getName() : null;
+        Intent intent = createIntentForSettingsPage(context, fragmentName, fragmentArgs);
+        IntentUtils.safeStartActivity(context, intent);
+    }
+
+    /**
      * Creates an intent for launching settings, either on the top-level settings page or a specific
      * subpage.
      *
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java
index 26fa5ab..0dd1f47 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java
@@ -5,14 +5,11 @@
 package org.chromium.chrome.browser.preferences.download;
 
 import android.content.Context;
-import android.preference.DialogPreference;
+import android.support.v7.preference.DialogPreference;
 import android.text.SpannableStringBuilder;
 import android.text.Spanned;
 import android.text.style.StyleSpan;
 import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ListView;
 
 import org.chromium.chrome.browser.download.DirectoryOption;
 import org.chromium.chrome.download.R;
@@ -29,16 +26,11 @@
     private DownloadLocationPreferenceAdapter mAdapter;
 
     /**
-     * The view contains the list of download directories.
-     */
-    private ListView mListView;
-
-    /**
      * Constructor for DownloadLocationPreference.
      */
     public DownloadLocationPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-
+        setDialogLayoutResource(R.layout.download_location_preference);
         mAdapter = new DownloadLocationPreferenceAdapter(getContext(), this);
         mAdapter.update();
     }
@@ -61,15 +53,6 @@
         setSummary(summaryBuilder);
     }
 
-    @Override
-    protected View onCreateDialogView() {
-        View view = LayoutInflater.from(getContext())
-                            .inflate(R.layout.download_location_preference, null);
-        mListView = (ListView) (view.findViewById(R.id.location_preference_list_view));
-        mListView.setAdapter(mAdapter);
-        return view;
-    }
-
     // DownloadDirectoryAdapter.Delegate implementation.
     @Override
     public void onDirectoryOptionsUpdated() {
@@ -84,4 +67,8 @@
     public void onDirectorySelectionChanged() {
         updateSummary();
     }
+
+    DownloadLocationPreferenceAdapter getAdapter() {
+        return mAdapter;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java
new file mode 100644
index 0000000..98e07eaf
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java
@@ -0,0 +1,43 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.preferences.download;
+
+import android.os.Bundle;
+import android.support.v7.preference.PreferenceDialogFragmentCompat;
+import android.view.View;
+import android.widget.ListView;
+
+import org.chromium.chrome.download.R;
+
+/**
+ * The dialog used to display the download directory preference choices.
+ */
+public class DownloadLocationPreferenceDialog extends PreferenceDialogFragmentCompat {
+    public static final String TAG = "DownloadLocationPreferenceDialog";
+
+    public static DownloadLocationPreferenceDialog newInstance(
+            DownloadLocationPreference preference) {
+        DownloadLocationPreferenceDialog fragment = new DownloadLocationPreferenceDialog();
+        Bundle bundle = new Bundle(1);
+        bundle.putString("key", preference.getKey());
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+
+    @Override
+    protected void onBindDialogView(View view) {
+        DownloadLocationPreference preference = (DownloadLocationPreference) getPreference();
+        ListView listView = view.findViewById(R.id.location_preference_list_view);
+        listView.setAdapter(preference.getAdapter());
+        super.onBindDialogView(view);
+    }
+
+    /**
+     * Do nothing. Preferences are already updated at {@link
+     * DownloadLocationPreferenceAdapter#onClick(View)}.
+     */
+    @Override
+    public void onDialogClosed(boolean b) {}
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java
index 71dbd57..0ba863a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java
@@ -5,14 +5,14 @@
 package org.chromium.chrome.browser.preferences.download;
 
 import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
 import android.support.annotation.Nullable;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceFragmentCompat;
 
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.download.DownloadPromptStatus;
 import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration;
-import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
+import org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.preferences.PreferenceUtils;
 
@@ -20,30 +20,29 @@
  * Fragment to keep track of all downloads related preferences.
  */
 public class DownloadPreferences
-        extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
+        extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
     public static final String PREF_LOCATION_CHANGE = "location_change";
     private static final String PREF_LOCATION_PROMPT_ENABLED = "location_prompt_enabled";
     private static final String PREF_PREFETCHING_ENABLED = "prefetching_enabled";
 
     private DownloadLocationPreference mLocationChangePref;
-    private ChromeSwitchPreference mLocationPromptEnabledPref;
-    private ChromeSwitchPreference mPrefetchingEnabled;
+    private ChromeSwitchPreferenceCompat mLocationPromptEnabledPref;
+    private ChromeSwitchPreferenceCompat mPrefetchingEnabled;
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
+    public void onCreatePreferences(@Nullable Bundle savedInstanceState, String s) {
         getActivity().setTitle(R.string.menu_downloads);
         PreferenceUtils.addPreferencesFromResource(this, R.xml.download_preferences);
 
         mLocationPromptEnabledPref =
-                (ChromeSwitchPreference) findPreference(PREF_LOCATION_PROMPT_ENABLED);
+                (ChromeSwitchPreferenceCompat) findPreference(PREF_LOCATION_PROMPT_ENABLED);
         mLocationPromptEnabledPref.setOnPreferenceChangeListener(this);
 
         mLocationChangePref = (DownloadLocationPreference) findPreference(PREF_LOCATION_CHANGE);
 
         if (PrefetchConfiguration.isPrefetchingFlagEnabled()) {
-            mPrefetchingEnabled = (ChromeSwitchPreference) findPreference(PREF_PREFETCHING_ENABLED);
+            mPrefetchingEnabled =
+                    (ChromeSwitchPreferenceCompat) findPreference(PREF_PREFETCHING_ENABLED);
             mPrefetchingEnabled.setOnPreferenceChangeListener(this);
 
             updatePrefetchSummary();
@@ -53,6 +52,19 @@
     }
 
     @Override
+    public void onDisplayPreferenceDialog(Preference preference) {
+        if (preference instanceof DownloadLocationPreference) {
+            DownloadLocationPreferenceDialog dialogFragment =
+                    DownloadLocationPreferenceDialog.newInstance(
+                            (DownloadLocationPreference) preference);
+            dialogFragment.setTargetFragment(this, 0);
+            dialogFragment.show(getFragmentManager(), DownloadLocationPreferenceDialog.TAG);
+        } else {
+            super.onDisplayPreferenceDialog(preference);
+        }
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         updateData();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java
index ee0a798..d08b04a8f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java
@@ -45,9 +45,12 @@
     private IncognitoStateProvider mIncognitoStateProvider;
 
     private @Nullable IncognitoToggleTabLayout mIncognitoToggleTabLayout;
+    // The following view is used as a variation for mNewTabImageButton. When this view is showing
+    // as the button for creating new tab, the incognito toggle is hidden.
+    private @Nullable View mNewTabViewButton;
 
     // The following three buttons are not used when Duet is enabled.
-    private @Nullable NewTabButton mNewTabButton;
+    private @Nullable NewTabButton mNewTabImageButton;
     private @Nullable MenuButton mMenuButton;
     private @Nullable ToggleTabStackButton mToggleTabStackButton;
 
@@ -68,16 +71,17 @@
     public void onFinishInflate() {
         super.onFinishInflate();
 
-        mNewTabButton = findViewById(R.id.new_tab_button);
+        mNewTabImageButton = findViewById(R.id.new_tab_button);
+        mNewTabViewButton = findViewById(R.id.new_tab_view);
         mMenuButton = findViewById(R.id.menu_button_wrapper);
         mToggleTabStackButton = findViewById(R.id.tab_switcher_mode_tab_switcher_button);
 
         boolean isBottomToolbarEnabled = FeatureUtilities.isBottomToolbarEnabled();
 
         if (isBottomToolbarEnabled) {
-            UiUtils.removeViewFromParent(mNewTabButton);
-            mNewTabButton.destroy();
-            mNewTabButton = null;
+            UiUtils.removeViewFromParent(mNewTabImageButton);
+            mNewTabImageButton.destroy();
+            mNewTabImageButton = null;
 
             UiUtils.removeViewFromParent(mMenuButton);
             mMenuButton.destroy();
@@ -86,13 +90,17 @@
             UiUtils.removeViewFromParent(mToggleTabStackButton);
             mToggleTabStackButton.destroy();
             mToggleTabStackButton = null;
+
+            UiUtils.removeViewFromParent(mNewTabViewButton);
+            mNewTabImageButton = null;
         } else {
             // TODO(twellington): Try to make NewTabButton responsible for handling its own clicks.
             //                    TabSwitcherBottomToolbarCoordinator also uses NewTabButton and
             //                    sets an onClickListener directly on NewTabButton rather than
             //                    acting as the click listener itself so the behavior between this
             //                    class and the bottom toolbar will need to be unified.
-            mNewTabButton.setOnClickListener(this);
+            mNewTabImageButton.setOnClickListener(this);
+            mNewTabViewButton.setOnClickListener(this);
         }
 
         if ((usingHorizontalTabSwitcher() || FeatureUtilities.isGridTabSwitcherEnabled())
@@ -103,7 +111,7 @@
 
     @Override
     public void onClick(View v) {
-        if (mNewTabButton == v) {
+        if (mNewTabImageButton == v || mNewTabViewButton == v) {
             v.setEnabled(false);
             if (mNewTabListener != null) mNewTabListener.onClick(v);
         }
@@ -117,9 +125,9 @@
             mIncognitoStateProvider.removeObserver(this);
             mIncognitoStateProvider = null;
         }
-        if (mNewTabButton != null) {
-            mNewTabButton.destroy();
-            mNewTabButton = null;
+        if (mNewTabImageButton != null) {
+            mNewTabImageButton.destroy();
+            mNewTabImageButton = null;
         }
         if (mToggleTabStackButton != null) {
             mToggleTabStackButton.destroy();
@@ -165,7 +173,8 @@
         if (!inTabSwitcherMode) {
             if (mIncognitoToggleTabLayout != null) mIncognitoToggleTabLayout.setClickable(false);
         } else {
-            if (mNewTabButton != null) mNewTabButton.setEnabled(true);
+            if (mNewTabImageButton != null) mNewTabImageButton.setEnabled(true);
+            if (mNewTabViewButton != null) mNewTabViewButton.setEnabled(true);
             if (ReturnToChromeExperimentsUtil.shouldShowOmniboxOnTabSwitcher()) {
                 // Bump this down by the height of the toolbar so the omnibox can be visible.
                 MarginLayoutParams params = (MarginLayoutParams) getLayoutParams();
@@ -257,18 +266,20 @@
         mIncognitoStateProvider = provider;
         mIncognitoStateProvider.addIncognitoStateObserverAndTrigger(this);
 
-        if (mNewTabButton != null) mNewTabButton.setIncognitoStateProvider(mIncognitoStateProvider);
+        if (mNewTabImageButton != null)
+            mNewTabImageButton.setIncognitoStateProvider(mIncognitoStateProvider);
     }
 
     @Override
     public void onIncognitoStateChanged(boolean isIncognito) {
         mIsIncognito = isIncognito;
         updatePrimaryColorAndTint();
+        updateIncognitoToggleTabsVisibility();
     }
 
     /** Called when accessibility status changes. */
     void onAccessibilityStatusChanged(boolean enabled) {
-        if (mNewTabButton != null) mNewTabButton.onAccessibilityStatusChanged();
+        if (mNewTabImageButton != null) mNewTabImageButton.onAccessibilityStatusChanged();
 
         if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)
                 && PrefServiceBridge.getInstance().isIncognitoModeEnabled()) {
@@ -367,4 +378,24 @@
         setIncognitoToggleVisibility(showIncognitoToggle);
         setToggleTabStackButtonVisibility(!showIncognitoToggle);
     }
+
+    private void updateIncognitoToggleTabsVisibility() {
+        if (!FeatureUtilities.isGridTabSwitcherEnabled() || !ChromeFeatureList.isInitialized()
+                || !ChromeFeatureList
+                            .getFieldTrialParamByFeature(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
+                                    "tab_grid_layout_android_new_tab")
+                            .equals("NewTabVariation")
+                || ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_DUET)) {
+            return;
+        }
+        boolean hasIncognitoTabs =
+                mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(true).getCount()
+                > 0;
+        mIncognitoToggleTabLayout.setVisibility(hasIncognitoTabs ? VISIBLE : GONE);
+        if (mNewTabImageButton != null && mNewTabViewButton != null) {
+            // Only show one new tab variation at a time.
+            mNewTabImageButton.setVisibility(hasIncognitoTabs ? VISIBLE : GONE);
+            mNewTabViewButton.setVisibility(hasIncognitoTabs ? GONE : VISIBLE);
+        }
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml
deleted file mode 100644
index 31c50061..0000000
--- a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- * Copyright 2019 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
--->
-
-<manifest
-      xmlns:android="http://schemas.android.com/apk/res/android"
-      package="org.chromium.chrome.test.smoke">
-
-    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
-
-    <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <!-- We add an application tag here just so that we can indicate that this
-         package needs to link against the android.test library, which is
-         needed when building test cases. -->
-    <application>
-        <uses-library android:name="android.test.runner" />
-    </application>
-
-    <instrumentation android:name="org.chromium.base.test.BaseChromiumAndroidJUnitRunner"
-        android:targetPackage="org.chromium.chrome"
-        android:label="Runner for org.chromium.chrome.test.smoke"/>
-</manifest>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java
deleted file mode 100644
index 28864c42..0000000
--- a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.test.smoke;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.uiautomator.UiDevice;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.chromium.base.test.BaseJUnit4ClassRunner;
-import org.chromium.base.test.util.ScalableTimeout;
-import org.chromium.chrome.test.pagecontroller.utils.IUi2Locator;
-import org.chromium.chrome.test.pagecontroller.utils.Ui2Locators;
-import org.chromium.content_public.browser.test.util.CriteriaHelper;
-
-/**
- * Smoke Test for Chrome Android.
- */
-@SmallTest
-@RunWith(BaseJUnit4ClassRunner.class)
-public class ChromeSmokeTest {
-    private static final String PACKAGE_NAME_ARG = "PackageUnderTest";
-    private static final String DATA_URL = "data:,Hello";
-    private static final String ACTIVITY_NAME = "org.chromium.chrome.browser.ChromeTabbedActivity";
-
-    public final long mTimeout = ScalableTimeout.scaleTimeout(5000L);
-    public static final long UI_CHECK_INTERVAL = 200L;
-    private String mPackageName;
-
-    @Before
-    public void setUp() {
-        // TODO (aluo): Adjust this as needed according to cl 1585142
-        mPackageName = InstrumentationRegistry.getArguments().getString(PACKAGE_NAME_ARG);
-        if (mPackageName == null) {
-            mPackageName = InstrumentationRegistry.getTargetContext().getPackageName();
-        }
-    }
-
-    @Test
-    public void testHello() {
-        Context context = InstrumentationRegistry.getContext();
-        final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(DATA_URL));
-        intent.setComponent(new ComponentName(mPackageName, ACTIVITY_NAME));
-        context.startActivity(intent);
-
-        UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-
-        // TODO (aluo): Check that the data url is loaded after pagecontroller lands.
-        IUi2Locator locatorChrome = Ui2Locators.withPackageName(mPackageName);
-
-        CriteriaHelper.pollInstrumentationThread(() -> {
-            return locatorChrome.locateOne(device) != null;
-        }, mPackageName + " should have loaded", mTimeout, UI_CHECK_INTERVAL);
-    }
-}
diff --git a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java
index 02fbd1a..3dfdb56 100644
--- a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java
+++ b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java
@@ -196,7 +196,10 @@
                 model.set(DialogListItemProperties.CLICK_LISTENER, listener);
                 view.setOnClickListener(listener);
             } else {
-                view.setOnClickListener(model.get(DialogListItemProperties.CLICK_LISTENER));
+                ClickThrottlingListener listener = (ClickThrottlingListener) model.get(
+                        DialogListItemProperties.CLICK_LISTENER);
+                listener.resetWasClicked();
+                view.setOnClickListener(listener);
             }
         } else if (DialogListItemProperties.MULTI_CLICKABLE == propertyKey) {
             View.OnClickListener listener = model.get(DialogListItemProperties.CLICK_LISTENER);
@@ -225,6 +228,10 @@
             mIsMultiClickable = isMultiClickable;
         }
 
+        private void resetWasClicked() {
+            mWasClicked = false;
+        }
+
         @Override
         public void onClick(View view) {
             if (mOnClickListener == null) return;
diff --git a/chrome/android/webapk/shell_apk/proguard.flags b/chrome/android/webapk/shell_apk/proguard.flags
index 0d1ec83..d789b0af 100644
--- a/chrome/android/webapk/shell_apk/proguard.flags
+++ b/chrome/android/webapk/shell_apk/proguard.flags
@@ -1,2 +1,12 @@
-
 -keep class org.chromium.webapk.shell_apk.ShareActivity*
+
+# Classes which are referenced in the old-style or new-style AndroidManifest
+# but not both. The server currently uses the same classes.dex for both
+# old-style and new-style WebAPKs.
+-keep class org.chromium.webapk.shell_apk.MainActivity
+-keep class org.chromium.webapk.shell_apk.TransparentLauncherActivity
+-keep class org.chromium.webapk.shell_apk.h2o.H2OMainActivity
+-keep class org.chromium.webapk.shell_apk.h2o.H2OOpaqueMainActivity
+-keep class org.chromium.webapk.shell_apk.h2o.H2OTransparentLauncherActivity
+-keep class org.chromium.webapk.shell_apk.h2o.SplashActivity
+-keep class org.chromium.webapk.shell_apk.h2o.SplashContentProvider
diff --git a/chrome/app/chrome_content_browser_overlay_manifest.cc b/chrome/app/chrome_content_browser_overlay_manifest.cc
index 346c4ab..5d342de 100644
--- a/chrome/app/chrome_content_browser_overlay_manifest.cc
+++ b/chrome/app/chrome_content_browser_overlay_manifest.cc
@@ -105,9 +105,6 @@
         .ExposeCapability("gpu",
                           service_manager::Manifest::InterfaceList<
                               metrics::mojom::CallStackProfileCollector>())
-        .ExposeCapability("profiling_client",
-                          service_manager::Manifest::InterfaceList<
-                              heap_profiling::mojom::ProfilingClient>())
         .ExposeCapability("renderer",
                           service_manager::Manifest::InterfaceList<
                               chrome::mojom::AvailableOfflineContentProvider,
@@ -128,7 +125,6 @@
         // Only used in the classic Ash case
         .RequireCapability("chrome", "input_device_controller")
         .RequireCapability("chrome_printing", "converter")
-        .RequireCapability("content_system", "profiling_client")
         .RequireCapability("cups_ipp_parser", "ipp_parser")
         .RequireCapability("device", "device:fingerprint")
         .RequireCapability("device", "device:geolocation_config")
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index be39e9e4..03e8169 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5084,10 +5084,10 @@
       <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_LABEL" desc="The label for the option to show most visited sites in the customization menu on the New Tab Page">
         Most visited sites
       </message>
-      <message name="IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC" desc="The description for the option to show user selected shortcuts in the customization menu on the New Tab Page">
+      <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC" desc="The description for the option to show user selected shortcuts in the customization menu on the New Tab Page">
         Shortcuts are suggested based on websites you visit often
       </message>
-      <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC" desc="The description for the option to show most visited sites in the customization menu on the New Tab Page">
+      <message name="IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC" desc="The description for the option to show most visited sites in the customization menu on the New Tab Page">
         Shortcuts are curated by you
       </message>
 
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1
index 55ecbc7a..1b6cc0a 100644
--- a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1
@@ -1 +1 @@
-2e0e726ed31b1006a9574ef4ecbd2c8ef151dca0
\ No newline at end of file
+dd201f093ba4c337c151941ded6b348ce1ed163d
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1
index 55ecbc7a..1b6cc0a 100644
--- a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1
@@ -1 +1 @@
-2e0e726ed31b1006a9574ef4ecbd2c8ef151dca0
\ No newline at end of file
+dd201f093ba4c337c151941ded6b348ce1ed163d
\ No newline at end of file
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index 3b3fbe33..d5d55ac4 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2063,6 +2063,8 @@
     <message name="IDS_SETTINGS_INTERNET_NETWORK_PROXY_PORT" desc="Settings > Internet > Network details: Label for proxy port input.">
       Port
     </message>
+
+    <!-- Settings > Internet > SIM lock/unlock dialog -->
     <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_CHANGE_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for buton to change the PIN.">
       Change PIN
     </message>
@@ -2111,6 +2113,22 @@
     <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for entering a PUK.">
       Enter PIN Unlock Key
     </message>
+    <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an incorrect PIN was entered.">
+      Incorrect PIN. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>.
+    </message>
+    <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an incorrect PUK was entered.">
+      Incorrect PUK. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>.
+    </message>
+    <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an invalid PIN was entered.">
+      Invalid PIN. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>.
+    </message>
+    <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an invalid PUK was entered.">
+      Invalid PUK. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>.
+    </message>
+    <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_PIN_MISMATCH" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when PIN values do not match.">
+      PIN values do not match.
+    </message>
+
     <message name="IDS_SETTINGS_INTERNET_NETWORK_PREFER" desc="Settings > Internet > Network details: Label for the checkbox determining whether a network is preferred over other networks.">
       Prefer this network
     </message>
@@ -4697,8 +4715,14 @@
     <message name="IDS_SETTINGS_SYSTEM_HARDWARE_ACCELERATION_LABEL" desc="Label for the checkbox that forces Chrome to render via hardware acceleration (GPU) when available.">
       Use hardware acceleration when available
     </message>
-    <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL" desc="Label for the control that opens a user's network proxy settings.">
-      Open proxy settings
+    <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL" desc="Label for the control that opens the system network proxy settings. These settings apply to the entire computer.">
+      Open your computer's proxy settings
+    </message>
+    <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_EXTENSION_LABEL" desc="Non-interactive label that describes when Chrome's proxy settings are overwritten by an extension. This is used in place of IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL above.">
+      <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> is using proxy settings from an extension
+    </message>
+    <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_POLICY_LABEL" desc="Non-interactive label that describes when Chrome's proxy settings are overwritten by policy. This is used in place of IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL above.">
+      <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> is using proxy settings from your administrator
     </message>
   </if>
 
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 6c6e4ec..187e155c 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -772,8 +772,6 @@
     "metrics/incognito_observer.h",
     "metrics/jumplist_metrics_win.cc",
     "metrics/jumplist_metrics_win.h",
-    "metrics/live_tab_count_metrics.cc",
-    "metrics/live_tab_count_metrics.h",
     "metrics/metrics_memory_details.cc",
     "metrics/metrics_memory_details.h",
     "metrics/metrics_reporting_state.cc",
@@ -794,6 +792,8 @@
     "metrics/sampling_metrics_provider.h",
     "metrics/subprocess_metrics_provider.cc",
     "metrics/subprocess_metrics_provider.h",
+    "metrics/tab_count_metrics.cc",
+    "metrics/tab_count_metrics.h",
     "metrics/tab_footprint_aggregator.cc",
     "metrics/tab_footprint_aggregator.h",
     "metrics/testing/metrics_reporting_pref_helper.cc",
@@ -1927,7 +1927,6 @@
     "//components/language/core/common",
     "//components/leveldb_proto",
     "//components/leveldb_proto/content:factory",
-    "//components/live_tab_count_metrics",
     "//components/metrics:call_stack_profile_collector",
     "//components/metrics:component_metrics",
     "//components/metrics:gpu",
@@ -2003,6 +2002,7 @@
     "//components/sync_bookmarks",
     "//components/sync_preferences",
     "//components/sync_sessions",
+    "//components/tab_count_metrics",
     "//components/tracing:startup_tracing",
     "//components/translate/content/browser",
     "//components/translate/core/browser",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index bb6e5d5..b79a4cd 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -995,6 +995,16 @@
 };
 #endif  // OS_ANDROID
 
+#if defined(OS_ANDROID)
+const FeatureEntry::FeatureParam kTabGridLayoutAndroid_NewTabVariation[] = {
+    {"tab_grid_layout_android_new_tab", "NewTabVariation"}};
+
+const FeatureEntry::FeatureVariation kTabGridLayoutAndroidVariations[] = {
+    {"New Tab Variation", kTabGridLayoutAndroid_NewTabVariation,
+     base::size(kTabGridLayoutAndroid_NewTabVariation), nullptr},
+};
+#endif  // OS_ANDROID
+
 const FeatureEntry::FeatureParam kVizHitTestDrawQuadEnabled[] = {
     {"provider", "draw_quad"}};
 
@@ -2966,7 +2976,9 @@
 
     {"enable-tab-grid-layout", flag_descriptions::kTabGridLayoutAndroidName,
      flag_descriptions::kTabGridLayoutAndroidDescription, kOsAndroid,
-     FEATURE_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid)},
+     FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid,
+                                    kTabGridLayoutAndroidVariations,
+                                    "TabGridLayoutAndroid")},
 
     {"enable-tab-groups", flag_descriptions::kTabGroupsAndroidName,
      flag_descriptions::kTabGroupsAndroidDescription, kOsAndroid,
diff --git a/chrome/browser/apps/guest_view/app_view_browsertest.cc b/chrome/browser/apps/guest_view/app_view_browsertest.cc
index 00e553e..aeea5088 100644
--- a/chrome/browser/apps/guest_view/app_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/app_view_browsertest.cc
@@ -19,7 +19,6 @@
 #include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test_utils.h"
-#include "content/public/test/no_renderer_crashes_assertion.h"
 #include "content/public/test/test_utils.h"
 #include "extensions/browser/api/app_runtime/app_runtime_api.h"
 #include "extensions/browser/api/extensions_api_client.h"
@@ -39,50 +38,6 @@
 using guest_view::GuestViewManager;
 using guest_view::TestGuestViewManagerFactory;
 
-namespace {
-
-class RenderProcessHostObserverForExit
-    : public content::RenderProcessHostObserver {
- public:
-  explicit RenderProcessHostObserverForExit(
-      content::RenderProcessHost* observed_host)
-      : render_process_host_exited_(false), observed_host_(observed_host) {
-    observed_host->AddObserver(this);
-  }
-
-  void WaitUntilRenderProcessHostKilled() {
-    if (render_process_host_exited_)
-      return;
-    message_loop_runner_ = new content::MessageLoopRunner;
-    message_loop_runner_->Run();
-  }
-
-  base::TerminationStatus termination_status() const { return status_; }
-
- private:
-  void RenderProcessExited(
-      content::RenderProcessHost* host,
-      const content::ChildProcessTerminationInfo& info) override {
-    DCHECK(observed_host_ == host);
-    render_process_host_exited_ = true;
-    status_ = info.status;
-    observed_host_->RemoveObserver(this);
-    if (message_loop_runner_.get()) {
-      message_loop_runner_->Quit();
-    }
-  }
-
-  bool render_process_host_exited_;
-  content::RenderProcessHost* observed_host_;
-  scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
-  base::TerminationStatus status_;
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes_;
-
-  DISALLOW_COPY_AND_ASSIGN(RenderProcessHostObserverForExit);
-};
-
-}  // namespace
-
 class AppViewTest : public extensions::PlatformAppBrowserTest {
  public:
   AppViewTest() {
@@ -232,7 +187,9 @@
           ->GetProcess();
 
   // Monitor |bad_app|'s RenderProcessHost for its exiting.
-  RenderProcessHostObserverForExit exit_observer(bad_app_render_process_host);
+  content::RenderProcessHostWatcher exit_observer(
+      bad_app_render_process_host,
+      content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
 
   // Choosing a |guest_instance_id| which does not exist.
   int invalid_guest_instance_id =
@@ -242,7 +199,8 @@
   extensions::AppViewGuest::CompletePendingRequest(
       browser()->profile(), GURL("about:blank"), invalid_guest_instance_id,
       bad_app->id(), bad_app_render_process_host);
-  exit_observer.WaitUntilRenderProcessHostKilled();
+  exit_observer.Wait();
+  EXPECT_FALSE(exit_observer.did_exit_normally());
 }
 
 IN_PROC_BROWSER_TEST_F(AppViewTest, KillGuestCommunicatingWithWrongAppView) {
@@ -266,10 +224,11 @@
   // app sends a request to the host.
   int guest_instance_id =
       extensions::AppViewGuest::GetAllRegisteredInstanceIdsForTesting()[0];
-  RenderProcessHostObserverForExit bad_app_obs(
+  content::RenderProcessHostWatcher bad_app_obs(
       extensions::ProcessManager::Get(browser()->profile())
           ->GetBackgroundHostForExtension(bad_app->id())
-          ->render_process_host());
+          ->render_process_host(),
+      content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
   std::unique_ptr<base::DictionaryValue> fake_embed_request_param(
       new base::DictionaryValue);
   fake_embed_request_param->SetInteger(appview::kGuestInstanceID,
@@ -277,7 +236,8 @@
   fake_embed_request_param->SetString(appview::kEmbedderID, host_app->id());
   extensions::AppRuntimeEventRouter::DispatchOnEmbedRequestedEvent(
       browser()->profile(), std::move(fake_embed_request_param), bad_app);
-  bad_app_obs.WaitUntilRenderProcessHostKilled();
+  bad_app_obs.Wait();
+  EXPECT_FALSE(bad_app_obs.did_exit_normally());
   // Now ask the guest to continue embedding.
   ASSERT_TRUE(
       ExecuteScript(extensions::ProcessManager::Get(browser()->profile())
diff --git a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc
index dc3291c..4caa854 100644
--- a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc
+++ b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc
@@ -116,12 +116,6 @@
   return true;
 }
 
-ui::NativeTheme::ColorId
-AutofillKeyboardAccessoryAdapter::GetBackgroundColorIDForRow(int index) const {
-  DCHECK(controller_) << "Call OnSuggestionsChanged only from its owner!";
-  return controller_->GetBackgroundColorIDForRow(OffsetIndexFor(index));
-}
-
 void AutofillKeyboardAccessoryAdapter::SetSelectedLine(
     base::Optional<int> selected_line) {
   if (!controller_)
diff --git a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h
index bfa8b4b..8ad5806 100644
--- a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h
+++ b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h
@@ -73,7 +73,6 @@
                                   base::string16* title,
                                   base::string16* body) override;
   bool RemoveSuggestion(int index) override;
-  ui::NativeTheme::ColorId GetBackgroundColorIDForRow(int index) const override;
   void SetSelectedLine(base::Optional<int> selected_line) override;
   base::Optional<int> selected_line() const override;
   const AutofillPopupLayoutModel& layout_model() const override;
diff --git a/chrome/browser/autofill/mock_autofill_popup_controller.h b/chrome/browser/autofill/mock_autofill_popup_controller.h
index 5d7f8b75..cde092f 100644
--- a/chrome/browser/autofill/mock_autofill_popup_controller.h
+++ b/chrome/browser/autofill/mock_autofill_popup_controller.h
@@ -67,8 +67,6 @@
   MOCK_METHOD3(GetRemovalConfirmationText,
                bool(int index, base::string16* title, base::string16* body));
   MOCK_METHOD1(RemoveSuggestion, bool(int index));
-  MOCK_CONST_METHOD1(GetBackgroundColorIDForRow,
-                     ui::NativeTheme::ColorId(int index));
   MOCK_METHOD1(SetSelectedLine, void(base::Optional<int> selected_line));
   MOCK_CONST_METHOD0(selected_line, base::Optional<int>());
   const autofill::AutofillPopupLayoutModel& layout_model() const override {
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model.cc b/chrome/browser/chromeos/arc/tracing/arc_system_model.cc
index 2e1e8f3..f83271c1 100644
--- a/chrome/browser/chromeos/arc/tracing/arc_system_model.cc
+++ b/chrome/browser/chromeos/arc/tracing/arc_system_model.cc
@@ -134,6 +134,16 @@
   memory_events_ = std::move(trimmed_memory_events);
 }
 
+void ArcSystemModel::CloseRangeForValueEvents(uint64_t max_timestamp) {
+  std::map<ArcValueEvent::Type, std::pair<uint64_t, int>> last_timestamps;
+  for (const auto& it : memory_events_)
+    last_timestamps[it.type] = {it.timestamp, it.value};
+  for (const auto& it : last_timestamps) {
+    if (it.second.first < max_timestamp)
+      memory_events_.emplace_back(max_timestamp, it.first, it.second.second);
+  }
+}
+
 void ArcSystemModel::CopyFrom(const ArcSystemModel& other) {
   thread_map_ = other.thread_map_;
   all_cpu_events_ = other.all_cpu_events_;
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model.h b/chrome/browser/chromeos/arc/tracing/arc_system_model.h
index d36ca80..5cf5c24a 100644
--- a/chrome/browser/chromeos/arc/tracing/arc_system_model.h
+++ b/chrome/browser/chromeos/arc/tracing/arc_system_model.h
@@ -44,6 +44,10 @@
   // in the model unchanged.
   void Trim(uint64_t trim_timestamp);
 
+  // Closes range for each value event type by extending the latest value till
+  // the |max_timestamp|.
+  void CloseRangeForValueEvents(uint64_t max_timestamp);
+
   void CopyFrom(const ArcSystemModel& other);
   base::DictionaryValue Serialize() const;
   bool Load(const base::Value* root);
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc b/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc
index 0576259..562b58c 100644
--- a/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc
+++ b/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc
@@ -142,4 +142,27 @@
             model.memory_events()[7]);
 }
 
+TEST_F(ArcSystemModelTest, CloseRange) {
+  ArcSystemModel model;
+
+  model.memory_events().emplace_back(
+      0 /* timestamp */, ArcValueEvent::Type::kGpuFreq, 100 /* value */);
+  model.memory_events().emplace_back(
+      0 /* timestamp */, ArcValueEvent::Type::kCpuTemp, 20 /* value */);
+  model.memory_events().emplace_back(
+      100 /* timestamp */, ArcValueEvent::Type::kGpuFreq, 150 /* value */);
+  model.memory_events().emplace_back(
+      200 /* timestamp */, ArcValueEvent::Type::kCpuTemp, 50 /* value */);
+
+  EXPECT_EQ(4u, model.memory_events().size());
+
+  model.CloseRangeForValueEvents(200 /* timestamp */);
+
+  // kGpuFreq is extended.
+  ASSERT_EQ(5u, model.memory_events().size());
+  EXPECT_EQ(ArcValueEvent(200 /* timestamp */, ArcValueEvent::Type::kGpuFreq,
+                          150 /* value */),
+            model.memory_events().back());
+}
+
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc b/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc
index c6e2ebf..fe77774 100644
--- a/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc
+++ b/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc
@@ -1627,6 +1627,8 @@
 
   NormalizeTimestamps();
 
+  system_model_.CloseRangeForValueEvents(duration_ - 1 /* max_timestamp */);
+
   return true;
 }
 
diff --git a/chrome/browser/chromeos/printing/printer_info.h b/chrome/browser/chromeos/printing/printer_info.h
index 6821a6c..5fb1c9e 100644
--- a/chrome/browser/chromeos/printing/printer_info.h
+++ b/chrome/browser/chromeos/printing/printer_info.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/callback_forward.h"
-#include "printing/backend/cups_jobs.h"
+#include "printing/printer_query_result_chromeos.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/chromeos/printing/printer_info_cups.cc b/chrome/browser/chromeos/printing/printer_info_cups.cc
index 3ec8254..2b9a6178 100644
--- a/chrome/browser/chromeos/printing/printer_info_cups.cc
+++ b/chrome/browser/chromeos/printing/printer_info_cups.cc
@@ -16,6 +16,7 @@
 #include "base/task/task_traits.h"
 #include "base/task_runner_util.h"
 #include "base/version.h"
+#include "printing/backend/cups_jobs.h"
 
 namespace {
 
diff --git a/chrome/browser/devtools/DEPS b/chrome/browser/devtools/DEPS
new file mode 100644
index 0000000..9253008
--- /dev/null
+++ b/chrome/browser/devtools/DEPS
@@ -0,0 +1,4 @@
+include_rules = [
+  # For converting between JSON and CBOR in devtools_session_encoding.cc.
+  "+third_party/inspector_protocol/encoding",
+]
diff --git a/chrome/browser/devtools/chrome_devtools_session.cc b/chrome/browser/devtools/chrome_devtools_session.cc
index ee7bf90..4b75e59 100644
--- a/chrome/browser/devtools/chrome_devtools_session.cc
+++ b/chrome/browser/devtools/chrome_devtools_session.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/devtools/chrome_devtools_session.h"
 
+#include <memory>
+#include "base/strings/string_number_conversions.h"
 #include "chrome/browser/devtools/protocol/browser_handler.h"
 #include "chrome/browser/devtools/protocol/cast_handler.h"
 #include "chrome/browser/devtools/protocol/page_handler.h"
@@ -11,11 +13,47 @@
 #include "content/public/browser/devtools_agent_host.h"
 #include "content/public/browser/devtools_agent_host_client.h"
 #include "content/public/browser/devtools_manager_delegate.h"
+#include "third_party/inspector_protocol/encoding/encoding.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/devtools/protocol/window_manager_handler.h"
 #endif
 
+namespace {
+// TODO(johannes): This is very similar to the code in
+// content/browser/devtools/devtools_protocol_encoding. Once we have
+// the error / status propagation story settled, move the common parts
+// into a content public API.
+
+using ::inspector_protocol_encoding::span;
+using ::inspector_protocol_encoding::SpanFrom;
+using ::inspector_protocol_encoding::json::ConvertCBORToJSON;
+using ::inspector_protocol_encoding::json::ConvertJSONToCBOR;
+using IPEStatus = ::inspector_protocol_encoding::Status;
+
+// Platform allows us to inject the string<->double conversion
+// routines from base:: into the inspector_protocol JSON parser / serializer.
+class Platform : public ::inspector_protocol_encoding::json::Platform {
+ public:
+  bool StrToD(const char* str, double* result) const override {
+    return base::StringToDouble(str, result);
+  }
+
+  // Prints |value| in a format suitable for JSON.
+  std::unique_ptr<char[]> DToStr(double value) const override {
+    std::string str = base::NumberToString(value);
+    std::unique_ptr<char[]> result(new char[str.size() + 1]);
+    memcpy(result.get(), str.c_str(), str.size() + 1);
+    return result;
+  }
+};
+
+IPEStatus ConvertCBORToJSON(span<uint8_t> cbor, std::string* json) {
+  Platform platform;
+  return ConvertCBORToJSON(platform, cbor, json);
+}
+}  // namespace
+
 ChromeDevToolsSession::ChromeDevToolsSession(
     content::DevToolsAgentHost* agent_host,
     content::DevToolsAgentHostClient* client)
@@ -44,14 +82,6 @@
 
 ChromeDevToolsSession::~ChromeDevToolsSession() = default;
 
-void ChromeDevToolsSession::sendProtocolResponse(
-    int call_id,
-    std::unique_ptr<protocol::Serializable> message) {
-  pending_commands_.erase(call_id);
-  bool binary = client_->UsesBinaryProtocol();
-  client_->DispatchProtocolMessage(agent_host_, message->serialize(binary));
-}
-
 void ChromeDevToolsSession::HandleCommand(
     const std::string& method,
     const std::string& message,
@@ -72,6 +102,37 @@
   dispatcher_->dispatch(call_id, method, std::move(value), message);
 }
 
+// The following methods handle responses or notifications coming from
+// the browser to the client.
+static void SendProtocolResponseOrNotification(
+    content::DevToolsAgentHostClient* client,
+    content::DevToolsAgentHost* agent_host,
+    std::unique_ptr<protocol::Serializable> message) {
+  std::string cbor = message->serialize(/*binary=*/true);
+  if (client->UsesBinaryProtocol()) {
+    client->DispatchProtocolMessage(agent_host, cbor);
+    return;
+  }
+  std::string json;
+  IPEStatus status = ConvertCBORToJSON(SpanFrom(cbor), &json);
+  LOG_IF(ERROR, !status.ok()) << status.ToASCIIString();
+  client->DispatchProtocolMessage(agent_host, json);
+}
+
+void ChromeDevToolsSession::sendProtocolResponse(
+    int call_id,
+    std::unique_ptr<protocol::Serializable> message) {
+  pending_commands_.erase(call_id);
+  SendProtocolResponseOrNotification(client_, agent_host_, std::move(message));
+}
+
+void ChromeDevToolsSession::sendProtocolNotification(
+    std::unique_ptr<protocol::Serializable> message) {
+  SendProtocolResponseOrNotification(client_, agent_host_, std::move(message));
+}
+
+void ChromeDevToolsSession::flushProtocolNotifications() {}
+
 void ChromeDevToolsSession::fallThrough(int call_id,
                                         const std::string& method,
                                         const std::string& message) {
@@ -79,11 +140,3 @@
   pending_commands_.erase(call_id);
   std::move(callback).Run(message);
 }
-
-void ChromeDevToolsSession::sendProtocolNotification(
-    std::unique_ptr<protocol::Serializable> message) {
-  bool binary = client_->UsesBinaryProtocol();
-  client_->DispatchProtocolMessage(agent_host_, message->serialize(binary));
-}
-
-void ChromeDevToolsSession::flushProtocolNotifications() {}
diff --git a/chrome/browser/download/download_commands.cc b/chrome/browser/download/download_commands.cc
index e4544ca..b61b2f1 100644
--- a/chrome/browser/download/download_commands.cc
+++ b/chrome/browser/download/download_commands.cc
@@ -94,7 +94,7 @@
     // This method is called on the same thread as constructor (the UI thread).
     DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
-    ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
     scw.Reset();
 
     if (!decoded_image.empty() && !decoded_image.isNull())
diff --git a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
index de1ed094..5705f21 100644
--- a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
@@ -54,7 +54,7 @@
 
   // Reset the clipboard and kill dev tools when entering or exiting locked
   // fullscreen (security concerns).
-  ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste);
   content::DevToolsAgentHost::DetachAllClients();
 
   // Disable ARC while in the locked fullscreen mode.
diff --git a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
index a7e8139..f78db23 100644
--- a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
+++ b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
@@ -110,7 +110,7 @@
 
 void ClipboardExtensionHelper::OnImageDecoded(const SkBitmap& bitmap) {
   {
-    ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
     // Write the decoded image data to clipboard.
     if (!bitmap.empty() && !bitmap.isNull())
       scw.WriteImage(bitmap);
diff --git a/chrome/browser/metrics/live_tab_count_metrics.h b/chrome/browser/metrics/live_tab_count_metrics.h
deleted file mode 100644
index fc004b1..0000000
--- a/chrome/browser/metrics/live_tab_count_metrics.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_
-#define CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_
-
-#include <stddef.h>
-
-// This contains functions for creating live tab count metrics that are specific
-// to //chrome/browser. All bucket-related and process-independent code should
-// live in //components/live_tab_count_metrics.
-namespace live_tab_count_metrics {
-
-// Returns the current number of live tabs in the browser. A tab is considered
-// to be alive if it is associated with the tab UI (i.e. tabstrip), and it is
-// either loading or loaded. This excludes crashed or discarded tabs.
-//
-// Must be called on the UI thread. This function is implemented using
-// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules.
-// Accessing TabLoadTracker must be done from the sequence to which it is bound,
-// which is meant to be the UI thread.
-size_t LiveTabCount();
-
-}  // namespace live_tab_count_metrics
-
-#endif  // CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_
diff --git a/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc b/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc
index 4ef0524..b818ece 100644
--- a/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc
+++ b/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc
@@ -60,7 +60,6 @@
 #define MAYBE_MemoryExhaust MemoryExhaust
 #endif
 IN_PROC_BROWSER_TEST_F(OutOfMemoryReporterBrowserTest, MAYBE_MemoryExhaust) {
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
 
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetActiveWebContents();
@@ -71,6 +70,8 @@
 
   // Careful, this doesn't actually commit the navigation. So, navigating to
   // this URL will cause an OOM associated with the previous committed URL.
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(
+      browser()->tab_strip_model()->GetActiveWebContents());
   ui_test_utils::NavigateToURL(browser(),
                                GURL(content::kChromeUIMemoryExhaustURL));
   EXPECT_EQ(crash_url, last_oom_url_.value());
diff --git a/chrome/browser/metrics/perf/heap_collector.cc b/chrome/browser/metrics/perf/heap_collector.cc
index b0a07b3..8556f58 100644
--- a/chrome/browser/metrics/perf/heap_collector.cc
+++ b/chrome/browser/metrics/perf/heap_collector.cc
@@ -249,7 +249,8 @@
     : MetricCollector(kHeapCollectorName),
       sampling_period_bytes_(kHeapSamplingIntervalBytes),
       mode_(mode),
-      is_enabled_(false) {
+      is_enabled_(false),
+      weak_factory_(this) {
   BrowserList::AddObserver(this);
 
   if (mode_ == HeapCollectionMode::kShimLayer) {
@@ -344,6 +345,10 @@
       base::TimeDelta::FromSeconds(kRestoreSessionMaxDelaySec.Get());
 }
 
+base::WeakPtr<MetricCollector> HeapCollector::GetWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
 bool HeapCollector::ShouldCollect() const {
   // Do not collect further data if we've already collected a substantial amount
   // of data, as indicated by |kCachedHeapDataProtobufSizeThreshold|.
diff --git a/chrome/browser/metrics/perf/heap_collector.h b/chrome/browser/metrics/perf/heap_collector.h
index 843f714..6494c1e 100644
--- a/chrome/browser/metrics/perf/heap_collector.h
+++ b/chrome/browser/metrics/perf/heap_collector.h
@@ -51,6 +51,7 @@
 
  protected:
   // MetricCollector:
+  base::WeakPtr<MetricCollector> GetWeakPtr() override;
   bool ShouldCollect() const override;
   void CollectProfile(std::unique_ptr<SampledProfile> sampled_profile) override;
 
@@ -92,6 +93,8 @@
   // The collector state.
   bool is_enabled_;
 
+  base::WeakPtrFactory<HeapCollector> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(HeapCollector);
 };
 
diff --git a/chrome/browser/metrics/perf/metric_collector.cc b/chrome/browser/metrics/perf/metric_collector.cc
index d1f5030a..66fa361 100644
--- a/chrome/browser/metrics/perf/metric_collector.cc
+++ b/chrome/browser/metrics/perf/metric_collector.cc
@@ -136,7 +136,7 @@
       RandomTimeDelta(resume_params.max_collection_delay);
   timer_.Start(FROM_HERE, collection_delay,
                base::BindOnce(&MetricCollector::CollectPerfDataAfterResume,
-                              AsWeakPtr(), sleep_duration, collection_delay));
+                              GetWeakPtr(), sleep_duration, collection_delay));
 }
 
 void MetricCollector::CollectPerfDataAfterResume(
@@ -182,7 +182,7 @@
   timer_.Start(
       FROM_HERE, collection_delay,
       base::BindOnce(&MetricCollector::CollectPerfDataAfterSessionRestore,
-                     AsWeakPtr(), collection_delay, num_tabs_restored));
+                     GetWeakPtr(), collection_delay, num_tabs_restored));
 }
 
 void MetricCollector::CollectPerfDataAfterSessionRestore(
@@ -222,8 +222,9 @@
   if (scheduled_time < now)
     scheduled_time = now;
 
-  timer_.Start(FROM_HERE, scheduled_time - now, this,
-               &MetricCollector::DoPeriodicCollection);
+  timer_.Start(
+      FROM_HERE, scheduled_time - now,
+      base::BindOnce(&MetricCollector::DoPeriodicCollection, GetWeakPtr()));
 
   // Update the profiling interval tracker to the start of the next interval.
   next_profiling_interval_start_ = interval_end;
diff --git a/chrome/browser/metrics/perf/metric_collector.h b/chrome/browser/metrics/perf/metric_collector.h
index 2e0b3de..953e4087 100644
--- a/chrome/browser/metrics/perf/metric_collector.h
+++ b/chrome/browser/metrics/perf/metric_collector.h
@@ -21,9 +21,8 @@
 class SampledProfile;
 
 // Provides a common interface for metric collectors with custom trigger
-// definitions. Extends base::SupportWeakPtr to pass around the "this"
-// pointer across threads safely.
-class MetricCollector : public base::SupportsWeakPtr<MetricCollector> {
+// definitions.
+class MetricCollector {
  public:
   explicit MetricCollector(const std::string& name);
   explicit MetricCollector(const std::string& name,
@@ -76,6 +75,9 @@
     NUM_OUTCOMES
   };
 
+  // Returns a WeakPtr to this instance.
+  virtual base::WeakPtr<MetricCollector> GetWeakPtr() = 0;
+
   // Saves the given outcome to the uma histogram associated with the collector.
   void AddToUmaHistogram(CollectionAttemptStatus outcome) const;
 
diff --git a/chrome/browser/metrics/perf/metric_collector_unittest.cc b/chrome/browser/metrics/perf/metric_collector_unittest.cc
index 6f902ac4..5120fb9 100644
--- a/chrome/browser/metrics/perf/metric_collector_unittest.cc
+++ b/chrome/browser/metrics/perf/metric_collector_unittest.cc
@@ -97,9 +97,10 @@
 // Allows access to some private methods for testing.
 class TestMetricCollector : public MetricCollector {
  public:
-  TestMetricCollector() : MetricCollector("UMA.CWP.TestData") {}
+  TestMetricCollector() : TestMetricCollector(CollectionParams()) {}
   explicit TestMetricCollector(const CollectionParams& collection_params)
-      : MetricCollector("UMA.CWP.TestData", collection_params) {}
+      : MetricCollector("UMA.CWP.TestData", collection_params),
+        weak_factory_(this) {}
 
   void CollectProfile(
       std::unique_ptr<SampledProfile> sampled_profile) override {
@@ -109,6 +110,10 @@
                             perf_data_proto.SerializeAsString());
   }
 
+  base::WeakPtr<MetricCollector> GetWeakPtr() override {
+    return weak_factory_.GetWeakPtr();
+  }
+
   using MetricCollector::collection_params;
   using MetricCollector::login_time;
   using MetricCollector::PerfProtoType;
@@ -119,6 +124,8 @@
  private:
   std::vector<SampledProfile> stored_profiles_;
 
+  base::WeakPtrFactory<TestMetricCollector> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(TestMetricCollector);
 };
 
diff --git a/chrome/browser/metrics/perf/perf_events_collector.cc b/chrome/browser/metrics/perf/perf_events_collector.cc
index 4991a0c..2b97998 100644
--- a/chrome/browser/metrics/perf/perf_events_collector.cc
+++ b/chrome/browser/metrics/perf/perf_events_collector.cc
@@ -424,6 +424,10 @@
   DCHECK(posted);
 }
 
+base::WeakPtr<MetricCollector> PerfCollector::GetWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
 bool PerfCollector::ShouldCollect() const {
   // Only allow one active collection.
   if (perf_output_call_) {
diff --git a/chrome/browser/metrics/perf/perf_events_collector.h b/chrome/browser/metrics/perf/perf_events_collector.h
index 8e7ef0a..aadf0fa 100644
--- a/chrome/browser/metrics/perf/perf_events_collector.h
+++ b/chrome/browser/metrics/perf/perf_events_collector.h
@@ -48,6 +48,7 @@
       const std::string& perf_stdout);
 
   // MetricCollector:
+  base::WeakPtr<MetricCollector> GetWeakPtr() override;
   bool ShouldCollect() const override;
   void CollectProfile(std::unique_ptr<SampledProfile> sampled_profile) override;
 
diff --git a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
index c07bfaf..11821d1 100644
--- a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
+++ b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
@@ -61,9 +61,10 @@
 template <int TSTAMP>
 class TestMetricCollector : public MetricCollector {
  public:
-  TestMetricCollector() = default;
+  TestMetricCollector() : TestMetricCollector(CollectionParams()) {}
   explicit TestMetricCollector(const CollectionParams& collection_params)
-      : MetricCollector("UMA.CWP.TestData", collection_params) {}
+      : MetricCollector("UMA.CWP.TestData", collection_params),
+        weak_factory_(this) {}
 
   void CollectProfile(
       std::unique_ptr<SampledProfile> sampled_profile) override {
@@ -73,7 +74,13 @@
                             perf_data_proto.SerializeAsString());
   }
 
+  base::WeakPtr<MetricCollector> GetWeakPtr() override {
+    return weak_factory_.GetWeakPtr();
+  }
+
  private:
+  base::WeakPtrFactory<TestMetricCollector> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(TestMetricCollector);
 };
 
diff --git a/chrome/browser/metrics/live_tab_count_metrics.cc b/chrome/browser/metrics/tab_count_metrics.cc
similarity index 63%
rename from chrome/browser/metrics/live_tab_count_metrics.cc
rename to chrome/browser/metrics/tab_count_metrics.cc
index 95f3cb9..b2e6434 100644
--- a/chrome/browser/metrics/live_tab_count_metrics.cc
+++ b/chrome/browser/metrics/tab_count_metrics.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/metrics/live_tab_count_metrics.h"
+#include "chrome/browser/metrics/tab_count_metrics.h"
 
 #include "chrome/browser/resource_coordinator/tab_load_tracker.h"
 #include "content/public/browser/browser_thread.h"
 
-namespace live_tab_count_metrics {
+namespace tab_count_metrics {
 
 size_t LiveTabCount() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -17,4 +17,11 @@
          tab_load_tracker->GetLoadedUiTabCount();
 }
 
-}  // namespace live_tab_count_metrics
+size_t TabCount() {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  auto* tab_load_tracker = resource_coordinator::TabLoadTracker::Get();
+  return tab_load_tracker->GetUiTabCount();
+}
+
+}  // namespace tab_count_metrics
diff --git a/chrome/browser/metrics/tab_count_metrics.h b/chrome/browser/metrics/tab_count_metrics.h
new file mode 100644
index 0000000..b80162bb
--- /dev/null
+++ b/chrome/browser/metrics/tab_count_metrics.h
@@ -0,0 +1,36 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_
+#define CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_
+
+#include <stddef.h>
+
+// This contains functions for creating tab count metrics that are specific
+// to //chrome/browser. All bucket-related and process-independent code should
+// live in //components/tab_count_metrics.
+namespace tab_count_metrics {
+
+// Returns the current number of live tabs in the browser. A tab is considered
+// to be alive if it is associated with the tab UI (i.e. tabstrip), and it is
+// either loading or loaded. This excludes crashed or discarded tabs.
+//
+// Must be called on the UI thread. This function is implemented using
+// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules.
+// Accessing TabLoadTracker must be done from the sequence to which it is bound,
+// which is meant to be the UI thread.
+size_t LiveTabCount();
+
+// Returns the current number of tabs in the browser. This includes unloaded,
+// loading, and loaded tabs.
+//
+// Must be called on the UI thread. This function is implemented using
+// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules.
+// Accessing TabLoadTracker must be done from the sequence to which it is bound,
+// which is meant to be the UI thread.
+size_t TabCount();
+
+}  // namespace tab_count_metrics
+
+#endif  // CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_
diff --git a/chrome/browser/net/reporting_browsertest.cc b/chrome/browser/net/reporting_browsertest.cc
index 9a28209..154afdd 100644
--- a/chrome/browser/net/reporting_browsertest.cc
+++ b/chrome/browser/net/reporting_browsertest.cc
@@ -203,7 +203,7 @@
   navigation_observer.Wait();
 
   // Simulate a crash on the page.
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(contents);
   contents->GetController().LoadURL(GURL(content::kChromeUICrashURL),
                                     content::Referrer(),
                                     ui::PAGE_TRANSITION_TYPED, std::string());
@@ -243,7 +243,7 @@
   navigation_observer.Wait();
 
   // Simulate the page being killed due to being unresponsive.
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(contents);
   contents->GetMainFrame()->GetProcess()->Shutdown(content::RESULT_CODE_HUNG);
 
   upload_response()->WaitForRequest();
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
index 0558944..603a439 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 #include <map>
+#include <unordered_set>
 
 #include "base/bind.h"
 #include "base/guid.h"
@@ -27,8 +28,13 @@
  public:
   using Store = std::unique_ptr<CollectionStore<NotificationEntry>>;
 
-  ScheduledNotificationManagerImpl(Store store)
-      : store_(std::move(store)), delegate_(nullptr), weak_ptr_factory_(this) {}
+  ScheduledNotificationManagerImpl(
+      Store store,
+      const std::vector<SchedulerClientType>& clients)
+      : store_(std::move(store)),
+        clients_(clients.begin(), clients.end()),
+        delegate_(nullptr),
+        weak_ptr_factory_(this) {}
 
  private:
   void Init(Delegate* delegate, InitCallback callback) override {
@@ -45,7 +51,10 @@
     DCHECK(notification_params);
     std::string guid = notification_params->guid;
     DCHECK(!guid.empty());
-    if (notifications_.find(guid) != notifications_.end()) {
+    auto type = notification_params->type;
+
+    if (!clients_.count(type) ||
+        (notifications_.count(type) && notifications_[type].count(guid))) {
       // TODO(xingliu): Report duplicate guid failure.
       return;
     }
@@ -56,7 +65,7 @@
         std::move(notification_params->notification_data);
     entry->schedule_params = std::move(notification_params->schedule_params);
     auto* entry_ptr = entry.get();
-    notifications_.emplace(guid, std::move(entry));
+    notifications_[type][guid] = std::move(entry);
     store_->Add(
         guid, *entry_ptr,
         base::BindOnce(&ScheduledNotificationManagerImpl::OnNotificationAdded,
@@ -64,28 +73,37 @@
   }
 
   void DisplayNotification(const std::string& guid) override {
-    auto it = notifications_.find(guid);
-    if (it == notifications_.end())
+    std::unique_ptr<NotificationEntry> entry;
+    for (auto it = notifications_.begin(); it != notifications_.end(); it++) {
+      if (it->second.count(guid))
+        entry = std::move(it->second[guid]);
+    }
+    // TODO(hesen): Inform delegate failure of finding the data.
+    if (!entry)
       return;
 
-    // Move the entry to delegate, and delete it from the storage.
-    auto notification_entry = std::move(it->second);
-    notifications_.erase(guid);
+    notifications_[entry->type].erase(entry->guid);
+    if (notifications_[entry->type].empty())
+      notifications_.erase(entry->type);
+
     store_->Delete(
         guid,
         base::BindOnce(&ScheduledNotificationManagerImpl::OnNotificationDeleted,
                        weak_ptr_factory_.GetWeakPtr()));
+
     if (delegate_)
-      delegate_->DisplayNotification(std::move(notification_entry));
+      delegate_->DisplayNotification(std::move(entry));
   }
 
   void GetAllNotifications(Notifications* notifications) override {
     DCHECK(notifications);
     notifications->clear();
-    for (const auto& pair : notifications_) {
-      const auto& notif = pair.second;
-      DCHECK(notif);
-      (*notifications)[notif->type].emplace_back(notif.get());
+
+    for (auto it = notifications_.begin(); it != notifications_.end(); it++) {
+      auto type = it->first;
+      for (const auto& pair : it->second) {
+        (*notifications)[type].emplace_back(pair.second.get());
+      }
     }
 
     // Sort by creation time for each notification type.
@@ -95,17 +113,30 @@
   }
 
   void DeleteNotifications(SchedulerClientType type) override {
-    auto it = notifications_.begin();
-    while (it != notifications_.end()) {
+    if (!notifications_.count(type))
+      return;
+    auto it = notifications_[type].begin();
+    while (it != notifications_[type].end()) {
       const auto& entry = *it->second;
       ++it;
-      if (entry.type == type) {
-        store_->Delete(
-            entry.guid,
-            base::BindOnce(
-                &ScheduledNotificationManagerImpl::OnNotificationDeleted,
-                weak_ptr_factory_.GetWeakPtr()));
-        notifications_.erase(entry.guid);
+      store_->Delete(
+          entry.guid,
+          base::BindOnce(
+              &ScheduledNotificationManagerImpl::OnNotificationDeleted,
+              weak_ptr_factory_.GetWeakPtr()));
+    }
+    notifications_.erase(type);
+  }
+
+  // Sync with registered clients. Delete entrties in |notifications_| if
+  // their clients are deprecated.
+  void SyncRegisteredClients() {
+    auto it = notifications_.begin();
+    while (it != notifications_.end()) {
+      auto type = it->first;
+      it++;
+      if (!clients_.count(type)) {
+        DeleteNotifications(type);
       }
     }
   }
@@ -120,9 +151,11 @@
 
     for (auto it = entries.begin(); it != entries.end(); ++it) {
       std::string guid = (*it)->guid;
-      notifications_.emplace(guid, std::move(*it));
+      auto type = (*it)->type;
+      if (clients_.count(type))
+        notifications_[type].emplace(guid, std::move(*it));
     }
-
+    SyncRegisteredClients();
     std::move(callback).Run(true);
   }
 
@@ -131,20 +164,24 @@
   void OnNotificationDeleted(bool success) { NOTIMPLEMENTED(); }
 
   Store store_;
+  const std::unordered_set<SchedulerClientType> clients_;
   Delegate* delegate_;
-  std::map<std::string, std::unique_ptr<NotificationEntry>> notifications_;
+  std::map<SchedulerClientType,
+           std::map<std::string, std::unique_ptr<NotificationEntry>>>
+      notifications_;
 
   base::WeakPtrFactory<ScheduledNotificationManagerImpl> weak_ptr_factory_;
   DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerImpl);
 };
-
 }  // namespace
 
 // static
 std::unique_ptr<ScheduledNotificationManager>
 ScheduledNotificationManager::Create(
-    std::unique_ptr<CollectionStore<NotificationEntry>> store) {
-  return std::make_unique<ScheduledNotificationManagerImpl>(std::move(store));
+    std::unique_ptr<CollectionStore<NotificationEntry>> store,
+    const std::vector<SchedulerClientType>& clients) {
+  return std::make_unique<ScheduledNotificationManagerImpl>(std::move(store),
+                                                            clients);
 }
 
 ScheduledNotificationManager::ScheduledNotificationManager() = default;
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h
index 3437053..c8f6d4b 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h
+++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h
@@ -42,7 +42,8 @@
 
   // Creates the instance.
   static std::unique_ptr<ScheduledNotificationManager> Create(
-      std::unique_ptr<CollectionStore<NotificationEntry>> store);
+      std::unique_ptr<CollectionStore<NotificationEntry>> store,
+      const std::vector<SchedulerClientType>& clients);
 
   // Initializes the notification store.
   virtual void Init(Delegate* delegate, InitCallback callback) = 0;
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
index 0ba4d73..645842cd 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
@@ -24,10 +24,6 @@
 const char kGuid[] = "test_guid_1234";
 const char kTitle[] = "test_title";
 
-NotificationEntry CreateNotificationEntry() {
-  return NotificationEntry(SchedulerClientType::kUnknown, base::GenerateGUID());
-}
-
 NotificationEntry CreateNotificationEntry(SchedulerClientType type) {
   return NotificationEntry(type, base::GenerateGUID());
 }
@@ -71,7 +67,10 @@
     delegate_ = std::make_unique<MockDelegate>();
     auto store = std::make_unique<MockNotificationStore>();
     store_ = store.get();
-    manager_ = ScheduledNotificationManager::Create(std::move(store));
+    manager_ = ScheduledNotificationManager::Create(
+        std::move(store),
+        {SchedulerClientType::kTest1, SchedulerClientType::kTest2,
+         SchedulerClientType::kTest3});
   }
 
  protected:
@@ -83,8 +82,7 @@
   void InitWithData(std::vector<NotificationEntry> data) {
     Entries entries;
     for (auto it = data.begin(); it != data.end(); ++it) {
-      auto entry_ptr = std::make_unique<NotificationEntry>(
-          SchedulerClientType::kUnknown, it->guid);
+      auto entry_ptr = std::make_unique<NotificationEntry>(it->type, it->guid);
       *(entry_ptr.get()) = *it;
       entries.emplace_back(std::move(entry_ptr));
     }
@@ -110,6 +108,7 @@
   base::test::ScopedTaskEnvironment scoped_task_environment_;
   std::unique_ptr<MockDelegate> delegate_;
   MockNotificationStore* store_;
+  std::vector<SchedulerClientType> clients_;
   std::unique_ptr<ScheduledNotificationManager> manager_;
   DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerTest);
 };
@@ -141,7 +140,7 @@
   ScheduleParams schedule_params;
   schedule_params.priority = ScheduleParams::Priority::kHigh;
   auto params = std::make_unique<NotificationParams>(
-      SchedulerClientType::kUnknown, notification_data, schedule_params);
+      SchedulerClientType::kTest1, notification_data, schedule_params);
   std::string guid = params->guid;
   EXPECT_FALSE(guid.empty());
 
@@ -166,7 +165,7 @@
 TEST_F(ScheduledNotificationManagerTest, ScheduleNotificationEmptyGuid) {
   InitWithData(std::vector<NotificationEntry>());
   auto params = std::make_unique<NotificationParams>(
-      SchedulerClientType::kUnknown, NotificationData(), ScheduleParams());
+      SchedulerClientType::kTest1, NotificationData(), ScheduleParams());
 
   // Verify call contract.
   EXPECT_CALL(*store(), Add(_, _, _));
@@ -188,7 +187,7 @@
 
 // Test to display a notification.
 TEST_F(ScheduledNotificationManagerTest, DisplayNotification) {
-  auto entry = CreateNotificationEntry();
+  auto entry = CreateNotificationEntry(SchedulerClientType::kTest1);
   entry.guid = kGuid;
   InitWithData(std::vector<NotificationEntry>({entry}));
 
@@ -208,11 +207,11 @@
 TEST_F(ScheduledNotificationManagerTest, GetAllNotifications) {
   // Ordering: entry1.create_time < entry0.create_time < entry2.create_time.
   auto now = base::Time::Now();
-  auto entry0 = CreateNotificationEntry();
+  auto entry0 = CreateNotificationEntry(SchedulerClientType::kTest1);
   entry0.create_time = now;
-  auto entry1 = CreateNotificationEntry();
+  auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest1);
   entry1.create_time = now - base::TimeDelta::FromMinutes(1);
-  auto entry2 = CreateNotificationEntry();
+  auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest1);
   entry2.create_time = now + base::TimeDelta::FromMinutes(1);
 
   InitWithData(std::vector<NotificationEntry>({entry0, entry1, entry2}));
@@ -239,7 +238,6 @@
   auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest2);
   auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest2);
   auto entry3 = CreateNotificationEntry(SchedulerClientType::kTest3);
-
   InitWithData(
       std::vector<NotificationEntry>({entry0, entry1, entry2, entry3}));
   ScheduledNotificationManager::Notifications notifications;
diff --git a/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc b/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc
index 02447c1..71b953d 100644
--- a/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc
+++ b/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc
@@ -61,7 +61,7 @@
   std::vector<SchedulerClientType> registered_clients;
   client_registrar->GetRegisteredClients(&registered_clients);
   auto impression_tracker = std::make_unique<ImpressionHistoryTrackerImpl>(
-      *config.get(), std::move(registered_clients), std::move(impression_store),
+      *config.get(), registered_clients, std::move(impression_store),
       base::DefaultClock::GetInstance());
 
   // Build scheduled notification manager.
@@ -75,7 +75,9 @@
       std::make_unique<NotificationStore>(std::move(notification_db));
 
   std::unique_ptr<ScheduledNotificationManager> notification_manager;
-  notification_manager->Create(std::move(notification_store));
+  client_registrar->GetRegisteredClients(&registered_clients);
+  notification_manager->Create(std::move(notification_store),
+                               registered_clients);
 
   auto context = std::make_unique<NotificationSchedulerContext>(
       std::move(client_registrar), std::move(background_task_scheduler),
diff --git a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc
index 50789810..58303c8f 100644
--- a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc
+++ b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc
@@ -313,51 +313,3 @@
                     "/lazyload/img-with-dimension.html", 3,
                     1 /* lazyloaded image */));
 }
-
-IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest,
-                       DISABLED_LoFiTest) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitWithFeatures(
-      {previews::features::kPreviews,
-       data_reduction_proxy::features::
-           kDataReductionProxyEnabledWithNetworkService},
-      {});
-
-  ASSERT_TRUE(embedded_test_server()->Start());
-
-  g_browser_process->network_quality_tracker()
-      ->ReportEffectiveConnectionTypeForTesting(
-          net::EFFECTIVE_CONNECTION_TYPE_2G);
-
-  GURL test_url(
-      embedded_test_server()->GetURL("/drag_and_drop/image_source.html"));
-
-  // Check that LoFi has data savings.
-  uint64_t data_usage_before_navigation =
-      GetDataUsage(test_url.HostNoBrackets());
-
-  ui_test_utils::NavigateToURL(browser(), test_url);
-  base::RunLoop().RunUntilIdle();
-
-  // Navigate away to force the histogram recording.
-  ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL));
-
-  // Choose reasonable minimum, any savings is indicative of the mechanism
-  // working.
-  EXPECT_LE(10u, GetDataSavings(test_url.HostNoBrackets()) -
-                     data_usage_before_navigation);
-
-  // Repeat the test, but this time reload the LoFi images.
-  data_usage_before_navigation = GetDataUsage(test_url.HostNoBrackets());
-
-  ui_test_utils::NavigateToURL(browser(), test_url);
-  base::RunLoop().RunUntilIdle();
-
-  browser()->tab_strip_model()->GetActiveWebContents()->ReloadLoFiImages();
-
-  // Navigate away to force the histogram recording.
-  ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL));
-
-  EXPECT_LE(10u, data_usage_before_navigation -
-                     GetDataSavings(test_url.HostNoBrackets()));
-}
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
index c10f85e9..2a517514 100644
--- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
@@ -8,22 +8,23 @@
 
 #include "base/metrics/histogram.h"
 #include "base/metrics/histogram_macros.h"
-#include "chrome/browser/metrics/live_tab_count_metrics.h"
+#include "chrome/browser/metrics/tab_count_metrics.h"
 #include "chrome/browser/page_load_metrics/observers/histogram_suffixes.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
-#include "components/live_tab_count_metrics/live_tab_count_metrics.h"
+#include "components/tab_count_metrics/tab_count_metrics.h"
 
 #define LIVE_TAB_COUNT_PAGE_LOAD_HISTOGRAM(prefix, tab_count_bucket, sample, \
                                            histogram_min, histogram_max,     \
                                            histogram_buckets)                \
   STATIC_HISTOGRAM_POINTER_GROUP(                                            \
-      live_tab_count_metrics::HistogramName(histogram_prefix,                \
-                                            tab_count_bucket),               \
+      tab_count_metrics::HistogramName(                                      \
+          histogram_prefix, /* live_tabs_only = */ true, tab_count_bucket),  \
       static_cast<int>(bucket),                                              \
-      static_cast<int>(live_tab_count_metrics::kNumLiveTabCountBuckets),     \
+      static_cast<int>(tab_count_metrics::kNumTabCountBuckets),              \
       AddTimeMillisecondsGranularity(sample),                                \
       base::Histogram::FactoryTimeGet(                                       \
-          live_tab_count_metrics::HistogramName(prefix, tab_count_bucket),   \
+          tab_count_metrics::HistogramName(                                  \
+              prefix, /* live_tabs_only = */ true, tab_count_bucket),        \
           histogram_min, histogram_max, histogram_buckets,                   \
           base::HistogramBase::kUmaTargetedHistogramFlag))
 
@@ -63,7 +64,7 @@
         std::string(internal::kHistogramPrefixLiveTabCount)
             .append(internal::kHistogramFirstContentfulPaintSuffix));
     const size_t bucket =
-        live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount());
+        tab_count_metrics::BucketForTabCount(GetLiveTabCount());
     LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM(
         histogram_prefix, bucket,
         timing.paint_timing->first_contentful_paint.value());
@@ -80,7 +81,7 @@
         std::string(internal::kHistogramPrefixLiveTabCount)
             .append(internal::kHistogramFirstMeaningfulPaintSuffix));
     const size_t bucket =
-        live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount());
+        tab_count_metrics::BucketForTabCount(GetLiveTabCount());
     LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM(
         histogram_prefix, bucket,
         timing.paint_timing->first_meaningful_paint.value());
@@ -96,7 +97,7 @@
         std::string(internal::kHistogramPrefixLiveTabCount)
             .append(internal::kHistogramFirstInputDelaySuffix));
     const size_t bucket =
-        live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount());
+        tab_count_metrics::BucketForTabCount(GetLiveTabCount());
     LIVE_TAB_COUNT_INPUT_PAGE_LOAD_HISTOGRAM(
         histogram_prefix, bucket,
         timing.interactive_timing->first_input_delay.value());
@@ -104,5 +105,5 @@
 }
 
 size_t LiveTabCountPageLoadMetricsObserver::GetLiveTabCount() const {
-  return live_tab_count_metrics::LiveTabCount();
+  return tab_count_metrics::LiveTabCount();
 }
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc
index 55f9958..22e34a4 100644
--- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc
+++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc
@@ -9,18 +9,18 @@
 #include <string>
 
 #include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/metrics/live_tab_count_metrics.h"
+#include "chrome/browser/metrics/tab_count_metrics.h"
 #include "chrome/browser/page_load_metrics/observers/histogram_suffixes.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
-#include "components/live_tab_count_metrics/live_tab_count_metrics.h"
+#include "components/tab_count_metrics/tab_count_metrics.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using BucketCountArray =
-    std::array<size_t, live_tab_count_metrics::kNumLiveTabCountBuckets>;
+    std::array<size_t, tab_count_metrics::kNumTabCountBuckets>;
 using page_load_metrics::PageLoadMetricsTestWaiter;
 using TimingField = page_load_metrics::PageLoadMetricsTestWaiter::TimingField;
 
@@ -49,7 +49,8 @@
         std::string(suffix);
     for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
       histogram_tester_.ExpectTotalCount(
-          live_tab_count_metrics::HistogramName(histogram_prefix, bucket),
+          tab_count_metrics::HistogramName(histogram_prefix,
+                                           /* live_tabs_only = */ true, bucket),
           expected_counts[bucket]);
     }
   }
@@ -70,9 +71,9 @@
   ui_test_utils::NavigateToURL(browser(), GetTestURL());
   waiter->Wait();
 
-  size_t live_tab_count = live_tab_count_metrics::LiveTabCount();
+  size_t live_tab_count = tab_count_metrics::LiveTabCount();
   EXPECT_EQ(live_tab_count, 1u);
-  ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)];
+  ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)];
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts);
   ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts);
 }
@@ -117,9 +118,9 @@
   ui_test_utils::NavigateToURL(browser(), GetTestURL());
   waiter->Wait();
 
-  size_t live_tab_count = live_tab_count_metrics::LiveTabCount();
+  size_t live_tab_count = tab_count_metrics::LiveTabCount();
   EXPECT_EQ(live_tab_count, 1u);
-  ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)];
+  ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)];
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts);
   ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts);
 
@@ -139,9 +140,9 @@
 
     waiter->Wait();
 
-    live_tab_count = live_tab_count_metrics::LiveTabCount();
+    live_tab_count = tab_count_metrics::LiveTabCount();
     EXPECT_EQ(live_tab_count, tab + 1);
-    ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)];
+    ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)];
 
     ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts);
     ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts);
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
index 5b9cb97..dd55e68 100644
--- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h"
 #include "chrome/browser/page_load_metrics/page_load_tracker.h"
 #include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h"
-#include "components/live_tab_count_metrics/live_tab_count_metrics.h"
+#include "components/tab_count_metrics/tab_count_metrics.h"
 #include "content/public/browser/web_contents.h"
 #include "url/gurl.h"
 
@@ -21,7 +21,7 @@
 enum TabState { kForeground, kBackground };
 
 using BucketCountArray =
-    std::array<size_t, live_tab_count_metrics::kNumLiveTabCountBuckets>;
+    std::array<size_t, tab_count_metrics::kNumTabCountBuckets>;
 
 class TestLiveTabCountPageLoadMetricsObserver
     : public LiveTabCountPageLoadMetricsObserver {
@@ -87,7 +87,8 @@
         std::string(page_load_histogram_suffix);
     for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
       histogram_tester().ExpectTotalCount(
-          live_tab_count_metrics::HistogramName(histogram_prefix, bucket),
+          tab_count_metrics::HistogramName(histogram_prefix,
+                                           /* live_tabs_only = */ true, bucket),
           expected_counts[bucket]);
     }
   }
@@ -105,7 +106,7 @@
   // Simulate loading pages with the number of live tabs ranging from 0 to
   // kMaxLiveTabCount.
   for (size_t num_tabs = 0; num_tabs <= kMaxLiveTabCount; num_tabs++) {
-    bucket = live_tab_count_metrics::BucketForLiveTabCount(num_tabs);
+    bucket = tab_count_metrics::BucketForTabCount(num_tabs);
     SimulatePageLoad(num_tabs, tab_state);
     // We only record metrics if the tab was foregrounded the entire time
     // preceding the event that caused the metrics to be recorded.
@@ -116,7 +117,7 @@
     ValidateHistograms(internal::kHistogramFirstInputDelaySuffix, counts);
   }
   // Make sure we are testing each bucket.
-  EXPECT_EQ(bucket, live_tab_count_metrics::kNumLiveTabCountBuckets - 1);
+  EXPECT_EQ(bucket, tab_count_metrics::kNumTabCountBuckets - 1);
 }
 
 INSTANTIATE_TEST_SUITE_P(Foreground,
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc
index cac767a0..f3fb786 100644
--- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc
@@ -27,9 +27,6 @@
 const char kHistogramPrefixMultiTabLoading5OrMore[] =
     "PageLoad.Clients.MultiTabLoading.5OrMore.";
 
-const char kHistogramMultiTabLoadingNumTabsWithInflightLoad[] =
-    "PageLoad.Clients.MultiTabLoading.NumTabsWithInflightLoad";
-
 }  // namespace internal
 
 MultiTabLoadingPageLoadMetricsObserver::
@@ -45,17 +42,6 @@
     bool started_in_foreground) {
   num_loading_tabs_when_started_ =
       NumberOfTabsWithInflightLoad(navigation_handle);
-  return CONTINUE_OBSERVING;
-}
-
-page_load_metrics::PageLoadMetricsObserver::ObservePolicy
-MultiTabLoadingPageLoadMetricsObserver::OnCommit(
-    content::NavigationHandle* navigation_handle,
-    ukm::SourceId source_id) {
-  // Report here so that this is logged only for normal page loads.
-  UMA_HISTOGRAM_COUNTS_100(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad,
-      num_loading_tabs_when_started_);
   return num_loading_tabs_when_started_ > 0 ? CONTINUE_OBSERVING
                                             : STOP_OBSERVING;
 }
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h
index c04ccf8f..fde3bad 100644
--- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h
+++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h
@@ -18,7 +18,6 @@
 extern const char kHistogramPrefixMultiTabLoading[];
 extern const char kHistogramPrefixMultiTabLoading2OrMore[];
 extern const char kHistogramPrefixMultiTabLoading5OrMore[];
-extern const char kHistogramMultiTabLoadingNumTabsWithInflightLoad[];
 
 }  // namespace internal
 
@@ -35,9 +34,6 @@
       content::NavigationHandle* navigation_handle,
       const GURL& currently_committed_url,
       bool started_in_foreground) override;
-  page_load_metrics::PageLoadMetricsObserver::ObservePolicy OnCommit(
-      content::NavigationHandle* navigation_handle,
-      ukm::SourceId source_id) override;
   void OnFirstContentfulPaintInPage(
       const page_load_metrics::mojom::PageLoadTiming& timing,
       const page_load_metrics::PageLoadExtraInfo& extra_info) override;
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
index 4c6cea2..9c604ce 100644
--- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
@@ -103,8 +103,6 @@
 
 TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, SingleTabLoading) {
   SimulatePageLoad(0, Foreground);
-  histogram_tester().ExpectUniqueSample(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 0, 1);
 
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 0, 0, 0);
   ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
@@ -123,8 +121,6 @@
 
 TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading1) {
   SimulatePageLoad(1, Foreground);
-  histogram_tester().ExpectUniqueSample(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 1, 1);
 
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 0, 0);
   ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
@@ -143,8 +139,6 @@
 
 TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading2) {
   SimulatePageLoad(2, Foreground);
-  histogram_tester().ExpectUniqueSample(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 2, 1);
 
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 1, 0);
   ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
@@ -163,8 +157,6 @@
 
 TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading5) {
   SimulatePageLoad(5, Foreground);
-  histogram_tester().ExpectUniqueSample(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 5, 1);
 
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 1, 1);
   ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
@@ -183,8 +175,6 @@
 
 TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabBackground) {
   SimulatePageLoad(1, Background);
-  histogram_tester().ExpectUniqueSample(
-      internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 1, 1);
 
   ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 0, 0, 0);
   ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
index 5af40e6e..536697c0 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -699,7 +699,7 @@
 
 base::string16 ChromePasswordManagerClient::GetTextFromClipboard() {
   base::string16 text;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &text);
   return text;
 }
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc
index 7a1d811..5aac57a 100644
--- a/chrome/browser/pdf/pdf_extension_test.cc
+++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -1629,7 +1629,7 @@
   // Checks the Linux selection clipboard by polling.
   void CheckSelectionClipboard(const std::string& expected) {
 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-    CheckClipboard(ui::CLIPBOARD_TYPE_SELECTION, expected);
+    CheckClipboard(ui::ClipboardType::kSelection, expected);
 #endif
   }
 
@@ -1639,7 +1639,7 @@
   void SendCopyCommandAndCheckCopyPasteClipboard(const std::string& expected) {
     content::RunAllPendingInMessageLoop();
     GetWebContentsForInputRouting()->Copy();
-    CheckClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE, expected);
+    CheckClipboard(ui::ClipboardType::kCopyPaste, expected);
   }
 
   content::WebContents* GetWebContentsForInputRouting() {
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 57ac99a..1f65ff0 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -2220,6 +2220,31 @@
   EXPECT_FALSE(service->GetInstalledExtension(kGoodCrxId));
 }
 
+// Ensure that when INSTALLATION_REMOVED is set for wildcard
+// that blacklisted extensions are removed from the device.
+IN_PROC_BROWSER_TEST_F(PolicyTest, ExtensionWildcardRemovedPolicy) {
+  EXPECT_TRUE(InstallExtension(kGoodCrxName));
+
+  extensions::ExtensionService* service = extension_service();
+  EXPECT_TRUE(service->GetInstalledExtension(kGoodCrxId));
+
+  // Should uninstall good_v1.crx.
+  base::DictionaryValue dict_value;
+  dict_value.SetString(
+      std::string("*") + "." + extensions::schema_constants::kInstallationMode,
+      extensions::schema_constants::kRemoved);
+  PolicyMap policies;
+  policies.Set(key::kExtensionSettings, POLICY_LEVEL_MANDATORY,
+               POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
+               dict_value.CreateDeepCopy(), nullptr);
+  extensions::TestExtensionRegistryObserver observer(
+      extensions::ExtensionRegistry::Get(browser()->profile()));
+  UpdateProviderPolicy(policies);
+  observer.WaitForExtensionUnloaded();
+
+  EXPECT_FALSE(service->GetInstalledExtension(kGoodCrxId));
+}
+
 // Ensure that bookmark apps are not blocked by the ExtensionAllowedTypes
 // policy.
 IN_PROC_BROWSER_TEST_F(PolicyTest, ExtensionAllowedTypes_BookmarkApp) {
@@ -2603,7 +2628,6 @@
 
   // Test policy-installed extensions are reloaded when killed.
   {
-    content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
     BackgroundContentsService::
         SetRestartDelayForForceInstalledAppsAndExtensionsForTesting(0);
     content::WindowedNotificationObserver extension_crashed_observer(
@@ -2614,8 +2638,9 @@
     extensions::ExtensionHost* extension_host =
         extensions::ProcessManager::Get(browser()->profile())
             ->GetBackgroundHostForExtension(kGoodCrxId);
-    extension_host->render_process_host()->Shutdown(
-        content::RESULT_CODE_KILLED);
+    content::RenderProcessHost* process = extension_host->render_process_host();
+    content::ScopedAllowRendererCrashes allow_renderer_crashes(process);
+    process->Shutdown(content::RESULT_CODE_KILLED);
     extension_crashed_observer.Wait();
     extension_loaded_observer.WaitForExtensionLoaded();
   }
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index f3df454..64ea7236 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -1511,7 +1511,8 @@
       "/prerender/prerender_page.html", FINAL_STATUS_RENDERER_CRASHED, 1);
 
   // Navigate to about:crash and then wait for the renderer to crash.
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(
+      prerender->contents()->web_contents());
   ASSERT_TRUE(prerender->contents());
   ASSERT_TRUE(prerender->contents()->prerender_contents());
   prerender->contents()->prerender_contents()->GetController().
diff --git a/chrome/browser/previews/previews_lite_page_predictor.cc b/chrome/browser/previews/previews_lite_page_predictor.cc
index c00d9ceef..cceebd4 100644
--- a/chrome/browser/previews/previews_lite_page_predictor.cc
+++ b/chrome/browser/previews/previews_lite_page_predictor.cc
@@ -102,44 +102,46 @@
   return web_contents()->GetVisibility() == content::Visibility::VISIBLE;
 }
 
-bool PreviewsLitePagePredictor::ShouldPreresolveOnPage() const {
+base::Optional<GURL> PreviewsLitePagePredictor::ShouldPreresolveOnPage() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   if (!previews::params::LitePageRedirectPreviewShouldPresolve())
-    return false;
+    return base::nullopt;
 
   if (!web_contents()->GetController().GetLastCommittedEntry())
-    return false;
+    return base::nullopt;
 
   if (web_contents()->GetController().GetPendingEntry())
-    return false;
+    return base::nullopt;
 
   if (!DataSaverIsEnabled())
-    return false;
+    return base::nullopt;
 
-  // TODO(crbug.com/971918): Maybe preconnect to origin if this is true by
-  // returning an optional URL.
   if (!previews::params::IsLitePageServerPreviewsEnabled())
-    return false;
+    return base::nullopt;
 
   if (!ECTIsSlow())
-    return false;
+    return base::nullopt;
 
   GURL url = web_contents()->GetController().GetLastCommittedEntry()->GetURL();
 
   if (!url.SchemeIs(url::kHttpsScheme))
-    return false;
+    return base::nullopt;
 
-  if (PageIsBlacklisted(url))
-    return false;
-
-  if (previews::IsLitePageRedirectPreviewDomain(url))
-    return false;
+  // Only check if the url is blacklisted if it is not a preview page.
+  if (!previews::IsLitePageRedirectPreviewDomain(url) && PageIsBlacklisted(url))
+    return base::nullopt;
 
   if (!IsVisible())
-    return false;
+    return base::nullopt;
 
-  return true;
+  // If a preview is currently being shown, preresolve the original page.
+  // Otherwise, preresolve the preview.
+  std::string original_url;
+  if (previews::ExtractOriginalURLFromLitePageRedirectURL(url, &original_url))
+    return GURL(original_url);
+
+  return PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL(url);
 }
 
 void PreviewsLitePagePredictor::MaybeTogglePreresolveTimer() {
@@ -148,14 +150,14 @@
   // If the timer is not null, it should be running.
   DCHECK(!timer_ || timer_->IsRunning());
 
-  bool should_have_timer = ShouldPreresolveOnPage();
-  if (should_have_timer == bool(timer_))
+  url_ = ShouldPreresolveOnPage();
+  if (url_.has_value() == bool(timer_))
     return;
 
   UMA_HISTOGRAM_BOOLEAN("Previews.ServerLitePage.ToggledPreresolve",
-                        should_have_timer);
+                        url_.has_value());
 
-  if (should_have_timer) {
+  if (url_.has_value()) {
     timer_.reset(new base::RepeatingTimer());
     // base::Unretained is safe because the timer will stop firing once deleted,
     // and |timer_| is owned by this.
@@ -171,15 +173,13 @@
   }
 }
 
-void PreviewsLitePagePredictor::Preresolve() {
+void PreviewsLitePagePredictor::Preresolve() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(timer_);
 
-  // TODO(crbug.com/971918): Also need to preconnect to origin.
-  return;
-
-  GURL previews_url = PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL(
-      web_contents()->GetController().GetLastCommittedEntry()->GetURL());
+  UMA_HISTOGRAM_BOOLEAN(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer",
+      previews::IsLitePageRedirectPreviewDomain(url_.value()));
 
   predictors::LoadingPredictor* loading_predictor =
       predictors::LoadingPredictorFactory::GetForProfile(
@@ -188,12 +188,7 @@
   if (!loading_predictor || !loading_predictor->preconnect_manager())
     return;
 
-  loading_predictor->preconnect_manager()->StartPreresolveHost(previews_url);
-
-  // Record a local histogram for browser testing.
-  base::BooleanHistogram::FactoryGet("Previews.ServerLitePage.Preresolved",
-                                     base::HistogramBase::kNoFlags)
-      ->Add(true);
+  loading_predictor->preconnect_manager()->StartPreresolveHost(url_.value());
 }
 
 void PreviewsLitePagePredictor::DidStartNavigation(
diff --git a/chrome/browser/previews/previews_lite_page_predictor.h b/chrome/browser/previews/previews_lite_page_predictor.h
index 89d2e45..7412b11 100644
--- a/chrome/browser/previews/previews_lite_page_predictor.h
+++ b/chrome/browser/previews/previews_lite_page_predictor.h
@@ -10,12 +10,14 @@
 #include "base/callback.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
+#include "base/optional.h"
 #include "base/sequence_checker.h"
 #include "base/timer/timer.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
 #include "net/nqe/effective_connection_type.h"
 #include "services/network/public/cpp/network_quality_tracker.h"
+#include "url/gurl.h"
 
 namespace content {
 class NavigationHandle;
@@ -32,8 +34,9 @@
 // Manages background preresolving or preconnecting for lite page redirect
 // previews. When a set of conditions are met, this class causes the litepage
 // version of the current committed page URL to be preresolved in a loop so that
-// the DNS entry for the litepage is always cached. This helps to mitigate the
-// delay of loading a preview of the same origin.
+// the DNS entry for the litepage is always cached, or the origin URL to be
+// preresolved if the current page is a preview. This helps to mitigate the
+// delay of loading a preview or the original page of the same origin.
 //
 // All of the following conditions must be met to preresolve the litepages host
 // on a background loop during a page load:
@@ -41,7 +44,7 @@
 // * A page is committed.
 // * There is no ongoing navigation.
 // * Lite mode is enabled for the user. - Note this change is not directly
-// observed because we find that it seldom changes in practice.
+//   observed because we find that it seldom changes in practice.
 // * The lite page redirect feature is enabled.
 // * ECT is at or below the lite page redirect threshold.
 // * The current page's host is not blacklisted by server hints.
@@ -78,7 +81,10 @@
 
  private:
   friend class content::WebContentsUserData<PreviewsLitePagePredictor>;
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, AllConditionsMet);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+                           AllConditionsMet_Origin);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+                           AllConditionsMet_Preview);
   FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, FeatureDisabled);
   FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
                            DataSaverDisabled);
@@ -94,21 +100,23 @@
   FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
                            ToggleMultipleTimes_Visibility);
 
-  // Returns true if the current page should be preresolved.
-  bool ShouldPreresolveOnPage() const;
+  // Returns the GURL that should be preresolved, if any.
+  base::Optional<GURL> ShouldPreresolveOnPage() const;
 
   // Toggles preresolving to either start or stop as needed. This operates
   // statelessly, but should be called every time a change potentially needs to
   // be made. See observers below.
   void MaybeTogglePreresolveTimer();
 
-  // Immediately causes the preview URL for the current committed page to be
-  // preresolved.
-  void Preresolve();
+  // Immediately causes |url_| to be preresolved.
+  void Preresolve() const;
 
   // Set if the preview URL is actively being preresolved.
   std::unique_ptr<base::RepeatingTimer> timer_;
 
+  // The url that should be preresolved, if any.
+  base::Optional<GURL> url_;
+
   // A reference to the DRP Settings.
   data_reduction_proxy::DataReductionProxySettings* drp_settings_;
 
diff --git a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc b/chrome/browser/previews/previews_lite_page_predictor_unittest.cc
index 72b8d459..320beeb 100644
--- a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc
+++ b/chrome/browser/previews/previews_lite_page_predictor_unittest.cc
@@ -6,6 +6,7 @@
 
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "components/previews/core/previews_features.h"
 #include "content/public/browser/web_contents.h"
@@ -91,7 +92,7 @@
   std::unique_ptr<content::MockNavigationHandle> test_handle_;
 };
 
-TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet) {
+TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Origin) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -104,6 +105,27 @@
   EXPECT_TRUE(preresolver()->ShouldPreresolveOnPage());
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.ToggledPreresolve", true, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1);
+}
+
+TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Preview) {
+  RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
+          true /* ect_is_slow */, false /* page_is_blacklisted */,
+          true /* is_visible */);
+
+  base::HistogramTester histogram_tester;
+
+  content::WebContentsTester::For(web_contents())
+      ->NavigateAndCommit(
+          PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL(
+              GURL(kTestUrl)));
+
+  EXPECT_TRUE(preresolver()->ShouldPreresolveOnPage());
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.ToggledPreresolve", true, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer", false, 1);
 }
 
 TEST_F(PreviewsLitePagePredictorUnitTest, FeatureDisabled) {
@@ -191,6 +213,8 @@
       "Previews.ServerLitePage.ToggledPreresolve", true, 2);
   histogram_tester.ExpectBucketCount(
       "Previews.ServerLitePage.ToggledPreresolve", false, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 2);
 }
 
 TEST_F(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_ECT) {
@@ -213,6 +237,8 @@
       "Previews.ServerLitePage.ToggledPreresolve", true, 1);
   histogram_tester.ExpectBucketCount(
       "Previews.ServerLitePage.ToggledPreresolve", false, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1);
 }
 
 TEST_F(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_Visibility) {
@@ -234,4 +260,6 @@
       "Previews.ServerLitePage.ToggledPreresolve", true, 1);
   histogram_tester.ExpectBucketCount(
       "Previews.ServerLitePage.ToggledPreresolve", false, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1);
 }
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc
index 1cc36312..22bd2c5 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -510,8 +510,6 @@
 // a timed out test which indicates the print preview hung.
 IN_PROC_BROWSER_TEST_F(SitePerProcessPrintBrowserTest,
                        SubframeUnavailableDuringPrint) {
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
-
   ASSERT_TRUE(embedded_test_server()->Started());
   GURL url(
       embedded_test_server()->GetURL("/printing/content_with_iframe.html"));
@@ -526,6 +524,7 @@
 
   auto filter =
       base::MakeRefCounted<KillPrintFrameContentMsgFilter>(subframe_rph);
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(subframe_rph);
   subframe_rph->AddFilter(filter.get());
 
   PrintAndWaitUntilPreviewIsReady(/*print_only_selection=*/false);
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 4e87c31..a9dbd34 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -790,7 +790,7 @@
   if (url.is_empty() || !url.is_valid())
     return;
 
-  ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
   scw.WriteText(FormatURLForClipboard(url));
 }
 
@@ -2533,7 +2533,7 @@
   std::vector<base::string16> types;
   bool ignore;
   ui::Clipboard::GetForCurrentThread()->ReadAvailableTypes(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &types, &ignore);
+      ui::ClipboardType::kCopyPaste, &types, &ignore);
   return !types.empty();
 }
 
@@ -2543,7 +2543,7 @@
 
   return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable(
       ui::ClipboardFormatType::GetPlainTextType(),
-      ui::CLIPBOARD_TYPE_COPY_PASTE);
+      ui::ClipboardType::kCopyPaste);
 }
 
 bool RenderViewContextMenu::IsPrintPreviewEnabled() const {
@@ -2751,7 +2751,7 @@
 }
 
 void RenderViewContextMenu::ExecCopyLinkText() {
-  ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
   scw.WriteText(params_.link_text);
 }
 
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc
index 585784be..da44713 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc
@@ -32,12 +32,12 @@
 ui::ClipboardType ConvertClipboardType(uint32_t type) {
   switch (type) {
     case PP_FLASH_CLIPBOARD_TYPE_STANDARD:
-      return ui::CLIPBOARD_TYPE_COPY_PASTE;
+      return ui::ClipboardType::kCopyPaste;
     case PP_FLASH_CLIPBOARD_TYPE_SELECTION:
-      return ui::CLIPBOARD_TYPE_SELECTION;
+      return ui::ClipboardType::kSelection;
   }
   NOTREACHED();
-  return ui::CLIPBOARD_TYPE_COPY_PASTE;
+  return ui::ClipboardType::kCopyPaste;
 }
 
 // Functions to pack/unpack custom data from a pickle. See the header file for
diff --git a/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
index acbab2df..603ca9d9 100644
--- a/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
+++ b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
@@ -626,7 +626,7 @@
   // Kill the renderer process, simulating a crash. This should the ProcessDied
   // method to be called. Alternatively, RenderProcessHost::OnChannelError can
   // be called to directly force a call to ProcessDied.
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+  content::ScopedAllowRendererCrashes allow_renderer_crashes(wc1);
   wc1->GetMainFrame()->GetProcess()->Shutdown(-1);
 
   destroyer.Wait();
diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html
index 4d22087..d9016fc 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html
+++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html
@@ -12,7 +12,6 @@
 <link rel="import" href="chrome://resources/html/i18n_behavior.html">
 <link rel="import" href="chrome://resources/html/util.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_icons_css.html">
-<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
 <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
@@ -28,7 +27,7 @@
 <link rel="stylesheet" href="../login/oobe_flex_layout.css">
 <link rel="stylesheet" href="../login/oobe_screen.css">
 <link rel="stylesheet" href="setting_zippy.css">
-<style include="paper-button-style cr-icons cr-shared-style"></style>
+<style include="cr-icons cr-shared-style"></style>
 
 <script src="chrome://resources/js/cr.js"></script>
 <script src="chrome://resources/js/load_time_data.js"></script>
diff --git a/chrome/browser/resources/chromeos/login/discover/discover_welcome.html b/chrome/browser/resources/chromeos/login/discover/discover_welcome.html
index a325e9c..daaf578 100644
--- a/chrome/browser/resources/chromeos/login/discover/discover_welcome.html
+++ b/chrome/browser/resources/chromeos/login/discover/discover_welcome.html
@@ -7,8 +7,7 @@
   <template>
     <link rel="stylesheet" href="../oobe_dialog_host.css">
     <link rel="stylesheet" href="discover_welcome.css">
-    <style
-        include="iron-flex iron-flex-alignment iron-positioning paper-button-style cr-icons cr-shared-style">
+    <style include="iron-flex iron-flex-alignment iron-positioning cr-icons cr-shared-style">
     </style>
     <link rel="stylesheet" href="../oobe_iron_flex_layout_fix.css">
     <oobe-dialog id="discoverWelcome" role="dialog" no-header no-footer-padding
diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.html b/chrome/browser/resources/chromeos/login/offline_gaia.html
index 49c74fb..1a9ef89 100644
--- a/chrome/browser/resources/chromeos/login/offline_gaia.html
+++ b/chrome/browser/resources/chromeos/login/offline_gaia.html
@@ -5,8 +5,8 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
 <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 
 <!--
   Offline UI for the New Gaia flow.
@@ -116,9 +116,9 @@
       <div slot="body"
           i18n-content="offlineLoginForgotPasswordDlg"></div>
       <div slot="button-container">
-        <paper-button autofocus on-tap="onForgotPasswordCloseTap_"
+        <cr-button autofocus on-tap="onForgotPasswordCloseTap_"
             i18n-content="offlineLoginCloseBtn" class="action-button">
-        </paper-button>
+        </cr-button>
       </div>
     </cr-dialog>
   </template>
diff --git a/chrome/browser/resources/chromeos/login/oobe_buttons.html b/chrome/browser/resources/chromeos/login/oobe_buttons.html
index 9ce7c8a..20ef6b33 100644
--- a/chrome/browser/resources/chromeos/login/oobe_buttons.html
+++ b/chrome/browser/resources/chromeos/login/oobe_buttons.html
@@ -4,12 +4,10 @@
 
 <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_icons_css.html">
-<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
 <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
 
 <iron-iconset-svg name="oobe-buttons-20" size="20">
@@ -56,17 +54,17 @@
   <template>
     <style include="iron-flex iron-flex-alignment iron-positioning"></style>
     <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css">
-    <style include="paper-button-style cr-icons cr-shared-style"></style>
+    <style include="cr-icons cr-shared-style"></style>
     <link rel="stylesheet" href="oobe_fonts.css">
     <link rel="stylesheet" href="oobe_text_buttons.css">
-    <paper-button id="textButton" on-tap="onClick_" disabled="[[disabled]]"
+    <cr-button id="textButton" on-tap="onClick_" disabled="[[disabled]]"
         inverse$="[[inverse]]" aria-label$="[[labelForAria]]"
         border$="[[border]]" android$="[[android]]">
       <div id="container"
           class="flex layout horizontal center center-justified self-stretch">
         <slot></slot>
       </div>
-    </paper-button>
+    </cr-button>
   </template>
 </dom-module>
 
@@ -116,11 +114,11 @@
   <template>
     <style include="iron-flex iron-flex-alignment iron-positioning"></style>
     <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css">
-    <style include="paper-button-style cr-icons cr-shared-style"></style>
+    <style include="cr-icons cr-shared-style"></style>
     <link rel="stylesheet" href="oobe_fonts.css">
     <link rel="stylesheet" href="oobe_text_buttons.css">
     <link rel="stylesheet" href="oobe_next_button.css">
-    <paper-button id="button" on-tap="onClick_" disabled="[[disabled]]"
+    <cr-button id="button" on-tap="onClick_" disabled="[[disabled]]"
         class="action-button">
       <div class="flex horizontal layout start center">
         <slot>
@@ -131,7 +129,7 @@
             icon2x="oobe-buttons-40:arrow-forward">
         </hd-iron-icon>
       </div>
-    </paper-button>
+    </cr-button>
   </template>
 </dom-module>
 
@@ -153,11 +151,11 @@
   <template>
     <style include="iron-flex iron-flex-alignment iron-positioning"></style>
     <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css">
-    <style include="paper-button-style cr-icons cr-shared-style"></style>
+    <style include="cr-icons cr-shared-style"></style>
     <link rel="stylesheet" href="oobe_fonts.css">
     <link rel="stylesheet" href="oobe_text_buttons.css">
     <link rel="stylesheet" href="oobe_welcome_secondary_button.css">
-    <paper-button id="button" aria-label$="[[labelForAria]]">
+    <cr-button id="button" aria-label$="[[labelForAria]]">
       <div id="container" class="flex vertical layout center self-stretch">
         <div class="flex layout horizontal center self-stretch center-justified">
           <hd-iron-icon id="icon" icon1x="[[icon1x]]" icon2x="[[icon2x]]"
@@ -166,6 +164,6 @@
           <slot></slot>
         </div>
       </div>
-    </paper-button>
+    </cr-button>
   </template>
 </dom-module>
diff --git a/chrome/browser/resources/chromeos/login/oobe_next_button.css b/chrome/browser/resources/chromeos/login/oobe_next_button.css
index 1bdd007..84855d1 100644
--- a/chrome/browser/resources/chromeos/login/oobe_next_button.css
+++ b/chrome/browser/resources/chromeos/login/oobe_next_button.css
@@ -2,7 +2,7 @@
    Use of this source code is governed by a BSD-style license that can be
    found in the LICENSE file. */
 
-paper-button {
+cr-button {
   padding-inline-end: 8px;
   padding-inline-start: 16px;
 }
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
index b84522d..5de51fd 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -367,6 +367,15 @@
         }, 500);
       };
     }());
+
+    // Center horizontally after any style changes.
+    const observer = new MutationObserver(function() {
+      centerElement(
+          $('message-container'), $('message-container').parentNode.offsetWidth,
+          null);
+    });
+    observer.observe(
+        $('message-container'), {attributes: true, attributeFilter: ['style']});
 };
 
 /**
diff --git a/chrome/browser/resources/interventions_internals/index.js b/chrome/browser/resources/interventions_internals/index.js
index ebd00b9..40a7d07 100644
--- a/chrome/browser/resources/interventions_internals/index.js
+++ b/chrome/browser/resources/interventions_internals/index.js
@@ -616,7 +616,7 @@
   }
 
   /**
-   * Retrieves the statuses of previews (i.e. Offline, LoFi, AMP Redirection),
+   * Retrieves the statuses of previews (i.e. Offline, Lite Pages, etc),
    * and posts them on chrome://intervention-internals.
    */
   function getPreviewsEnabled() {
diff --git a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
index 42347f5..fb779b6a 100644
--- a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
+++ b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
@@ -55,7 +55,3 @@
   overflow: hidden;
   padding-inline-end: 12px;
 }
-
-paper-button {
-  margin: 0;
-}
diff --git a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
index eb9c718..996d5313 100644
--- a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
+++ b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
@@ -1,7 +1,7 @@
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/icons.html">
 <link rel="import" href="chrome://resources/html/polymer.html">
 <link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 <dom-module id="issue-banner">
   <link rel="import" type="css" href="../../media_router_common.css">
   <link rel="import" type="css" href="issue_banner.css">
@@ -15,15 +15,15 @@
         <div id="title" aria-live="polite" tabindex="0">[[issue.title]]</div>
       </div>
       <div id="buttons">
-        <paper-button flat id="opt-button" class="button"
-            on-tap="onClickOptAction_"
+        <cr-button flat id="opt-button" class="button"
+            on-click="onClickOptAction_"
             hidden$="[[computeOptionalActionHidden_(issue)]]">
           <span>[[secondaryActionButtonText_]]</span>
-        </paper-button>
-        <paper-button flat id="default-button"
-            class="button action" on-tap="onClickDefaultAction_">
+        </cr-button>
+        <cr-button flat id="default-button"
+            class="button action" on-click="onClickDefaultAction_">
           <span>[[defaultActionButtonText_]]</span>
-        </paper-button>
+        </cr-button>
       </div>
     </div>
   </template>
diff --git a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
index 393f05c..5f277f2 100644
--- a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
+++ b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
@@ -1,5 +1,6 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_input/cr_input.html">
@@ -36,10 +37,10 @@
           </cr-checkbox>
         </div>
         <div id="first-run-button-container">
-          <paper-button id="first-run-button" class="button"
-              on-tap="acknowledgeFirstRunFlow_">
+          <cr-button id="first-run-button" class="button"
+              on-click="acknowledgeFirstRunFlow_">
             <span>[[i18n('firstRunFlowButtonText')]]</span>
-          </paper-button>
+          </cr-button>
         </div>
       </div>
     </template>
diff --git a/chrome/browser/resources/media_router/elements/route_details/route_details.html b/chrome/browser/resources/media_router/elements/route_details/route_details.html
index fe9ef05..90077fc 100644
--- a/chrome/browser/resources/media_router/elements/route_details/route_details.html
+++ b/chrome/browser/resources/media_router/elements/route_details/route_details.html
@@ -1,6 +1,6 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 <link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="../route_controls/route_controls.html">
 <dom-module id="route-details">
   <link rel="import" type="css" href="../../media_router_common.css">
@@ -17,17 +17,15 @@
           route="[[route]]"></route-controls>
     </template>
     <div id="route-action-buttons" class="layout">
-      <paper-button flat class="route-button button"
-          id="start-casting-to-route-button"
-          hidden$="[[computeCastButtonHidden_(route, changeRouteSourceAvailable_)]]"
-          on-tap="startCastingToRoute_">
+      <cr-button class="route-button button" id="start-casting-to-route-button"
+          hidden$="[[computeCastButtonHidden_(route,
+              changeRouteSourceAvailable_)]]" on-click="startCastingToRoute_">
         <span>[[i18n('startCastingButtonText')]]</span>
-      </paper-button>
-      <paper-button flat class="route-button button"
-          id="close-route-button"
-          on-tap="closeRoute_">
+      </cr-button>
+      <cr-button class="route-button button" id="close-route-button"
+          on-click="closeRoute_">
         <span>[[i18n('stopCastingButtonText')]]</span>
-      </paper-button>
+      </cr-button>
     <div>
   </template>
 <script src="route_details.js"></script>
diff --git a/chrome/browser/resources/print_preview/data/document_info.js b/chrome/browser/resources/print_preview/data/document_info.js
index aa87754..67ce1c9 100644
--- a/chrome/browser/resources/print_preview/data/document_info.js
+++ b/chrome/browser/resources/print_preview/data/document_info.js
@@ -17,6 +17,22 @@
  */
 print_preview.DocumentSettings;
 
+/**
+ * @typedef {{
+ *   marginTop: number,
+ *   marginLeft: number,
+ *   marginBottom: number,
+ *   marginRight: number,
+ *   contentWidth: number,
+ *   contentHeight: number,
+ *   printableAreaX: number,
+ *   printableAreaY: number,
+ *   printableAreaWidth: number,
+ *   printableAreaHeight: number,
+ * }}
+ */
+print_preview.PageLayoutInfo;
+
 Polymer({
   is: 'print-preview-document-info',
 
@@ -122,17 +138,8 @@
   /**
    * Called when the page layout of the document is ready. Always occurs
    * as a result of a preview request.
-   * @param {{marginTop: number,
-   *          marginLeft: number,
-   *          marginBottom: number,
-   *          marginRight: number,
-   *          contentWidth: number,
-   *          contentHeight: number,
-   *          printableAreaX: number,
-   *          printableAreaY: number,
-   *          printableAreaWidth: number,
-   *          printableAreaHeight: number,
-   *        }} pageLayout Layout information about the document.
+   * @param {!print_preview.PageLayoutInfo} pageLayout Layout information
+   *     about the document.
    * @param {boolean} hasCustomPageSizeStyle Whether this document has a
    *     custom page size or style to use.
    * @private
diff --git a/chrome/browser/resources/print_preview/ui/input_behavior.js b/chrome/browser/resources/print_preview/ui/input_behavior.js
index 79aa7cc3..353fa097 100644
--- a/chrome/browser/resources/print_preview/ui/input_behavior.js
+++ b/chrome/browser/resources/print_preview/ui/input_behavior.js
@@ -52,7 +52,7 @@
      * @private
      */
     onKeyDown_: function(event) {
-      if (event.code != 'Enter') {
+      if (event.code != 'Enter' && event.code != 'Tab') {
         return;
       }
 
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
index ee51945..3dbb638 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -62,7 +62,7 @@
       }
 
       :host-context(.focus-outline-visible) #advancedToggle:focus {
-        font-weight: 500;
+        font-weight: 600;
       }
 
       #secondaryUserBanner {
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html
index aac3e65e0..28ed776 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html
@@ -1,5 +1,6 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_scrollable_behavior.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_search_field/cr_search_field.html">
@@ -7,7 +8,6 @@
 <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
 <link rel="import" href="chrome://resources/html/find_shortcut_behavior.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-list/iron-list.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 <link rel="import" href="os_languages.html">
 <link rel="import" href="../../settings_shared_css.html">
 
@@ -62,13 +62,13 @@
         </iron-list>
       </div>
       <div slot="button-container">
-        <paper-button class="cancel-button" on-click="onCancelButtonTap_">
+        <cr-button class="cancel-button" on-click="onCancelButtonTap_">
           $i18n{cancel}
-        </paper-button>
-        <paper-button class="action-button" on-click="onActionButtonTap_"
+        </cr-button>
+        <cr-button class="action-button" on-click="onActionButtonTap_"
             disabled="[[disableActionButton_]]">
           $i18n{add}
-        </paper-button>
+        </cr-button>
       </div>
     </cr-dialog>
   </template>
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html
index 33fd40e..4d101f0 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html
@@ -1,5 +1,6 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
@@ -177,9 +178,9 @@
                 </div>
                 <template is="dom-if" if="[[isRestartRequired_(
                         item.language.code, languages.prospectiveUILanguage)]]">
-                  <paper-button class="restart-button" on-click="onRestartTap_">
+                  <cr-button class="restart-button" on-click="onRestartTap_">
                     $i18n{restart}
-                  </paper-button>
+                  </cr-button>
                 </template>
                 <cr-icon-button class="icon-more-vert"
                     title="$i18n{moreActions}" id="more-[[item.language.code]]"
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html
index 85c05fa..48e2fd4 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html
@@ -50,7 +50,7 @@
       }
 
       :host-context(.focus-outline-visible) #advancedToggle:focus {
-        font-weight: 500;
+        font-weight: 600;
       }
 
       #secondaryUserBanner {
diff --git a/chrome/browser/resources/settings/people_page/account_manager.html b/chrome/browser/resources/settings/people_page/account_manager.html
index b90991d..b4687fe 100644
--- a/chrome/browser/resources/settings/people_page/account_manager.html
+++ b/chrome/browser/resources/settings/people_page/account_manager.html
@@ -139,10 +139,10 @@
 
           <template is="dom-if"
               if="[[shouldShowReauthenticationButton_(item)]]">
-            <paper-button title="[[getAccountManagerSignedOutTitle_(item)]]"
+            <cr-button title="[[getAccountManagerSignedOutTitle_(item)]]"
                 class="reauth-button" on-click="onReauthenticationTap_">
               [[getAccountManagerSignedOutLabel_(item.unmigrated)]]
-            </paper-button>
+            </cr-button>
           </template>
 
           <!-- If this is the Device Account, display the management status -->
diff --git a/chrome/browser/resources/settings/system_page/system_page.html b/chrome/browser/resources/settings/system_page/system_page.html
index 720015c..a199f3d 100644
--- a/chrome/browser/resources/settings/system_page/system_page.html
+++ b/chrome/browser/resources/settings/system_page/system_page.html
@@ -29,9 +29,18 @@
         </cr-button>
       </template>
     </settings-toggle-button>
+
     <div id="proxy" class="settings-box" on-click="onProxyTap_"
-        actionable$="[[!isProxyEnforcedByPolicy_]]">
-      <div class="start">$i18n{proxySettingsLabel}</div>
+        actionable$="[[isProxyDefault_]]">
+      <div class="start" hidden$="[[!isProxyDefault_]]">
+        $i18n{proxySettingsLabel}
+      </div>
+      <div class="start" hidden$="[[!prefs.proxy.extensionId]]">
+        $i18n{proxySettingsExtensionLabel}
+      </div>
+      <div class="start" hidden$="[[!isProxyEnforcedByPolicy_]]">
+        $i18n{proxySettingsPolicyLabel}
+      </div>
       <cr-icon-button class="icon-external"
           hidden$="[[isProxyEnforcedByPolicy_]]"
           aria-label="$i18n{proxySettingsLabel}"></cr-icon-button>
diff --git a/chrome/browser/resources/settings/system_page/system_page.js b/chrome/browser/resources/settings/system_page/system_page.js
index c94b282..7707ed9 100644
--- a/chrome/browser/resources/settings/system_page/system_page.js
+++ b/chrome/browser/resources/settings/system_page/system_page.js
@@ -19,19 +19,28 @@
     /** @private */
     isProxyEnforcedByPolicy_: {
       type: Boolean,
-      computed: 'computeIsProxyEnforcedByPolicy_(prefs.proxy.*)',
+    },
+
+    /** @private */
+    isProxyDefault_: {
+      type: Boolean,
     },
   },
 
+  observers: [
+    'observeProxyPrefChanged_(prefs.proxy.*)',
+  ],
+
   /**
-   * @return {boolean}
    * @private
    */
-  computeIsProxyEnforcedByPolicy_: function() {
+  observeProxyPrefChanged_: function() {
     const pref = this.get('prefs.proxy');
     // TODO(dbeam): do types of policy other than USER apply on ChromeOS?
-    return pref.enforcement == chrome.settingsPrivate.Enforcement.ENFORCED &&
+    this.isProxyEnforcedByPolicy_ =
+        pref.enforcement == chrome.settingsPrivate.Enforcement.ENFORCED &&
         pref.controlledBy == chrome.settingsPrivate.ControlledBy.USER_POLICY;
+    this.isProxyDefault_ = !this.isProxyEnforcedByPolicy_ && !pref.extensionId;
   },
 
   /** @private */
@@ -46,7 +55,7 @@
 
   /** @private */
   onProxyTap_: function() {
-    if (!this.isProxyEnforcedByPolicy_) {
+    if (this.isProxyDefault_) {
       settings.SystemPageBrowserProxyImpl.getInstance().showProxySettings();
     }
   },
diff --git a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html
index fb3ef3b..b0ce42a 100644
--- a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html
+++ b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html
@@ -3,10 +3,9 @@
   <head>
     <meta charset="utf-8">
     <link rel="import" href="chrome://resources/html/polymer.html">
+    <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
     <link rel="import" href="chrome://resources/cr_elements/cr_radio_button/cr_radio_button.html">
     <link rel="import" href="chrome://resources/cr_elements/cr_radio_group/cr_radio_group.html">
-    <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
-    <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
     <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
     <link rel="import" href="signin_shared_css.html">
     <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
@@ -14,7 +13,7 @@
     <link rel="import" href="chrome://resources/html/load_time_data.html">
     <link rel="import" href="chrome://resources/html/util.html">
     <custom-style>
-      <style include="signin-dialog-shared paper-button-style">
+      <style include="signin-dialog-shared">
         .container {
           /* The sign-in confirmation dialog uses a width that is larger than
            * the other sign-in dialogs to fit cases when the user has an email
@@ -91,12 +90,12 @@
         </cr-radio-group>
       </div>
       <div class="action-container">
-        <paper-button class="action-button" id="confirmButton">
+        <cr-button class="action-button" id="confirmButton">
           $i18n{signinEmailConfirmationConfirmLabel}
-        </paper-button>
-        <paper-button id="closeButton">
+        </cr-button>
+        <cr-button id="closeButton">
           $i18n{signinEmailConfirmationCloseLabel}
-        </paper-button>
+        </cr-button>
       </div>
     </div>
   </body>
diff --git a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js
index 3a53111..c09b83e 100644
--- a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js
+++ b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js
@@ -26,7 +26,7 @@
     // on "enter" being pressed and the user hits "enter", perform the default
     // action of the dialog, which is "OK".
     if (e.key == 'Enter' &&
-        !/^(A|PAPER-BUTTON)$/.test(document.activeElement.tagName)) {
+        !/^(A|CR-BUTTON)$/.test(document.activeElement.tagName)) {
       $('confirmButton').click();
       e.preventDefault();
     }
diff --git a/chrome/browser/resources/signin/signin_error/signin_error.html b/chrome/browser/resources/signin/signin_error/signin_error.html
index c0ba54d..8510d635 100644
--- a/chrome/browser/resources/signin/signin_error/signin_error.html
+++ b/chrome/browser/resources/signin/signin_error/signin_error.html
@@ -2,9 +2,8 @@
 <html dir="$i18n{textdirection}" lang="$i18n{language}">
   <head>
     <meta charset="utf-8">
-    <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
+    <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
     <link rel="import" href="chrome://resources/html/polymer.html">
-    <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
     <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
     <link rel="import" href="signin_shared_css.html">
     <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
@@ -12,7 +11,7 @@
     <link rel="import" href="chrome://resources/html/load_time_data.html">
     <link rel="import" href="chrome://resources/html/util.html">
     <custom-style>
-      <style include="signin-dialog-shared paper-button-style">
+      <style include="signin-dialog-shared">
         .details {
           line-height: 20px;
           margin-bottom: 8px;
@@ -85,15 +84,15 @@
         <p>$i18n{profileBlockedRemoveProfileSuggestion}</p>
       </div>
       <div class="action-container">
-        <paper-button class="action-button" id="switchButton">
+        <cr-button class="action-button" id="switchButton">
           $i18n{signinErrorSwitchLabel}
-        </paper-button>
-        <paper-button id="closeButton">
+        </cr-button>
+        <cr-button id="closeButton">
           $i18n{signinErrorCloseLabel}
-        </paper-button>
-        <paper-button id="confirmButton" hidden>
+        </cr-button>
+        <cr-button id="confirmButton" hidden>
           $i18n{signinErrorOkLabel}
-        </paper-button>
+        </cr-button>
       </div>
     </div>
   </body>
diff --git a/chrome/browser/resources/signin/signin_error/signin_error.js b/chrome/browser/resources/signin/signin_error/signin_error.js
index 749c99b..71d654c 100644
--- a/chrome/browser/resources/signin/signin_error/signin_error.js
+++ b/chrome/browser/resources/signin/signin_error/signin_error.js
@@ -26,7 +26,7 @@
     // on "enter" being pressed and the user hits "enter", perform the default
     // action of the dialog, which is "OK".
     if (e.key == 'Enter' &&
-        !/^(A|PAPER-BUTTON)$/.test(document.activeElement.tagName)) {
+        !/^(A|CR-BUTTON)$/.test(document.activeElement.tagName)) {
       $('confirmButton').click();
       e.preventDefault();
     }
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html
index 1aa30c4..fffc18a7 100644
--- a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html
+++ b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html
@@ -1,10 +1,9 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
-<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
+<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
 <link rel="import" href="chrome://resources/html/cr.html">
 <link rel="import" href="chrome://resources/html/load_time_data.html">
 <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
 <link rel="import" href="signin_shared_css.html">
 <link rel="import" href="sync_confirmation_browser_proxy.html">
@@ -13,13 +12,13 @@
 
 <dom-module id="sync-confirmation-app">
   <template>
-    <style include="signin-dialog-shared paper-button-style">
+    <style include="signin-dialog-shared">
       :host {
         color: var(--cr-primary-text-color);
         display: block;
       }
 
-      paper-button {
+      cr-button {
         padding-inline-end: 16px;
         padding-inline-start: 16px;
       }
@@ -31,13 +30,13 @@
         width: 100%;
       }
 
-      paper-button:not(.action-button) {
+      cr-button:not(.action-button) {
         margin-inline-start: 8px;
       }
 
 <if expr="is_macosx or is_linux">
       /* This works together with the button-flip in signin-dialog-shared. */
-      paper-button:not(.action-button) {
+      cr-button:not(.action-button) {
         margin-inline-end: 8px;
         margin-inline-start: 0;
       }
@@ -152,17 +151,17 @@
         $i18n{syncConfirmationSettingsInfo}
       </div>
       <div class="action-container">
-        <paper-button class="action-button" id="confirmButton"
+        <cr-button class="action-button" id="confirmButton"
             on-click="onConfirm_" consent-confirmation>
           $i18n{syncConfirmationConfirmLabel}
-        </paper-button>
-        <paper-button on-click="onUndo_">
+        </cr-button>
+        <cr-button on-click="onUndo_">
           $i18n{syncConfirmationUndoLabel}
-        </paper-button>
-        <paper-button id="settingsButton" on-click="onGoToSettings_"
+        </cr-button>
+        <cr-button id="settingsButton" on-click="onGoToSettings_"
             consent-confirmation>
           $i18n{syncConfirmationSettingsLabel}
-        </paper-button>
+        </cr-button>
       </div>
     </div>
   </template>
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js
index 44c95ea..57f29b84 100644
--- a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js
+++ b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js
@@ -63,7 +63,7 @@
 
   /** @private */
   onKeyDown_: function(e) {
-    if (e.key == 'Enter' && !/^(A|PAPER-BUTTON)$/.test(e.path[0].tagName)) {
+    if (e.key == 'Enter' && !/^(A|CR-BUTTON)$/.test(e.path[0].tagName)) {
       this.onConfirm_(e);
       e.preventDefault();
     }
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html b/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html
index e920129..74e0523 100644
--- a/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html
+++ b/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html
@@ -9,14 +9,13 @@
       }
     </style>
     </custom-style>
-    <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
+    <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
     <link rel="import" href="chrome://resources/html/polymer.html">
-    <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
     <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
     <link rel="import" href="signin_shared_css.html">
     <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
     <custom-style>
-      <style include="signin-dialog-shared paper-button-style">
+      <style include="signin-dialog-shared">
         .details {
           padding: 0 24px;
         }
@@ -56,13 +55,13 @@
         </div>
       </div>
       <div class="action-container">
-        <paper-button class="action-button" id="confirmButton"
+        <cr-button class="action-button" id="confirmButton"
             consent-confirmation>
           $i18n{syncDisabledConfirmationConfirmLabel}
-        </paper-button>
-        <paper-button id="undoButton">
+        </cr-button>
+        <cr-button id="undoButton">
           $i18n{syncDisabledConfirmationUndoLabel}
-        </paper-button>
+        </cr-button>
       </div>
     </div>
   </body>
diff --git a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc
index 51636e4..7a200bd8 100644
--- a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc
+++ b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc
@@ -528,7 +528,7 @@
       destruction_observer(
           new content::TestRenderWidgetHostViewDestructionObserver(first_view));
   {
-    content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+    content::ScopedAllowRendererCrashes allow_renderer_crashes(frames[0]);
     frames[0]->GetProcess()->Shutdown(0);
     destruction_observer->Wait();
   }
@@ -544,7 +544,7 @@
       new content::TestRenderWidgetHostViewDestructionObserver(
           frames[1]->GetView()));
   {
-    content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+    content::ScopedAllowRendererCrashes allow_renderer_crashes(frames[1]);
     frames[1]->GetProcess()->Shutdown(0);
     destruction_observer->Wait();
   }
diff --git a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
index 82f58c2..c9f1039 100644
--- a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
+++ b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
@@ -656,7 +656,8 @@
 IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest,
                        RendererDebugURL_NoLeakedThrottlePtrs) {
   // Allow crashes caused by the navigation to kChromeUICrashURL below.
-  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes;
+  content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes(
+      browser()->tab_strip_model()->GetActiveWebContents());
 
   // We have checks in the throttle manager that we don't improperly leak
   // activation state throttles. It would be nice to test things directly but it
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
index 0403c1b..e692113 100644
--- a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
+++ b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
@@ -80,7 +80,7 @@
   std::string encoded;
   base::Base64Encode(png_data->data(), &encoded);
   {
-    ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
 
     // Send both HTML and and Image formats to clipboard. HTML format is needed
     // by ARC, while Image is needed by Hangout.
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
index 1375380..26b89ff 100644
--- a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
+++ b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
@@ -71,7 +71,7 @@
   bool IsImageClipboardAvailable() {
     return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable(
         ui::ClipboardFormatType::GetBitmapType(),
-        ui::CLIPBOARD_TYPE_COPY_PASTE);
+        ui::ClipboardType::kCopyPaste);
   }
 
   scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
index 5bca344..63b2433 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -201,11 +201,7 @@
   DCHECK(!instance_);
   instance_ = this;
 
-  // ShelfModel initializes the app list item and back button.
   DCHECK(model_);
-  DCHECK_EQ(2, model_->item_count());
-  DCHECK_EQ(ash::kBackButtonId, model_->items()[0].id.app_id);
-  DCHECK_EQ(ash::kAppListId, model_->items()[1].id.app_id);
 
   if (!web_app::SystemWebAppManager::IsEnabled()) {
     settings_window_observer_ = std::make_unique<SettingsWindowObserver>();
@@ -885,12 +881,12 @@
 
   const int max_index = model_->item_count();
   const int index = model_->ItemIndexByID(shelf_id);
-  DCHECK_GT(index, 0);
+  DCHECK_GE(index, 0);
 
   ash::ShelfID shelf_id_before;
   std::vector<ash::ShelfID> shelf_ids_after;
 
-  for (int i = index - 1; i > 0; --i) {
+  for (int i = index - 1; i >= 0; --i) {
     shelf_id_before = model_->items()[i].id;
     if (IsPinned(shelf_id_before))
       break;
@@ -938,11 +934,6 @@
       GetPinnedAppsFromSync(launcher_controller_helper_.get());
 
   int index = 0;
-  // Skip the app list and back button if they exist.
-  if (model_->items()[0].type == ash::TYPE_BACK_BUTTON_DEPRECATED)
-    ++index;
-  if (model_->items()[1].type == ash::TYPE_APP_LIST_DEPRECATED)
-    ++index;
 
   // Apply pins in two steps. At the first step, go through the list of apps to
   // pin, move existing pin to current position specified by |index| or create
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
index f48d9fa0..f1d8bcc 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -1482,7 +1482,7 @@
   EXPECT_EQ(0u, chrome::GetTotalBrowserCount());
   // The first activation should create a browser at index 2 (App List @ 0 and
   // back button @ 1).
-  const ash::ShelfID browser_id = shelf_model()->items()[2].id;
+  const ash::ShelfID browser_id = shelf_model()->items()[0].id;
   SelectItem(browser_id, ui::ET_KEY_RELEASED);
   EXPECT_EQ(1u, chrome::GetTotalBrowserCount());
   // A second activation should not create a new instance.
@@ -1661,7 +1661,7 @@
   EXPECT_EQ(1u, chrome::GetTotalBrowserCount());
   EXPECT_EQ(1, browser()->tab_strip_model()->count());
   EXPECT_EQ(0, browser()->tab_strip_model()->active_index());
-  EXPECT_EQ(3, shelf_model()->item_count());
+  EXPECT_EQ(1, shelf_model()->item_count());
 
   aura::Window* window = browser()->window()->GetNativeWindow();
 
@@ -1672,7 +1672,7 @@
   EXPECT_EQ(browser_id, id);
 
   ash::ShelfID app_id = CreateShortcut("app1");
-  EXPECT_EQ(4, shelf_model()->item_count());
+  EXPECT_EQ(2, shelf_model()->item_count());
 
   // Create and activate a new tab for "app1" and expect an application ShelfID.
   SelectItem(app_id);
@@ -1742,8 +1742,7 @@
 
   // Get the number of items in the shelf and browser menu.
   int item_count = shelf_model()->item_count();
-  // At least App List and back button should exist.
-  ASSERT_GE(item_count, 2);
+  ASSERT_GE(item_count, 0);
   size_t browser_count = NumberOfDetectedLauncherBrowsers(false);
 
   // Open a settings window. Number of browser items should remain unchanged,
@@ -1894,13 +1893,10 @@
   ASSERT_FALSE(IsItemPresentInMenu(menu2.get(), ash::MENU_CLOSE));
 }
 
-// Chrome's ShelfModel should have back button, AppList and browser items and
-// delegates.
+// Chrome's ShelfModel should have the browser item and delegate.
 IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, ShelfModelInitialization) {
-  EXPECT_EQ(3, shelf_model()->item_count());
-  EXPECT_EQ(ash::kBackButtonId, shelf_model()->items()[0].id.app_id);
-  EXPECT_EQ(ash::kAppListId, shelf_model()->items()[1].id.app_id);
-  EXPECT_EQ(extension_misc::kChromeAppId, shelf_model()->items()[2].id.app_id);
+  EXPECT_EQ(1, shelf_model()->item_count());
+  EXPECT_EQ(extension_misc::kChromeAppId, shelf_model()->items()[0].id.app_id);
   EXPECT_TRUE(
-      shelf_model()->GetShelfItemDelegate(shelf_model()->items()[2].id));
+      shelf_model()->GetShelfItemDelegate(shelf_model()->items()[0].id));
 }
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
index 038fffb5..e2644f1d 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
@@ -398,13 +398,13 @@
   virtual void SetUpMultiUserScenario(syncer::SyncChangeList* user_a,
                                       syncer::SyncChangeList* user_b) {
     InitLauncherController();
-    EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+    EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
     // Set an empty pinned pref to begin with.
     syncer::SyncChangeList sync_list;
     InsertAddPinChange(&sync_list, 0, extension_misc::kChromeAppId);
     SendPinChanges(sync_list, true);
-    EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+    EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
     // Assume all applications have been added already.
     extension_service_->AddExtension(extension1_.get());
@@ -417,7 +417,7 @@
     extension_service_->AddExtension(extension8_.get());
     extension_service_->AddExtension(extension_platform_app_.get());
     // There should be nothing in the list by now.
-    EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+    EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
     // Set user a preferences.
     InsertAddPinChange(user_a, 0, extension1_->id());
@@ -1179,15 +1179,14 @@
 TEST_F(ChromeLauncherControllerTest, DefaultApps) {
   InitLauncherController();
 
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Pinning the non-default app. It should appear at the end. No default app
   // is currently installed.
   extension_service_->AddExtension(extension1_.get());
   launcher_controller_->PinAppWithID(extension1_->id());
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
 
   // Install default apps in reverse order, compared how they are declared.
   // However pin positions should be in the order as they declared. Note,
@@ -1195,16 +1194,15 @@
 
   // Prefs are not yet synced. No default pin appears.
   extension_service_->AddExtension(extensionYoutubeApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
 
   StartPrefSyncService(syncer::SyncDataList());
-  EXPECT_EQ("Back, AppList, Chrome, Youtube, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Youtube, App1", GetPinnedAppStatus());
 
   extension_service_->AddExtension(extensionDocApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, Doc, Youtube, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Doc, Youtube, App1", GetPinnedAppStatus());
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, Doc, Youtube, App1",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, Doc, Youtube, App1", GetPinnedAppStatus());
 }
 
 TEST_F(ChromeLauncherControllerWithArcTest, ArcAppPinCrossPlatformWorkflow) {
@@ -1238,7 +1236,7 @@
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id2));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3));
-  EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus());
 
   // Persist pin state, we don't have active pin for ARC apps yet, but pin
   // model should have it.
@@ -1263,15 +1261,15 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3));
 
-  EXPECT_EQ("Back, AppList, App1, Chrome, Fake App 0, App2, Fake App 1, Gmail",
+  EXPECT_EQ("App1, Chrome, Fake App 0, App2, Fake App 1, Gmail",
             GetPinnedAppStatus());
 
   // Now move pins on ARC enabled platform.
-  model_->Move(2, 5);
-  model_->Move(4, 2);
-  model_->Move(4, 6);
-  model_->Move(5, 3);
-  EXPECT_EQ("Back, AppList, App2, Fake App 1, Chrome, App1, Fake App 0, Gmail",
+  model_->Move(0, 3);
+  model_->Move(2, 0);
+  model_->Move(2, 4);
+  model_->Move(3, 1);
+  EXPECT_EQ("App2, Fake App 1, Chrome, App1, Fake App 0, Gmail",
             GetPinnedAppStatus());
 
   copy_sync_list = app_list_syncable_service_->GetAllSyncData(syncer::APP_LIST);
@@ -1294,12 +1292,12 @@
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id2));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3));
-  EXPECT_EQ("Back, AppList, App2, Chrome, App1, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("App2, Chrome, App1, Gmail", GetPinnedAppStatus());
 
   // Now move/remove pins on ARC disabled platform.
-  model_->Move(5, 3);
+  model_->Move(3, 1);
   launcher_controller_->UnpinAppWithID(extension2_->id());
-  EXPECT_EQ("Back, AppList, Gmail, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Gmail, Chrome, App1", GetPinnedAppStatus());
   EnablePlayStore(true);
 
   SendListOfArcApps();
@@ -1310,7 +1308,7 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3));
-  EXPECT_EQ("Back, AppList, Fake App 1, Gmail, Chrome, App1, Fake App 0",
+  EXPECT_EQ("Fake App 1, Gmail, Chrome, App1, Fake App 0",
             GetPinnedAppStatus());
 }
 
@@ -1356,8 +1354,7 @@
             GetPinnableForAppID(extensionDocApp_->id(), profile()));
 
   // Check the order of shelf pinned apps
-  EXPECT_EQ("Back, AppList, App2, Doc, App1, Chrome, Gmail",
-            GetPinnedAppStatus());
+  EXPECT_EQ("App2, Doc, App1, Chrome, Gmail", GetPinnedAppStatus());
 }
 
 // Check that the restauration of launcher items is happening in the same order
@@ -1376,7 +1373,7 @@
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Installing |extensionGmailApp_| should add it to the shelf - behind the
   // chrome icon.
@@ -1384,18 +1381,18 @@
   extension_service_->AddExtension(extensionGmailApp_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
-  EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus());
 
   // Installing |extension2_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extension2_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
-  EXPECT_EQ("Back, AppList, Chrome, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App2, Gmail", GetPinnedAppStatus());
 
   // Installing |extension1_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus());
 }
 
 // Check that the restauration of launcher items is happening in the same order
@@ -1414,25 +1411,25 @@
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Installing |extension2_| should add it to the launcher - behind the
   // chrome icon.
   extension_service_->AddExtension(extension2_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App2", GetPinnedAppStatus());
 
   // Installing |extension1_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extension1_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 
   // Installing |extensionGmailApp_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus());
 }
 
 // Check that the restauration of launcher items is happening in the same order
@@ -1452,7 +1449,7 @@
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Installing |extension2_| should add it to the shelf - behind the
   // chrome icon.
@@ -1460,18 +1457,18 @@
   extension_service_->AddExtension(extension2_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App2", GetPinnedAppStatus());
 
   // Installing |extension1_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extension1_.get());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
-  EXPECT_EQ("Back, AppList, App1, Chrome, App2", GetPinnedAppStatus());
+  EXPECT_EQ("App1, Chrome, App2", GetPinnedAppStatus());
 
   // Installing |extensionGmailApp_| should add it to the launcher - behind the
   // chrome icon, but in first location.
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus());
 }
 
 // Check that syncing to a different state does the correct thing.
@@ -1486,11 +1483,11 @@
 
   // The shelf layout has always one static item at the beginning (App List).
   extension_service_->AddExtension(extension2_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App2", GetPinnedAppStatus());
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus());
 
   // Change the order with increasing chrome position and decreasing position.
   syncer::SyncChangeList sync_list1;
@@ -1499,7 +1496,7 @@
   InsertAddPinChange(&sync_list1, 2, extension2_->id());
   InsertAddPinChange(&sync_list1, 3, extension_misc::kChromeAppId);
   SendPinChanges(sync_list1, true);
-  EXPECT_EQ("Back, AppList, Gmail, App1, App2, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Gmail, App1, App2, Chrome", GetPinnedAppStatus());
 
   syncer::SyncChangeList sync_list2;
   InsertAddPinChange(&sync_list2, 0, extension2_->id());
@@ -1507,7 +1504,7 @@
   InsertAddPinChange(&sync_list2, 2, extension_misc::kChromeAppId);
   InsertAddPinChange(&sync_list2, 3, extension1_->id());
   SendPinChanges(sync_list2, true);
-  EXPECT_EQ("Back, AppList, App2, Gmail, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("App2, Gmail, Chrome, App1", GetPinnedAppStatus());
 
   // Check that the chrome icon can also be at the first possible location.
   syncer::SyncChangeList sync_list3;
@@ -1515,99 +1512,97 @@
   InsertAddPinChange(&sync_list3, 1, extension2_->id());
   InsertAddPinChange(&sync_list3, 2, extension1_->id());
   SendPinChanges(sync_list3, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, App2, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, App2, App1", GetPinnedAppStatus());
 
   // Check that unloading of extensions works as expected.
   extension_service_->UnloadExtension(extension1_->id(),
                                       UnloadedExtensionReason::UNINSTALL);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, App2", GetPinnedAppStatus());
 
   extension_service_->UnloadExtension(extension2_->id(),
                                       UnloadedExtensionReason::UNINSTALL);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus());
 
   // Check that an update of an extension does not crash the system.
   extension_service_->UnloadExtension(extensionGmailApp_->id(),
                                       UnloadedExtensionReason::UPDATE);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus());
 }
 
 // Test the V1 app interaction flow: run it, activate it, close it.
 TEST_F(ChromeLauncherControllerTest, V1AppRunActivateClose) {
   InitLauncherController();
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is running should create a new shelf item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is running again should have no effect.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
 
   // Reporting that the app is closed should remove its shelf item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is closed again should have no effect.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 // Test the V1 app interaction flow: pin it, run it, close it, unpin it.
 TEST_F(ChromeLauncherControllerTest, V1AppPinRunCloseUnpin) {
   InitLauncherController();
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut.
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Pinning the app should create a new shelf item.
   launcher_controller_->PinAppWithID(extension1_->id());
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is running should just update the existing item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is closed should just update the existing item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Unpinning the app should remove its shelf item.
   launcher_controller_->UnpinAppWithID(extension1_->id());
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
@@ -1617,43 +1612,42 @@
 TEST_F(ChromeLauncherControllerTest, V1AppRunPinCloseUnpin) {
   InitLauncherController();
 
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut.
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is running should create a new shelf item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Pinning the app should just update the existing item.
   launcher_controller_->PinAppWithID(extension1_->id());
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is closed should just update the existing item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Unpinning the app should remove its shelf item.
   launcher_controller_->UnpinAppWithID(extension1_->id());
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
@@ -1663,43 +1657,42 @@
 TEST_F(ChromeLauncherControllerTest, V1AppPinRunUnpinClose) {
   InitLauncherController();
 
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Pinning the app should create a new shelf item.
   launcher_controller_->PinAppWithID(extension1_->id());
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is running should just update the existing item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Unpinning the app should just update the existing item.
   launcher_controller_->UnpinAppWithID(extension1_->id());
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status);
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_NE(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
 
   // Reporting that the app is closed should remove its shelf item.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_EQ(nullptr,
             launcher_controller_->GetItem(ash::ShelfID(extension1_->id())));
@@ -1709,19 +1702,18 @@
 TEST_F(ChromeLauncherControllerTest, CheckRunningV1AppOrder) {
   InitLauncherController();
 
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ(1, model_->item_count());
 
   // Add a few running applications.
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING);
   launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_RUNNING);
   launcher_controller_->SetV1AppStatus(extensionGmailApp_->id(),
                                        ash::STATUS_RUNNING);
-  EXPECT_EQ(6, model_->item_count());
+  EXPECT_EQ(4, model_->item_count());
   // Note that this not only checks the order of applications but also the
   // running type.
-  EXPECT_EQ("Back, AppList, Chrome, app1, app2, gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, app1, app2, gmail", GetPinnedAppStatus());
 
   // Remember the current order of applications for the current user.
   const AccountId& current_account_id =
@@ -1730,33 +1722,33 @@
 
   // Switch some items and check that restoring a user which was not yet
   // remembered changes nothing.
-  model_->Move(3, 4);
-  EXPECT_EQ("Back, AppList, Chrome, app2, app1, gmail", GetPinnedAppStatus());
+  model_->Move(1, 2);
+  EXPECT_EQ("Chrome, app2, app1, gmail", GetPinnedAppStatus());
   const AccountId second_fake_account_id(
       AccountId::FromUserEmail("second-fake-user@fake.com"));
   RestoreUnpinnedRunningApplicationOrder(second_fake_account_id);
-  EXPECT_EQ("Back, AppList, Chrome, app2, app1, gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, app2, app1, gmail", GetPinnedAppStatus());
 
   // Restoring the stored user should however do the right thing.
   RestoreUnpinnedRunningApplicationOrder(current_account_id);
-  EXPECT_EQ("Back, AppList, Chrome, app1, app2, gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, app1, app2, gmail", GetPinnedAppStatus());
 
   // Switch again some items and even delete one - making sure that the missing
   // item gets properly handled.
-  model_->Move(4, 5);
+  model_->Move(2, 3);
   launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED);
-  EXPECT_EQ("Back, AppList, Chrome, gmail, app2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, gmail, app2", GetPinnedAppStatus());
   RestoreUnpinnedRunningApplicationOrder(current_account_id);
-  EXPECT_EQ("Back, AppList, Chrome, app2, gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, app2, gmail", GetPinnedAppStatus());
 
   // Check that removing more items does not crash and changes nothing.
   launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_CLOSED);
   RestoreUnpinnedRunningApplicationOrder(current_account_id);
-  EXPECT_EQ("Back, AppList, Chrome, gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, gmail", GetPinnedAppStatus());
   launcher_controller_->SetV1AppStatus(extensionGmailApp_->id(),
                                        ash::STATUS_CLOSED);
   RestoreUnpinnedRunningApplicationOrder(current_account_id);
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 }
 
 TEST_F(ChromeLauncherControllerWithArcTest, ArcDeferredLaunch) {
@@ -2209,27 +2201,24 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
 
-  EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 0, App2",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, Fake App 0, App2", GetPinnedAppStatus());
 
   UninstallArcApps();
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id));
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   SendListOfArcApps();
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id));
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 
   // Opt-Out/Opt-In remove item from the shelf.
   launcher_controller_->PinAppWithID(arc_app_id);
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Fake App 0",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Fake App 0", GetPinnedAppStatus());
   EnablePlayStore(false);
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   EnablePlayStore(true);
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   SendListOfArcApps();
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Fake App 0",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Fake App 0", GetPinnedAppStatus());
 }
 
 // Validates that ARC app pins persist across OptOut/OptIn.
@@ -2254,12 +2243,11 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id1));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2));
-  EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 1, App2, Fake App 0",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, Fake App 1, App2, Fake App 0", GetPinnedAppStatus());
 
   EnablePlayStore(false);
 
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
   EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id1));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
@@ -2274,8 +2262,7 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2));
 
-  EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 1, App2, Fake App 0",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, Fake App 1, App2, Fake App 0", GetPinnedAppStatus());
 }
 
 TEST_F(ChromeLauncherControllerWithArcTest, ArcCustomAppIcon) {
@@ -2408,12 +2395,12 @@
   // Create a browser item in the LauncherController.
   InitLauncherController();
 
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   {
     // Create a "windowed gmail app".
     std::unique_ptr<V1App> v1_app(
         CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl));
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     // After switching to a second user the item should be gone.
     std::string user2 = "user2";
@@ -2423,14 +2410,14 @@
     const AccountId account_id(
         multi_user_util::GetAccountIdFromProfile(profile()));
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     // After switching back the item should be back.
     SwitchActiveUser(account_id);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
     // Note we destroy now the gmail app with the closure end.
   }
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 // Check edge cases with multi profile V1 apps in the shelf.
@@ -2450,23 +2437,23 @@
     // Create a "windowed gmail app".
     std::unique_ptr<V1App> v1_app(
         CreateRunningV1App(profile2, extension_misc::kGmailAppId, kGmailUrl));
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     // However - switching to the user should show it.
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     // Second test: Remove the app when the user is not active and see that it
     // works.
     SwitchActiveUser(account_id);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
     // Note: the closure ends and the browser will go away.
   }
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   SwitchActiveUser(account_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 // Check edge case where a visiting V1 app gets closed (crbug.com/321374).
@@ -2486,23 +2473,23 @@
     // Create a "windowed gmail app".
     std::unique_ptr<V1App> v1_app(CreateRunningV1App(
         profile(), extension_misc::kGmailAppId, kGmailLaunchURL));
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
   }
   // After the app was destroyed, switch back. (which caused already a crash).
   SwitchActiveUser(account_id);
 
   // Create the same app again - which was also causing the crash.
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   {
     // Create a "windowed gmail app".
     std::unique_ptr<V1App> v1_app(CreateRunningV1App(
         profile(), extension_misc::kGmailAppId, kGmailLaunchURL));
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
   }
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 // Check edge cases with multi profile V1 apps in the shelf.
@@ -2523,23 +2510,23 @@
     // Create a "windowed gmail app".
     std::unique_ptr<V1App> v1_app(
         CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl));
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     // However - switching to the user should show it.
     SwitchActiveUser(account_id);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     // Second test: Remove the app when the user is not active and see that it
     // works.
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
     v1_app.reset();
   }
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   SwitchActiveUser(account_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 // Check that activating an item which is on another user's desktop, will bring
@@ -2595,16 +2582,16 @@
 
   // The shelf layout has always one static item at the beginning (App List).
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
   extension_service_->AddExtension(extension2_.get());
   // No new app icon will be generated.
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
 
   // Set the app status as running, which will add an unpinned item.
   launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_RUNNING);
-  EXPECT_EQ("Back, AppList, Chrome, App1, app2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, app2", GetPinnedAppStatus());
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, Gmail, app2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, Gmail, app2", GetPinnedAppStatus());
 
   // Now request to pin all items, which will pin the running unpinned items.
   syncer::SyncChangeList sync_list1;
@@ -2612,7 +2599,7 @@
   InsertAddPinChange(&sync_list1, 1, extension2_->id());
   InsertAddPinChange(&sync_list1, 2, extension1_->id());
   SendPinChanges(sync_list1, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, App2, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, App2, App1", GetPinnedAppStatus());
 
   // Removing the requirement for app 2 to be pinned should convert it back to
   // running but not pinned. It should move towards the end of the shelf, after
@@ -2621,13 +2608,13 @@
   InsertAddPinChange(&sync_list2, 0, extensionGmailApp_->id());
   InsertAddPinChange(&sync_list2, 1, extension1_->id());
   SendPinChanges(sync_list2, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, App1, app2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, App1, app2", GetPinnedAppStatus());
 
   // Removing an item should simply close it and everything should shift.
   syncer::SyncChangeList sync_list3;
   InsertRemovePinChange(&sync_list3, extension1_->id());
   SendPinChanges(sync_list3, false /* reset_pin_model */);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, app2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, app2", GetPinnedAppStatus());
 }
 
 // Check that a running unpinned V2 application will be properly pinned and
@@ -2641,16 +2628,15 @@
   SendPinChanges(sync_list0, true);
   // The shelf layout has always one static item at the beginning (app List).
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
   extension_service_->AddExtension(extension_platform_app_.get());
   // No new app icon will be generated.
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
   // Add an unpinned but running V2 app.
   CreateRunningV2App(extension_platform_app_->id());
-  EXPECT_EQ("Back, AppList, Chrome, App1, *platform_app", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, *platform_app", GetPinnedAppStatus());
   extension_service_->AddExtension(extensionGmailApp_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, Gmail, *platform_app",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, Gmail, *platform_app", GetPinnedAppStatus());
 
   // Now request to pin all items, which should pin the running unpinned item.
   syncer::SyncChangeList sync_list1;
@@ -2658,8 +2644,7 @@
   InsertAddPinChange(&sync_list1, 1, extension_platform_app_->id());
   InsertAddPinChange(&sync_list1, 2, extension1_->id());
   SendPinChanges(sync_list1, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, *Platform_App, App1",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, *Platform_App, App1", GetPinnedAppStatus());
 
   // Removing the requirement for app 2 to be pinned should convert it back to
   // running but not pinned. It should move towards the end of the shelf, after
@@ -2668,15 +2653,13 @@
   InsertAddPinChange(&sync_list2, 0, extensionGmailApp_->id());
   InsertAddPinChange(&sync_list2, 1, extension1_->id());
   SendPinChanges(sync_list2, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, App1, *platform_app",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, App1, *platform_app", GetPinnedAppStatus());
 
   // Removing an item should simply close it and everything should shift.
   syncer::SyncChangeList sync_list3;
   InsertAddPinChange(&sync_list3, 0, extensionGmailApp_->id());
   SendPinChanges(sync_list3, true);
-  EXPECT_EQ("Back, AppList, Chrome, Gmail, *platform_app",
-            GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Gmail, *platform_app", GetPinnedAppStatus());
 }
 
 // Each user has a different set of applications pinned. Check that when
@@ -2689,23 +2672,21 @@
 
   // Show user 1.
   SendPinChanges(user_a, true);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
+            GetPinnedAppStatus());
 
   // Show user 2.
   SendPinChanges(user_b, true);
-  EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("App6, App7, App8, Chrome", GetPinnedAppStatus());
 
   // Switch back to 1.
   SendPinChanges(user_a, true);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
+            GetPinnedAppStatus());
 
   // Switch back to 2.
   SendPinChanges(user_b, true);
-  EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("App6, App7, App8, Chrome", GetPinnedAppStatus());
 }
 
 // Each user has a different set of applications pinned, and one user has an
@@ -2722,25 +2703,21 @@
 
   // Show user 1.
   SendPinChanges(user_a, true);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
+            GetPinnedAppStatus());
 
   // Show user 2.
   SendPinChanges(user_b, true);
-  EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app",
-            GetPinnedAppStatus());
+  EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus());
 
   // Switch back to 1.
   SendPinChanges(user_a, true);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome",
+            GetPinnedAppStatus());
 
   // Switch back to 2.
   SendPinChanges(user_b, true);
-  EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app",
-            GetPinnedAppStatus());
+  EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus());
 }
 
 // Each user has a different set of applications pinned, and one user has an
@@ -2759,22 +2736,19 @@
   // Show user 1.
   SendPinChanges(user_a, true);
   SetShelfChromeIconIndex(5);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, Chrome, App5",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, Chrome, App5",
+            GetPinnedAppStatus());
 
   // Show user 2.
   SendPinChanges(user_b, true);
-  SetShelfChromeIconIndex(4);
-  EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app",
-            GetPinnedAppStatus());
+  SetShelfChromeIconIndex(3);
+  EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus());
 
   // Switch back to 1.
   SendPinChanges(user_a, true);
   SetShelfChromeIconIndex(5);
-  EXPECT_EQ(
-      "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, Chrome, App5",
-      GetPinnedAppStatus());
+  EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, Chrome, App5",
+            GetPinnedAppStatus());
 }
 
 TEST_F(ChromeLauncherControllerTest, Policy) {
@@ -2793,19 +2767,19 @@
   // Only |extension2_| should get pinned. |extension1_| is specified but not
   // installed, and |extensionGmailApp_| is part of the default set, but that
   // shouldn't take effect when the policy override is in place.
-  EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App2", GetPinnedAppStatus());
 
   // Installing |extension1_| should add it to the launcher. Note, App1 goes
   // before App2 that is aligned with the pin order in policy.
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 
   // Removing |extension1_| from the policy should not be reflected in the
   // launcher and pin will exist.
   policy_value.Remove(0, NULL);
   profile()->GetTestingPrefService()->SetManagedPref(
       prefs::kPolicyPinnedLauncherApps, policy_value.CreateDeepCopy());
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 }
 
 TEST_F(ChromeLauncherControllerTest, UnpinWithUninstall) {
@@ -3027,9 +3001,8 @@
   InitLauncherControllerWithBrowser();
   StartPrefSyncService(syncer::SyncDataList());
 
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id()));
 
   // Installing |extensionGmailApp_| pins it to the launcher.
@@ -3142,20 +3115,20 @@
       multi_user_util::GetAccountIdFromProfile(profile()));
   const AccountId account_id2(
       multi_user_util::GetAccountIdFromProfile(profile2));
-  // Check that there is a browser, back button and a app launcher.
-  EXPECT_EQ(3, model_->item_count());
+  // Check that there is a browser.
+  EXPECT_EQ(1, model_->item_count());
 
   // Add a v2 app.
   V2App v2_app(profile(), extension1_.get());
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
 
   // After switching users the item should go away.
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 
   // And it should come back when switching back.
   SwitchActiveUser(account_id);
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
 }
 
 // Check that V2 applications are creating items properly in edge cases:
@@ -3171,35 +3144,35 @@
   const AccountId account_id2(
       multi_user_util::GetAccountIdFromProfile(profile2));
   // Check that there is a browser, back button and a app launcher.
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 
   // Switch to an inactive user.
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 
   // Add the v2 app to the inactive user and check that no item was added to
   // the launcher.
   {
     V2App v2_app(profile(), extension1_.get());
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     // Switch to the primary user and check that the item is shown.
     SwitchActiveUser(account_id);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     // Switch to the second user and check that the item goes away - even if the
     // item gets closed.
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
   }
 
-  // After the application was killed there should be still 2 items.
-  EXPECT_EQ(3, model_->item_count());
+  // After the application was killed there should still be 1 item.
+  EXPECT_EQ(1, model_->item_count());
 
   // Switching then back to the default user should not show the additional item
   // anymore.
   SwitchActiveUser(account_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 }
 
 TEST_F(ChromeLauncherControllerTest, Active) {
@@ -3338,39 +3311,39 @@
   const AccountId account_id2(
       multi_user_util::GetAccountIdFromProfile(profile2));
   SwitchActiveUser(account_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
 
   V2App v2_app_1(profile(), extension1_.get());
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   {
     // Hide and show the app.
     v2_app_1.window()->Hide();
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
   }
   {
     // Switch user, hide and show the app and switch back.
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     v2_app_1.window()->Hide();
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     SwitchActiveUser(account_id);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
   }
   {
     // Switch user, hide the app, switch back and then show it again.
     SwitchActiveUser(account_id2);
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     v2_app_1.window()->Hide();
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
 
     SwitchActiveUser(account_id);
     // The following expectation does not work in current impl. It was working
@@ -3380,22 +3353,22 @@
     // EXPECT_EQ(2, model_->item_count());
 
     v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
   }
   {
     // Create a second app, hide and show it and then hide both apps.
     V2App v2_app_2(profile(), extension1_.get());
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     v2_app_2.window()->Hide();
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     v2_app_2.window()->Show(extensions::AppWindow::SHOW_ACTIVE);
-    EXPECT_EQ(4, model_->item_count());
+    EXPECT_EQ(2, model_->item_count());
 
     v2_app_1.window()->Hide();
     v2_app_2.window()->Hide();
-    EXPECT_EQ(3, model_->item_count());
+    EXPECT_EQ(1, model_->item_count());
   }
 }
 
@@ -3414,32 +3387,32 @@
   const std::string app_id = extension1_->id();
   extension_service_->AddExtension(extension1_.get());
 
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Add a spinner to the shelf
   launcher_controller_->GetShelfSpinnerController()->AddSpinnerToShelf(
       app_id, std::make_unique<ShelfSpinnerItemController>(app_id));
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_TRUE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Switch to a new profile
   SwitchActiveUser(account_id2);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Switch back
   SwitchActiveUser(account_id);
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_TRUE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Close the spinner
   launcher_controller_->GetShelfSpinnerController()->CloseSpinner(app_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 }
@@ -3460,14 +3433,14 @@
   const std::string app_id = extension1_->id();
   extension_service_->AddExtension(extension1_.get());
 
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Pin an app to the shelf
   launcher_controller_->PinAppWithID(app_id);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id));
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
@@ -3475,28 +3448,28 @@
   launcher_controller_->GetShelfSpinnerController()->AddSpinnerToShelf(
       app_id, std::make_unique<ShelfSpinnerItemController>(app_id));
   EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id));
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_TRUE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Switch to a new profile
   SwitchActiveUser(account_id2);
   EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id));
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Switch back
   SwitchActiveUser(account_id);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id));
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_TRUE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 
   // Close the spinner
   launcher_controller_->GetShelfSpinnerController()->CloseSpinner(app_id);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id));
-  EXPECT_EQ(4, model_->item_count());
+  EXPECT_EQ(2, model_->item_count());
   EXPECT_FALSE(
       launcher_controller_->GetShelfSpinnerController()->HasApp(app_id));
 }
@@ -3654,9 +3627,7 @@
   TestLauncherControllerHelper* helper = new TestLauncherControllerHelper;
   SetLauncherControllerHelper(helper);
 
-  EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
-  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type);
+  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[0].type);
 
   TabStripModel* tab_strip_model = browser()->tab_strip_model();
   EXPECT_EQ(0, tab_strip_model->count());
@@ -3671,19 +3642,15 @@
   EXPECT_TRUE(launcher_controller_->IsAppPinned("1"));
   launcher_controller_->PinAppWithID("2");
 
-  EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
-  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type);
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[4].type);
-
-  // Move browser shortcut item from index 1 to index 3.
-  model_->Move(2, 4);
-  EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
+  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[0].type);
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
   EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[2].type);
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[4].type);
+
+  // Move browser shortcut item from index 0 to index 2.
+  model_->Move(0, 2);
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[0].type);
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type);
 
   RecreateLauncherController();
   helper = new TestLauncherControllerHelper(profile());
@@ -3693,11 +3660,9 @@
   launcher_controller_->Init();
 
   // Check ShelfItems are restored after resetting ChromeLauncherController.
-  EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type);
-  EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type);
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[2].type);
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[4].type);
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[0].type);
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type);
 }
 
 // Verifies pinned apps are persisted and restored.
@@ -3837,7 +3802,7 @@
   // Initial run, ARC is not managed and disabled, Play Store pin should be
   // available.
   ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED,
-                   "Back, AppList, Chrome, Play Store");
+                   "Chrome, Play Store");
 
   // ARC is managed and enabled, Play Store pin should be available.
   // Note: CHECKING_ANDROID_MANAGEMENT here means that opt-in flow is skipped.
@@ -3846,40 +3811,40 @@
   base::RunLoop().RunUntilIdle();
   ValidateArcState(true, true,
                    arc::ArcSessionManager::State::CHECKING_ANDROID_MANAGEMENT,
-                   "Back, AppList, Chrome, Play Store");
+                   "Chrome, Play Store");
 
   // ARC is managed and disabled, Play Store pin should not be available.
   profile()->GetTestingPrefService()->SetManagedPref(
       arc::prefs::kArcEnabled, std::make_unique<base::Value>(false));
   base::RunLoop().RunUntilIdle();
   ValidateArcState(false, true, arc::ArcSessionManager::State::STOPPED,
-                   "Back, AppList, Chrome");
+                   "Chrome");
 
   // ARC is not managed and disabled, Play Store pin should be available.
   profile()->GetTestingPrefService()->RemoveManagedPref(
       arc::prefs::kArcEnabled);
   base::RunLoop().RunUntilIdle();
   ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED,
-                   "Back, AppList, Chrome, Play Store");
+                   "Chrome, Play Store");
 
   // ARC is not managed and enabled, Play Store pin should be available.
   // Note: NEGOTIATING_TERMS_OF_SERVICE here means that opt-in flow starts.
   EnablePlayStore(true);
   ValidateArcState(true, false,
                    arc::ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
-                   "Back, AppList, Chrome, Play Store");
+                   "Chrome, Play Store");
 
   // User disables ARC. ARC is not managed and disabled, Play Store pin should
   // be automatically removed.
   EnablePlayStore(false);
   ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED,
-                   "Back, AppList, Chrome");
+                   "Chrome");
 
   // Even if re-enable it again, Play Store pin does not appear automatically.
   EnablePlayStore(true);
   ValidateArcState(true, false,
                    arc::ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
-                   "Back, AppList, Chrome");
+                   "Chrome");
 }
 
 // Test the application menu of a shelf item with multiple ARC windows.
@@ -4152,7 +4117,7 @@
   InsertAddPinChange(&sync_list, 1, extensionGmailApp_->id());
   SendPinChanges(sync_list, true);
 
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus());
 
   const syncer::StringOrdinal position_chrome =
       app_list_syncable_service_->GetPinPosition(extension_misc::kChromeAppId);
@@ -4169,8 +4134,8 @@
   // Move Chrome between App1 and App2.
   // Note, move target_index is in context when moved element is removed from
   // array first.
-  model_->Move(2, 3);
-  EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus());
+  model_->Move(0, 1);
+  EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus());
 
   // Expect sync positions for only Chrome is updated and its resolution is
   // after all duplicated ordinals.
@@ -4200,7 +4165,7 @@
   InsertAddPinChange(&sync_list, 1, extension2_->id());
   SendPinChanges(sync_list, true);
 
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 
   syncer::SyncDataList copy_sync_list =
       app_list_syncable_service_->GetAllSyncData(syncer::APP_LIST);
@@ -4209,35 +4174,34 @@
   RecreateLauncherController()->Init();
 
   // Pinned state should not change.
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
   launcher_controller_->UnpinAppWithID(extension2_->id());
-  EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1", GetPinnedAppStatus());
 
   // Resume syncing and sync information overrides local copy.
   StartAppSyncService(copy_sync_list);
-  EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus());
 }
 
 // Test the Settings can be pinned and unpinned.
 TEST_F(ChromeLauncherControllerTest, InternalAppPinUnpin) {
   InitLauncherController();
-  // The model should only contain the browser shortcut, app list and back
-  // button items.
-  EXPECT_EQ(3, model_->item_count());
+  // The model should only contain the browser shortcut item.
+  EXPECT_EQ(1, model_->item_count());
 
   const std::string app_id = app_list::kInternalAppIdSettings;
   EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id));
 
   // Pin Settings.
   launcher_controller_->PinAppWithID(app_id);
-  EXPECT_EQ(4, model_->item_count());
-  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type);
-  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status);
+  EXPECT_EQ(2, model_->item_count());
+  EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type);
+  EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status);
   EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id));
 
   // Unpin Settings.
   launcher_controller_->UnpinAppWithID(app_id);
-  EXPECT_EQ(3, model_->item_count());
+  EXPECT_EQ(1, model_->item_count());
   EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id));
 }
 
@@ -4460,22 +4424,22 @@
   syncer::SyncChangeList sync_list;
   InsertAddPinChange(&sync_list, 1, crostini::kCrostiniTerminalId);
   SendPinChanges(sync_list, true);
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Reload after allowing Crostini UI
   crostini::CrostiniTestHelper test_helper(profile());
   // TODO(crubug.com/918739): Fix pins are not refreshed on enabling Crostini.
   // As a workaround add any app that triggers pin update.
   extension_service_->AddExtension(extension1_.get());
-  EXPECT_EQ("Back, AppList, Chrome, Terminal", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Terminal", GetPinnedAppStatus());
 
   // Unpin the Terminal
   launcher_controller_->UnpinAppWithID(crostini::kCrostiniTerminalId);
-  EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome", GetPinnedAppStatus());
 
   // Pin Terminal again.
   launcher_controller_->PinAppWithID(crostini::kCrostiniTerminalId);
-  EXPECT_EQ("Back, AppList, Chrome, Terminal", GetPinnedAppStatus());
+  EXPECT_EQ("Chrome, Terminal", GetPinnedAppStatus());
 }
 
 // TODO(crbug.com/846546) Recognising app id from the browser app_name is only
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller.h b/chrome/browser/ui/autofill/autofill_popup_controller.h
index c7483db..6357f91 100644
--- a/chrome/browser/ui/autofill/autofill_popup_controller.h
+++ b/chrome/browser/ui/autofill/autofill_popup_controller.h
@@ -49,11 +49,6 @@
   // Removes the suggestion at the given index.
   virtual bool RemoveSuggestion(int index) = 0;
 
-  // Returns the background color ID of the row item according to its |index|,
-  // or default popup background otherwise.
-  virtual ui::NativeTheme::ColorId GetBackgroundColorIDForRow(
-      int index) const = 0;
-
   // Change which line is currently selected by the user.
   virtual void SetSelectedLine(base::Optional<int> selected_line) = 0;
 
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
index e26c6b6..a30812c 100644
--- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
+++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
@@ -409,13 +409,6 @@
   return true;
 }
 
-ui::NativeTheme::ColorId
-AutofillPopupControllerImpl::GetBackgroundColorIDForRow(int index) const {
-  return selected_line_ && index == *selected_line_
-             ? ui::NativeTheme::kColorId_ResultsTableHoveredBackground
-             : ui::NativeTheme::kColorId_ResultsTableNormalBackground;
-}
-
 base::Optional<int> AutofillPopupControllerImpl::selected_line() const {
   return selected_line_;
 }
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h
index bbcbabe..e5db4f0 100644
--- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h
+++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h
@@ -20,7 +20,6 @@
 #include "ui/accessibility/ax_enums.mojom.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
-#include "ui/native_theme/native_theme.h"
 
 namespace content {
 struct NativeWebKeyboardEvent;
@@ -109,7 +108,6 @@
                                   base::string16* title,
                                   base::string16* body) override;
   bool RemoveSuggestion(int list_index) override;
-  ui::NativeTheme::ColorId GetBackgroundColorIDForRow(int index) const override;
   void SetSelectedLine(base::Optional<int> selected_line) override;
   base::Optional<int> selected_line() const override;
   const AutofillPopupLayoutModel& layout_model() const override;
diff --git a/chrome/browser/ui/autofill/autofill_popup_layout_model.cc b/chrome/browser/ui/autofill/autofill_popup_layout_model.cc
index e7cebe7..4235e54 100644
--- a/chrome/browser/ui/autofill/autofill_popup_layout_model.cc
+++ b/chrome/browser/ui/autofill/autofill_popup_layout_model.cc
@@ -206,17 +206,6 @@
   return smaller_font_list_;
 }
 
-ui::NativeTheme::ColorId AutofillPopupLayoutModel::GetValueFontColorIDForRow(
-    size_t index) const {
-  std::vector<autofill::Suggestion> suggestions = delegate_->GetSuggestions();
-  switch (suggestions[index].frontend_id) {
-    case POPUP_ITEM_ID_INSECURE_CONTEXT_PAYMENT_DISABLED_MESSAGE:
-      return ui::NativeTheme::kColorId_ResultsTableDimmedText;
-    default:
-      return ui::NativeTheme::kColorId_ResultsTableNormalText;
-  }
-}
-
 gfx::ImageSkia AutofillPopupLayoutModel::GetIconImage(size_t index) const {
   std::vector<autofill::Suggestion> suggestions = delegate_->GetSuggestions();
   if (!suggestions[index].custom_icon.IsEmpty())
@@ -331,7 +320,7 @@
   view_common_ = std::move(view_common);
 }
 
-const gfx::Rect AutofillPopupLayoutModel::RoundedElementBounds() const {
+gfx::Rect AutofillPopupLayoutModel::RoundedElementBounds() const {
   return gfx::ToEnclosingRect(delegate_->element_bounds());
 }
 
diff --git a/chrome/browser/ui/autofill/autofill_popup_layout_model.h b/chrome/browser/ui/autofill/autofill_popup_layout_model.h
index aef122de..da21fa1 100644
--- a/chrome/browser/ui/autofill/autofill_popup_layout_model.h
+++ b/chrome/browser/ui/autofill/autofill_popup_layout_model.h
@@ -13,8 +13,6 @@
 #include "chrome/browser/ui/autofill/popup_view_common.h"
 #include "ui/gfx/font_list.h"
 #include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/native_widget_types.h"
-#include "ui/native_theme/native_theme.h"
 
 namespace gfx {
 class ImageSkia;
@@ -71,9 +69,6 @@
   const gfx::FontList& GetValueFontListForRow(size_t index) const;
   const gfx::FontList& GetLabelFontListForRow(size_t index) const;
 
-  // Returns the value font color ID of the row item according to its |index|.
-  ui::NativeTheme::ColorId GetValueFontColorIDForRow(size_t index) const;
-
   // Returns the icon image of the item at |index| in the popup.
   gfx::ImageSkia GetIconImage(size_t index) const;
 #endif
@@ -105,7 +100,7 @@
 
  private:
   // Returns the enclosing rectangle for the element_bounds.
-  const gfx::Rect RoundedElementBounds() const;
+  gfx::Rect RoundedElementBounds() const;
 
 #if !defined(OS_ANDROID)
   // The fonts for the popup text.
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.cc b/chrome/browser/ui/bookmarks/bookmark_stats.cc
index aca328d..ffa936f4 100644
--- a/chrome/browser/ui/bookmarks/bookmark_stats.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_stats.cc
@@ -12,21 +12,6 @@
 
 namespace {
 
-void RecordNodeDepth(const BookmarkNode* node) {
-  if (!node)
-    return;
-
-  // In the cases where a bookmark node is provided, record the depth of the
-  // bookmark in the tree.
-  int depth = 0;
-  for (const BookmarkNode* iter = node; iter != NULL; iter = iter->parent()) {
-    depth++;
-  }
-  // Record |depth - 2| to offset the invisible root node and permanent nodes
-  // (Bookmark Bar, Mobile Bookmarks or Other Bookmarks)
-  UMA_HISTOGRAM_COUNTS_1M("Bookmarks.LaunchDepth", depth - 2);
-}
-
 bool IsBookmarkBarLocation(BookmarkLaunchLocation location) {
   return location == BOOKMARK_LAUNCH_LOCATION_DETACHED_BAR ||
          location == BOOKMARK_LAUNCH_LOCATION_ATTACHED_BAR ||
@@ -35,8 +20,7 @@
 
 }  // namespace
 
-void RecordBookmarkLaunch(const BookmarkNode* node,
-                          BookmarkLaunchLocation location,
+void RecordBookmarkLaunch(BookmarkLaunchLocation location,
                           profile_metrics::BrowserProfileType profile_type) {
   if (IsBookmarkBarLocation(location)) {
     base::RecordAction(base::UserMetricsAction("ClickedBookmarkBarURLButton"));
@@ -51,16 +35,13 @@
                             BOOKMARK_LAUNCH_LOCATION_LIMIT);
 
   UMA_HISTOGRAM_ENUMERATION("Bookmarks.UsageCountPerProfileType", profile_type);
-  RecordNodeDepth(node);
 }
 
-void RecordBookmarkFolderLaunch(const BookmarkNode* node,
-                                BookmarkLaunchLocation location) {
-  if (IsBookmarkBarLocation(location))
+void RecordBookmarkFolderLaunch(BookmarkLaunchLocation location) {
+  if (IsBookmarkBarLocation(location)) {
     base::RecordAction(
         base::UserMetricsAction("MiddleClickedBookmarkBarFolder"));
-
-  RecordNodeDepth(node);
+  }
 }
 
 void RecordBookmarkFolderOpen(BookmarkLaunchLocation location) {
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.h b/chrome/browser/ui/bookmarks/bookmark_stats.h
index 32717631..e5c495b2 100644
--- a/chrome/browser/ui/bookmarks/bookmark_stats.h
+++ b/chrome/browser/ui/bookmarks/bookmark_stats.h
@@ -7,10 +7,6 @@
 
 #include "components/profile_metrics/browser_profile_type.h"
 
-namespace bookmarks {
-class BookmarkNode;
-}
-
 // This enum is used for the Bookmarks.EntryPoint histogram.
 enum BookmarkEntryPoint {
   BOOKMARK_ENTRY_POINT_ACCELERATOR,
@@ -46,14 +42,12 @@
 };
 
 // Records the launch of a bookmark for UMA purposes.
-void RecordBookmarkLaunch(const bookmarks::BookmarkNode* node,
-                          BookmarkLaunchLocation location,
+void RecordBookmarkLaunch(BookmarkLaunchLocation location,
                           profile_metrics::BrowserProfileType profile_type);
 
 // Records the user launching all bookmarks in a folder (via middle-click, etc.)
 // for UMA purposes.
-void RecordBookmarkFolderLaunch(const bookmarks::BookmarkNode* node,
-                                BookmarkLaunchLocation location);
+void RecordBookmarkFolderLaunch(BookmarkLaunchLocation location);
 
 // Records the user opening a folder of bookmarks for UMA purposes.
 void RecordBookmarkFolderOpen(BookmarkLaunchLocation location);
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
index e4773b83..784bf153 100644
--- a/chrome/browser/ui/browser_command_controller.cc
+++ b/chrome/browser/ui/browser_command_controller.cc
@@ -612,10 +612,12 @@
       browser_->OpenFile();
       break;
     case IDC_CREATE_SHORTCUT:
+      base::RecordAction(base::UserMetricsAction("CreateShortcut"));
       CreateBookmarkAppFromCurrentWebContents(browser_,
                                               true /* force_shortcut_app */);
       break;
     case IDC_INSTALL_PWA:
+      base::RecordAction(base::UserMetricsAction("InstallWebAppFromMenu"));
       CreateBookmarkAppFromCurrentWebContents(browser_,
                                               false /* force_shortcut_app */);
       break;
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index 9cf30f3..54e9b05 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -1296,7 +1296,7 @@
 }
 
 void CopyURL(Browser* browser) {
-  ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
   scw.WriteText(base::UTF8ToUTF16(browser->tab_strip_model()
                                       ->GetActiveWebContents()
                                       ->GetVisibleURL()
@@ -1332,6 +1332,7 @@
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 void CreateBookmarkAppFromCurrentWebContents(Browser* browser,
                                              bool force_shortcut_app) {
+  // TODO(alancutter): Legacy metric to remove in ~M80.
   base::RecordAction(UserMetricsAction("CreateHostedApp"));
   web_app::CreateWebAppFromCurrentWebContents(browser, force_shortcut_app,
                                               base::DoNothing());
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
index b63787ec..cfa989f 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
@@ -105,7 +105,7 @@
       ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
   browser->OpenURL(params);
   RecordBookmarkLaunch(
-      node, BOOKMARK_LAUNCH_LOCATION_TOP_MENU,
+      BOOKMARK_LAUNCH_LOCATION_TOP_MENU,
       ProfileMetrics::GetBrowserProfileType(bridge_->GetProfile()));
 }
 
diff --git a/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm b/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm
index d2003a3..e99167d 100644
--- a/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm
+++ b/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm
@@ -24,7 +24,7 @@
   if (!bookmark_tab_helper_)
     bookmark_tab_helper_ = BookmarkTabHelper::FromWebContents(contents);
 
-  bookmark_drag_data_.ReadFromClipboard(ui::CLIPBOARD_TYPE_DRAG);
+  bookmark_drag_data_.ReadFromClipboard(ui::ClipboardType::kDrag);
 }
 
 void WebDragBookmarkHandlerMac::OnDragOver() {
diff --git a/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm b/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm
index c28e82a5..b5ac0ed 100644
--- a/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm
@@ -80,8 +80,6 @@
   MOCK_METHOD3(GetRemovalConfirmationText,
                bool(int index, base::string16* title, base::string16* body));
   MOCK_METHOD1(RemoveSuggestion, bool(int index));
-  MOCK_CONST_METHOD1(GetBackgroundColorIDForRow,
-                     ui::NativeTheme::ColorId(int index));
   MOCK_METHOD1(SetSelectedLine, void(base::Optional<int> selected_line));
   MOCK_CONST_METHOD0(selected_line, base::Optional<int>());
   const autofill::AutofillPopupLayoutModel& layout_model() const override {
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
index e9ff6da..72887321 100644
--- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc
+++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -18,6 +18,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind_test_util.h"
+#include "base/test/metrics/user_action_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/values.h"
 #include "build/build_config.h"
@@ -1341,6 +1342,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest, InstallInstallableSite) {
+  base::UserActionTester user_action_tester;
   ASSERT_TRUE(https_server()->Start());
   NavigateToURLAndWait(browser(), GetInstallableAppURL());
 
@@ -1373,9 +1375,13 @@
   EXPECT_EQ(extensions::GetLaunchContainer(
                 extensions::ExtensionPrefs::Get(browser()->profile()), app),
             extensions::LAUNCH_CONTAINER_WINDOW);
+
+  EXPECT_EQ(1, user_action_tester.GetActionCount("InstallWebAppFromMenu"));
+  EXPECT_EQ(0, user_action_tester.GetActionCount("CreateShortcut"));
 }
 
 IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest, CreateShortcutForInstallableSite) {
+  base::UserActionTester user_action_tester;
   ASSERT_TRUE(https_server()->Start());
   NavigateToURLAndWait(browser(), GetInstallableAppURL());
 
@@ -1392,6 +1398,9 @@
   EXPECT_EQ(extensions::GetLaunchContainer(
                 extensions::ExtensionPrefs::Get(browser()->profile()), app),
             extensions::LAUNCH_CONTAINER_TAB);
+
+  EXPECT_EQ(0, user_action_tester.GetActionCount("InstallWebAppFromMenu"));
+  EXPECT_EQ(1, user_action_tester.GetActionCount("CreateShortcut"));
 }
 
 // Tests that the command for OpenActiveTabInPwaWindow is available for secure
@@ -1682,7 +1691,7 @@
 
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   base::string16 result;
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(result, base::UTF8ToUTF16(kExampleURL));
 }
 
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk.cc b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
index 1cc057d..c72e78b 100644
--- a/chrome/browser/ui/libgtkui/native_theme_gtk.cc
+++ b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
@@ -280,27 +280,6 @@
     case ui::NativeTheme::kColorId_TableHeaderSeparator:
       return GetBorderColor("GtkTreeView#treeview.view GtkButton#button");
 
-    // Results Table
-    case ui::NativeTheme::kColorId_ResultsTableNormalBackground:
-      return SkColorFromColorId(
-          ui::NativeTheme::kColorId_TextfieldDefaultBackground);
-    case ui::NativeTheme::kColorId_ResultsTableHoveredBackground:
-      return color_utils::AlphaBlend(
-          SkColorFromColorId(
-              ui::NativeTheme::kColorId_TextfieldDefaultBackground),
-          SkColorFromColorId(
-              ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused),
-          0.5f);
-    case ui::NativeTheme::kColorId_ResultsTableNormalText:
-      return SkColorFromColorId(
-          ui::NativeTheme::kColorId_TextfieldDefaultColor);
-    case ui::NativeTheme::kColorId_ResultsTableDimmedText:
-      return color_utils::AlphaBlend(
-          SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldDefaultColor),
-          SkColorFromColorId(
-              ui::NativeTheme::kColorId_TextfieldDefaultBackground),
-          0.5f);
-
     // Throbber
     // TODO(thomasanderson): Render GtkSpinner directly.
     case ui::NativeTheme::kColorId_ThrobberSpinningColor:
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
index 8aef5e35..f34c87c0 100644
--- a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
@@ -477,7 +477,7 @@
 }
 
 void ChromeOmniboxClient::OnBookmarkLaunched() {
-  RecordBookmarkLaunch(nullptr, BOOKMARK_LAUNCH_LOCATION_OMNIBOX,
+  RecordBookmarkLaunch(BOOKMARK_LAUNCH_LOCATION_OMNIBOX,
                        ProfileMetrics::GetBrowserProfileType(profile_));
 }
 
diff --git a/chrome/browser/ui/omnibox/clipboard_utils.cc b/chrome/browser/ui/omnibox/clipboard_utils.cc
index 46282d2..05ac90a 100644
--- a/chrome/browser/ui/omnibox/clipboard_utils.cc
+++ b/chrome/browser/ui/omnibox/clipboard_utils.cc
@@ -15,9 +15,9 @@
   // Try text format.
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   if (clipboard->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextWType(),
-                                   ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                                   ui::ClipboardType::kCopyPaste)) {
     base::string16 text;
-    clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
+    clipboard->ReadText(ui::ClipboardType::kCopyPaste, &text);
     text = text.substr(0, kMaxClipboardTextLength);
     return OmniboxView::SanitizeTextForPaste(text);
   }
@@ -30,7 +30,7 @@
   // cannonicalized, which is not what the user expects.  By pasting in this
   // order, we are sure to paste what the user copied.
   if (clipboard->IsFormatAvailable(ui::ClipboardFormatType::GetUrlWType(),
-                                   ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                                   ui::ClipboardType::kCopyPaste)) {
     std::string url_str;
     clipboard->ReadBookmark(nullptr, &url_str);
     // pass resulting url string through GURL to normalize
diff --git a/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc b/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc
index da66190..3c61f60 100644
--- a/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc
+++ b/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc
@@ -50,7 +50,7 @@
 
   // Can we pull straight text off the clipboard?
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(kPlainText);
   }
   EXPECT_EQ(kPlainText, GetClipboardText());
@@ -59,13 +59,13 @@
   const base::string16 kSpace6(ASCIIToUTF16("      "));
   const base::string16 kSpace1(ASCIIToUTF16(" "));
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(kSpace6);
   }
   EXPECT_EQ(kSpace1, GetClipboardText());
 
   // Does an empty clipboard get empty text?
-  clipboard->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  clipboard->Clear(ui::ClipboardType::kCopyPaste);
   EXPECT_EQ(base::string16(), GetClipboardText());
 
 // Bookmark clipboard apparently not supported on Linux.
@@ -74,14 +74,14 @@
   const base::string16 kTitle(ASCIIToUTF16("The Example Company"));
   // Can we pull a bookmark off the clipboard?
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteBookmark(kTitle, kURL);
   }
   EXPECT_EQ(ASCIIToUTF16(kURL), GetClipboardText());
 
   // Do we pull text in preference to a bookmark?
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(kPlainText);
     clipboard_writer.WriteBookmark(kTitle, kURL);
   }
@@ -91,7 +91,7 @@
   // Do we get nothing if there is neither text nor a bookmark?
   {
     const base::string16 kMarkup(ASCIIToUTF16("<strong>Hi!</string>"));
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteHTML(kMarkup, kURL);
   }
   EXPECT_TRUE(GetClipboardText().empty());
@@ -101,7 +101,7 @@
   const base::string16 almost_long_text =
       base::ASCIIToUTF16(std::string(kMaxClipboardTextLength, '.'));
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(almost_long_text);
   }
   EXPECT_EQ(almost_long_text, GetClipboardText());
@@ -109,7 +109,7 @@
   const base::string16 long_text =
       base::ASCIIToUTF16(std::string(kMaxClipboardTextLength + 1, '.'));
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(long_text);
   }
   EXPECT_EQ(almost_long_text, GetClipboardText());
diff --git a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
index 78cb9d6..f82a7a8 100644
--- a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
+++ b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
@@ -139,7 +139,7 @@
 
 // Stores the given text to clipboard.
 void SetClipboardText(const base::string16& text) {
-  ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
   writer.WriteText(text);
 }
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index fa7dd96..4849814 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -1340,7 +1340,7 @@
                 (event->flags() & ui::EF_PLATFORM_ACCELERATOR))) {
     WindowOpenDisposition disposition_from_event_flags =
         ui::DispositionFromEventFlags(event->flags());
-    RecordBookmarkFolderLaunch(node, GetBookmarkLaunchLocation());
+    RecordBookmarkFolderLaunch(GetBookmarkLaunchLocation());
     chrome::OpenAll(GetWidget()->GetNativeWindow(), page_navigator_, node,
                     disposition_from_event_flags, browser_->profile());
   } else {
@@ -1380,7 +1380,7 @@
                        ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
   page_navigator_->OpenURL(params);
   RecordBookmarkLaunch(
-      node, GetBookmarkLaunchLocation(),
+      GetBookmarkLaunchLocation(),
       ProfileMetrics::GetBrowserProfileType(browser_->profile()));
 }
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
index a6a017d..19b4e85 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
@@ -179,11 +179,9 @@
 void BookmarkMenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
   DCHECK(menu_id_to_node_map_.find(id) != menu_id_to_node_map_.end());
 
-  const BookmarkNode* node = menu_id_to_node_map_[id];
-  std::vector<const BookmarkNode*> selection;
-  selection.push_back(node);
+  std::vector<const BookmarkNode*> selection = {menu_id_to_node_map_[id]};
 
-  RecordBookmarkLaunch(node, location_,
+  RecordBookmarkLaunch(location_,
                        ProfileMetrics::GetBrowserProfileType(profile_));
   chrome::OpenAll(parent_->GetNativeWindow(), page_navigator_, selection,
                   ui::DispositionFromEventFlags(mouse_event_flags),
diff --git a/chrome/browser/ui/views/chrome_typography_provider.cc b/chrome/browser/ui/views/chrome_typography_provider.cc
index 9acbba84..cd04df9 100644
--- a/chrome/browser/ui/views/chrome_typography_provider.cc
+++ b/chrome/browser/ui/views/chrome_typography_provider.cc
@@ -312,11 +312,3 @@
       return default_height;
   }
 }
-
-int ChromeTypographyProvider::GetExpectedTextWidth(int context,
-                                                   int style,
-                                                   int length) const {
-  // TODO(etienneb): Do not rely on font.GetExpectedTextWidth(...) to retrieve
-  // the expected text width.
-  return GetFont(context, style).GetExpectedTextWidth(length);
-}
diff --git a/chrome/browser/ui/views/chrome_typography_provider.h b/chrome/browser/ui/views/chrome_typography_provider.h
index 9201235..a307661 100644
--- a/chrome/browser/ui/views/chrome_typography_provider.h
+++ b/chrome/browser/ui/views/chrome_typography_provider.h
@@ -20,7 +20,6 @@
                    int context,
                    int style) const override;
   int GetLineHeight(int context, int style) const override;
-  int GetExpectedTextWidth(int context, int style, int length) const override;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(ChromeTypographyProvider);
diff --git a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
index 960c011..8e521fed 100644
--- a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
+++ b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
@@ -530,7 +530,7 @@
       browser(), ui::VKEY_C, true, false, false, false));
 
   base::string16 str;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &str);
 
   // Make sure the text is copied successfully.
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
index c78f8cd..0d058a7 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -143,9 +143,7 @@
     // preferred size is at least as wide as the minimum size, and the
     // minimum height of the control should be the preferred height.
     constexpr int kMinCharacters = 20;
-    return views::style::GetExpectedTextWidth(
-        title_label_->text_context(), views::style::TextStyle::STYLE_PRIMARY,
-        kMinCharacters);
+    return title_label_->font_list().GetExpectedTextWidth(kMinCharacters);
   }
 
   // views::View:
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index bb913a9..39d6d6e 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -1259,10 +1259,10 @@
 
 void LocationBarView::OnLocationIconPressed(const ui::MouseEvent& event) {
   if (event.IsOnlyMiddleMouseButton() &&
-      ui::Clipboard::IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) {
+      ui::Clipboard::IsSupportedClipboardType(ui::ClipboardType::kSelection)) {
     base::string16 text;
-    ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_SELECTION,
-                                                   &text);
+    ui::Clipboard::GetForCurrentThread()->ReadText(
+        ui::ClipboardType::kSelection, &text);
     text = OmniboxView::SanitizeTextForPaste(text);
 
     if (!GetOmniboxView()->model()->CanPasteAndGo(text)) {
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.cc b/chrome/browser/ui/views/location_bar/location_icon_view.cc
index e47ef3c..713a40a 100644
--- a/chrome/browser/ui/views/location_bar/location_icon_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_icon_view.cc
@@ -269,10 +269,8 @@
 gfx::Size LocationIconView::GetMinimumSizeForPreferredSize(
     gfx::Size size) const {
   const int kMinCharacters = 10;
-  const int expected_text_width = views::style::GetExpectedTextWidth(
-      label()->text_context(), views::style::TextStyle::STYLE_PRIMARY,
-      kMinCharacters);
-  size.SetToMin(GetSizeForLabelWidth(expected_text_width));
+  size.SetToMin(
+      GetSizeForLabelWidth(font_list().GetExpectedTextWidth(kMinCharacters)));
   return size;
 }
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
index 0239d1a..d27fded 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -23,7 +23,6 @@
 #include "chrome/browser/ui/omnibox/omnibox_theme.h"
 #include "chrome/browser/ui/view_ids.h"
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/browser/ui/views/chrome_typography.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
 #include "chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.h"
@@ -445,10 +444,9 @@
 
 gfx::Size OmniboxViewViews::GetMinimumSize() const {
   const int kMinCharacters = 20;
-  const int expected_text_width = views::style::GetExpectedTextWidth(
-      CONTEXT_OMNIBOX_PRIMARY, views::style::STYLE_PRIMARY, kMinCharacters);
-  return gfx::Size(expected_text_width + GetInsets().width(),
-                   GetPreferredSize().height());
+  return gfx::Size(
+      GetFontList().GetExpectedTextWidth(kMinCharacters) + GetInsets().width(),
+      GetPreferredSize().height());
 }
 
 void OmniboxViewViews::OnPaint(gfx::Canvas* canvas) {
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
index 5958373..033b5ed 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -137,7 +137,7 @@
   OmniboxViewViews* omnibox_view_views = static_cast<OmniboxViewViews*>(view);
 
   // Put an URL on the clipboard.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "http://www.example.com/");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "http://www.example.com/");
 
   // Paste and go.
   omnibox_view_views->ExecuteCommand(IDC_PASTE_AND_GO, ui::EF_NONE);
@@ -251,7 +251,7 @@
 
   // Middle click focuses the omnibox, pastes, and sets a trailing cursor.
   // Select-all on focus shouldn't alter the selection clipboard or cursor.
-  SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "123");
+  SetClipboardText(ui::ClipboardType::kSelection, "123");
   ASSERT_NO_FATAL_FAILURE(Click(ui_controls::MIDDLE,
                                 click_location, click_location));
   EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
@@ -265,7 +265,7 @@
                        cursor_x + render_text->display_rect().x());
 
   // Middle clicking again, with focus, pastes and updates the cursor.
-  SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "4567");
+  SetClipboardText(ui::ClipboardType::kSelection, "4567");
   ASSERT_NO_FATAL_FAILURE(Click(ui_controls::MIDDLE,
                                 click_location, click_location));
   EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
@@ -336,7 +336,7 @@
   views::TextfieldTestApi textfield_test_api(omnibox_view_views);
 
   // Put a URL on the clipboard.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "http://www.example.com/");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "http://www.example.com/");
 
   // Tap to activate touch editing.
   gfx::Point omnibox_center =
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
index 724a180..1f3f0b9 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -562,7 +562,7 @@
 
 TEST_F(OmniboxViewViewsTest, PasteAndGoToUrlOrSearchCommand) {
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
-  ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE;
+  ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste;
   command_updater()->UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, true);
 
   // Test command is disabled for an empty clipboard.
@@ -619,7 +619,7 @@
   ASSERT_TRUE(omnibox_view()->IsSelectAll());
 
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
-  ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE;
+  ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste;
 
   clipboard->Clear(clipboard_type);
   ui::TextEditCommand clipboard_command = GetParam();
@@ -655,7 +655,7 @@
   ASSERT_TRUE(omnibox_view()->IsSelectAll());
 
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
-  ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE;
+  ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste;
 
   clipboard->Clear(clipboard_type);
   ui::TextEditCommand clipboard_command = GetParam();
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.cc b/chrome/browser/ui/views/payments/payment_request_row_view.cc
index d25d087..78e3dcf 100644
--- a/chrome/browser/ui/views/payments/payment_request_row_view.cc
+++ b/chrome/browser/ui/views/payments/payment_request_row_view.cc
@@ -28,9 +28,9 @@
 PaymentRequestRowView::~PaymentRequestRowView() {}
 
 void PaymentRequestRowView::SetActiveBackground() {
-  ui::NativeTheme* theme = GetWidget()->GetNativeTheme();
-  SetBackground(views::CreateSolidBackground(theme->GetSystemColor(
-      ui::NativeTheme::kColorId_ResultsTableHoveredBackground)));
+  // TODO(crbug/976890): Check whether we can GetSystemColor from a NativeTheme
+  // ColorId instead of hard code here.
+  SetBackground(views::CreateSolidBackground(SkColorSetA(SK_ColorBLACK, 0x0D)));
 }
 
 void PaymentRequestRowView::ShowBottomSeparator() {
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 6d82690..69f270b 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -211,28 +211,37 @@
 
 }  // namespace
 
-// EscapeTracker installs an event monitor and runs a callback when it receives
-// the escape key.
-class EscapeTracker : public ui::EventObserver {
+// KeyEventTracker installs an event monitor and runs a callback to end the drag
+// when it receives any key event.
+class KeyEventTracker : public ui::EventObserver {
  public:
-  EscapeTracker(base::OnceClosure callback, gfx::NativeWindow context)
-      : escape_callback_(std::move(callback)) {
+  KeyEventTracker(base::OnceClosure end_drag_callback,
+                  base::OnceClosure revert_drag_callback,
+                  gfx::NativeWindow context)
+      : end_drag_callback_(std::move(end_drag_callback)),
+        revert_drag_callback_(std::move(revert_drag_callback)) {
     event_monitor_ = views::EventMonitor::CreateApplicationMonitor(
         this, context, {ui::ET_KEY_PRESSED});
   }
-  ~EscapeTracker() override = default;
+  ~KeyEventTracker() override = default;
 
  private:
   // ui::EventObserver:
   void OnEvent(const ui::Event& event) override {
-    if (event.AsKeyEvent()->key_code() == ui::VKEY_ESCAPE && escape_callback_)
-      std::move(escape_callback_).Run();
+    if (event.AsKeyEvent()->key_code() == ui::VKEY_ESCAPE &&
+        revert_drag_callback_) {
+      std::move(revert_drag_callback_).Run();
+    } else if (event.AsKeyEvent()->key_code() != ui::VKEY_ESCAPE &&
+               end_drag_callback_) {
+      std::move(end_drag_callback_).Run();
+    }
   }
 
-  base::OnceClosure escape_callback_;
+  base::OnceClosure end_drag_callback_;
+  base::OnceClosure revert_drag_callback_;
   std::unique_ptr<views::EventMonitor> event_monitor_;
 
-  DISALLOW_COPY_AND_ASSIGN(EscapeTracker);
+  DISALLOW_COPY_AND_ASSIGN(KeyEventTracker);
 };
 
 class TabDragController::SourceTabStripEmptinessTracker
@@ -467,15 +476,17 @@
       std::find(tabs.begin(), tabs.end(), source_tab) - tabs.begin();
 
   // Listen for Esc key presses.
-  escape_tracker_ = std::make_unique<EscapeTracker>(
-      base::BindOnce(&TabDragController::EndDrag, weak_factory_.GetWeakPtr(),
+  key_event_tracker_ = std::make_unique<KeyEventTracker>(
+      base::BindOnce(&TabDragController::EndDrag, base::Unretained(this),
+                     END_DRAG_COMPLETE),
+      base::BindOnce(&TabDragController::EndDrag, base::Unretained(this),
                      END_DRAG_CANCEL),
       source_context_->AsView()->GetWidget()->GetNativeWindow());
 
   if (source_tab->width() > 0) {
-    offset_to_width_ratio_ = static_cast<float>(
-        source_tab->GetMirroredXInView(source_tab_offset)) /
-        static_cast<float>(source_tab->width());
+    offset_to_width_ratio_ =
+        float{source_tab->GetMirroredXInView(source_tab_offset)} /
+        float{source_tab->width()};
   }
   InitWindowCreatePoint();
   initial_selection_model_ = std::move(initial_selection_model);
@@ -543,7 +554,7 @@
     }
     current_state_ = DragState::kDraggingTabs;
     Attach(source_context_, gfx::Point());
-    if (static_cast<int>(drag_data_.size()) ==
+    if (int{drag_data_.size()} ==
         source_context_->GetTabStripModel()->count()) {
       views::Widget* widget = GetAttachedBrowserWidget();
       gfx::Rect new_bounds;
@@ -751,8 +762,8 @@
   static const int kMinimumDragDistance = 10;
   int x_offset = abs(point_in_screen.x() - start_point_in_screen_.x());
   int y_offset = abs(point_in_screen.y() - start_point_in_screen_.y());
-  return sqrt(pow(static_cast<float>(x_offset), 2) +
-              pow(static_cast<float>(y_offset), 2)) > kMinimumDragDistance;
+  return sqrt(pow(float{x_offset}, 2) + pow(float{y_offset}, 2)) >
+         kMinimumDragDistance;
 }
 
 TabDragController::Liveness TabDragController::ContinueDragging(
@@ -906,8 +917,7 @@
 
 void TabDragController::DragActiveTabStacked(
     const gfx::Point& point_in_screen) {
-  if (attached_context_->GetTabCount() !=
-      static_cast<int>(initial_tab_positions_.size()))
+  if (attached_context_->GetTabCount() != int{initial_tab_positions_.size()})
     return;  // TODO: should cancel drag if this happens.
 
   int delta = point_in_screen.x() - start_point_in_screen_.x();
@@ -957,7 +967,7 @@
     TabStripModel* attached_model = attached_context_->GetTabStripModel();
     int to_index = attached_context_->GetInsertionIndexForDraggedBounds(
         GetDraggedViewTabStripBounds(dragged_view_point), false,
-        static_cast<int>(drag_data_.size()), mouse_has_ever_moved_left_,
+        int{drag_data_.size()}, mouse_has_ever_moved_left_,
         mouse_has_ever_moved_right_);
     bool do_move = true;
     // While dragging within a tabstrip the expectation is the insertion index
@@ -1178,7 +1188,7 @@
     tab_strip_point.Offset(0, -mouse_offset_.y());
     int index = attached_context_->GetInsertionIndexForDraggedBounds(
         GetDraggedViewTabStripBounds(tab_strip_point), true,
-        static_cast<int>(drag_data_.size()), mouse_has_ever_moved_left_,
+        int{drag_data_.size()}, mouse_has_ever_moved_left_,
         mouse_has_ever_moved_right_);
     attach_index_ = index;
     attach_x_ = tab_strip_point.x();
@@ -1297,7 +1307,7 @@
 void TabDragController::DetachIntoNewBrowserAndRunMoveLoop(
     const gfx::Point& point_in_screen) {
   if (attached_context_->GetTabStripModel()->count() ==
-      static_cast<int>(drag_data_.size())) {
+      int{drag_data_.size()}) {
     // All the tabs in a browser are being dragged but all the tabs weren't
     // initially being dragged. For this to happen the user would have to
     // start dragging a set of tabs, the other tabs close, then detach.
@@ -1920,12 +1930,12 @@
   // If the new tabstrip is smaller than the old resize the tabs.
   if (dragged_context_width < tab_area_width) {
     const float leading_ratio =
-        drag_bounds->front().x() / static_cast<float>(tab_area_width);
+        drag_bounds->front().x() / float{tab_area_width};
     *drag_bounds = CalculateBoundsForDraggedTabs();
 
     if (drag_bounds->back().right() < dragged_context_width) {
       const int delta_x = std::min(
-          static_cast<int>(leading_ratio * dragged_context_width),
+          int{(leading_ratio * dragged_context_width)},
           dragged_context_width -
               (drag_bounds->back().right() - drag_bounds->front().x()));
       OffsetX(delta_x, drag_bounds);
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h
index 653d681..960cca9f 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.h
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -29,7 +29,7 @@
 class ViewTracker;
 }
 class Browser;
-class EscapeTracker;
+class KeyEventTracker;
 class Tab;
 class TabDragControllerTest;
 class TabDragContext;
@@ -634,7 +634,7 @@
   int attach_x_;
   int attach_index_;
 
-  std::unique_ptr<EscapeTracker> escape_tracker_;
+  std::unique_ptr<KeyEventTracker> key_event_tracker_;
 
   std::unique_ptr<SourceTabStripEmptinessTracker>
       source_context_emptiness_tracker_;
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
index d8de5239..f62b556 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -607,12 +607,6 @@
 
 // Creates a browser with two tabs, drags the second to the first.
 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, DragInSameWindow) {
-  // TODO(sky): this won't work with touch as it requires a long press.
-  if (input_source() == INPUT_SOURCE_TOUCH) {
-    VLOG(1) << "Test is DISABLED for touch input.";
-    return;
-  }
-
   AddTabAndResetBrowser(browser());
 
   TabStrip* tab_strip = GetTabStripForBrowser(browser());
@@ -634,6 +628,25 @@
   EXPECT_FALSE(tab_strip->GetWidget()->HasCapture());
 }
 
+// Drags a tab within the window (without dragging the whole window) then
+// pressing a key ends the drag.
+IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
+                       KeyPressShouldEndDragTest) {
+  AddTabAndResetBrowser(browser());
+  TabStrip* tab_strip = GetTabStripForBrowser(browser());
+
+  ASSERT_TRUE(PressInput(GetCenterInScreenCoordinates(tab_strip->tab_at(1))));
+  ASSERT_TRUE(DragInputTo(GetCenterInScreenCoordinates(tab_strip->tab_at(0))));
+
+  ASSERT_TRUE(TabDragController::IsActive());
+
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_TAB, false,
+                                              false, false, false));
+  EXPECT_EQ("1 0", IDString(browser()->tab_strip_model()));
+  EXPECT_FALSE(TabDragController::IsActive());
+  EXPECT_FALSE(tab_strip->GetDragContext()->IsDragSessionActive());
+}
+
 #if defined(USE_AURA)
 bool SubtreeShouldBeExplored(aura::Window* window,
                              const gfx::Point& local_point) {
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
index ed0456e..528215f 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -2897,11 +2897,11 @@
       const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
       if (mouse.IsOnlyMiddleMouseButton()) {
         if (ui::Clipboard::IsSupportedClipboardType(
-                ui::CLIPBOARD_TYPE_SELECTION)) {
+                ui::ClipboardType::kSelection)) {
           ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
           CHECK(clipboard);
           base::string16 clipboard_text;
-          clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &clipboard_text);
+          clipboard->ReadText(ui::ClipboardType::kSelection, &clipboard_text);
           if (!clipboard_text.empty())
             controller_->CreateNewTabWithLocation(clipboard_text);
         }
diff --git a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc
index 88cfbeb..a4cca05 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc
@@ -70,6 +70,13 @@
   PreferredSizeChanged();
 }
 
+gfx::Insets ToolbarIconContainerView::GetInsets() const {
+  // Use empty insets to have the border paint into the view instead of around
+  // it. This prevents inadvertently increasing its size while the stroke is
+  // drawn.
+  return gfx::Insets();
+}
+
 void ToolbarIconContainerView::UpdateHighlight(bool highlighted) {
   if (!uses_highlight_)
     return;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h
index cb9a8b0..5895333 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h
@@ -42,6 +42,7 @@
   // views::View:
   void ChildPreferredSizeChanged(views::View* child) override;
   void ChildVisibilityChanged(views::View* child) override;
+  gfx::Insets GetInsets() const override;
 
   void UpdateHighlight(bool highlighted);
 
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
index 9f088cc..f045c47 100644
--- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
@@ -89,6 +89,7 @@
 #include "chrome/grit/component_extension_resources.h"
 #include "chromeos/constants/chromeos_switches.h"
 #include "chromeos/services/multidevice_setup/public/mojom/constants.mojom.h"
+#include "chromeos/services/network_config/public/mojom/constants.mojom.h"
 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/browser_context.h"
@@ -481,6 +482,14 @@
       multidevice_setup::mojom::kServiceName, std::move(request));
 }
 
+void OobeUI::BindCrosNetworkConfig(
+    chromeos::network_config::mojom::CrosNetworkConfigRequest request) {
+  content::BrowserContext::GetConnectorFor(
+      web_ui()->GetWebContents()->GetBrowserContext())
+      ->BindInterface(chromeos::network_config::mojom::kServiceName,
+                      std::move(request));
+}
+
 OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url)
     : ui::MojoWebUIController(web_ui, true /* enable_chrome_send */) {
   display_type_ = GetDisplayType(url);
@@ -522,6 +531,8 @@
                                            base::Unretained(this)));
   AddHandlerToRegistry(base::BindRepeating(
       &OobeUI::BindPrivilegedHostDeviceSetter, base::Unretained(this)));
+  AddHandlerToRegistry(base::BindRepeating(&OobeUI::BindCrosNetworkConfig,
+                                           base::Unretained(this)));
 }
 
 OobeUI::~OobeUI() {
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
index 6361eae..84dc0d2 100644
--- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
+++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
@@ -18,6 +18,7 @@
 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
 #include "chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h"
 #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
+#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"  // nogncheck
 #include "ui/webui/mojo_web_ui_controller.h"
 
 namespace base {
@@ -161,6 +162,8 @@
       multidevice_setup::mojom::MultiDeviceSetupRequest request);
   void BindPrivilegedHostDeviceSetter(
       multidevice_setup::mojom::PrivilegedHostDeviceSetterRequest request);
+  void BindCrosNetworkConfig(
+      chromeos::network_config::mojom::CrosNetworkConfigRequest request);
 
   // Type of UI.
   std::string display_type_;
diff --git a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
index a5bc16e..f0dcc383 100644
--- a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
@@ -224,6 +224,16 @@
        IDS_SETTINGS_INTERNET_NETWORK_SIM_RE_ENTER_NEW_PIN},
       {"networkSimReEnterNewPin",
        IDS_SETTINGS_INTERNET_NETWORK_SIM_RE_ENTER_NEW_PIN},
+      {"networkSimErrorIncorrectPin",
+       IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PIN},
+      {"networkSimErrorIncorrectPuk",
+       IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PUK},
+      {"networkSimErrorInvalidPin",
+       IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PIN},
+      {"networkSimErrorInvalidPuk",
+       IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PUK},
+      {"networkSimErrorPinMismatch",
+       IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_PIN_MISMATCH},
       {"networkSimUnlock", IDS_SETTINGS_INTERNET_NETWORK_SIM_BUTTON_UNLOCK},
       {"networkAccessPoint", IDS_SETTINGS_INTERNET_NETWORK_ACCESS_POINT},
       {"networkChooseMobile", IDS_SETTINGS_INTERNET_NETWORK_CHOOSE_MOBILE},
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
index d87c857..320e691 100644
--- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
@@ -20,7 +20,7 @@
 #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
 #include "chromeos/printing/ppd_provider.h"
 #include "chromeos/printing/printer_configuration.h"
-#include "printing/backend/cups_jobs.h"
+#include "printing/printer_query_result_chromeos.h"
 #include "ui/shell_dialogs/select_file_dialog.h"
 
 namespace base {
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index f461491..d5931dbc 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2862,6 +2862,17 @@
   AddLocalizedStringsBulk(html_source, kLocalizedStrings,
                           base::size(kLocalizedStrings));
 
+  html_source->AddString(
+      "proxySettingsExtensionLabel",
+      l10n_util::GetStringFUTF16(
+          IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_EXTENSION_LABEL,
+          l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)));
+  html_source->AddString(
+      "proxySettingsPolicyLabel",
+      l10n_util::GetStringFUTF16(
+          IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_POLICY_LABEL,
+          l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)));
+
   // TODO(dbeam): we should probably rename anything involving "localized
   // strings" to "load time data" as all primitive types are used now.
   SystemHandler::AddLoadTimeData(html_source);
diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc
index 331cf2a..bddbe14 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc
@@ -31,8 +31,8 @@
   ash::ShelfView* shelf_view =
       ash::Shelf::ForWindow(root)->GetShelfViewForTesting();
   const views::ViewModel* view_model = shelf_view->view_model_for_test();
-  EXPECT_EQ(3, view_model->view_size());
-  gfx::Rect bounds = view_model->view_at(2)->GetBoundsInScreen();
+  EXPECT_EQ(1, view_model->view_size());
+  gfx::Rect bounds = view_model->view_at(0)->GetBoundsInScreen();
   return bounds;
 }
 
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
index 1db1b55..1dfdbd0 100644
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -43,8 +43,6 @@
 #include "content/public/common/cdm_info.h"
 #include "content/public/common/content_constants.h"
 #include "content/public/common/content_switches.h"
-#include "content/public/common/service_manager_connection.h"
-#include "content/public/common/simple_connection_filter.h"
 #include "content/public/common/url_constants.h"
 #include "extensions/buildflags/buildflags.h"
 #include "extensions/common/constants.h"
@@ -54,6 +52,7 @@
 #include "media/base/media_switches.h"
 #include "media/base/video_codecs.h"
 #include "media/media_buildflags.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "net/http/http_util.h"
 #include "pdf/buildflags.h"
 #include "ppapi/buildflags/buildflags.h"
@@ -736,14 +735,13 @@
 }
 #endif  // OS_ANDROID
 
-void ChromeContentClient::OnServiceManagerConnected(
-    content::ServiceManagerConnection* connection) {
+void ChromeContentClient::BindChildProcessInterface(
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle* receiving_handle) {
   static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client;
-
-  auto registry = std::make_unique<service_manager::BinderRegistry>();
-  registry->AddInterface(
-      base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface,
-                          base::Unretained(profiling_client.get())));
-  connection->AddConnectionFilter(
-      std::make_unique<content::SimpleConnectionFilter>(std::move(registry)));
+  if (interface_name == heap_profiling::ProfilingClient::Name_) {
+    profiling_client->BindToInterface(
+        mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>(
+            std::move(*receiving_handle)));
+  }
 }
diff --git a/chrome/common/chrome_content_client.h b/chrome/common/chrome_content_client.h
index 6f800f3..54a950d1 100644
--- a/chrome/common/chrome_content_client.h
+++ b/chrome/common/chrome_content_client.h
@@ -106,9 +106,9 @@
   media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override;
 #endif  // OS_ANDROID
 
-  // This method isn't called by utility processes.
-  void OnServiceManagerConnected(
-      content::ServiceManagerConnection* connection) override;
+  void BindChildProcessInterface(
+      const std::string& interface_name,
+      mojo::ScopedMessagePipeHandle* receiving_handle) override;
 
  private:
   // Used to lock when |origin_trial_policy_| is initialized.
diff --git a/chrome/test/data/webui/cr_elements/cr_button_tests.js b/chrome/test/data/webui/cr_elements/cr_button_tests.js
index 4a18f84..df9f36f8 100644
--- a/chrome/test/data/webui/cr_elements/cr_button_tests.js
+++ b/chrome/test/data/webui/cr_elements/cr_button_tests.js
@@ -77,4 +77,10 @@
     assertFalse(button.hasAttribute('hidden'));
     assertNotEquals('none', getComputedStyle(button).display);
   });
+
+  test('tap event is emitted on click', async () => {
+    const wait = test_util.eventToPromise('tap', button);
+    button.click();
+    await wait;
+  });
 });
diff --git a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js
index a5b25dab6..b153ad4 100644
--- a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js
+++ b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js
@@ -488,6 +488,7 @@
 
   /** @override */
   extraLibraries: CrElementsBrowserTest.prototype.extraLibraries.concat([
+    '../settings/test_util.js',
     'cr_button_tests.js',
   ]),
 };
diff --git a/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js b/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js
index 3617108..0bcf1dd2 100644
--- a/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js
+++ b/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js
@@ -145,4 +145,16 @@
     dropDown.showLoading = false;
     assertTrue(progress.hidden);
   });
+
+
+  // The readonly attribute is passed through to the inner cr-input.
+  test('readonly attribute', function() {
+    const input = dropDown.shadowRoot.querySelector('cr-input');
+
+    dropDown.readonly = true;
+    assertTrue(input.readonly);
+
+    dropDown.readonly = false;
+    assertFalse(input.readonly);
+  });
 });
diff --git a/chrome/test/data/webui/media_router/issue_banner_tests.js b/chrome/test/data/webui/media_router/issue_banner_tests.js
index e720e03..7e2c048 100644
--- a/chrome/test/data/webui/media_router/issue_banner_tests.js
+++ b/chrome/test/data/webui/media_router/issue_banner_tests.js
@@ -84,8 +84,7 @@
       // Checks whether parts of the UI is visible.
       var checkButtonVisibility = function(optAction) {
         assertEquals(
-            !optAction,
-            banner.$['buttons'].querySelector('paper-button').hidden);
+            !optAction, banner.$['buttons'].querySelector('cr-button').hidden);
       };
 
       // Import issue_banner.html before running suite.
diff --git a/chrome/test/data/webui/media_router/route_details_tests.js b/chrome/test/data/webui/media_router/route_details_tests.js
index 4652bb2..14d8079 100644
--- a/chrome/test/data/webui/media_router/route_details_tests.js
+++ b/chrome/test/data/webui/media_router/route_details_tests.js
@@ -174,10 +174,10 @@
       test('initial text setting', function() {
         // <paper-button> text is styled as upper case.
         checkSpanText(
-            loadTimeData.getString('stopCastingButtonText').toUpperCase(),
+            loadTimeData.getString('stopCastingButtonText'),
             'close-route-button');
         checkSpanText(
-            loadTimeData.getString('startCastingButtonText').toUpperCase(),
+            loadTimeData.getString('startCastingButtonText'),
             'start-casting-to-route-button');
         checkElementText('', 'route-description');
       });
diff --git a/chrome/test/data/webui/print_preview/native_layer_stub.js b/chrome/test/data/webui/print_preview/native_layer_stub.js
index 666f28f..b1abb4d 100644
--- a/chrome/test/data/webui/print_preview/native_layer_stub.js
+++ b/chrome/test/data/webui/print_preview/native_layer_stub.js
@@ -67,6 +67,9 @@
 
       /** @private {number} The number of total pages in the document. */
       this.pageCount_ = 1;
+
+      /** @private {?print_preview.PageLayoutInfo} Page layout information */
+      this.pageLayoutInfo_ = null;
     }
 
     /** @param {number} pageCount The number of pages in the document. */
@@ -110,6 +113,10 @@
       }
       const pageRanges = printTicketParsed.pageRange;
       const requestId = printTicketParsed.requestID;
+      if (this.pageLayoutInfo_) {
+        cr.webUIListenerCallback(
+            'page-layout-ready', this.pageLayoutInfo_, false);
+      }
       if (pageRanges.length == 0) {  // assume full length document, 1 page.
         cr.webUIListenerCallback(
             'page-count-ready', this.pageCount_, requestId, 100);
@@ -262,6 +269,11 @@
     setInvalidPrinterId(id) {
       this.badPrinterId_ = id;
     }
+
+    /** @param {!print_preview.PageLayoutInfo} pageLayoutInfo */
+    setPageLayoutInfo(pageLayoutInfo) {
+      this.pageLayoutInfo_ = pageLayoutInfo;
+    }
   }
 
   return {
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.js b/chrome/test/data/webui/print_preview/preview_generation_test.js
index 002b09c..81cf450 100644
--- a/chrome/test/data/webui/print_preview/preview_generation_test.js
+++ b/chrome/test/data/webui/print_preview/preview_generation_test.js
@@ -20,6 +20,8 @@
     SelectionOnly: 'selection only',
     Destination: 'destination',
     ChangeMarginsByPagesPerSheet: 'change margins by pages per sheet',
+    ZeroDefaultMarginsClearsHeaderFooter:
+        'zero default margins clears header/footer',
   };
 
   const suiteName = 'PreviewGenerationTest';
@@ -59,6 +61,9 @@
       document.body.appendChild(page);
       const previewArea = page.$.previewArea;
       pluginProxy.setLoadCallback(previewArea.onPluginLoad_.bind(previewArea));
+      const documentInfo = page.$$('print-preview-document-info');
+      documentInfo.documentSettings.pageCount = 3;
+      documentInfo.margins = new print_preview.Margins(10, 10, 10, 10);
 
       return Promise
           .all([
@@ -66,12 +71,9 @@
             nativeLayer.whenCalled('getPrinterCapabilities'),
           ])
           .then(function() {
-            const documentInfo = page.$$('print-preview-document-info');
             if (!documentInfo.documentSettings.isModifiable) {
               documentInfo.documentSettings.fitToPageScaling = 98;
             }
-            documentInfo.documentSettings.pageCount = 3;
-            documentInfo.margins = new print_preview.Margins(10, 10, 10, 10);
             return nativeLayer.whenCalled('getPreview');
           });
     }
@@ -233,26 +235,26 @@
      * margins to print_preview.ticket_items.MarginsTypeValue.DEFAULT.
      */
     test(assert(TestNames.ChangeMarginsByPagesPerSheet), function() {
-      const marginsTypeEnum = print_preview.ticket_items.MarginsTypeValue;
+      const MarginsTypeEnum = print_preview.ticket_items.MarginsTypeValue;
       return initialize()
           .then(function(args) {
             const originalTicket = JSON.parse(args.printTicket);
             assertEquals(0, originalTicket.requestID);
             assertEquals(
-                marginsTypeEnum.DEFAULT, originalTicket['marginsType']);
+                MarginsTypeEnum.DEFAULT, originalTicket['marginsType']);
             assertEquals(
-                marginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
+                MarginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
             assertEquals(1, page.getSettingValue('pagesPerSheet'));
             assertEquals(1, originalTicket['pagesPerSheet']);
             nativeLayer.resetResolver('getPreview');
-            page.setSetting('margins', marginsTypeEnum.MINIMUM);
+            page.setSetting('margins', MarginsTypeEnum.MINIMUM);
             return nativeLayer.whenCalled('getPreview');
           })
           .then(function(args) {
             assertEquals(
-                marginsTypeEnum.MINIMUM, page.getSettingValue('margins'));
+                MarginsTypeEnum.MINIMUM, page.getSettingValue('margins'));
             const ticket = JSON.parse(args.printTicket);
-            assertEquals(marginsTypeEnum.MINIMUM, ticket['marginsType']);
+            assertEquals(MarginsTypeEnum.MINIMUM, ticket['marginsType']);
             nativeLayer.resetResolver('getPreview');
             assertEquals(1, ticket.requestID);
             page.setSetting('pagesPerSheet', 4);
@@ -260,10 +262,10 @@
           })
           .then(function(args) {
             assertEquals(
-                marginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
+                MarginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
             assertEquals(4, page.getSettingValue('pagesPerSheet'));
             const ticket = JSON.parse(args.printTicket);
-            assertEquals(marginsTypeEnum.DEFAULT, ticket['marginsType']);
+            assertEquals(MarginsTypeEnum.DEFAULT, ticket['marginsType']);
             assertEquals(4, ticket['pagesPerSheet']);
             assertEquals(2, ticket.requestID);
           });
@@ -460,6 +462,81 @@
             assertEquals('BarDevice', ticket.deviceName);
           });
     });
+
+    /**
+     * Validate that if the document layout has 0 default margins, the
+     * header/footer setting is set to false.
+     */
+    test(assert(TestNames.ZeroDefaultMarginsClearsHeaderFooter), async () => {
+      /**
+       * @param {Object} ticket The parsed print ticket
+       * @param {number} expectedId The expected ticket request ID
+       * @param {!print_preview.ticket_items.MarginsTypeValue} expectedMargins
+       *     The expected ticket margins type
+       * @param {boolean} expectedHeaderFooter The expected ticket
+       *     header/footer value
+       */
+      const assertMarginsFooter = function(
+          ticket, expectedId, expectedMargins, expectedHeaderFooter) {
+        assertEquals(expectedId, ticket.requestID);
+        assertEquals(expectedMargins, ticket.marginsType);
+        assertEquals(expectedHeaderFooter, ticket.headerFooterEnabled);
+      };
+
+      nativeLayer.setPageLayoutInfo({
+        marginTop: 0,
+        marginLeft: 0,
+        marginBottom: 0,
+        marginRight: 0,
+        contentWidth: 612,
+        contentHeight: 792,
+        printableAreaX: 0,
+        printableAreaY: 0,
+        printableAreaWidth: 612,
+        printableAreaHeight: 792,
+      });
+
+      const MarginsTypeEnum = print_preview.ticket_items.MarginsTypeValue;
+      let previewArgs = await initialize();
+      let ticket = JSON.parse(previewArgs.printTicket);
+
+      // The ticket recorded here is the original, which requests default
+      // margins with headers and footers (Print Preview defaults).
+      assertMarginsFooter(ticket, 0, MarginsTypeEnum.DEFAULT, true);
+
+      // After getting the new layout, a second request should have been
+      // sent.
+      assertEquals(2, nativeLayer.getCallCount('getPreview'));
+      assertEquals(MarginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
+      assertFalse(page.getSettingValue('headerFooter'));
+
+      // Check the last ticket sent by the preview area. It should not
+      // have the same settings as the original (headers and footers
+      // should have been turned off).
+      const previewArea = page.$$('print-preview-preview-area');
+      assertMarginsFooter(
+          previewArea.lastTicket_, 1, MarginsTypeEnum.DEFAULT, false);
+      nativeLayer.resetResolver('getPreview');
+      page.setSetting('margins', MarginsTypeEnum.MINIMUM);
+      previewArgs = await nativeLayer.whenCalled('getPreview');
+
+      // Setting minimum margins allows space for the headers and footers,
+      // so they should be enabled again.
+      ticket = JSON.parse(previewArgs.printTicket);
+      assertMarginsFooter(ticket, 2, MarginsTypeEnum.MINIMUM, true);
+      assertEquals(MarginsTypeEnum.MINIMUM, page.getSettingValue('margins'));
+      assertTrue(page.getSettingValue('headerFooter'));
+      nativeLayer.resetResolver('getPreview');
+      page.setSetting('margins', MarginsTypeEnum.DEFAULT);
+      previewArgs = await nativeLayer.whenCalled('getPreview');
+
+      // With default margins, there is no space for headers/footers, so
+      // they are removed.
+      ticket = JSON.parse(previewArgs.printTicket);
+      assertMarginsFooter(ticket, 3, MarginsTypeEnum.DEFAULT, false);
+      assertEquals(MarginsTypeEnum.DEFAULT, page.getSettingValue('margins'));
+      assertEquals(false, page.getSettingValue('headerFooter'));
+    });
   });
 
   return {
diff --git a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js
index 1c05220..7d6b96b 100644
--- a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js
+++ b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js
@@ -478,6 +478,13 @@
           preview_generation_test.TestNames.ChangeMarginsByPagesPerSheet);
     });
 
+TEST_F(
+    'PrintPreviewPreviewGenerationTest', 'ZeroDefaultMarginsClearsHeaderFooter',
+    function() {
+      this.runMochaTest(preview_generation_test.TestNames
+                            .ZeroDefaultMarginsClearsHeaderFooter);
+    });
+
 GEN('#if !defined(OS_CHROMEOS)');
 // eslint-disable-next-line no-var
 var PrintPreviewLinkContainerTest = class extends PrintPreviewTest {
diff --git a/chrome/test/data/webui/settings/system_page_tests.js b/chrome/test/data/webui/settings/system_page_tests.js
index 23bd841..9a54390 100644
--- a/chrome/test/data/webui/settings/system_page_tests.js
+++ b/chrome/test/data/webui/settings/system_page_tests.js
@@ -110,9 +110,9 @@
     });
     Polymer.dom.flush();
 
-    // The ability to show proxy settings should still be allowed when
-    // extensions are installed.
-    expectTrue(control.hasAttribute('actionable'));
+    // When managed by extensions, we disable the ability to show proxy
+    // settings.
+    expectFalse(control.hasAttribute('actionable'));
     expectEquals(null, control.querySelector('cr-policy-pref-indicator'));
     expectFalse(showProxyButton.hidden);
 
diff --git a/chromecast/browser/cast_overlay_manifests.cc b/chromecast/browser/cast_overlay_manifests.cc
index fbcf86d..c0911d4 100644
--- a/chromecast/browser/cast_overlay_manifests.cc
+++ b/chromecast/browser/cast_overlay_manifests.cc
@@ -39,10 +39,6 @@
 #if !defined(OS_FUCHSIA)
         .RequireCapability("heap_profiling", "heap_profiler")
         .RequireCapability("heap_profiling", "profiling")
-        .RequireCapability("content_system", "profiling_client")
-        .ExposeCapability("profiling_client",
-                          service_manager::Manifest::InterfaceList<
-                              heap_profiling::mojom::ProfilingClient>())
 #endif  // !defined(OS_FUCHSIA)
         .ExposeCapability("renderer",
                           service_manager::Manifest::InterfaceList<
diff --git a/chromecast/common/cast_content_client.cc b/chromecast/common/cast_content_client.cc
index c09ebf8c..9f86049 100644
--- a/chromecast/common/cast_content_client.cc
+++ b/chromecast/common/cast_content_client.cc
@@ -30,9 +30,7 @@
 #if !defined(OS_FUCHSIA)
 #include "base/no_destructor.h"
 #include "components/services/heap_profiling/public/cpp/profiling_client.h"  // nogncheck
-#include "content/public/common/service_manager_connection.h"
-#include "content/public/common/simple_connection_filter.h"
-#include "services/service_manager/public/cpp/binder_registry.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
 #endif
 
 namespace chromecast {
@@ -141,17 +139,16 @@
 }
 #endif  // OS_ANDROID
 
-void CastContentClient::OnServiceManagerConnected(
-    content::ServiceManagerConnection* connection) {
+void CastContentClient::BindChildProcessInterface(
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle* receiving_handle) {
 #if !defined(OS_FUCHSIA)
   static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client;
-
-  auto registry = std::make_unique<service_manager::BinderRegistry>();
-  registry->AddInterface(
-      base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface,
-                          base::Unretained(profiling_client.get())));
-  connection->AddConnectionFilter(
-      std::make_unique<content::SimpleConnectionFilter>(std::move(registry)));
+  if (interface_name == heap_profiling::ProfilingClient::Name_) {
+    profiling_client->BindToInterface(
+        mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>(
+            std::move(*receiving_handle)));
+  }
 #endif  // !defined(OS_FUCHSIA)
 }
 
diff --git a/chromecast/common/cast_content_client.h b/chromecast/common/cast_content_client.h
index af212f3..9fe1674 100644
--- a/chromecast/common/cast_content_client.h
+++ b/chromecast/common/cast_content_client.h
@@ -30,8 +30,9 @@
 #if defined(OS_ANDROID)
   ::media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override;
 #endif  // OS_ANDROID
-  void OnServiceManagerConnected(
-      content::ServiceManagerConnection* connection) override;
+  void BindChildProcessInterface(
+      const std::string& interface_name,
+      mojo::ScopedMessagePipeHandle* receiving_handle) override;
 
  private:
   GURL last_active_url_;
diff --git a/chromeos/dbus/concierge_client.cc b/chromeos/dbus/concierge_client.cc
index e46fc2c..fd67537 100644
--- a/chromeos/dbus/concierge_client.cc
+++ b/chromeos/dbus/concierge_client.cc
@@ -345,6 +345,27 @@
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
+  void StartArcVm(const vm_tools::concierge::StartArcVmRequest& request,
+                  DBusMethodCallback<vm_tools::concierge::StartVmResponse>
+                      callback) override {
+    dbus::MethodCall method_call(vm_tools::concierge::kVmConciergeInterface,
+                                 vm_tools::concierge::kStartArcVmMethod);
+    dbus::MessageWriter writer(&method_call);
+
+    if (!writer.AppendProtoAsArrayOfBytes(request)) {
+      LOG(ERROR) << "Failed to encode StartArcVmRequest protobuf";
+      base::ThreadTaskRunnerHandle::Get()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), base::nullopt));
+      return;
+    }
+
+    concierge_proxy_->CallMethod(
+        &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+        base::BindOnce(&ConciergeClientImpl::OnDBusProtoResponse<
+                           vm_tools::concierge::StartVmResponse>,
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+  }
+
  protected:
   void Init(dbus::Bus* bus) override {
     concierge_proxy_ = bus->GetObjectProxy(
diff --git a/chromeos/dbus/concierge_client.h b/chromeos/dbus/concierge_client.h
index 9de98e1..fe82197 100644
--- a/chromeos/dbus/concierge_client.h
+++ b/chromeos/dbus/concierge_client.h
@@ -165,6 +165,12 @@
       DBusMethodCallback<vm_tools::concierge::ListUsbDeviceResponse>
           callback) = 0;
 
+  // Starts ARCVM if there is not already one running.
+  // |callback| is called after the method call finishes.
+  virtual void StartArcVm(
+      const vm_tools::concierge::StartArcVmRequest& request,
+      DBusMethodCallback<vm_tools::concierge::StartVmResponse> callback) = 0;
+
   // Creates an instance of ConciergeClient.
   static std::unique_ptr<ConciergeClient> Create();
 
diff --git a/chromeos/dbus/fake_concierge_client.cc b/chromeos/dbus/fake_concierge_client.cc
index 6a338595..9442037 100644
--- a/chromeos/dbus/fake_concierge_client.cc
+++ b/chromeos/dbus/fake_concierge_client.cc
@@ -211,6 +211,14 @@
       base::BindOnce(std::move(callback), list_usb_devices_response_));
 }
 
+void FakeConciergeClient::StartArcVm(
+    const vm_tools::concierge::StartArcVmRequest& request,
+    DBusMethodCallback<vm_tools::concierge::StartVmResponse> callback) {
+  start_arc_vm_called_ = true;
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), start_vm_response_));
+}
+
 void FakeConciergeClient::InitializeProtoResponses() {
   create_disk_image_response_.Clear();
   create_disk_image_response_.set_status(
diff --git a/chromeos/dbus/fake_concierge_client.h b/chromeos/dbus/fake_concierge_client.h
index 0532d38ee..ff1f696 100644
--- a/chromeos/dbus/fake_concierge_client.h
+++ b/chromeos/dbus/fake_concierge_client.h
@@ -5,6 +5,8 @@
 #ifndef CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_
 #define CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_
 
+#include <vector>
+
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "chromeos/dbus/cicerone_client.h"
@@ -137,6 +139,12 @@
       DBusMethodCallback<vm_tools::concierge::ListUsbDeviceResponse> callback)
       override;
 
+  // Fake version of the method that starts ARCVM. Sets start_arc_vm_called_.
+  // |callback| is called after the method call finishes.
+  void StartArcVm(const vm_tools::concierge::StartArcVmRequest& request,
+                  DBusMethodCallback<vm_tools::concierge::StartVmResponse>
+                      callback) override;
+
   // Indicates whether WaitForServiceToBeAvailable has been called.
   bool wait_for_service_to_be_available_called() const {
     return wait_for_service_to_be_available_called_;
@@ -165,6 +173,8 @@
   bool detach_usb_device_called() const { return detach_usb_device_called_; }
   // Indicates whether ListUsbDevices has been called
   bool list_usb_devices_called() const { return list_usb_devices_called_; }
+  // Indicates whether StartArcVm has been called
+  bool start_arc_vm_called() const { return start_arc_vm_called_; }
   // Set ContainerStartupFailedSignalConnected state
   void set_container_startup_failed_signal_connected(bool connected) {
     is_container_startup_failed_signal_connected_ = connected;
@@ -276,6 +286,7 @@
   bool attach_usb_device_called_ = false;
   bool detach_usb_device_called_ = false;
   bool list_usb_devices_called_ = false;
+  bool start_arc_vm_called_ = false;
   bool is_container_startup_failed_signal_connected_ = true;
   bool is_disk_image_progress_signal_connected_ = true;
 
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index a461210..427d819 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -968,7 +968,8 @@
   DCHECK(background_thread_.task_runner()->BelongsToCurrentThread());
 
   display_connection_ = std::make_unique<CrosDisplayConnection>(
-      this, assistant::features::IsFeedbackUiEnabled());
+      this, assistant::features::IsFeedbackUiEnabled(),
+      assistant::features::IsMediaSessionIntegrationEnabled());
 
   base::AutoLock lock(new_assistant_manager_lock_);
   new_assistant_manager_.reset(assistant_client::AssistantManager::Create(
diff --git a/components/BUILD.gn b/components/BUILD.gn
index db0f8f1..1e3f6d6 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -108,7 +108,6 @@
     "//components/language/core/common:unit_tests",
     "//components/language_usage_metrics:unit_tests",
     "//components/leveldb_proto:unit_tests",
-    "//components/live_tab_count_metrics:unit_tests",
     "//components/metrics:unit_tests",
     "//components/navigation_metrics:unit_tests",
     "//components/net_log:unit_tests",
@@ -152,6 +151,7 @@
     "//components/sync_preferences:unit_tests",
     "//components/sync_sessions:unit_tests",
     "//components/sync_user_events:unit_tests",
+    "//components/tab_count_metrics:unit_tests",
     "//components/test:run_all_unittests",
     "//components/translate/core/browser:unit_tests",
     "//components/translate/core/common:unit_tests",
diff --git a/components/arc/clipboard/arc_clipboard_bridge.cc b/components/arc/clipboard/arc_clipboard_bridge.cc
index e024b3d..fa49041a 100644
--- a/components/arc/clipboard/arc_clipboard_bridge.cc
+++ b/components/arc/clipboard/arc_clipboard_bridge.cc
@@ -48,7 +48,7 @@
   std::string url;
   uint32_t fragment_start, fragment_end;
 
-  clipboard->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE, &markup16, &url,
+  clipboard->ReadHTML(ui::ClipboardType::kCopyPaste, &markup16, &url,
                       &fragment_start, &fragment_end);
 
   std::string text(base::UTF16ToUTF8(
@@ -73,7 +73,7 @@
   // present, only use Bookmark.
   clipboard->ReadBookmark(&title, &text);
   if (text.size() == 0)
-    clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
+    clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &text);
 
   return mojom::ClipRepresentation::New(mime_type,
                                         mojom::ClipValue::NewText(text));
@@ -84,7 +84,7 @@
 
   std::vector<base::string16> mime_types;
   bool contains_files;
-  clipboard->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types,
+  clipboard->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types,
                                 &contains_files);
 
   mojom::ClipDataPtr clip_data(mojom::ClipData::New());
@@ -172,7 +172,7 @@
 
   // Order is important. AutoReset should outlive ScopedClipboardWriter.
   base::AutoReset<bool> auto_reset(&event_originated_at_instance_, true);
-  ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
 
   for (const auto& repr : clip_data->representations) {
     const std::string& mime_type(repr->mime_type);
diff --git a/components/arc/clipboard/arc_clipboard_bridge_unittest.cc b/components/arc/clipboard/arc_clipboard_bridge_unittest.cc
index bde4bc50..838de85 100644
--- a/components/arc/clipboard/arc_clipboard_bridge_unittest.cc
+++ b/components/arc/clipboard/arc_clipboard_bridge_unittest.cc
@@ -84,7 +84,7 @@
 
 TEST_F(ArcClipboardBridgeTest, GetClipContent_PlainText) {
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16(kSampleText));
   }
 
@@ -100,7 +100,7 @@
 
 TEST_F(ArcClipboardBridgeTest, GetClipContent_Html) {
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteHTML(base::UTF8ToUTF16(kSampleHtml), std::string());
   }
 
@@ -121,13 +121,13 @@
 
   std::vector<base::string16> mime_types;
   bool contains_files;
-  GetClipboard()->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types,
+  GetClipboard()->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types,
                                      &contains_files);
   ASSERT_EQ(1u, mime_types.size());
   EXPECT_EQ(ui::kMimeTypeText, base::UTF16ToUTF8(mime_types[0]));
 
   base::string16 result;
-  GetClipboard()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  GetClipboard()->ReadText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(kSampleText, base::UTF16ToUTF8(result));
 }
 
@@ -138,7 +138,7 @@
 
   std::vector<base::string16> mime_types;
   bool contains_files;
-  GetClipboard()->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types,
+  GetClipboard()->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types,
                                      &contains_files);
   ASSERT_EQ(1u, mime_types.size());
   EXPECT_EQ(ui::kMimeTypeHTML, base::UTF16ToUTF8(mime_types[0]));
@@ -146,7 +146,7 @@
   base::string16 markup16;
   std::string url;
   uint32_t fragment_start, fragment_end;
-  GetClipboard()->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE, &markup16, &url,
+  GetClipboard()->ReadHTML(ui::ClipboardType::kCopyPaste, &markup16, &url,
                            &fragment_start, &fragment_end);
   base::string16 result =
       markup16.substr(fragment_start, fragment_end - fragment_start);
diff --git a/components/bookmarks/browser/bookmark_node_data.cc b/components/bookmarks/browser/bookmark_node_data.cc
index 6801c22..f0539f91 100644
--- a/components/bookmarks/browser/bookmark_node_data.cc
+++ b/components/bookmarks/browser/bookmark_node_data.cc
@@ -139,7 +139,7 @@
 bool BookmarkNodeData::ClipboardContainsBookmarks() {
   return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable(
       ui::ClipboardFormatType::GetType(kClipboardFormatString),
-      ui::CLIPBOARD_TYPE_COPY_PASTE);
+      ui::ClipboardType::kCopyPaste);
 }
 #endif
 
@@ -175,7 +175,7 @@
 
 #if !defined(OS_MACOSX)
 void BookmarkNodeData::WriteToClipboard() {
-  ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
 
 #if defined(OS_WIN)
   const base::string16 kEOL(L"\r\n");
@@ -217,7 +217,7 @@
 }
 
 bool BookmarkNodeData::ReadFromClipboard(ui::ClipboardType type) {
-  DCHECK_EQ(type, ui::CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ui::ClipboardType::kCopyPaste);
   std::string data;
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   clipboard->ReadData(ui::ClipboardFormatType::GetType(kClipboardFormatString),
diff --git a/components/bookmarks/browser/bookmark_node_data_mac.mm b/components/bookmarks/browser/bookmark_node_data_mac.mm
index d2e699b..a651886 100644
--- a/components/bookmarks/browser/bookmark_node_data_mac.mm
+++ b/components/bookmarks/browser/bookmark_node_data_mac.mm
@@ -29,13 +29,13 @@
 // static
 bool BookmarkNodeData::ClipboardContainsBookmarks() {
   NSPasteboard* pb =
-      ui::ClipboardUtil::PasteboardFromType(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      ui::ClipboardUtil::PasteboardFromType(ui::ClipboardType::kCopyPaste);
   return PasteboardContainsBookmarks(pb);
 }
 
 void BookmarkNodeData::WriteToClipboard() {
   NSPasteboard* pb =
-      ui::ClipboardUtil::PasteboardFromType(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      ui::ClipboardUtil::PasteboardFromType(ui::ClipboardType::kCopyPaste);
   WriteBookmarksToPasteboard(pb, elements, profile_path_);
 }
 
diff --git a/components/bookmarks/browser/bookmark_node_data_unittest.cc b/components/bookmarks/browser/bookmark_node_data_unittest.cc
index b12a447..2abbcde 100644
--- a/components/bookmarks/browser/bookmark_node_data_unittest.cc
+++ b/components/bookmarks/browser/bookmark_node_data_unittest.cc
@@ -289,7 +289,7 @@
 
   // Now read the data back in.
   base::string16 clipboard_result;
-  clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result);
+  clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result);
   EXPECT_EQ(base::UTF8ToUTF16(url.spec()), clipboard_result);
 }
 
@@ -319,7 +319,7 @@
   combined_text = base::UTF8ToUTF16(url.spec()) + new_line
     + base::UTF8ToUTF16(url2.spec());
   base::string16 clipboard_result;
-  clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result);
+  clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result);
   EXPECT_EQ(combined_text, clipboard_result);
 }
 
@@ -335,7 +335,7 @@
 
   // Now read the data back in.
   base::string16 clipboard_result;
-  clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result);
+  clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result);
   EXPECT_EQ(base::ASCIIToUTF16("g1"), clipboard_result);
 }
 
@@ -354,7 +354,7 @@
 
   // Now read the data back in.
   base::string16 clipboard_result;
-  clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result);
+  clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result);
   EXPECT_EQ(base::ASCIIToUTF16("g1"), clipboard_result);
 }
 
@@ -382,7 +382,7 @@
   base::string16 folder_title = ASCIIToUTF16("g1");
   combined_text = base::ASCIIToUTF16(url.spec()) + new_line + folder_title;
   base::string16 clipboard_result;
-  clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result);
+  clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result);
   EXPECT_EQ(combined_text, clipboard_result);
 }
 
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
index 9879555..69e2d90 100644
--- a/components/bookmarks/browser/bookmark_utils.cc
+++ b/components/bookmarks/browser/bookmark_utils.cc
@@ -160,7 +160,7 @@
 GURL GetUrlFromClipboard() {
   base::string16 url_text;
 #if !defined(OS_IOS)
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &url_text);
 #endif
   return GURL(url_text);
@@ -307,7 +307,7 @@
     return;
 
   BookmarkNodeData bookmark_data;
-  if (!bookmark_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+  if (!bookmark_data.ReadFromClipboard(ui::ClipboardType::kCopyPaste)) {
     GURL url = GetUrlFromClipboard();
     if (!url.is_valid())
       return;
diff --git a/components/bookmarks/browser/bookmark_utils_unittest.cc b/components/bookmarks/browser/bookmark_utils_unittest.cc
index 60884f1a..cac122e 100644
--- a/components/bookmarks/browser/bookmark_utils_unittest.cc
+++ b/components/bookmarks/browser/bookmark_utils_unittest.cc
@@ -270,7 +270,7 @@
 
   // Write blank text to clipboard.
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(base::string16());
   }
   // Now we shouldn't be able to paste from the clipboard.
@@ -278,7 +278,7 @@
 
   // Write some valid url to the clipboard.
   {
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(url_text);
   }
   // Now we should be able to paste from the clipboard.
@@ -308,8 +308,7 @@
 
   // Write some text to the clipboard.
   {
-    ui::ScopedClipboardWriter clipboard_writer(
-        ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(ASCIIToUTF16("foo"));
   }
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
index e8bf909..b8d9c29d 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
@@ -209,8 +209,6 @@
                            AreProxiesBypassedRetryDelay);
   FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest, WarmupURL);
   FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest,
-                           ShouldAcceptServerLoFi);
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest,
                            ShouldAcceptServerPreview);
 
   // Values of the estimated network quality at the beginning of the most
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h
index 4dd49de..41fe16c9 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h
@@ -58,9 +58,6 @@
   // TODO(jeremyim): Rationalize with test_params().
   DataReductionProxyConfigValues* config_values();
 
-  // Resets the Lo-Fi status to default state.
-  void ResetLoFiStatusForTest();
-
   // Sets the |tick_clock_| to |tick_clock|. Ownership of |tick_clock| is not
   // passed to the callee.
   void SetTickClock(const base::TickClock* tick_clock);
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc
index a52c12b..2056849 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc
@@ -81,7 +81,7 @@
 TEST_F(DataReductionProxyDataTest, DeepCopy) {
   const struct {
     bool data_reduction_used;
-    bool lofi_test_value;
+    bool lite_page_test_value;
   } tests[] = {
       {
           false, true,
@@ -102,16 +102,16 @@
     static const GURL kTestURL("test-url");
     std::unique_ptr<DataReductionProxyData> data(new DataReductionProxyData());
     data->set_used_data_reduction_proxy(tests[i].data_reduction_used);
-    data->set_lite_page_received(tests[i].lofi_test_value);
-    data->set_black_listed(tests[i].lofi_test_value);
+    data->set_lite_page_received(tests[i].lite_page_test_value);
+    data->set_black_listed(tests[i].lite_page_test_value);
     data->set_session_key(kSessionKey);
     data->set_request_url(kTestURL);
     data->set_effective_connection_type(net::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
     data->set_connection_type(net::NetworkChangeNotifier::CONNECTION_WIFI);
     data->set_page_id(2u);
     std::unique_ptr<DataReductionProxyData> copy = data->DeepCopy();
-    EXPECT_EQ(tests[i].lofi_test_value, copy->lite_page_received());
-    EXPECT_EQ(tests[i].lofi_test_value, copy->black_listed());
+    EXPECT_EQ(tests[i].lite_page_test_value, copy->lite_page_received());
+    EXPECT_EQ(tests[i].lite_page_test_value, copy->black_listed());
     EXPECT_EQ(tests[i].data_reduction_used, copy->used_data_reduction_proxy());
     EXPECT_EQ(kSessionKey, copy->session_key());
     EXPECT_EQ(kTestURL, copy->request_url());
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
index 46405a3f..81210891c 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
@@ -184,9 +184,6 @@
   }
 
  private:
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
-                           TestLoFiSessionStateHistograms);
-
   void OnEffectiveConnectionTypeChanged(
       net::EffectiveConnectionType type) override;
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h
index d9ca072..2a75c57 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h
@@ -94,8 +94,7 @@
       std::unique_ptr<DataReductionProxyService> data_reduction_proxy_service);
 
   // Sets the |register_synthetic_field_trial_| callback and runs to register
-  // the DataReductionProxyEnabled and the DataReductionProxyLoFiEnabled
-  // synthetic field trial.
+  // the DataReductionProxyEnabled synthetic field trial.
   void SetCallbackToRegisterSyntheticFieldTrial(
       const SyntheticFieldTrialRegistrationCallback&
           on_data_reduction_proxy_enabled);
@@ -247,14 +246,6 @@
   FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
                            CheckInitMetricsWhenNotAllowed);
   FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
-                           TestLoFiImplicitOptOutClicksPerSession);
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
-                           TestLoFiImplicitOptOutConsecutiveSessions);
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
-                           TestLoFiImplicitOptOutHistograms);
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
-                           TestLoFiSessionStateHistograms);
-  FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
                            TestSettingsEnabledStateHistograms);
   FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest,
                            TestDaysSinceEnabled);
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
index 72fde576..0d05569a 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
@@ -39,8 +39,7 @@
 
 const char kQuicFieldTrial[] = "DataReductionProxyUseQuic";
 
-const char kLoFiFieldTrial[] = "DataCompressionProxyLoFi";
-const char kLoFiFlagFieldTrial[] = "DataCompressionProxyLoFiFlag";
+const char kLitePageFieldTrial[] = "DataCompressionProxyLoFi";
 
 // Default URL for retrieving the Data Reduction Proxy configuration.
 const char kClientConfigURL[] =
@@ -114,15 +113,6 @@
   return base::FieldTrialList::FindFullName("DataCompressionProxyHoldback");
 }
 
-const char* GetLoFiFieldTrialName() {
-  return kLoFiFieldTrial;
-}
-
-const char* GetLoFiFlagFieldTrialName() {
-  return kLoFiFlagFieldTrial;
-}
-
-
 bool FetchWarmupProbeURLEnabled() {
   return !base::CommandLine::ForCurrentProcess()->HasSwitch(
       switches::kDisableDataReductionProxyWarmupURLFetch);
@@ -242,9 +232,8 @@
 }
 
 int LitePageVersion() {
-  return GetFieldTrialParameterAsInteger(
-      data_reduction_proxy::params::GetLoFiFieldTrialName(),
-      kLitePageBlackListVersion, 0, 0);
+  return GetFieldTrialParameterAsInteger(kLitePageFieldTrial,
+                                         kLitePageBlackListVersion, 0, 0);
 }
 
 int GetFieldTrialParameterAsInteger(const std::string& group,
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
index 5228343e..e79a7b7 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
@@ -48,15 +48,6 @@
 // not included in a group.
 std::string HoldbackFieldTrialGroup();
 
-// Returns the name of the Lo-Fi field trial.
-// TODO(ryansturm): crbug.com/759052 Cleanup once fully cutover to new blacklist
-const char* GetLoFiFieldTrialName();
-
-// Returns the name of the Lo-Fi field trial that configures LoFi flags when it
-// is force enabled through flags.
-// TODO(ryansturm): crbug.com/759052 Cleanup once fully cutover to new blacklist
-const char* GetLoFiFlagFieldTrialName();
-
 // Returns true if this client has the command line switch to enable forced
 // pageload metrics pingbacks on every page load.
 bool IsForcePingbackEnabledViaFlags();
diff --git a/components/exo/data_offer.cc b/components/exo/data_offer.cc
index d30a1ec..f288f40 100644
--- a/components/exo/data_offer.cc
+++ b/components/exo/data_offer.cc
@@ -110,7 +110,7 @@
 void ReadTextFromClipboard(const std::string& charset, base::ScopedFD fd) {
   base::string16 text;
   std::string encoded_text;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &text);
   base::UTF16ToCodepage(text, charset.c_str(),
                         base::OnStringConversionError::SUBSTITUTE,
@@ -124,7 +124,7 @@
   std::string url;
   uint32_t start, end;
   std::string encoded_text;
-  ui::Clipboard::GetForCurrentThread()->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadHTML(ui::ClipboardType::kCopyPaste,
                                                  &text, &url, &start, &end);
   base::UTF16ToCodepage(text, charset.c_str(),
                         base::OnStringConversionError::SUBSTITUTE,
@@ -135,7 +135,7 @@
 
 void ReadRTFFromClipboard(base::ScopedFD fd) {
   std::string text;
-  ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::ClipboardType::kCopyPaste,
                                                 &text);
   WriteFileDescriptor(std::move(fd), base::RefCountedString::TakeString(&text));
 }
@@ -155,7 +155,7 @@
 
 void ReadPNGFromClipboard(base::ScopedFD fd) {
   const SkBitmap sk_bitmap = ui::Clipboard::GetForCurrentThread()->ReadImage(
-      ui::CLIPBOARD_TYPE_COPY_PASTE);
+      ui::ClipboardType::kCopyPaste);
   base::PostTaskWithTraits(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
       base::BindOnce(&SendAsPNGOnWorkerThread, std::move(fd),
@@ -266,7 +266,7 @@
                                  const ui::Clipboard& data) {
   DCHECK_EQ(0u, data_.size());
   if (data.IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextWType(),
-                             ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                             ui::ClipboardType::kCopyPaste)) {
     auto utf8_callback =
         base::BindRepeating(&ReadTextFromClipboard, std::string(kUTF8));
     delegate_->OnOffer(std::string(kTextMimeTypeUtf8));
@@ -279,7 +279,7 @@
         base::BindRepeating(&ReadTextFromClipboard, std::string(kUTF16)));
   }
   if (data.IsFormatAvailable(ui::ClipboardFormatType::GetHtmlType(),
-                             ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                             ui::ClipboardType::kCopyPaste)) {
     delegate_->OnOffer(std::string(kTextHtmlMimeTypeUtf8));
     data_callbacks_.emplace(
         std::string(kTextHtmlMimeTypeUtf8),
@@ -290,13 +290,13 @@
         base::BindRepeating(&ReadHTMLFromClipboard, std::string(kUTF16)));
   }
   if (data.IsFormatAvailable(ui::ClipboardFormatType::GetRtfType(),
-                             ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                             ui::ClipboardType::kCopyPaste)) {
     delegate_->OnOffer(std::string(kTextRtfMimeType));
     data_callbacks_.emplace(std::string(kTextRtfMimeType),
                             base::BindRepeating(&ReadRTFFromClipboard));
   }
   if (data.IsFormatAvailable(ui::ClipboardFormatType::GetBitmapType(),
-                             ui::CLIPBOARD_TYPE_COPY_PASTE)) {
+                             ui::ClipboardType::kCopyPaste)) {
     delegate_->OnOffer(std::string(kImagePngMimeType));
     data_callbacks_.emplace(std::string(kImagePngMimeType),
                             base::BindRepeating(&ReadPNGFromClipboard));
diff --git a/components/exo/data_offer_unittest.cc b/components/exo/data_offer_unittest.cc
index c09e9466..3b815ac8 100644
--- a/components/exo/data_offer_unittest.cc
+++ b/components/exo/data_offer_unittest.cc
@@ -346,7 +346,7 @@
 
   TestFileHelper file_helper;
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16("Test data"));
   }
   data_offer.SetClipboardData(&file_helper,
@@ -379,7 +379,7 @@
 
   TestFileHelper file_helper;
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteHTML(base::UTF8ToUTF16("Test data"), "");
   }
   data_offer.SetClipboardData(&file_helper,
@@ -411,7 +411,7 @@
 
   TestFileHelper file_helper;
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteRTF("Test data");
   }
   data_offer.SetClipboardData(&file_helper,
diff --git a/components/exo/seat.cc b/components/exo/seat.cc
index f54eb41..770ab19 100644
--- a/components/exo/seat.cc
+++ b/components/exo/seat.cc
@@ -129,7 +129,7 @@
 
 void Seat::SetSelection(DataSource* source) {
   if (!source) {
-    ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste);
     // selection_source_ is Cancelled() and reset() in OnClipboardDataChanged().
     return;
   }
@@ -142,7 +142,7 @@
   selection_source_ = std::make_unique<ScopedDataSource>(source, this);
   scoped_refptr<RefCountedScopedClipboardWriter> writer =
       base::MakeRefCounted<RefCountedScopedClipboardWriter>(
-          ui::CLIPBOARD_TYPE_COPY_PASTE);
+          ui::ClipboardType::kCopyPaste);
 
   base::RepeatingClosure data_read_callback = base::BarrierClosure(
       kMaxClipboardDataTypes,
diff --git a/components/exo/seat_unittest.cc b/components/exo/seat_unittest.cc
index dbb93d5..e5959687 100644
--- a/components/exo/seat_unittest.cc
+++ b/components/exo/seat_unittest.cc
@@ -105,7 +105,7 @@
 
   std::string clipboard;
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard);
+      ui::ClipboardType::kCopyPaste, &clipboard);
 
   EXPECT_EQ(clipboard, std::string("TestData"));
 }
@@ -132,14 +132,14 @@
   RunReadingTask();
 
   base::string16 clipboard;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &clipboard);
   EXPECT_EQ(clipboard, converted_data);
 
   std::string url;
   uint32_t start, end;
   ui::Clipboard::GetForCurrentThread()->ReadHTML(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end);
+      ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end);
   EXPECT_EQ(clipboard, converted_data);
 }
 
@@ -167,14 +167,14 @@
   RunReadingTask();
 
   base::string16 clipboard;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &clipboard);
   EXPECT_EQ(clipboard, converted_data);
 
   std::string url;
   uint32_t start, end;
   ui::Clipboard::GetForCurrentThread()->ReadHTML(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end);
+      ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end);
   EXPECT_EQ(clipboard, converted_data);
 }
 
@@ -202,14 +202,14 @@
   RunReadingTask();
 
   base::string16 clipboard;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &clipboard);
   EXPECT_EQ(clipboard, converted_data);
 
   std::string url;
   uint32_t start, end;
   ui::Clipboard::GetForCurrentThread()->ReadHTML(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end);
+      ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end);
   EXPECT_EQ(clipboard, converted_data);
 }
 
@@ -228,14 +228,14 @@
   RunReadingTask();
 
   base::string16 clipboard;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &clipboard);
   EXPECT_EQ(clipboard.size(), 0u);
 
   std::string url;
   uint32_t start, end;
   ui::Clipboard::GetForCurrentThread()->ReadHTML(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end);
+      ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end);
   EXPECT_EQ(clipboard.size(), 0u);
 }
 
@@ -250,7 +250,7 @@
   RunReadingTask();
 
   std::string clipboard;
-  ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::ClipboardType::kCopyPaste,
                                                 &clipboard);
 
   EXPECT_EQ(clipboard, std::string("TestData"));
@@ -296,7 +296,7 @@
   seat.SetSelection(&source);
 
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16("New data"));
   }
 
@@ -307,7 +307,7 @@
 
   std::string clipboard;
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard);
+      ui::ClipboardType::kCopyPaste, &clipboard);
   EXPECT_EQ(clipboard, "New data");
 }
 
@@ -320,7 +320,7 @@
   RunReadingTask();
 
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16("New data"));
   }
 
@@ -329,7 +329,7 @@
 
   std::string clipboard;
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard);
+      ui::ClipboardType::kCopyPaste, &clipboard);
   EXPECT_EQ(clipboard, "New data");
 }
 
@@ -337,7 +337,7 @@
   Seat seat;
 
   {
-    ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste);
     writer.WriteText(base::UTF8ToUTF16("Original data"));
   }
 
@@ -352,7 +352,7 @@
 
   std::string clipboard;
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard);
+      ui::ClipboardType::kCopyPaste, &clipboard);
   EXPECT_EQ(clipboard, "Original data");
 }
 
@@ -401,7 +401,7 @@
 
   std::string clipboard;
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard);
+      ui::ClipboardType::kCopyPaste, &clipboard);
   EXPECT_EQ(clipboard, "");
 }
 
diff --git a/components/heap_profiling/client_connection_manager.cc b/components/heap_profiling/client_connection_manager.cc
index 3aa5383..1c5d77a 100644
--- a/components/heap_profiling/client_connection_manager.cc
+++ b/components/heap_profiling/client_connection_manager.cc
@@ -5,9 +5,11 @@
 #include "components/heap_profiling/client_connection_manager.h"
 
 #include "base/bind.h"
+#include "base/no_destructor.h"
 #include "base/rand_util.h"
 #include "base/task/post_task.h"
 #include "components/services/heap_profiling/public/cpp/controller.h"
+#include "components/services/heap_profiling/public/cpp/profiling_client.h"
 #include "components/services/heap_profiling/public/cpp/settings.h"
 #include "components/services/heap_profiling/public/mojom/heap_profiling_client.mojom.h"
 #include "components/services/heap_profiling/public/mojom/heap_profiling_service.mojom.h"
@@ -46,13 +48,6 @@
     content::BindInterface(host, std::move(request_));
   }
 
-  // Binds to the local connector to get the browser process' ProfilingClient.
-  explicit ProfilingClientBinder(service_manager::Connector* connector)
-      : ProfilingClientBinder() {
-    connector->BindInterface(content::mojom::kSystemServiceName,
-                             std::move(request_));
-  }
-
   mojom::ProfilingClientPtr take() { return std::move(memlog_client_); }
 
  private:
@@ -153,10 +148,11 @@
   if (!controller)
     return;
 
-  ProfilingClientBinder client(controller->GetConnector());
-  StartProfilingClientOnIOThread(controller, std::move(client),
-                                 base::GetCurrentProcId(),
-                                 mojom::ProcessType::BROWSER);
+  static base::NoDestructor<ProfilingClient> client;
+  mojom::ProfilingClientPtr proxy;
+  client->BindToInterface(mojo::MakeRequest(&proxy));
+  controller->StartProfilingClient(std::move(proxy), base::GetCurrentProcId(),
+                                   mojom::ProcessType::BROWSER);
 }
 
 void StartProfilingPidOnIOThread(base::WeakPtr<Controller> controller,
@@ -168,9 +164,7 @@
 
   // Check if the request is for the current process.
   if (pid == base::GetCurrentProcId()) {
-    ProfilingClientBinder client(controller->GetConnector());
-    StartProfilingClientOnIOThread(controller, std::move(client), pid,
-                                   mojom::ProcessType::BROWSER);
+    StartProfilingBrowserProcessOnIOThread(std::move(controller));
     return;
   }
 
diff --git a/components/live_tab_count_metrics/README b/components/live_tab_count_metrics/README
deleted file mode 100644
index aa1dc62..0000000
--- a/components/live_tab_count_metrics/README
+++ /dev/null
@@ -1,21 +0,0 @@
-This directory contains process-independent code for recording metrics bucketed
-by the number of live tabs.
-
-We consider a tab to be alive (i.e. a live tab) if it is a UI tab (e.g. in a
-tabstrip, as opposed to a prerenderer), and it has not been discarded and has
-not crashed. Tabs can be discarded on desktop by TabManager to conserve
-resources, and tabs crash when the corresponding renderer process is killed,
-e.g. due to limited resources (OOM).
-
-Clients of this component must be able to count live tabs. The interface this
-component exposes provides a way to help create metrics bucketed by live tab
-count in a consistent manner, but this is dependent on the client knowing the
-count. The code in this directory is meant to be shared between processes, and
-so we do not count live tabs here. The live tab count is a browser concept, and
-it can be computed there. To record metrics bucketed by live tab counts in
-processes other than the browser, the live tab count would need to be plumbed
-out of the browser. In some cases this may be more efficient than plumbing
-metrics data out of the process to the browser, which is an alternative.
-
-This component should not have any dependencies other than //base as it
-should be able to be used from any other place.
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics.cc b/components/live_tab_count_metrics/live_tab_count_metrics.cc
deleted file mode 100644
index f37a7c2..0000000
--- a/components/live_tab_count_metrics/live_tab_count_metrics.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/live_tab_count_metrics/live_tab_count_metrics.h"
-
-#include <limits>
-
-#include "base/logging.h"
-#include "base/stl_util.h"
-
-namespace live_tab_count_metrics {
-
-// These values represent the lower bound for each bucket, and define the live
-// tab count buckets. The final bucket has no upper bound, and each other
-// bucket, i, is bounded above by the lower bound of bucket i + 1.
-//
-// The buckets were determined from the Tabs.MaxTabsInADay histogram,
-// approximating the 25th, 50th, 75th, 95th, and 99th percentiles, but with the
-// single and zero tab cases separated.
-//
-// If adding or removing a bucket, update |kNumLiveTabCountBuckets|,
-// |kLiveTabCountBucketMins|, and |kLiveTabCountBucketNames|. If adding,
-// removing, or changing bucket ranges, the existing metrics that use these
-// functions for emitting histograms should be marked as obsolete, and new
-// metrics should be created. This can be accomplished by versioning
-// |kLiveTabCountBucketNames|, e.g.  ".ByLiveTabCount2.0Tabs", etc., and
-// updating the histogram suffixes section of histograms.xml, creating a new
-// entry for the new suffixes and marking the old suffixes obsolete.
-constexpr size_t kLiveTabCountBucketMins[] = {0, 1, 2, 3, 5, 8, 20, 40};
-
-// Text for the live tab count portion of metric names. These need to be kept
-// in sync with |kLiveTabCountBucketMins|.
-constexpr const char* kLiveTabCountBucketNames[]{
-    ".ByLiveTabCount.0Tabs",      ".ByLiveTabCount.1Tab",
-    ".ByLiveTabCount.2Tabs",      ".ByLiveTabCount.3To4Tabs",
-    ".ByLiveTabCount.5To7Tabs",   ".ByLiveTabCount.8To19Tabs",
-    ".ByLiveTabCount.20To39Tabs", ".ByLiveTabCount.40OrMoreTabs"};
-
-std::string HistogramName(const std::string prefix, size_t bucket) {
-  static_assert(
-      base::size(kLiveTabCountBucketMins) == kNumLiveTabCountBuckets,
-      "kLiveTabCountBucketMins must have kNumLiveTabCountBuckets elements.");
-  static_assert(
-      base::size(kLiveTabCountBucketNames) == kNumLiveTabCountBuckets,
-      "kLiveTabCountBucketNames must have kNumLiveTabCountBuckets elements.");
-  DCHECK_LT(bucket, kNumLiveTabCountBuckets);
-  DCHECK(prefix.length());
-  return prefix + kLiveTabCountBucketNames[bucket];
-}
-
-size_t BucketForLiveTabCount(size_t num_live_tabs) {
-  for (size_t bucket = 0; bucket < kNumLiveTabCountBuckets; bucket++) {
-    if (internal::IsInBucket(num_live_tabs, bucket))
-      return bucket;
-  }
-  // There should be a bucket for any number of tabs >= 0.
-  NOTREACHED();
-  return kNumLiveTabCountBuckets;
-}
-
-namespace internal {
-
-size_t BucketMin(size_t bucket) {
-  DCHECK_LT(bucket, kNumLiveTabCountBuckets);
-  return kLiveTabCountBucketMins[bucket];
-}
-
-size_t BucketMax(size_t bucket) {
-  DCHECK_LT(bucket, kNumLiveTabCountBuckets);
-  // The last bucket includes everything after the min bucket value.
-  if (bucket == kNumLiveTabCountBuckets - 1)
-    return std::numeric_limits<size_t>::max();
-  return kLiveTabCountBucketMins[bucket + 1] - 1;
-}
-
-bool IsInBucket(size_t num_live_tabs, size_t bucket) {
-  DCHECK_LT(bucket, kNumLiveTabCountBuckets);
-  return num_live_tabs >= BucketMin(bucket) &&
-         num_live_tabs <= BucketMax(bucket);
-}
-
-}  // namespace internal
-
-}  // namespace live_tab_count_metrics
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics.h b/components/live_tab_count_metrics/live_tab_count_metrics.h
deleted file mode 100644
index a990d0c..0000000
--- a/components/live_tab_count_metrics/live_tab_count_metrics.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_
-#define COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_
-
-#include <string>
-
-#include "base/component_export.h"
-
-// This namespace contains functions for creating histograms bucketed by number
-// of live tabs.
-//
-// All bucket parameters --- number of buckets, bucket sizes, bucket names ---
-// are determined at compile time, and these methods are safe to call from any
-// thread.
-//
-// A typical example of creating a histogram bucketed by live tab count using
-// STATIC_HISTOGRAM_POINTER_GROUP looks something like this:
-//  const size_t live_tab_count = GetLiveTabCount();
-//  const size_t bucket =
-//      live_tab_count_metrics::BucketForLiveTabCount(live_tab_count);
-//  STATIC_HISTOGRAM_POINTER_GROUP(
-//      live_tab_count_metrics::HistogramName(constant_histogram_prefix,
-//                                            bucket),
-//      static_cast<int>(bucket),
-//      static_cast<int>(live_tab_count_metrics::kNumLiveTabCountBuckets),
-//      Add(sample),
-//      base::Histogram::FactoryGet(
-//          live_tab_count_metrics::HistogramName(constant_histogram_prefix,
-//                                                bucket),
-//          MINIMUM_SAMPLE, MAXIMUM_SAMPLE, BUCKET_COUNT,
-//          base::HistogramBase::kUmaTargetedHistogramFlag));
-//  }
-namespace live_tab_count_metrics {
-
-// |kNumLiveTabCountBuckets| is used in various constexpr arrays and as a bound
-// on the histogram array when using STATIC_HISTOGRAM_POINTER_GROUP. This value
-// must be equal to the length of the array of live tab count bucket min values
-// (|kLiveTabCountBucketMins|) and the array of bucket names
-// (|kLiveTabCountBucketNames|) found in the corresponding .cc file.
-constexpr size_t kNumLiveTabCountBuckets = 8;
-
-// Returns the histogram name for |bucket|. The histogram name is the
-// concatenation of |prefix| and the name corresponding to |bucket|, which is of
-// the form |prefix| + ".ByLiveTabCount." + <BucketRangeText>, where
-// <BucketRangeText> is a string describing the bucket range, e.g. "1Tab",
-// "3To4Tabs", etc. See |kLiveTabCountBucketNames| for all of the bucket names.
-// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|).
-COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS)
-std::string HistogramName(const std::string prefix, size_t bucket);
-
-// Return the bucket index for the |num_live_tabs|.
-COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS)
-size_t BucketForLiveTabCount(size_t num_live_tabs);
-
-// These are exposed for unit tests.
-namespace internal {
-
-// Returns the number of tabs corresponding to the minimum value of |bucket|.
-// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|).
-COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS)
-size_t BucketMin(size_t bucket);
-
-// Returns the number of tabs corresponding to the maximum value of |bucket|.
-// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|).
-COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS)
-size_t BucketMax(size_t bucket);
-
-// Returns true if |num_live_tabs| falls within |bucket|.
-// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|).
-COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS)
-bool IsInBucket(size_t num_live_tabs, size_t bucket);
-
-}  // namespace internal
-
-}  // namespace live_tab_count_metrics
-
-#endif  // COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc b/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc
deleted file mode 100644
index 56b1337..0000000
--- a/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/live_tab_count_metrics/live_tab_count_metrics.h"
-
-#include <algorithm>
-#include <array>
-#include <string>
-
-#include "base/containers/flat_map.h"
-#include "base/metrics/histogram.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/test/metrics/histogram_tester.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace live_tab_count_metrics {
-
-namespace {
-
-// For unit tests, we create bucketed test enumeration histograms with a prefix
-// of |kTestMetricPrefix| and a range of [0, |kMaxLiveTabCount|]. We want good
-// test coverage in all buckets, but the overflow live tab count bucket is
-// unbounded, so we cap the max number of live tabs at a reasonable value.
-constexpr char kTestMetricPrefix[] = "TestMetric";
-constexpr size_t kMaxLiveTabCount = 400;
-
-// LiveTabCounts is a map of a live tab count to expected histogram counts,
-// which is used to validate the test histogram.
-//
-// When we record a sample for test metrics, the number of live tabs is used as
-// the bucket in the enumeration histogram. For example, if we record a sample
-// with the number of live tabs equal to 10, we use 10 as the sample in the
-// enumeration histogram. Suppose we have LiveTabCounts map, |expected_counts|.
-// When recording the metric, we would increment the value of
-// expected_counts[10]. |expected_counts| is then used to validate the
-// histogram.
-using LiveTabCounts = base::flat_map<size_t, size_t>;
-
-// Array of LiveTabCounts, indexed by live tab count bucket.
-//
-// Each value in this array corresponds to the expected counts for a different
-// histogram, i.e. the histogram corresponding to the live tab count bucket
-// equal to the array index. For example, given a
-// HistogramCountsByLiveTabCountBucket array, |expected_counts_by_bucket|,
-// expected_counts_by_bucket[1] are the expected counts for the histogram
-// corresponding to live tab count bucket 1.
-using HistogramCountsByLiveTabCountBucket =
-    std::array<LiveTabCounts, kNumLiveTabCountBuckets>;
-
-}  // namespace
-
-class LiveTabCountMetricsTest : public testing::Test {
- public:
-  LiveTabCountMetricsTest() = default;
-  ~LiveTabCountMetricsTest() override = default;
-
-  void RecordLiveTabCountMetric(size_t live_tab_count) {
-    EXPECT_LE(live_tab_count, kMaxLiveTabCount);
-    const size_t bucket = BucketForLiveTabCount(live_tab_count);
-    STATIC_HISTOGRAM_POINTER_GROUP(
-        HistogramName(kTestMetricPrefix, bucket), static_cast<int>(bucket),
-        static_cast<int>(kNumLiveTabCountBuckets), Add(live_tab_count),
-        base::Histogram::FactoryGet(
-            HistogramName(kTestMetricPrefix, bucket), 1, kMaxLiveTabCount,
-            kMaxLiveTabCount + 1,
-            base::HistogramBase::kUmaTargetedHistogramFlag));
-  }
-
- protected:
-  void ValidateHistograms(
-      const HistogramCountsByLiveTabCountBucket& expected_counts) {
-    for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
-      size_t expected_total_count = 0;
-      std::string histogram_name = HistogramName(kTestMetricPrefix, bucket);
-      for (const auto& live_tab_counts : expected_counts[bucket]) {
-        histogram_tester_.ExpectBucketCount(
-            histogram_name, live_tab_counts.first, live_tab_counts.second);
-        expected_total_count += live_tab_counts.second;
-      }
-      histogram_tester_.ExpectTotalCount(histogram_name, expected_total_count);
-    }
-  }
-
- private:
-  base::HistogramTester histogram_tester_;
-};
-
-TEST_F(LiveTabCountMetricsTest, HistogramNames) {
-  // Testing with hard-coded strings to check that the concatenated names
-  // produced by HistogramName() are indeed what we expect. If the bucket ranges
-  // change, these strings will need to as well.
-  const std::string kTestMetricNameBucket1("TestMetric.ByLiveTabCount.1Tab");
-  const std::string kTestMetricNameBucket3(
-      "TestMetric.ByLiveTabCount.3To4Tabs");
-  EXPECT_EQ(kTestMetricNameBucket1, HistogramName(kTestMetricPrefix, 1));
-  EXPECT_EQ(kTestMetricNameBucket3, HistogramName(kTestMetricPrefix, 3));
-}
-
-TEST_F(LiveTabCountMetricsTest, RecordMetricsForBucketLimits) {
-  // For each bucket, simulate recording metrics with the live tab count equal
-  // to the lower and upper bounds of each bucket. For the last bucket, we use
-  // an artificial upper bound since that bucket has no practical bound (max
-  // size_t value) and do not want to create a histogram with that many buckets.
-  HistogramCountsByLiveTabCountBucket expected_counts;
-  for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
-    size_t num_live_tabs = internal::BucketMin(bucket);
-    RecordLiveTabCountMetric(num_live_tabs);
-    // Expect a count of 1 for the |num_live_tabs| case in the histogram
-    // corresponding to |bucket|.
-    expected_counts[bucket].emplace(num_live_tabs, 1);
-
-    num_live_tabs = std::min(internal::BucketMax(bucket), kMaxLiveTabCount);
-    RecordLiveTabCountMetric(num_live_tabs);
-    // Ensure that we aren't setting the artificial maximum for the last bucket
-    // too low.
-    EXPECT_LE(internal::BucketMin(bucket), num_live_tabs);
-
-    auto iter = expected_counts[bucket].find(num_live_tabs);
-    if (iter != expected_counts[bucket].end()) {
-      // If the lower bound for |bucket| is the same as the upper bound, we've
-      // already recorded a value for |num_live_tabs| in |bucket|.
-      EXPECT_EQ(iter->second, 1u);
-      ++iter->second;
-    } else {
-      expected_counts[bucket].emplace(num_live_tabs, 1);
-    }
-
-    ValidateHistograms(expected_counts);
-  }
-}
-
-TEST_F(LiveTabCountMetricsTest, RecordMetricsForAllBucketValues) {
-  // For each bucket, simulate recording metrics with the live tab count equal
-  // to each value in the bucket range, i.e. from BucketMin() to BucketMax().
-  // For the last bucket, we use an artificial upper bound since that bucket has
-  // no practical bound (max size_t value) and do not want to create a histogram
-  // with that many buckets.
-  HistogramCountsByLiveTabCountBucket expected_counts;
-  for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
-    size_t num_live_tabs_lower_bound = internal::BucketMin(bucket);
-    size_t num_live_tabs_upper_bound =
-        std::min(internal::BucketMax(bucket), kMaxLiveTabCount);
-    EXPECT_LE(num_live_tabs_lower_bound, num_live_tabs_upper_bound);
-    for (size_t live_tab_count = num_live_tabs_lower_bound;
-         live_tab_count <= num_live_tabs_upper_bound; live_tab_count++) {
-      RecordLiveTabCountMetric(live_tab_count);
-      expected_counts[bucket].emplace(live_tab_count, 1);
-    }
-    ValidateHistograms(expected_counts);
-  }
-}
-
-TEST_F(LiveTabCountMetricsTest, BucketsDoNotOverlap) {
-  // For any number of tabs >= 0, the tab should belong to exactly one bucket.
-  for (size_t tab_count = 0; tab_count <= kMaxLiveTabCount; tab_count++) {
-    bool has_bucket_for_tab_count = false;
-    for (size_t bucket = 0; bucket < kNumLiveTabCountBuckets; bucket++) {
-      if (internal::IsInBucket(tab_count, bucket)) {
-        EXPECT_FALSE(has_bucket_for_tab_count);
-        has_bucket_for_tab_count = true;
-      }
-    }
-    EXPECT_TRUE(has_bucket_for_tab_count);
-  }
-}
-
-}  // namespace live_tab_count_metrics
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic.cc b/components/open_from_clipboard/clipboard_recent_content_generic.cc
index 0ca6a01..5fab0b9 100644
--- a/components/open_from_clipboard/clipboard_recent_content_generic.cc
+++ b/components/open_from_clipboard/clipboard_recent_content_generic.cc
@@ -30,7 +30,7 @@
   // Get and clean up the clipboard before processing.
   std::string gurl_string;
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
-  clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &gurl_string);
+  clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &gurl_string);
   base::TrimWhitespaceASCII(gurl_string, base::TrimPositions::TRIM_ALL,
                             &gurl_string);
 
@@ -48,7 +48,7 @@
     // Fall back to unicode / UTF16, as some URLs may use international domain
     // names, not punycode.
     base::string16 gurl_string16;
-    clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &gurl_string16);
+    clipboard->ReadText(ui::ClipboardType::kCopyPaste, &gurl_string16);
     base::TrimWhitespace(gurl_string16, base::TrimPositions::TRIM_ALL,
                          &gurl_string16);
     if (gurl_string16.find_first_of(base::kWhitespaceUTF16) !=
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 3f07770..49dc25d 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -3688,7 +3688,7 @@
             'properties': {
               'installation_mode': {
                 'type': 'string',
-                'enum': ['blocked', 'allowed']
+                'enum': ['blocked', 'allowed', 'removed']
               },
               'blocked_permissions': {
                 '$ref': 'ListOfPermissions',
@@ -3705,7 +3705,7 @@
             'properties': {
               'installation_mode': {
                 'type': 'string',
-                'enum': ['blocked', 'allowed']
+                'enum': ['blocked', 'allowed', 'removed']
               },
               'blocked_permissions': {
                 '$ref': 'ListOfPermissions',
diff --git a/components/previews/content/previews_optimization_guide.cc b/components/previews/content/previews_optimization_guide.cc
index 59ee2db..6599f60 100644
--- a/components/previews/content/previews_optimization_guide.cc
+++ b/components/previews/content/previews_optimization_guide.cc
@@ -202,6 +202,10 @@
   DCHECK(ui_task_runner_->BelongsToCurrentThread());
 
   if (type == PreviewsType::LITE_PAGE_REDIRECT) {
+    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kIgnoreLitePageRedirectOptimizationBlacklist)) {
+      return false;
+    }
 
     if (!hints_)
       return true;
diff --git a/components/live_tab_count_metrics/BUILD.gn b/components/tab_count_metrics/BUILD.gn
similarity index 61%
rename from components/live_tab_count_metrics/BUILD.gn
rename to components/tab_count_metrics/BUILD.gn
index 5868db2..84b24ff 100644
--- a/components/live_tab_count_metrics/BUILD.gn
+++ b/components/tab_count_metrics/BUILD.gn
@@ -2,13 +2,13 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-component("live_tab_count_metrics") {
+component("tab_count_metrics") {
   sources = [
-    "live_tab_count_metrics.cc",
-    "live_tab_count_metrics.h",
+    "tab_count_metrics.cc",
+    "tab_count_metrics.h",
   ]
 
-  defines = [ "IS_LIVE_TAB_COUNT_METRICS_IMPL" ]
+  defines = [ "IS_TAB_COUNT_METRICS_IMPL" ]
 
   public_deps = [
     "//base",
@@ -18,11 +18,11 @@
 source_set("unit_tests") {
   testonly = true
   sources = [
-    "live_tab_count_metrics_unittest.cc",
+    "tab_count_metrics_unittest.cc",
   ]
 
   deps = [
-    ":live_tab_count_metrics",
+    ":tab_count_metrics",
     "//base/test:test_support",
     "//testing/gtest",
   ]
diff --git a/components/live_tab_count_metrics/OWNERS b/components/tab_count_metrics/OWNERS
similarity index 100%
rename from components/live_tab_count_metrics/OWNERS
rename to components/tab_count_metrics/OWNERS
diff --git a/components/tab_count_metrics/README b/components/tab_count_metrics/README
new file mode 100644
index 0000000..f9a70a0
--- /dev/null
+++ b/components/tab_count_metrics/README
@@ -0,0 +1,21 @@
+This directory contains process-independent code for recording metrics bucketed
+by the number of tabs or the number of live tabs.
+
+We consider a tab to be alive (i.e. a live tab) if it is a UI tab (e.g. in a
+tabstrip, as opposed to a prerenderer), and it has not been discarded and has
+not crashed. Tabs can be discarded on desktop by TabManager to conserve
+resources, and tabs crash when the corresponding renderer process is killed,
+e.g. due to limited resources (OOM).
+
+Clients of this component must be able to count live tabs. The interface this
+component exposes provides a way to help create metrics bucketed by live/ or all
+tab count in a consistent manner, but this is dependent on the client knowing
+the count. The code in this directory is meant to be shared between processes,
+and so we do not count tabs here. The tab count is a browser concept, and it can
+be computed there. To record metrics bucketed by tab counts in processes other
+than the browser, the tab count would need to be plumbed out of the browser. In
+some cases this may be more efficient than plumbing metrics data out of the
+process to the browser, which is an alternative.
+
+This component should not have any dependencies other than //base as it
+should be able to be used from any other place.
diff --git a/components/tab_count_metrics/tab_count_metrics.cc b/components/tab_count_metrics/tab_count_metrics.cc
new file mode 100644
index 0000000..068a0b3
--- /dev/null
+++ b/components/tab_count_metrics/tab_count_metrics.cc
@@ -0,0 +1,86 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/tab_count_metrics/tab_count_metrics.h"
+
+#include <limits>
+
+#include "base/logging.h"
+#include "base/stl_util.h"
+
+namespace tab_count_metrics {
+
+// These values represent the lower bound for each bucket, and define the
+// tab count buckets. The final bucket has no upper bound, and each other
+// bucket, i, is bounded above by the lower bound of bucket i + 1.
+//
+// The buckets were determined from the Tabs.MaxTabsInADay histogram,
+// approximating the 25th, 50th, 75th, 95th, and 99th percentiles, but with the
+// single and zero tab cases separated.
+//
+// If adding or removing a bucket, update |kNumTabCountBuckets|,
+// |kTabCountBucketMins|, and |kTabCountBucketNames|. If adding,
+// removing, or changing bucket ranges, the existing metrics that use these
+// functions for emitting histograms should be marked as obsolete, and new
+// metrics should be created. This can be accomplished by versioning
+// |kTabCountBucketNames|, e.g.  ".ByTabCount2.0Tabs", etc., and
+// updating the histogram suffixes section of histograms.xml, creating a new
+// entry for the new suffixes and marking the old suffixes obsolete.
+constexpr size_t kTabCountBucketMins[] = {0, 1, 2, 3, 5, 8, 20, 40};
+
+constexpr const char* kTabBucketNamePrefix[]{".ByTabCount", ".ByLiveTabCount"};
+
+// Text for the tab count portion of metric names. These need to be kept
+// in sync with |kTabCountBucketMins|.
+constexpr const char* kTabCountBucketNames[]{
+    ".0Tabs",    ".1Tab",      ".2Tabs",      ".3To4Tabs",
+    ".5To7Tabs", ".8To19Tabs", ".20To39Tabs", ".40OrMoreTabs"};
+
+std::string HistogramName(const std::string prefix,
+                          bool live_tabs_only,
+                          size_t bucket) {
+  DCHECK(live_tabs_only);
+  static_assert(base::size(kTabCountBucketMins) == kNumTabCountBuckets,
+                "kTabCountBucketMins must have kNumTabCountBuckets elements.");
+  static_assert(base::size(kTabCountBucketNames) == kNumTabCountBuckets,
+                "kTabCountBucketNames must have kNumTabCountBuckets elements.");
+  DCHECK_LT(bucket, kNumTabCountBuckets);
+  DCHECK(prefix.length());
+  return prefix + kTabBucketNamePrefix[live_tabs_only ? 1u : 0u] +
+         kTabCountBucketNames[bucket];
+}
+
+size_t BucketForTabCount(size_t num_tabs) {
+  for (size_t bucket = 0; bucket < kNumTabCountBuckets; bucket++) {
+    if (internal::IsInBucket(num_tabs, bucket))
+      return bucket;
+  }
+  // There should be a bucket for any number of tabs >= 0.
+  NOTREACHED();
+  return kNumTabCountBuckets;
+}
+
+namespace internal {
+
+size_t BucketMin(size_t bucket) {
+  DCHECK_LT(bucket, kNumTabCountBuckets);
+  return kTabCountBucketMins[bucket];
+}
+
+size_t BucketMax(size_t bucket) {
+  DCHECK_LT(bucket, kNumTabCountBuckets);
+  // The last bucket includes everything after the min bucket value.
+  if (bucket == kNumTabCountBuckets - 1)
+    return std::numeric_limits<size_t>::max();
+  return kTabCountBucketMins[bucket + 1] - 1;
+}
+
+bool IsInBucket(size_t num_tabs, size_t bucket) {
+  DCHECK_LT(bucket, kNumTabCountBuckets);
+  return num_tabs >= BucketMin(bucket) && num_tabs <= BucketMax(bucket);
+}
+
+}  // namespace internal
+
+}  // namespace tab_count_metrics
diff --git a/components/tab_count_metrics/tab_count_metrics.h b/components/tab_count_metrics/tab_count_metrics.h
new file mode 100644
index 0000000..5a573d8
--- /dev/null
+++ b/components/tab_count_metrics/tab_count_metrics.h
@@ -0,0 +1,82 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_
+#define COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_
+
+#include <string>
+
+#include "base/component_export.h"
+
+// This namespace contains functions for creating histograms bucketed by number
+// of tabs.
+//
+// All bucket parameters --- number of buckets, bucket sizes, bucket names ---
+// are determined at compile time, and these methods are safe to call from any
+// thread.
+//
+// A typical example of creating a histogram bucketed by tab count using
+// STATIC_HISTOGRAM_POINTER_GROUP looks something like this:
+//  const size_t live_tab_count = GetLiveTabCount();
+//  const size_t bucket =
+//      tab_count_metrics::BucketForTabCount(live_tab_count);
+//  STATIC_HISTOGRAM_POINTER_GROUP(
+//      tab_count_metrics::HistogramName(constant_histogram_prefix,
+//                                       live_tabs_only, bucket),
+//      static_cast<int>(bucket),
+//      static_cast<int>(tab_count_metrics::kNumTabCountBuckets),
+//      Add(sample),
+//      base::Histogram::FactoryGet(
+//          tab_count_metrics::HistogramName(constant_histogram_prefix,
+//                                           live_tabs_only, bucket),
+//          MINIMUM_SAMPLE, MAXIMUM_SAMPLE, BUCKET_COUNT,
+//          base::HistogramBase::kUmaTargetedHistogramFlag));
+//  }
+namespace tab_count_metrics {
+
+// |kNumTabCountBuckets| is used in various constexpr arrays and as a bound
+// on the histogram array when using STATIC_HISTOGRAM_POINTER_GROUP. This value
+// must be equal to the length of the array of tab count bucket min values
+// (|kTabCountBucketMins|) and the array of bucket names
+// (|kTabCountBucketNames|) found in the corresponding .cc file.
+constexpr size_t kNumTabCountBuckets = 8;
+
+// Returns the histogram name for |bucket|. The histogram name is the
+// concatenation of |prefix| and the name corresponding to |bucket|, which is of
+// the form |prefix| + ".ByTabCount."/".ByLiveTabCount." + <BucketRangeText>,
+// where <BucketRangeText> is a string describing the bucket range, e.g. "1Tab",
+// "3To4Tabs", etc. See |kTabCountBucketNames| for all of the bucket names.
+// |bucket| must be in the interval [0, |kNumTabCountBuckets|).
+COMPONENT_EXPORT(TAB_COUNT_METRICS)
+std::string HistogramName(const std::string prefix,
+                          bool live_tabs_only,
+                          size_t bucket);
+
+// Return the bucket index for the |num_tabs|.
+COMPONENT_EXPORT(TAB_COUNT_METRICS)
+size_t BucketForTabCount(size_t num_tabs);
+
+// These are exposed for unit tests.
+namespace internal {
+
+// Returns the number of tabs corresponding to the minimum value of |bucket|.
+// |bucket| must be in the interval [0, |kNumTabCountBuckets|).
+COMPONENT_EXPORT(TAB_COUNT_METRICS)
+size_t BucketMin(size_t bucket);
+
+// Returns the number of tabs corresponding to the maximum value of |bucket|.
+// |bucket| must be in the interval [0, |kNumTabCountBuckets|).
+COMPONENT_EXPORT(TAB_COUNT_METRICS)
+size_t BucketMax(size_t bucket);
+
+// Returns true if |num_tabs| falls within |bucket|.
+// |bucket| must be in the interval [0, |kNumTabCountBuckets|).
+COMPONENT_EXPORT(TAB_COUNT_METRICS)
+bool IsInBucket(size_t num_tabs, size_t bucket);
+
+}  // namespace internal
+
+}  // namespace tab_count_metrics
+
+#endif  // COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_
diff --git a/components/tab_count_metrics/tab_count_metrics_unittest.cc b/components/tab_count_metrics/tab_count_metrics_unittest.cc
new file mode 100644
index 0000000..987452dc
--- /dev/null
+++ b/components/tab_count_metrics/tab_count_metrics_unittest.cc
@@ -0,0 +1,173 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/tab_count_metrics/tab_count_metrics.h"
+
+#include <algorithm>
+#include <array>
+#include <string>
+
+#include "base/containers/flat_map.h"
+#include "base/metrics/histogram.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace tab_count_metrics {
+
+namespace {
+
+// For unit tests, we create bucketed test enumeration histograms with a prefix
+// of |kTestMetricPrefix| and a range of [0, |kMaxTabCount|]. We want good
+// test coverage in all buckets, but the overflow  tab count bucket is
+// unbounded, so we cap the max number of  tabs at a reasonable value.
+constexpr char kTestMetricPrefix[] = "TestMetric";
+constexpr size_t kMaxTabCount = 400;
+
+// TabCounts is a map of a tab count to expected histogram counts,
+// which is used to validate the test histogram.
+//
+// When we record a sample for test metrics, the number of  tabs is used as
+// the bucket in the enumeration histogram. For example, if we record a sample
+// with the number of  tabs equal to 10, we use 10 as the sample in the
+// enumeration histogram. Suppose we have TabCounts map, |expected_counts|.
+// When recording the metric, we would increment the value of
+// expected_counts[10]. |expected_counts| is then used to validate the
+// histogram.
+using TabCounts = base::flat_map<size_t, size_t>;
+
+// Array of TabCounts, indexed by tab count bucket.
+//
+// Each value in this array corresponds to the expected counts for a different
+// histogram, i.e. the histogram corresponding to the live tab count bucket
+// equal to the array index. For example, given a
+// HistogramCountsByTabCountBucket array, |expected_counts_by_bucket|,
+// expected_counts_by_bucket[1] are the expected counts for the histogram
+// corresponding to live tab count bucket 1.
+using HistogramCountsByTabCountBucket =
+    std::array<TabCounts, kNumTabCountBuckets>;
+
+}  // namespace
+
+class TabCountMetricsTest : public testing::Test {
+ public:
+  TabCountMetricsTest() = default;
+  ~TabCountMetricsTest() override = default;
+
+  void RecordTabCountMetric(size_t tab_count) {
+    EXPECT_LE(tab_count, kMaxTabCount);
+    const size_t bucket = BucketForTabCount(tab_count);
+    STATIC_HISTOGRAM_POINTER_GROUP(
+        HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, bucket),
+        static_cast<int>(bucket), static_cast<int>(kNumTabCountBuckets),
+        Add(tab_count),
+        base::Histogram::FactoryGet(
+            HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true,
+                          bucket),
+            1, kMaxTabCount, kMaxTabCount + 1,
+            base::HistogramBase::kUmaTargetedHistogramFlag));
+  }
+
+ protected:
+  void ValidateHistograms(
+      const HistogramCountsByTabCountBucket& expected_counts) {
+    for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
+      size_t expected_total_count = 0;
+      std::string histogram_name =
+          HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, bucket);
+      for (const auto& tab_counts : expected_counts[bucket]) {
+        histogram_tester_.ExpectBucketCount(histogram_name, tab_counts.first,
+                                            tab_counts.second);
+        expected_total_count += tab_counts.second;
+      }
+      histogram_tester_.ExpectTotalCount(histogram_name, expected_total_count);
+    }
+  }
+
+ private:
+  base::HistogramTester histogram_tester_;
+};
+
+TEST_F(TabCountMetricsTest, HistogramNames) {
+  // Testing with hard-coded strings to check that the concatenated names
+  // produced by HistogramName() are indeed what we expect. If the bucket ranges
+  // change, these strings will need to as well.
+  const std::string kTestMetricNameBucket1("TestMetric.ByLiveTabCount.1Tab");
+  const std::string kTestMetricNameBucket3(
+      "TestMetric.ByLiveTabCount.3To4Tabs");
+  EXPECT_EQ(kTestMetricNameBucket1,
+            HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, 1));
+  EXPECT_EQ(kTestMetricNameBucket3,
+            HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, 3));
+}
+
+TEST_F(TabCountMetricsTest, RecordMetricsForBucketLimits) {
+  // For each bucket, simulate recording metrics with the tab count equal
+  // to the lower and upper bounds of each bucket. For the last bucket, we use
+  // an artificial upper bound since that bucket has no practical bound (max
+  // size_t value) and do not want to create a histogram with that many buckets.
+  HistogramCountsByTabCountBucket expected_counts;
+  for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
+    size_t num_tabs = internal::BucketMin(bucket);
+    RecordTabCountMetric(num_tabs);
+    // Expect a count of 1 for the |num_tabs| case in the histogram
+    // corresponding to |bucket|.
+    expected_counts[bucket].emplace(num_tabs, 1);
+
+    num_tabs = std::min(internal::BucketMax(bucket), kMaxTabCount);
+    RecordTabCountMetric(num_tabs);
+    // Ensure that we aren't setting the artificial maximum for the last bucket
+    // too low.
+    EXPECT_LE(internal::BucketMin(bucket), num_tabs);
+
+    auto iter = expected_counts[bucket].find(num_tabs);
+    if (iter != expected_counts[bucket].end()) {
+      // If the lower bound for |bucket| is the same as the upper bound, we've
+      // already recorded a value for |num_tabs| in |bucket|.
+      EXPECT_EQ(iter->second, 1u);
+      ++iter->second;
+    } else {
+      expected_counts[bucket].emplace(num_tabs, 1);
+    }
+
+    ValidateHistograms(expected_counts);
+  }
+}
+
+TEST_F(TabCountMetricsTest, RecordMetricsForAllBucketValues) {
+  // For each bucket, simulate recording metrics with the tab count equal
+  // to each value in the bucket range, i.e. from BucketMin() to BucketMax().
+  // For the last bucket, we use an artificial upper bound since that bucket has
+  // no practical bound (max size_t value) and do not want to create a histogram
+  // with that many buckets.
+  HistogramCountsByTabCountBucket expected_counts;
+  for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
+    size_t num_tabs_lower_bound = internal::BucketMin(bucket);
+    size_t num_tabs_upper_bound =
+        std::min(internal::BucketMax(bucket), kMaxTabCount);
+    EXPECT_LE(num_tabs_lower_bound, num_tabs_upper_bound);
+    for (size_t tab_count = num_tabs_lower_bound;
+         tab_count <= num_tabs_upper_bound; tab_count++) {
+      RecordTabCountMetric(tab_count);
+      expected_counts[bucket].emplace(tab_count, 1);
+    }
+    ValidateHistograms(expected_counts);
+  }
+}
+
+TEST_F(TabCountMetricsTest, BucketsDoNotOverlap) {
+  // For any number of tabs >= 0, the tab should belong to exactly one bucket.
+  for (size_t tab_count = 0; tab_count <= kMaxTabCount; tab_count++) {
+    bool has_bucket_for_tab_count = false;
+    for (size_t bucket = 0; bucket < kNumTabCountBuckets; bucket++) {
+      if (internal::IsInBucket(tab_count, bucket)) {
+        EXPECT_FALSE(has_bucket_for_tab_count);
+        has_bucket_for_tab_count = true;
+      }
+    }
+    EXPECT_TRUE(has_bucket_for_tab_count);
+  }
+}
+
+}  // namespace tab_count_metrics
diff --git a/components/url_formatter/idn_spoof_checker.cc b/components/url_formatter/idn_spoof_checker.cc
index 3979bf1..eafc6bb 100644
--- a/components/url_formatter/idn_spoof_checker.cc
+++ b/components/url_formatter/idn_spoof_checker.cc
@@ -305,42 +305,61 @@
   icu::RegexMatcher* dangerous_pattern =
       reinterpret_cast<icu::RegexMatcher*>(DangerousPatternTLS().Get());
   if (!dangerous_pattern) {
-    // Disallow the katakana no, so, zo, or n, as they may be mistaken for
-    // slashes when they're surrounded by non-Japanese scripts (i.e. scripts
-    // other than Katakana, Hiragana or Han). If {no, so, zo, n} next to a
-    // non-Japanese script on either side is disallowed, legitimate cases like
-    // '{vitamin in Katakana}b6' are blocked. Note that trying to block those
-    // characters when used alone as a label is futile because those cases
-    // would not reach here.
-    // Also disallow what used to be blocked by mixed-script-confusable (MSC)
-    // detection. ICU 58 does not detect MSC any more for a single input string.
-    // See http://bugs.icu-project.org/trac/ticket/12823 .
-    // TODO(jshin): adjust the pattern once the above ICU bug is fixed.
-    // - Disallow U+30FB (Katakana Middle Dot) and U+30FC (Hiragana-Katakana
-    //   Prolonged Sound) used out-of-context.
-    // - Dislallow U+30FD/E (Katakana iteration mark/voiced iteration mark)
-    //   unless they're preceded by a Katakana.
-    // - Disallow three Hiragana letters (U+307[8-A]) or Katakana letters
-    //   (U+30D[8-A]) that look exactly like each other when they're used in a
-    //   label otherwise entirely in Katakna or Hiragana.
-    // - Disallow combining diacritical mark (U+0300-U+0339) after a non-LGC
-    //   character. Other combining diacritical marks are not in the allowed
-    //   character set.
-    // - Disallow dotless i (U+0131) followed by a combining mark.
-    // - Disallow U+0307 (dot above) after 'i', 'j', 'l' or dotless i (U+0131).
-    //   Dotless j (U+0237) is not in the allowed set to begin with.
+    // The parentheses in the below strings belong to the raw string sequence
+    // R("..."). They are NOT part of the regular expression. Each sub
+    // regex is OR'ed with the | operator.
     dangerous_pattern = new icu::RegexMatcher(
         icu::UnicodeString(
+            // Disallow the katakana no (U+30ce), so (U+30bd), zo (U+30be), or
+            // n (U+30f3), as they may be mistaken for slashes when they're
+            // surrounded by non-Japanese scripts (i.e. scripts other than
+            // Katakana, Hiragana or Han). If {no, so, zo, n} next to a
+            // non-Japanese script on either side is disallowed, legitimate
+            // cases like '{vitamin in Katakana}b6' are blocked. Note that
+            // trying to block those characters when used alone as a label is
+            // futile because those cases would not reach here. Also disallow
+            // what used to be blocked by mixed-script-confusable (MSC)
+            // detection. ICU 58 does not detect MSC any more for a single input
+            // string. See http://bugs.icu-project.org/trac/ticket/12823 .
+            // TODO(jshin): adjust the pattern once the above ICU bug is fixed.
             R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}])"
             R"([\u30ce\u30f3\u30bd\u30be])"
             R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}]|)"
-            R"([^\p{scx=kana}\p{scx=hira}]\u30fc|^\u30fc|)"
+
+            // Disallow U+30FD (Katakana iteration mark) and U+30FE (Katakana
+            // voiced iteration mark) unless they're preceded by a Katakana.
             R"([^\p{scx=kana}][\u30fd\u30fe]|^[\u30fd\u30fe]|)"
+
+            // Disallow three Hiragana letters (U+307[8-A]) or Katakana letters
+            // (U+30D[8-A]) that look exactly like each other when they're used
+            // in a label otherwise entirely in Katakana or Hiragana.
             R"(^[\p{scx=kana}]+[\u3078-\u307a][\p{scx=kana}]+$|)"
             R"(^[\p{scx=hira}]+[\u30d8-\u30da][\p{scx=hira}]+$|)"
+
+            // Disallow U+30FB (Katakana Middle Dot) and U+30FC (Hiragana-
+            // Katakana Prolonged Sound) used out-of-context.
+            R"([^\p{scx=kana}\p{scx=hira}]\u30fc|^\u30fc|)"
             R"([a-z]\u30fb|\u30fb[a-z]|)"
+
+            // Disallow U+4E00 (CJK unified ideograph) and U+3127 (Bopomofo
+            // Letter I) unless they are next to Hiragana, Katagana or Han.
+            // U+2F00 (Kangxi Radical One) is similar, but it's normalized to
+            // U+4E00 so it's not explicitly checked here.
+            R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}])"
+            R"([\u4e00\u3127])"
+            R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}]|)"
+
+            // Disallow combining diacritical mark (U+0300-U+0339) after a
+            // non-LGC character. Other combining diacritical marks are not in
+            // the allowed character set.
             R"([^\p{scx=latn}\p{scx=grek}\p{scx=cyrl}][\u0300-\u0339]|)"
+
+            // Disallow dotless i (U+0131) followed by a combining mark.
             R"(\u0131[\u0300-\u0339]|)"
+
+            // Disallow U+0307 (dot above) after 'i', 'j', 'l' or dotless i
+            // (U+0131). Dotless j (U+0237) is not in the allowed set to begin
+            // with.
             R"([ijl]\u0307)",
             -1, US_INV),
         0, status);
@@ -355,8 +374,9 @@
   for (const std::string& skeleton : GetSkeletons(hostname)) {
     DCHECK(!skeleton.empty());
     std::string matching_top_domain = LookupSkeletonInTopDomains(skeleton);
-    if (!matching_top_domain.empty())
+    if (!matching_top_domain.empty()) {
       return matching_top_domain;
+    }
   }
   return std::string();
 }
diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc
index 383d2ec..3f7f0102 100644
--- a/components/url_formatter/url_formatter_unittest.cc
+++ b/components/url_formatter/url_formatter_unittest.cc
@@ -1033,6 +1033,17 @@
 
     // oĸ.com: Not a top domain, should be blocked because of Kra.
     {"xn--o-tka.com", L"o\x0138.com", false},
+
+    // U+4E00 and U+3127 should be blocked when next to non-CJK.
+    {"xn--ipaddress-w75n.com", L"ip一address.com", false},
+    {"xn--ipaddress-wx5h.com", L"ipㄧaddress.com", false},
+    // These are allowed because 一 is not immediately next to non-CJK.
+    {"xn--gamer-fg1hz05u.com", L"一生gamer.com", true},
+    {"xn--gamer-kg1hy05u.com", L"gamer生一.com", true},
+    {"xn--4gqz91g.com", L"一猫.com", true},
+    {"xn--4fkv10r.com", L"ㄧ猫.com", true},
+    // U+4E00 with another ideograph.
+    {"xn--4gqc.com", L"一丁.com", true},
 };
 
 struct AdjustOffsetCase {
diff --git a/components/viz/service/display/direct_renderer.cc b/components/viz/service/display/direct_renderer.cc
index 00a188f2..fd4dbff3 100644
--- a/components/viz/service/display/direct_renderer.cc
+++ b/components/viz/service/display/direct_renderer.cc
@@ -109,19 +109,17 @@
                                DisplayResourceProvider* resource_provider)
     : settings_(settings),
       output_surface_(output_surface),
-      resource_provider_(resource_provider),
-      overlay_processor_(std::make_unique<OverlayProcessor>(
-          output_surface->context_provider())) {}
+      resource_provider_(resource_provider) {}
 
 DirectRenderer::~DirectRenderer() = default;
 
 void DirectRenderer::Initialize() {
-  // Create overlay validator and set it. This would initialize the strategies
-  // on the validator as well.
+  // Create overlay validator based on the platform and set it on the newly
+  // created processor. This would initialize the strategies on the validator as
+  // well.
   gpu::SurfaceHandle surface_handle = output_surface_->GetSurfaceHandle();
-  overlay_processor_->SetOverlayCandidateValidator(
-      OverlayCandidateValidator::Create(
-          surface_handle, output_surface_->context_provider(), *settings_));
+  overlay_processor_ = OverlayProcessor::CreateOverlayProcessor(
+      output_surface_->context_provider(), surface_handle, *settings_);
 
   auto* context_provider = output_surface_->context_provider();
 
diff --git a/components/viz/service/display/gl_renderer_unittest.cc b/components/viz/service/display/gl_renderer_unittest.cc
index 50d2cf2..968012c 100644
--- a/components/viz/service/display/gl_renderer_unittest.cc
+++ b/components/viz/service/display/gl_renderer_unittest.cc
@@ -2175,8 +2175,12 @@
     }
   };
 
-  explicit TestOverlayProcessor(ContextProvider* context_provider)
-      : OverlayProcessor(context_provider) {}
+  explicit TestOverlayProcessor(
+      ContextProvider* context_provider,
+      std::unique_ptr<OverlayCandidateValidator> overlay_validator)
+      : OverlayProcessor(context_provider) {
+    SetOverlayCandidateValidator(std::move(overlay_validator));
+  }
   ~TestOverlayProcessor() override = default;
 
   const Validator* GetTestValidator() const {
@@ -2245,8 +2249,7 @@
   renderer.SetVisible(true);
 
   TestOverlayProcessor* processor = new TestOverlayProcessor(
-      output_surface->context_provider());
-  processor->SetOverlayCandidateValidator(
+      output_surface->context_provider(),
       std::make_unique<TestOverlayProcessor::Validator>());
   renderer.SetOverlayProcessor(processor);
   const TestOverlayProcessor::Validator* validator =
@@ -2843,9 +2846,8 @@
                           parent_resource_provider.get());
   renderer.Initialize();
   renderer.SetVisible(true);
-  TestOverlayProcessor* processor =
-      new TestOverlayProcessor(output_surface->context_provider());
-  processor->SetOverlayCandidateValidator(std::make_unique<DCLayerValidator>());
+  TestOverlayProcessor* processor = new TestOverlayProcessor(
+      output_surface->context_provider(), std::make_unique<DCLayerValidator>());
   processor->SetDCHasHwOverlaySupportForTesting();
   renderer.SetOverlayProcessor(processor);
 
@@ -3146,9 +3148,8 @@
     // quads can be turned into CALayer overlays, then all damage is removed and
     // we can skip the root RenderPass, swapping empty.
     TestOverlayProcessor* processor =
-        new TestOverlayProcessor(output_surface_->context_provider());
-    processor->SetOverlayCandidateValidator(
-        std::make_unique<CALayerValidator>());
+        new TestOverlayProcessor(output_surface_->context_provider(),
+                                 std::make_unique<CALayerValidator>());
     renderer_->SetOverlayProcessor(processor);
   }
 
diff --git a/components/viz/service/display/overlay_candidate_validator.h b/components/viz/service/display/overlay_candidate_validator.h
index daf72d5..aa8612b 100644
--- a/components/viz/service/display/overlay_candidate_validator.h
+++ b/components/viz/service/display/overlay_candidate_validator.h
@@ -10,7 +10,6 @@
 #include "components/viz/service/display/overlay_candidate.h"
 #include "components/viz/service/display/overlay_processor.h"
 #include "components/viz/service/viz_service_export.h"
-#include "gpu/ipc/common/surface_handle.h"
 
 namespace viz {
 class RendererSettings;
diff --git a/components/viz/service/display/overlay_processor.cc b/components/viz/service/display/overlay_processor.cc
index 505d693..545f2c9 100644
--- a/components/viz/service/display/overlay_processor.cc
+++ b/components/viz/service/display/overlay_processor.cc
@@ -98,6 +98,19 @@
   return OverlayStrategy::kUnknown;
 }
 
+std::unique_ptr<OverlayProcessor> OverlayProcessor::CreateOverlayProcessor(
+    const ContextProvider* context_provider,
+    gpu::SurfaceHandle surface_handle,
+    const RendererSettings& renderer_settings) {
+  std::unique_ptr<OverlayProcessor> processor(
+      new OverlayProcessor(context_provider));
+
+  processor->SetOverlayCandidateValidator(OverlayCandidateValidator::Create(
+      surface_handle, context_provider, renderer_settings));
+
+  return processor;
+}
+
 OverlayProcessor::OverlayProcessor(const ContextProvider* context_provider)
     : dc_processor_(
           std::make_unique<DCLayerOverlayProcessor>(context_provider)) {}
diff --git a/components/viz/service/display/overlay_processor.h b/components/viz/service/display/overlay_processor.h
index 3eac218..008a3dc9 100644
--- a/components/viz/service/display/overlay_processor.h
+++ b/components/viz/service/display/overlay_processor.h
@@ -15,6 +15,7 @@
 #include "components/viz/service/display/dc_layer_overlay.h"
 #include "components/viz/service/display/overlay_candidate.h"
 #include "components/viz/service/viz_service_export.h"
+#include "gpu/ipc/common/surface_handle.h"
 
 namespace cc {
 class DisplayResourceProvider;
@@ -22,6 +23,8 @@
 
 namespace viz {
 class OverlayCandidateValidator;
+class RendererSettings;
+class ContextProvider;
 
 class VIZ_SERVICE_EXPORT OverlayProcessor {
  public:
@@ -54,11 +57,12 @@
   };
   using StrategyList = std::vector<std::unique_ptr<Strategy>>;
 
-  explicit OverlayProcessor(const ContextProvider* context_provider);
-  virtual ~OverlayProcessor();
+  static std::unique_ptr<OverlayProcessor> CreateOverlayProcessor(
+      const ContextProvider* context_provider,
+      gpu::SurfaceHandle surface_handle,
+      const RendererSettings& renderer_settings);
 
-  void SetOverlayCandidateValidator(
-      std::unique_ptr<OverlayCandidateValidator> overlay_validator);
+  virtual ~OverlayProcessor();
 
   gfx::Rect GetAndResetOverlayDamage();
   void SetSoftwareMirrorMode(bool software_mirror_mode);
@@ -90,6 +94,10 @@
   }
 
  protected:
+  explicit OverlayProcessor(const ContextProvider* context_provider);
+  void SetOverlayCandidateValidator(
+      std::unique_ptr<OverlayCandidateValidator> overlay_validator);
+
   StrategyList strategies_;
   std::unique_ptr<OverlayCandidateValidator> overlay_validator_;
   gfx::Rect overlay_damage_rect_;
diff --git a/components/viz/service/display/overlay_unittest.cc b/components/viz/service/display/overlay_unittest.cc
index a24866d..985afcc 100644
--- a/components/viz/service/display/overlay_unittest.cc
+++ b/components/viz/service/display/overlay_unittest.cc
@@ -187,13 +187,15 @@
 
 class DefaultOverlayProcessor : public OverlayProcessor {
  public:
-  DefaultOverlayProcessor(ContextProvider* context_provider);
+  explicit DefaultOverlayProcessor(ContextProvider* context_provider);
   size_t GetStrategyCount() const;
 };
 
 DefaultOverlayProcessor::DefaultOverlayProcessor(
     ContextProvider* context_provider)
-    : OverlayProcessor(context_provider) {}
+    : OverlayProcessor(context_provider) {
+  SetOverlayCandidateValidator(std::make_unique<SingleOverlayValidator>());
+}
 
 size_t DefaultOverlayProcessor::GetStrategyCount() const {
   if (auto* validator = overlay_validator_.get())
@@ -258,8 +260,12 @@
 template <typename OverlayCandidateValidatorType>
 class TypedOverlayProcessor : public OverlayProcessor {
  public:
-  explicit TypedOverlayProcessor(const ContextProvider* context_provider)
-      : OverlayProcessor(context_provider) {}
+  explicit TypedOverlayProcessor(
+      const ContextProvider* context_provider,
+      std::unique_ptr<OverlayCandidateValidatorType> validator)
+      : OverlayProcessor(context_provider) {
+    SetOverlayCandidateValidator(std::move(validator));
+  }
 
   OverlayCandidateValidatorType* GetTypedOverlayCandidateValidator() {
     const OverlayCandidateValidator* const_base_validator =
@@ -562,8 +568,7 @@
     child_resource_provider_ = std::make_unique<ClientResourceProvider>(true);
 
     overlay_processor_ = std::make_unique<OverlayProcessorType>(
-        output_surface_->context_provider());
-    overlay_processor_->SetOverlayCandidateValidator(
+        output_surface_->context_provider(),
         std::make_unique<OverlayCandidateValidatorType>());
     overlay_processor_->SetDCHasHwOverlaySupportForTesting();
   }
@@ -619,8 +624,6 @@
 
   auto overlay_processor = std::make_unique<DefaultOverlayProcessor>(
       output_surface.context_provider());
-  overlay_processor->SetOverlayCandidateValidator(
-      std::make_unique<SingleOverlayValidator>());
   EXPECT_GE(2U, overlay_processor->GetStrategyCount());
 }
 
@@ -3069,12 +3072,6 @@
                         bool use_validator)
       : GLRenderer(settings, output_surface, resource_provider, nullptr),
         expect_overlays_(false) {
-    if (use_validator) {
-      overlay_processor_ = std::make_unique<OverlayProcessorType>(
-          output_surface_->context_provider());
-      overlay_processor_->SetOverlayCandidateValidator(
-          std::make_unique<SingleOverlayValidator>());
-    }
   }
 
   MOCK_METHOD2(DoDrawQuad,
@@ -3099,6 +3096,7 @@
   }
 
   void AddExpectedRectToOverlayValidator(const gfx::RectF& rect) {
+    DCHECK(overlay_processor_);
     static_cast<OverlayProcessorType*>(overlay_processor_.get())
         ->GetTypedOverlayCandidateValidator()
         ->AddExpectedRect(rect);
@@ -3108,10 +3106,10 @@
     expect_overlays_ = expect_overlays;
   }
 
-  void SetOverlayCandidateValidator(
-      std::unique_ptr<OverlayCandidateValidator> validator) {
-    static_cast<OverlayProcessorType*>(overlay_processor_.get())
-        ->SetOverlayCandidateValidator(std::move(validator));
+  void SetOverlayProcessorWithValidator(
+      std::unique_ptr<SingleOverlayValidator> validator) {
+    overlay_processor_.reset(new OverlayProcessorType(
+        output_surface_->context_provider(), std::move(validator)));
   }
 
  private:
@@ -3161,7 +3159,7 @@
     renderer_->Initialize();
     renderer_->SetVisible(true);
     if (use_validator) {
-      renderer_->SetOverlayCandidateValidator(
+      renderer_->SetOverlayProcessorWithValidator(
           std::make_unique<SingleOverlayValidator>());
     }
   }
diff --git a/components/viz/service/display/renderer_pixeltest.cc b/components/viz/service/display/renderer_pixeltest.cc
index f745b05..47cd67b 100644
--- a/components/viz/service/display/renderer_pixeltest.cc
+++ b/components/viz/service/display/renderer_pixeltest.cc
@@ -1359,17 +1359,9 @@
       this->shared_bitmap_manager_.get(), this->child_context_provider_,
       this->render_pass_.get());
 
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 45.f, 0.f,
-                                                            1.2f, 50, 0.f);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f,
-                                                            256.f, 256, 0.f);
-  }
-
   this->AppendBackgroundAndRunTest(
-      *comparator, FILE_PATH_LITERAL("intersecting_blue_green_squares.png"));
+      cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f),
+      FILE_PATH_LITERAL("intersecting_blue_green_squares.png"));
 }
 
 TYPED_TEST(IntersectingQuadPixelTest, NonFlippedTexturedQuads) {
@@ -1391,17 +1383,8 @@
       this->shared_bitmap_manager_.get(), this->child_context_provider_,
       this->render_pass_.get());
 
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 40.f, 0.f,
-                                                            2.5f, 130, 0.f);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f,
-                                                            256.f, 256, 0.f);
-  }
-
   this->AppendBackgroundAndRunTest(
-      *comparator,
+      cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f),
       FILE_PATH_LITERAL(
           "intersecting_non_flipped_blue_green_half_size_rectangles.png"));
 }
@@ -1425,17 +1408,8 @@
       this->shared_bitmap_manager_.get(), this->child_context_provider_,
       this->render_pass_.get());
 
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 50.f, 0.f,
-                                                            2.5f, 130, 0.f);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f,
-                                                            256.f, 256, 0.f);
-  }
-
   this->AppendBackgroundAndRunTest(
-      *comparator,
+      cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f),
       FILE_PATH_LITERAL(
           "intersecting_flipped_blue_green_half_size_rectangles.png"));
 }
@@ -1530,18 +1504,9 @@
 
   this->pass_list_.push_back(std::move(child_pass1));
   this->pass_list_.push_back(std::move(child_pass2));
-
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 45.f, 0.f,
-                                                            2.f, 50, 0.f);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f,
-                                                            256.f, 256, 0.f);
-  }
-
   this->AppendBackgroundAndRunTest(
-      *comparator, FILE_PATH_LITERAL("intersecting_blue_green_squares.png"));
+      cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f),
+      FILE_PATH_LITERAL("intersecting_blue_green_squares.png"));
 }
 
 TYPED_TEST(IntersectingVideoQuadPixelTest, YUVVideoQuads) {
@@ -2133,7 +2098,7 @@
   // renderer so use a fuzzy comparator.
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
 }
 
 TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) {
@@ -2193,7 +2158,7 @@
   // renderer so use a fuzzy comparator.
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
 }
 
 TYPED_TEST(RendererPixelTest, FastPassFilterChain) {
@@ -2255,7 +2220,7 @@
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list,
       base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
 }
 
 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) {
@@ -2338,7 +2303,7 @@
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list,
       base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
 }
 
 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) {
@@ -2532,7 +2497,7 @@
 
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list, base::FilePath(FILE_PATH_LITERAL("mask_bottom_right.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      cc::ExactPixelComparator(true)));
 }
 
 // This tests the case where we have a RenderPass with a mask, but the quad
@@ -2629,7 +2594,7 @@
 
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list, base::FilePath(FILE_PATH_LITERAL("mask_middle.png")),
-      cc::FuzzyPixelOffByOneComparator(false)));
+      cc::ExactPixelComparator(true)));
 }
 
 TYPED_TEST(RendererPixelTest, RenderPassAndMaskForRoundedCorner) {
@@ -2715,19 +2680,10 @@
   // The rounded corners generated by masks should be very close to the rounded
   // corners generated by the fragment shader approach. The percentage of pixel
   // mismatch is around 0.52%.
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 64.f, 0.f,
-                                                            1.3f, 65, 0);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 0.6f, 0.f,
-                                                            255.f, 255, 0);
-  }
-
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list,
       base::FilePath(FILE_PATH_LITERAL("rounded_corner_simple.png")),
-      *comparator));
+      cc::FuzzyPixelComparator(true, 0.6f, 0.f, 255.f, 255, 0)));
 }
 
 TYPED_TEST(RendererPixelTest, RenderPassAndMaskForRoundedCornerMultiRadii) {
@@ -2825,19 +2781,10 @@
   pass_list.push_back(std::move(child_pass));
   pass_list.push_back(std::move(root_pass));
 
-  std::unique_ptr<cc::FuzzyPixelComparator> comparator;
-  if (this->use_vulkan()) {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 64.f, 0,
-                                                            0.8f, 80.f, 0);
-  } else {
-    comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 0.6f, 0.f,
-                                                            255.f, 255, 0);
-  }
-
   EXPECT_TRUE(this->RunPixelTest(
       &pass_list,
       base::FilePath(FILE_PATH_LITERAL("rounded_corner_multi_radii.png")),
-      *comparator));
+      cc::FuzzyPixelComparator(true, 0.6f, 0.f, 255.f, 255, 0)));
 }
 
 template <typename RendererType>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 0cb96497..9aa7ce7 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1314,8 +1314,6 @@
     "memory/memory_monitor_android.h",
     "memory/memory_monitor_win.cc",
     "memory/memory_monitor_win.h",
-    "memory/swap_metrics_delegate_uma.cc",
-    "memory/swap_metrics_delegate_uma.h",
     "memory/swap_metrics_driver_impl.cc",
     "memory/swap_metrics_driver_impl.h",
     "memory/swap_metrics_driver_impl_linux.cc",
@@ -1328,6 +1326,8 @@
     "mime_registry_impl.h",
     "native_file_system/file_system_chooser.cc",
     "native_file_system/file_system_chooser.h",
+    "native_file_system/fixed_native_file_system_permission_grant.cc",
+    "native_file_system/fixed_native_file_system_permission_grant.h",
     "native_file_system/native_file_system_directory_handle_impl.cc",
     "native_file_system/native_file_system_directory_handle_impl.h",
     "native_file_system/native_file_system_file_handle_impl.cc",
@@ -1821,12 +1821,12 @@
     "service_worker/service_worker_version.h",
     "site_instance_impl.cc",
     "site_instance_impl.h",
-    "sms/sms_manager_impl.cc",
-    "sms/sms_manager_impl.h",
     "sms/sms_parser.cc",
     "sms/sms_parser.h",
     "sms/sms_provider.cc",
     "sms/sms_provider.h",
+    "sms/sms_receiver_impl.cc",
+    "sms/sms_receiver_impl.h",
     "sms/sms_service_impl.cc",
     "sms/sms_service_impl.h",
     "speech/speech_recognition_dispatcher_host.cc",
diff --git a/content/browser/DEPS b/content/browser/DEPS
index 405ebb2..2103991 100644
--- a/content/browser/DEPS
+++ b/content/browser/DEPS
@@ -110,7 +110,7 @@
   "+third_party/blink/public/platform/modules/indexeddb/web_idb_database_exception.h",
   "+third_party/blink/public/platform/modules/notifications/web_notification_constants.h",
   "+third_party/blink/public/platform/modules/service_worker/web_service_worker_error.h",
-  "+third_party/blink/public/platform/modules/sms/sms_manager.mojom.h",
+  "+third_party/blink/public/platform/modules/sms/sms_receiver.mojom.h",
   "+third_party/blink/public/public_buildflags.h",
   "+third_party/blink/public/web/web_ax_enums.h",
   "+third_party/blink/public/web/web_console_message.h",
diff --git a/content/browser/accessibility/accessibility_event_recorder_uia_win.cc b/content/browser/accessibility/accessibility_event_recorder_uia_win.cc
index ac57093..27a2c8a 100644
--- a/content/browser/accessibility/accessibility_event_recorder_uia_win.cc
+++ b/content/browser/accessibility/accessibility_event_recorder_uia_win.cc
@@ -14,6 +14,7 @@
 #include "base/win/scoped_bstr.h"
 #include "base/win/scoped_com_initializer.h"
 #include "base/win/scoped_variant.h"
+#include "base/win/windows_version.h"
 #include "content/browser/accessibility/accessibility_tree_formatter_utils_win.h"
 #include "content/browser/accessibility/browser_accessibility_com_win.h"
 #include "content/browser/accessibility/browser_accessibility_manager.h"
@@ -185,11 +186,9 @@
   // Wait for shutdown signal
   shutdown_signal_.Wait();
 
-  // Due to a bug in Windows, events are raised exactly twice for any in-proc
-  // off-thread event listeners. (The bug has been acknowledged by the Windows
-  // team, but it's a lower priority since the scenario is rare outside of
-  // testing.) We filter out the duplicate events here, and forward the
-  // remaining events to our owner.
+  // Due to a bug in Windows (fixed in Windows 10 19H1), events are raised
+  // exactly twice for any in-proc off-thread event listeners. We filter out the
+  // duplicate events here, and forward the remaining events to our owner.
   {
     base::AutoLock lock{on_event_lock_};
     if (event_logs_.size() == 1) {
@@ -264,9 +263,10 @@
 
 void AccessibilityEventRecorderUia::Thread::SendShutdownSignal() {
   // We expect to see the shutdown sentinel exactly twice (due to the Windows
-  // bug detailed in |ThreadMain|), so don't actually shut down the thread until
-  // the second call.
-  if (shutdown_sentinel_received_)
+  // bug detailed in |ThreadMain| and fixed in 19H1), so don't actually shut
+  // down the thread until the second call.
+  if (shutdown_sentinel_received_ ||
+      base::win::GetVersion() >= base::win::Version::WIN10_19H1)
     shutdown_signal_.Signal();
   else
     shutdown_sentinel_received_ = true;
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc
index cafe63f..b39ea00 100644
--- a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc
+++ b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc
@@ -4,6 +4,8 @@
 
 #include "content/browser/bluetooth/web_bluetooth_service_impl.h"
 
+#include <utility>
+
 #include "base/macros.h"
 #include "base/test/bind_test_util.h"
 #include "content/public/browser/web_contents_delegate.h"
@@ -144,7 +146,7 @@
                                                        name_prefix);
   }
 
-  void RequestScanningStart(
+  blink::mojom::RequestScanningStartResultPtr RequestScanningStart(
       const blink::mojom::WebBluetoothLeScanFilter& filter,
       FakeWebBluetoothScanClientImpl* client_impl) {
     blink::mojom::WebBluetoothScanClientAssociatedPtrInfo client_info;
@@ -154,13 +156,16 @@
     auto filter_ptr = blink::mojom::WebBluetoothLeScanFilter::New(filter);
     options->filters->push_back(std::move(filter_ptr));
     base::RunLoop loop;
+    blink::mojom::RequestScanningStartResultPtr result;
     service_->RequestScanningStart(
         std::move(client_info), std::move(options),
         base::BindLambdaForTesting(
             [&](blink::mojom::RequestScanningStartResultPtr p) {
+              result = std::move(p);
               loop.Quit();
             }));
     loop.Run();
+    return result;
   }
 
   WebBluetoothServiceImpl* service_;
@@ -178,7 +183,9 @@
   EXPECT_FALSE(service_->AreScanFiltersAllowed(filters));
 
   FakeWebBluetoothScanClientImpl client_impl;
-  RequestScanningStart(*filter, &client_impl);
+  blink::mojom::RequestScanningStartResultPtr result =
+      RequestScanningStart(*filter, &client_impl);
+  EXPECT_FALSE(result->is_error_result());
   // |filters| should be allowed.
   EXPECT_TRUE(service_->AreScanFiltersAllowed(filters));
 }
@@ -196,7 +203,11 @@
   delegate_.set_event(content::BluetoothScanningPrompt::Event::kCanceled);
 
   FakeWebBluetoothScanClientImpl client_impl;
-  RequestScanningStart(*filter, &client_impl);
+  blink::mojom::RequestScanningStartResultPtr result =
+      RequestScanningStart(*filter, &client_impl);
+  EXPECT_TRUE(result->is_error_result());
+  EXPECT_EQ(blink::mojom::WebBluetoothResult::PROMPT_CANCELED,
+            result->get_error_result());
   // |filters| should still not be allowed.
   EXPECT_FALSE(service_->AreScanFiltersAllowed(filters));
 }
@@ -208,7 +219,9 @@
   filters.emplace();
   filters->push_back(filter.Clone());
   FakeWebBluetoothScanClientImpl client_impl;
-  RequestScanningStart(*filter, &client_impl);
+  blink::mojom::RequestScanningStartResultPtr result =
+      RequestScanningStart(*filter, &client_impl);
+  EXPECT_FALSE(result->is_error_result());
   EXPECT_TRUE(service_->AreScanFiltersAllowed(filters));
 
   contents()->SetVisibility(content::Visibility::HIDDEN);
@@ -241,7 +254,9 @@
   filters_1.emplace();
   filters_1->push_back(filter_1.Clone());
   FakeWebBluetoothScanClientImpl client_impl_1;
-  RequestScanningStart(*filter_1, &client_impl_1);
+  blink::mojom::RequestScanningStartResultPtr result_1 =
+      RequestScanningStart(*filter_1, &client_impl_1);
+  EXPECT_FALSE(result_1->is_error_result());
   EXPECT_TRUE(service_->AreScanFiltersAllowed(filters_1));
   EXPECT_FALSE(client_impl_1.on_connection_error_called());
 
@@ -251,7 +266,9 @@
   filters_2.emplace();
   filters_2->push_back(filter_2.Clone());
   FakeWebBluetoothScanClientImpl client_impl_2;
-  RequestScanningStart(*filter_2, &client_impl_2);
+  blink::mojom::RequestScanningStartResultPtr result_2 =
+      RequestScanningStart(*filter_2, &client_impl_2);
+  EXPECT_FALSE(result_2->is_error_result());
   EXPECT_TRUE(service_->AreScanFiltersAllowed(filters_2));
   EXPECT_FALSE(client_impl_2.on_connection_error_called());
 
@@ -266,7 +283,11 @@
   filters_3.emplace();
   filters_3->push_back(filter_3.Clone());
   FakeWebBluetoothScanClientImpl client_impl_3;
-  RequestScanningStart(*filter_3, &client_impl_3);
+  blink::mojom::RequestScanningStartResultPtr result_3 =
+      RequestScanningStart(*filter_3, &client_impl_3);
+  EXPECT_TRUE(result_3->is_error_result());
+  EXPECT_EQ(blink::mojom::WebBluetoothResult::SCANNING_BLOCKED,
+            result_3->get_error_result());
   EXPECT_FALSE(service_->AreScanFiltersAllowed(filters_3));
 
   // The previously granted Bluetooth scanning permission should be revoked.
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
index 0d95af0..bd5d10b9 100644
--- a/content/browser/browser_context.cc
+++ b/content/browser/browser_context.cc
@@ -339,8 +339,8 @@
     BrowserContext* browser_context,
     const GURL& site,
     const base::Closure& on_gc_required) {
-  GetStoragePartitionMap(browser_context)->AsyncObliterate(site,
-                                                           on_gc_required);
+  GetStoragePartitionMap(browser_context)
+      ->AsyncObliterate(site, on_gc_required);
 }
 
 // static
@@ -352,8 +352,7 @@
       ->GarbageCollect(std::move(active_paths), done);
 }
 
-DownloadManager* BrowserContext::GetDownloadManager(
-    BrowserContext* context) {
+DownloadManager* BrowserContext::GetDownloadManager(BrowserContext* context) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   if (!context->GetUserData(kDownloadManagerKeyName)) {
     DownloadManager* download_manager = new DownloadManagerImpl(context);
@@ -431,8 +430,8 @@
 
   if (site_instance) {
     GetContentClient()->browser()->GetStoragePartitionConfigForSite(
-        browser_context, site_instance->GetSiteURL(), true,
-        &partition_domain, &partition_name, &in_memory);
+        browser_context, site_instance->GetSiteURL(), true, &partition_domain,
+        &partition_name, &in_memory);
   }
 
   return GetStoragePartitionFromConfig(browser_context, partition_domain,
@@ -633,9 +632,8 @@
 }
 
 // static
-void BrowserContext::Initialize(
-    BrowserContext* browser_context,
-    const base::FilePath& path) {
+void BrowserContext::Initialize(BrowserContext* browser_context,
+                                const base::FilePath& path) {
   const base::Token new_group = base::Token::CreateRandom();
   ServiceInstanceGroupHolder* holder = static_cast<ServiceInstanceGroupHolder*>(
       browser_context->GetUserData(kServiceInstanceGroup));
@@ -839,4 +837,9 @@
   return nullptr;
 }
 
+NativeFileSystemPermissionContext*
+BrowserContext::GetNativeFileSystemPermissionContext() {
+  return nullptr;
+}
+
 }  // namespace content
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index d9638f5a..d18d386 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -80,7 +80,6 @@
 #include "content/browser/media/capture/audio_mirroring_manager.h"
 #include "content/browser/media/media_internals.h"
 #include "content/browser/media/media_keys_listener_manager_impl.h"
-#include "content/browser/memory/swap_metrics_delegate_uma.h"
 #include "content/browser/net/browser_online_state_observer.h"
 #include "content/browser/renderer_host/media/media_stream_manager.h"
 #include "content/browser/renderer_host/render_process_host_impl.h"
@@ -98,7 +97,6 @@
 #include "content/browser/webui/content_web_ui_controller_factory.h"
 #include "content/browser/webui/url_data_manager.h"
 #include "content/common/content_switches_internal.h"
-#include "content/common/service_manager/service_manager_connection_impl.h"
 #include "content/common/thread_pool_util.h"
 #include "content/public/browser/browser_main_parts.h"
 #include "content/public/browser/browser_task_traits.h"
@@ -107,7 +105,6 @@
 #include "content/public/browser/gpu_data_manager_observer.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/site_isolation_policy.h"
-#include "content/public/browser/swap_metrics_driver.h"
 #include "content/public/browser/system_connector.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/content_features.h"
@@ -321,12 +318,6 @@
   WORKER_POOL_COUNT  // Always last.
 };
 
-#if !defined(OS_FUCHSIA)
-// Time between updating and recording swap rates.
-constexpr base::TimeDelta kSwapMetricsInterval =
-    base::TimeDelta::FromSeconds(60);
-#endif  // !defined(OS_FUCHSIA)
-
 #if defined(OS_FUCHSIA)
 // Create and register the job which will contain all child processes
 // of the browser process as well as their descendents.
@@ -1477,17 +1468,6 @@
 
 void BrowserMainLoop::InitializeMemoryManagementComponent() {
   memory_pressure_monitor_ = CreateMemoryPressureMonitor(parsed_command_line_);
-
-  std::unique_ptr<SwapMetricsDriver::Delegate> delegate(
-      base::WrapUnique<SwapMetricsDriver::Delegate>(
-          new SwapMetricsDelegateUma()));
-
-#if !defined(OS_FUCHSIA)
-  swap_metrics_driver_ =
-      SwapMetricsDriver::Create(std::move(delegate), kSwapMetricsInterval);
-  if (swap_metrics_driver_)
-    swap_metrics_driver_->Start();
-#endif  // !defined(OS_FUCHSIA)
 }
 
 bool BrowserMainLoop::InitializeToolkit() {
@@ -1554,9 +1534,6 @@
     mojo::SyncCallRestrictions::DisallowSyncCall();
   }
 
-  GetContentClient()->OnServiceManagerConnected(
-      ServiceManagerConnection::GetForProcess());
-
   // Ensure that any NavigableContentsViews constructed in the browser process
   // know they're running in the same process as the service.
   content::NavigableContentsView::SetClientRunningInServiceProcess();
diff --git a/content/browser/browser_main_loop.h b/content/browser/browser_main_loop.h
index 4fab39d4..fd6a36dce 100644
--- a/content/browser/browser_main_loop.h
+++ b/content/browser/browser_main_loop.h
@@ -95,7 +95,6 @@
 class ScreenlockMonitor;
 class SpeechRecognitionManagerImpl;
 class StartupTaskRunner;
-class SwapMetricsDriver;
 class TracingControllerImpl;
 struct MainFunctionParams;
 
@@ -339,7 +338,6 @@
   // Members initialized in |PreCreateThreads()| -------------------------------
   // Torn down in ShutdownThreadsAndCleanUp.
   std::unique_ptr<base::MemoryPressureMonitor> memory_pressure_monitor_;
-  std::unique_ptr<SwapMetricsDriver> swap_metrics_driver_;
 #if defined(USE_X11)
   std::unique_ptr<internal::GpuDataManagerVisualProxy>
       gpu_data_manager_visual_proxy_;
diff --git a/content/browser/browsing_instance.cc b/content/browser/browsing_instance.cc
index cfcf10a6..094629d 100644
--- a/content/browser/browsing_instance.cc
+++ b/content/browser/browsing_instance.cc
@@ -110,8 +110,14 @@
   // have multiple unisolated sites share a process. We don't use the default
   // instance when kProcessSharingWithStrictSiteInstances is enabled because in
   // that case we want each site to have their own SiteInstance object and logic
-  // elsewhere ensures that those SiteInstances share a process.
+  // elsewhere ensures that those SiteInstances share a process.  We also don't
+  // use default SiteInstances when SiteInstance doesn't assign a site URL for
+  // |url|, since in that case the SiteInstance should remain unused, and a
+  // subsequent navigation should always be able to reuse it, whether or not
+  // it's to a site requiring a dedicated process or to a site that will use
+  // the default SiteInstance.
   if (allow_default_instance && !url.SchemeIs(kGuestScheme) &&
+      SiteInstanceImpl::ShouldAssignSiteForURL(url) &&
       !base::FeatureList::IsEnabled(
           features::kProcessSharingWithStrictSiteInstances) &&
       !SiteInstanceImpl::DoesSiteRequireDedicatedProcess(isolation_context_,
diff --git a/content/browser/compositor/reflector_impl_unittest.cc b/content/browser/compositor/reflector_impl_unittest.cc
index c5f9e48..2a51a1b 100644
--- a/content/browser/compositor/reflector_impl_unittest.cc
+++ b/content/browser/compositor/reflector_impl_unittest.cc
@@ -64,12 +64,38 @@
 };
 #endif  // defined(USE_OZONE)
 
-std::unique_ptr<viz::OverlayCandidateValidator> CreateTestValidatorOzone() {
 #if defined(USE_OZONE)
+std::unique_ptr<viz::OverlayCandidateValidator> CreateTestValidatorOzone() {
   std::vector<viz::OverlayStrategy> strategies = {
       viz::OverlayStrategy::kSingleOnTop, viz::OverlayStrategy::kUnderlay};
   return std::make_unique<viz::OverlayCandidateValidatorOzone>(
       std::make_unique<TestOverlayCandidatesOzone>(), std::move(strategies));
+}
+#endif  // defined(USE_OZONE)
+
+class TestOverlayProcessor : public viz::OverlayProcessor {
+ public:
+  explicit TestOverlayProcessor(const viz::ContextProvider* context_provider)
+      : OverlayProcessor(context_provider) {
+#if defined(USE_OZONE)
+    auto validator = CreateTestValidatorOzone();
+    overlay_validator_ = validator.get();
+    SetOverlayCandidateValidator(std::move(validator));
+#endif  // defined(USE_OZONE)
+  }
+
+  viz::OverlayCandidateValidator* get_overlay_validator() const {
+    return overlay_validator_;
+  }
+
+ private:
+  viz::OverlayCandidateValidator* overlay_validator_;
+};
+
+std::unique_ptr<TestOverlayProcessor> CreateTestOverlayProcessor(
+    const viz::ContextProvider* context_provider) {
+#if defined(USE_OZONE)
+  return std::make_unique<TestOverlayProcessor>(context_provider);
 #else
   return nullptr;
 #endif  // defined(USE_OZONE)
@@ -146,12 +172,8 @@
     context_provider->BindToCurrentThread();
     output_surface_ =
         std::make_unique<TestOutputSurface>(std::move(context_provider));
-    overlay_processor_ = std::make_unique<viz::OverlayProcessor>(
-        output_surface_->context_provider());
-    auto overlay_validator = CreateTestValidatorOzone();
-    overlay_validator_ = overlay_validator.get();
-    overlay_processor_->SetOverlayCandidateValidator(
-        std::move(overlay_validator));
+    overlay_processor_ =
+        CreateTestOverlayProcessor(output_surface_->context_provider());
 
     root_layer_.reset(new ui::Layer(ui::LAYER_SOLID_COLOR));
     compositor_->SetRootLayer(root_layer_.get());
@@ -190,7 +212,8 @@
   void ProcessForOverlays(viz::OverlayCandidateList* surfaces) {
     overlay_processor_->SetSoftwareMirrorMode(
         output_surface_->IsSoftwareMirrorMode());
-    overlay_validator_->CheckOverlaySupport(surfaces);
+    DCHECK(overlay_processor_->get_overlay_validator());
+    overlay_processor_->get_overlay_validator()->CheckOverlaySupport(surfaces);
   }
 #endif  // defined(USE_OZONE)
 
@@ -205,8 +228,7 @@
   std::unique_ptr<ui::Layer> mirroring_layer_;
   std::unique_ptr<ReflectorImpl> reflector_;
   std::unique_ptr<TestOutputSurface> output_surface_;
-  std::unique_ptr<viz::OverlayProcessor> overlay_processor_;
-  viz::OverlayCandidateValidator* overlay_validator_;
+  std::unique_ptr<TestOverlayProcessor> overlay_processor_;
 };
 
 namespace {
diff --git a/content/browser/devtools/protocol/DEPS b/content/browser/devtools/protocol/DEPS
index caed9f1..4d8e52aa 100644
--- a/content/browser/devtools/protocol/DEPS
+++ b/content/browser/devtools/protocol/DEPS
@@ -4,4 +4,6 @@
   "+device/fido/fido_transport_protocol.h",
   # For VirtualFidoDevice::RegistrationData used in protocol/webauthn_handler.cc.
   "+device/fido/virtual_fido_device.h",
+  # For VirtualU2fDevice::IsTransportSupported used in protocol/webauthn_handler.cc.
+  "+device/fido/virtual_u2f_device.h",
 ]
diff --git a/content/browser/devtools/protocol/webauthn_handler.cc b/content/browser/devtools/protocol/webauthn_handler.cc
index 432e1de..70e469b 100644
--- a/content/browser/devtools/protocol/webauthn_handler.cc
+++ b/content/browser/devtools/protocol/webauthn_handler.cc
@@ -16,6 +16,7 @@
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_transport_protocol.h"
 #include "device/fido/virtual_fido_device.h"
+#include "device/fido/virtual_u2f_device.h"
 
 namespace content {
 namespace protocol {
@@ -23,10 +24,14 @@
 namespace {
 static constexpr char kAuthenticatorNotFound[] =
     "Could not find a Virtual Authenticator matching the ID";
+static constexpr char kCableNotSupportedOnU2f[] =
+    "U2F only supports the \"usb\", \"ble\" and \"nfc\" transports";
 static constexpr char kCouldNotCreateCredential[] =
     "An error occurred trying to create the credential";
 static constexpr char kDevToolsNotAttached[] =
     "The DevTools session is not attached to a frame";
+static constexpr char kErrorCreatingAuthenticator[] =
+    "An error occurred when trying to create the authenticator";
 static constexpr char kInvalidProtocol[] = "The protocol is not valid";
 static constexpr char kInvalidRpIdHash[] =
     "The Relying Party ID hash must have a size of ";
@@ -102,12 +107,20 @@
   if (protocol == device::ProtocolVersion::kUnknown)
     return Response::InvalidParams(kInvalidProtocol);
 
+  if (protocol == device::ProtocolVersion::kU2f &&
+      !device::VirtualU2fDevice::IsTransportSupported(*transport)) {
+    return Response::InvalidParams(kCableNotSupportedOnU2f);
+  }
+
   auto* authenticator = virtual_discovery_factory_->CreateAuthenticator(
       protocol, *transport,
       transport == device::FidoTransportProtocol::kInternal
           ? device::AuthenticatorAttachment::kPlatform
           : device::AuthenticatorAttachment::kCrossPlatform,
       options->GetHasResidentKey(), options->GetHasUserVerification());
+  if (!authenticator)
+    return Response::Error(kErrorCreatingAuthenticator);
+
   authenticator->SetUserPresence(
       options->GetAutomaticPresenceSimulation(true /* default */));
 
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index abbe6a24..c29790a 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -40,7 +40,6 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/logging.h"
-#include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string_number_conversions.h"  // Temporary
 #include "base/strings/string_util.h"
@@ -476,7 +475,7 @@
   RewriteUrlForNavigation(url, browser_context, &url_to_load, &virtual_url,
                           &reverse_on_redirect);
 
-  NavigationEntryImpl* entry = new NavigationEntryImpl(
+  auto entry = std::make_unique<NavigationEntryImpl>(
       nullptr,  // The site instance for tabs is sent on navigation
                 // (WebContents::GetSiteInstance).
       url_to_load, referrer, base::string16(), transition,
@@ -485,7 +484,7 @@
   entry->set_user_typed_url(virtual_url);
   entry->set_update_virtual_url_with_url(reverse_on_redirect);
   entry->set_extra_headers(extra_headers);
-  return base::WrapUnique(entry);
+  return entry;
 }
 
 // static
@@ -1425,7 +1424,7 @@
 
   // For non-in-page commits with no matching pending entry, create a new entry.
   if (!new_entry) {
-    new_entry = base::WrapUnique(new NavigationEntryImpl);
+    new_entry = std::make_unique<NavigationEntryImpl>();
 
     // Find out whether the new entry needs to update its virtual URL on URL
     // change and set up the entry accordingly. This is needed to correctly
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc
index e226a60..3212f8e3 100644
--- a/content/browser/frame_host/navigation_entry_impl.cc
+++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -174,10 +174,9 @@
   // Clone this TreeNode, possibly replacing its FrameNavigationEntry.
   bool is_target_frame =
       target_frame_tree_node && MatchesFrame(target_frame_tree_node);
-  std::unique_ptr<NavigationEntryImpl::TreeNode> copy(
-      new NavigationEntryImpl::TreeNode(
-          parent_node,
-          is_target_frame ? frame_navigation_entry : frame_entry->Clone()));
+  auto copy = std::make_unique<NavigationEntryImpl::TreeNode>(
+      parent_node,
+      is_target_frame ? frame_navigation_entry : frame_entry->Clone());
 
   // Recursively clone the children if needed.
   if (!is_target_frame || clone_children_of_target) {
@@ -224,7 +223,7 @@
 }
 
 std::unique_ptr<NavigationEntry> NavigationEntry::Create() {
-  return base::WrapUnique(new NavigationEntryImpl());
+  return std::make_unique<NavigationEntryImpl>();
 }
 
 NavigationEntryImpl* NavigationEntryImpl::FromNavigationEntry(
@@ -259,21 +258,22 @@
     ui::PageTransition transition_type,
     bool is_renderer_initiated,
     scoped_refptr<network::SharedURLLoaderFactory> blob_url_loader_factory)
-    : frame_tree_(new TreeNode(nullptr,
-                               base::MakeRefCounted<FrameNavigationEntry>(
-                                   "",
-                                   -1,
-                                   -1,
-                                   std::move(instance),
-                                   nullptr,
-                                   url,
-                                   nullptr /* origin */,
-                                   referrer,
-                                   std::vector<GURL>(),
-                                   PageState(),
-                                   "GET",
-                                   -1,
-                                   std::move(blob_url_loader_factory)))),
+    : frame_tree_(
+          std::make_unique<TreeNode>(nullptr,
+                                     base::MakeRefCounted<FrameNavigationEntry>(
+                                         "",
+                                         -1,
+                                         -1,
+                                         std::move(instance),
+                                         nullptr,
+                                         url,
+                                         nullptr /* origin */,
+                                         referrer,
+                                         std::vector<GURL>(),
+                                         PageState(),
+                                         "GET",
+                                         -1,
+                                         std::move(blob_url_loader_factory)))),
       unique_id_(CreateUniqueEntryID()),
       bindings_(kInvalidBindings),
       page_type_(PAGE_TYPE_NORMAL),
@@ -614,8 +614,7 @@
     bool clone_children_of_target,
     FrameTreeNode* target_frame_tree_node,
     FrameTreeNode* root_frame_tree_node) const {
-  std::unique_ptr<NavigationEntryImpl> copy =
-      base::WrapUnique(new NavigationEntryImpl());
+  auto copy = std::make_unique<NavigationEntryImpl>();
 
   // TODO(creis): Only share the same FrameNavigationEntries if cloning within
   // the same tab.
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index cc766f9..bcd8236 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -196,6 +196,7 @@
 #include "third_party/blink/public/mojom/loader/pause_subresource_loading_handle.mojom.h"
 #include "third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h"
 #include "third_party/blink/public/mojom/usb/web_usb_service.mojom.h"
 #include "third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom.h"
 #include "ui/accessibility/ax_tree.h"
@@ -4245,7 +4246,7 @@
       base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kEnableExperimentalWebPlatformFeatures)) {
     registry_->AddInterface(base::BindRepeating(
-        &RenderFrameHostImpl::BindSmsManagerRequest, base::Unretained(this)));
+        &RenderFrameHostImpl::BindSmsReceiverRequest, base::Unretained(this)));
   }
 }
 
@@ -6010,8 +6011,8 @@
   return chooser;
 }
 
-void RenderFrameHostImpl::BindSmsManagerRequest(
-    blink::mojom::SmsManagerRequest request) {
+void RenderFrameHostImpl::BindSmsReceiverRequest(
+    blink::mojom::SmsReceiverRequest request) {
   if (GetParent()) {
     mojo::ReportBadMessage("Must be in top-level browser context.");
     return;
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 358814f..34ca3ed 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -77,7 +77,7 @@
 #include "third_party/blink/public/mojom/idle/idle_manager.mojom.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom-forward.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-forward.h"
 #include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
 #include "third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom.h"
 #include "third_party/blink/public/platform/web_focus_type.h"
@@ -1392,7 +1392,7 @@
 
   void BindIdleManagerRequest(blink::mojom::IdleManagerRequest request);
 
-  void BindSmsManagerRequest(blink::mojom::SmsManagerRequest request);
+  void BindSmsReceiverRequest(blink::mojom::SmsReceiverRequest request);
 
   // service_manager::mojom::InterfaceProvider:
   void GetInterface(const std::string& interface_name,
diff --git a/content/browser/frame_host/render_frame_host_manager_browsertest.cc b/content/browser/frame_host/render_frame_host_manager_browsertest.cc
index 185948e..7d4cc74 100644
--- a/content/browser/frame_host/render_frame_host_manager_browsertest.cc
+++ b/content/browser/frame_host/render_frame_host_manager_browsertest.cc
@@ -21,7 +21,9 @@
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_split.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/synchronization/lock.h"
 #include "base/test/bind_test_util.h"
+#include "base/thread_annotations.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
 #include "base/values.h"
@@ -62,6 +64,7 @@
 #include "content/public/test/url_loader_interceptor.h"
 #include "content/shell/browser/shell.h"
 #include "content/test/content_browser_test_utils_internal.h"
+#include "content/test/did_commit_navigation_interceptor.h"
 #include "content/test/test_content_browser_client.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/controllable_http_response.h"
@@ -5179,6 +5182,7 @@
   // Starts monitoring requests made to the embedded_http_server() looking for
   // one made to |url|.  To be used together with WaitForMonitoredRequest().
   void StartMonitoringRequestsFor(const GURL& url) {
+    base::AutoLock lock(lock_);
     request_url_ = url;
     saw_request_url_ = false;
   }
@@ -5186,16 +5190,24 @@
   // Waits for a request to a URL set earlier via StartMonitoringRequestsFor().
   // Returns right away if that request was already made.
   void WaitForMonitoredRequest() {
+    base::AutoLock lock(lock_);
     if (saw_request_url_)
       return;
 
     run_loop_.reset(new base::RunLoop());
-    run_loop_->Run();
+    {
+      base::RunLoop* run_loop = run_loop_.get();
+      base::AutoUnlock unlock(lock_);
+      run_loop->Run();
+    }
     run_loop_.reset();
   }
 
   // Returns the body of the monitored request if it was a POST.
-  const std::string& GetRequestContent() { return request_content_; }
+  const std::string& GetRequestContent() {
+    base::AutoLock lock(lock_);
+    return request_content_;
+  }
 
   // Adds an unload handler to |rfh| and verifies that the unload state
   // bookkeeping on |rfh| is updated properly.
@@ -5237,6 +5249,7 @@
     if (it != request.headers.end())
       requested_url = GURL("http://" + it->second + request.relative_url);
 
+    base::AutoLock lock(lock_);
     if (!saw_request_url_ && request_url_ == requested_url) {
       saw_request_url_ = true;
       request_content_ = request.content;
@@ -5245,10 +5258,11 @@
     }
   }
 
-  GURL request_url_;
-  std::string request_content_;
-  bool saw_request_url_ = false;
-  std::unique_ptr<base::RunLoop> run_loop_;
+  base::Lock lock_;
+  GURL request_url_ GUARDED_BY(lock_);
+  std::string request_content_ GUARDED_BY(lock_);
+  bool saw_request_url_ GUARDED_BY(lock_) = false;
+  std::unique_ptr<base::RunLoop> run_loop_ GUARDED_BY(lock_);
 
   DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManagerUnloadBrowserTest);
 };
@@ -5713,7 +5727,8 @@
   EXPECT_EQ(speculative_rph, web_contents->GetMainFrame()->GetProcess());
 }
 
-// ContentBrowserClient that skips assigning a site URL for a given URL.
+// ContentBrowserClient that skips assigning a site URL for all URLs that match
+// a given URL's scheme and host.
 class DontAssignSiteContentBrowserClient : public TestContentBrowserClient {
  public:
   // Any visit to |url_to_skip| will not cause the site to be assigned to the
@@ -5722,7 +5737,8 @@
       : url_to_skip_(url_to_skip) {}
 
   bool ShouldAssignSiteForURL(const GURL& url) override {
-    return url != url_to_skip_;
+    return url.host() != url_to_skip_.host() ||
+           url.scheme() != url_to_skip_.scheme();
   }
 
  private:
@@ -5807,4 +5823,172 @@
   SetBrowserClientForTesting(old_client);
 }
 
+namespace {
+
+// A helper class to run a predefined callback just before processing the
+// DidCommitProvisionalLoad IPC for |deferred_url|.
+class CommitMessageDelayer : public DidCommitNavigationInterceptor {
+ public:
+  using DidCommitCallback = base::OnceCallback<void(RenderFrameHost*)>;
+
+  explicit CommitMessageDelayer(WebContents* web_contents,
+                                const GURL& deferred_url,
+                                DidCommitCallback deferred_action)
+      : DidCommitNavigationInterceptor(web_contents),
+        deferred_url_(deferred_url),
+        deferred_action_(std::move(deferred_action)) {}
+
+  void Wait() {
+    run_loop_.reset(new base::RunLoop());
+    run_loop_->Run();
+    run_loop_.reset();
+  }
+
+ private:
+  // DidCommitNavigationInterceptor:
+  bool WillProcessDidCommitNavigation(
+      RenderFrameHost* render_frame_host,
+      NavigationRequest* navigation_request,
+      ::FrameHostMsg_DidCommitProvisionalLoad_Params* params,
+      mojom::DidCommitProvisionalLoadInterfaceParamsPtr* interface_params)
+      override {
+    if (params->url == deferred_url_) {
+      std::move(deferred_action_).Run(render_frame_host);
+      if (run_loop_)
+        run_loop_->Quit();
+    }
+    return true;
+  }
+
+  std::unique_ptr<base::RunLoop> run_loop_;
+
+  const GURL deferred_url_;
+  DidCommitCallback deferred_action_;
+
+  DISALLOW_COPY_AND_ASSIGN(CommitMessageDelayer);
+};
+
+}  // namespace
+
+// Check that when a navigation to a URL that doesn't require assigning a site
+// URL is in progress, another navigation can't reuse the same process in the
+// meantime.  Such reuse previously led to a renderer kill when the siteless
+// URL later committed; a real-world example of the siteless URL was
+// chrome-native://newtab.  See https://crbug.com/970046.
+IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest,
+                       NavigationRacesWithCommitInUnassignedSiteInstance) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  WebContentsImpl* web_contents =
+      static_cast<WebContentsImpl*>(shell()->web_contents());
+  FrameTreeNode* root = web_contents->GetFrameTree()->root();
+
+  // Set up a URL for which ShouldAssignSiteForURL will return false.  The
+  // corresponding SiteInstance's site will be left unassigned, and its process
+  // won't be locked.  The test will navigate to this URL first.
+  GURL siteless_url(
+      embedded_test_server()->GetURL("siteless.com", "/title1.html"));
+  DontAssignSiteContentBrowserClient content_browser_client(siteless_url);
+  ContentBrowserClient* old_client =
+      SetBrowserClientForTesting(&content_browser_client);
+
+  // Prepare for a second navigation to a normal URL.  Ensure it's isolated so
+  // that it requires a process lock on all platforms.
+  GURL foo_url(embedded_test_server()->GetURL("foo.com", "/title1.html"));
+  TestNavigationManager foo_manager(web_contents, foo_url);
+  auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
+  policy->AddIsolatedOrigins(
+      {url::Origin::Create(foo_url)},
+      ChildProcessSecurityPolicy::IsolatedOriginSource::TEST);
+  RenderProcessHost* foo_process = nullptr;
+  base::HistogramTester histograms;
+
+  // Set up the work to be done after the renderer is asked to commit
+  // |siteless_url|, but before the corresponding DidCommitProvisionalLoad IPC
+  // is processed.  This will start a navigation to |foo_url| and wait for its
+  // response.
+  auto did_commit_callback =
+      base::BindLambdaForTesting([&](RenderFrameHost* rfh) {
+        // The navigation should stay in the initial empty SiteInstance, with
+        // the site still unassigned.
+        EXPECT_FALSE(
+            static_cast<SiteInstanceImpl*>(rfh->GetSiteInstance())->HasSite());
+        EXPECT_FALSE(root->render_manager()->speculative_frame_host());
+
+        shell()->LoadURL(foo_url);
+
+        // The foo.com navigation should swap to a new process, since it is not
+        // safe to reuse |siteless_url|'s process before |siteless_url|
+        // commits.
+        EXPECT_TRUE(root->render_manager()->speculative_frame_host());
+        foo_process =
+            root->render_manager()->speculative_frame_host()->GetProcess();
+
+        // Wait for response.  This will cause |foo_manager| to spin up a
+        // nested message loop while we're blocked in the current message loop
+        // (within DidCommitNavigationInterceptor).  Thus, it's important to
+        // allow nestable tasks in |foo_manager|'s message loop, so that it can
+        // process the response before we unblock the
+        // DidCommitNavigationInterceptor's message loop and finish processing
+        // the commit.
+        foo_manager.AllowNestableTasks();
+        EXPECT_TRUE(foo_manager.WaitForResponse());
+
+        foo_manager.ResumeNavigation();
+        // After returning here, the commit for |siteless_url| will be
+        // processed.
+      });
+
+  CommitMessageDelayer commit_delayer(web_contents,
+                                      siteless_url /* deferred_url */,
+                                      std::move(did_commit_callback));
+
+  // Start the first navigation, which does not assign a site URL.
+  shell()->LoadURL(siteless_url);
+
+  // The navigation should stay in the initial empty SiteInstance, so there
+  // shouldn't be a speculative RFH at this point.
+  EXPECT_FALSE(root->render_manager()->speculative_frame_host());
+
+  // Wait for the DidCommit IPC for |siteless_url|, and before processing it,
+  // trigger a navigation to |foo_url| and wait for its response.
+  commit_delayer.Wait();
+
+  // Check that the renderer hasn't been killed.  At this point, it should've
+  // successfully committed the navigation to |siteless_url|, and it shouldn't
+  // be locked.
+  EXPECT_TRUE(web_contents->GetMainFrame()->IsRenderFrameLive());
+  EXPECT_EQ(siteless_url, web_contents->GetMainFrame()->GetLastCommittedURL());
+  RenderProcessHost* process1 = web_contents->GetMainFrame()->GetProcess();
+  EXPECT_FALSE(web_contents->GetMainFrame()->GetSiteInstance()->HasSite());
+  EXPECT_EQ(GURL(), policy->GetOriginLock(process1->GetID()));
+
+  // Now wait for second navigation to finish and ensure it also succeeds.
+  foo_manager.WaitForNavigationFinished();
+  EXPECT_TRUE(foo_manager.was_successful());
+  EXPECT_TRUE(web_contents->GetMainFrame()->IsRenderFrameLive());
+  EXPECT_EQ(foo_url, web_contents->GetMainFrame()->GetLastCommittedURL());
+
+  // The foo.com navigation should've used a different process, locked to
+  // foo.com.
+  RenderProcessHost* process2 = web_contents->GetMainFrame()->GetProcess();
+  EXPECT_NE(process1, process2);
+  EXPECT_EQ(GURL("http://foo.com"),
+            web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL());
+  EXPECT_EQ(GURL("http://foo.com"), policy->GetOriginLock(process2->GetID()));
+
+  // Ensure also that the foo.com process didn't change midway through the
+  // navigation.
+  EXPECT_EQ(foo_process, process2);
+
+  // Ensure we've logged the UMA for disallowing problematic process reuse.
+  // Since IsSuitableHost() is checked multiple times during a particular
+  // navigation, just make sure that this is logged at least once.
+  EXPECT_GE(histograms.GetBucketCount(
+                "SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse",
+                1 /* has_disqualifying_pending_navigation */),
+            1);
+
+  SetBrowserClientForTesting(old_client);
+}
+
 }  // namespace content
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index e1259dc0..77f86114 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -841,18 +841,10 @@
     }
 
     if (num_resets_within_timeframe >= kNumResetsWithinDuration) {
-      UMA_HISTOGRAM_ENUMERATION("GPU.BlockStatusForClient3DAPIs",
-                                BLOCK_STATUS_ALL_DOMAINS_BLOCKED,
-                                BLOCK_STATUS_MAX);
-
       return DomainBlockStatus::kAllDomainsBlocked;
     }
   }
 
-  UMA_HISTOGRAM_ENUMERATION("GPU.BlockStatusForClient3DAPIs",
-                            BLOCK_STATUS_NOT_BLOCKED,
-                            BLOCK_STATUS_MAX);
-
   return DomainBlockStatus::kNotBlocked;
 }
 
diff --git a/content/browser/memory/swap_metrics_delegate_uma.cc b/content/browser/memory/swap_metrics_delegate_uma.cc
deleted file mode 100644
index 7745eab..0000000
--- a/content/browser/memory/swap_metrics_delegate_uma.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/memory/swap_metrics_delegate_uma.h"
-
-#include "base/metrics/histogram_macros.h"
-
-namespace content {
-
-SwapMetricsDelegateUma::SwapMetricsDelegateUma() = default;
-
-SwapMetricsDelegateUma::~SwapMetricsDelegateUma() = default;
-
-void SwapMetricsDelegateUma::OnSwapInCount(uint64_t count,
-                                           base::TimeDelta interval) {
-  UMA_HISTOGRAM_COUNTS_10000(
-      "Memory.Experimental.SwapInPerSecond",
-      static_cast<double>(count) / interval.InSecondsF());
-}
-
-void SwapMetricsDelegateUma::OnSwapOutCount(uint64_t count,
-                                            base::TimeDelta interval) {
-  UMA_HISTOGRAM_COUNTS_10000(
-      "Memory.Experimental.SwapOutPerSecond",
-      static_cast<double>(count) / interval.InSecondsF());
-}
-
-void SwapMetricsDelegateUma::OnDecompressedPageCount(uint64_t count,
-                                                     base::TimeDelta interval) {
-  UMA_HISTOGRAM_COUNTS_10000(
-      "Memory.Experimental.DecompressedPagesPerSecond",
-      static_cast<double>(count) / interval.InSecondsF());
-}
-
-void SwapMetricsDelegateUma::OnCompressedPageCount(uint64_t count,
-                                                   base::TimeDelta interval) {
-  UMA_HISTOGRAM_COUNTS_10000(
-      "Memory.Experimental.CompressedPagesPerSecond",
-      static_cast<double>(count) / interval.InSecondsF());
-}
-
-}  // namespace content
diff --git a/content/browser/memory/swap_metrics_delegate_uma.h b/content/browser/memory/swap_metrics_delegate_uma.h
deleted file mode 100644
index 33b55f5..0000000
--- a/content/browser/memory/swap_metrics_delegate_uma.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_
-#define CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_
-
-#include "content/public/browser/swap_metrics_driver.h"
-
-#include "base/time/time.h"
-
-namespace content {
-
-// This class records metrics related to the system's swapping behavior.
-// Metrics can be platform-specific.
-class SwapMetricsDelegateUma : public SwapMetricsDriver::Delegate {
- public:
-  SwapMetricsDelegateUma();
-  ~SwapMetricsDelegateUma() override;
-
-  void OnSwapInCount(uint64_t count, base::TimeDelta interval) override;
-  void OnSwapOutCount(uint64_t count, base::TimeDelta interval) override;
-  void OnDecompressedPageCount(uint64_t count,
-                               base::TimeDelta interval) override;
-  void OnCompressedPageCount(uint64_t count, base::TimeDelta interval) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(SwapMetricsDelegateUma);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_
diff --git a/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc b/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc
new file mode 100644
index 0000000..ead66ea
--- /dev/null
+++ b/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc
@@ -0,0 +1,28 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h"
+
+namespace content {
+
+FixedNativeFileSystemPermissionGrant::FixedNativeFileSystemPermissionGrant(
+    PermissionStatus status)
+    : status_(status) {}
+
+FixedNativeFileSystemPermissionGrant::~FixedNativeFileSystemPermissionGrant() =
+    default;
+
+FixedNativeFileSystemPermissionGrant::PermissionStatus
+FixedNativeFileSystemPermissionGrant::GetStatus() const {
+  return status_;
+}
+
+void FixedNativeFileSystemPermissionGrant::RequestPermission(
+    int process_id,
+    int frame_id,
+    base::OnceClosure callback) {
+  std::move(callback).Run();
+}
+
+}  // namespace content
diff --git a/content/browser/native_file_system/fixed_native_file_system_permission_grant.h b/content/browser/native_file_system/fixed_native_file_system_permission_grant.h
new file mode 100644
index 0000000..4664d0c
--- /dev/null
+++ b/content/browser/native_file_system/fixed_native_file_system_permission_grant.h
@@ -0,0 +1,39 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+#define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+
+#include "content/public/browser/native_file_system_permission_grant.h"
+
+#include "content/common/content_export.h"
+
+namespace content {
+
+// NativeFileSystemPermissionGrant implementation that returns a fixed value as
+// permission status. Used for example to model the permissions for sandboxed
+// file systems (which can't change), as well as in tests.
+// RequestPermission will immediately call the callback, leaving the status
+// unchanged.
+class CONTENT_EXPORT FixedNativeFileSystemPermissionGrant
+    : public NativeFileSystemPermissionGrant {
+ public:
+  explicit FixedNativeFileSystemPermissionGrant(PermissionStatus status);
+
+  // NativeFileSystemPermissionContext::PermissionGrant:
+  PermissionStatus GetStatus() const override;
+  void RequestPermission(int process_id,
+                         int frame_id,
+                         base::OnceClosure callback) override;
+
+ protected:
+  ~FixedNativeFileSystemPermissionGrant() override;
+
+ private:
+  const PermissionStatus status_;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_grant.cc b/content/browser/native_file_system/mock_native_file_system_permission_grant.cc
new file mode 100644
index 0000000..b570830
--- /dev/null
+++ b/content/browser/native_file_system/mock_native_file_system_permission_grant.cc
@@ -0,0 +1,21 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/native_file_system/mock_native_file_system_permission_grant.h"
+
+namespace content {
+
+MockNativeFileSystemPermissionGrant::MockNativeFileSystemPermissionGrant() =
+    default;
+MockNativeFileSystemPermissionGrant::~MockNativeFileSystemPermissionGrant() =
+    default;
+
+void MockNativeFileSystemPermissionGrant::RequestPermission(
+    int process_id,
+    int frame_id,
+    base::OnceClosure callback) {
+  RequestPermission_(process_id, frame_id, callback);
+}
+
+}  // namespace content
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_grant.h b/content/browser/native_file_system/mock_native_file_system_permission_grant.h
new file mode 100644
index 0000000..2540e6cc
--- /dev/null
+++ b/content/browser/native_file_system/mock_native_file_system_permission_grant.h
@@ -0,0 +1,32 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+#define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+
+#include "content/public/browser/native_file_system_permission_grant.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace content {
+
+// Mock NativeFileSystemPermissionGrant implementation.
+class MockNativeFileSystemPermissionGrant
+    : public NativeFileSystemPermissionGrant {
+ public:
+  MockNativeFileSystemPermissionGrant();
+
+  MOCK_CONST_METHOD0(GetStatus, PermissionStatus());
+  void RequestPermission(int process_id,
+                         int frame_id,
+                         base::OnceClosure callback) override;
+  MOCK_METHOD3(RequestPermission_,
+               void(int process_id, int frame_id, base::OnceClosure& callback));
+
+ protected:
+  ~MockNativeFileSystemPermissionGrant();
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/browser/native_file_system/native_file_system_directory_handle_impl.cc b/content/browser/native_file_system/native_file_system_directory_handle_impl.cc
index 6da991297..56c4f07 100644
--- a/content/browser/native_file_system/native_file_system_directory_handle_impl.cc
+++ b/content/browser/native_file_system/native_file_system_directory_handle_impl.cc
@@ -56,11 +56,8 @@
     NativeFileSystemManagerImpl* manager,
     const BindingContext& context,
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system)
-    : NativeFileSystemHandleBase(manager,
-                                 context,
-                                 url,
-                                 std::move(file_system)) {}
+    const SharedHandleState& handle_state)
+    : NativeFileSystemHandleBase(manager, context, url, handle_state) {}
 
 NativeFileSystemDirectoryHandleImpl::~NativeFileSystemDirectoryHandleImpl() =
     default;
@@ -221,7 +218,7 @@
 
   std::move(callback).Run(
       NativeFileSystemError::New(base::File::FILE_OK),
-      manager()->CreateFileHandle(context(), url, file_system()));
+      manager()->CreateFileHandle(context(), url, handle_state()));
 }
 
 void NativeFileSystemDirectoryHandleImpl::GetDirectoryWithWritePermission(
@@ -251,7 +248,7 @@
 
   std::move(callback).Run(
       NativeFileSystemError::New(base::File::FILE_OK),
-      manager()->CreateDirectoryHandle(context(), url, file_system()));
+      manager()->CreateDirectoryHandle(context(), url, handle_state()));
 }
 
 void NativeFileSystemDirectoryHandleImpl::DidReadDirectory(
@@ -343,16 +340,21 @@
     return NativeFileSystemEntry::New(
         NativeFileSystemHandle::NewDirectory(
             manager()
-                ->CreateDirectoryHandle(context(), url, file_system())
+                ->CreateDirectoryHandle(context(), url, handle_state())
                 .PassInterface()),
         name);
   }
   return NativeFileSystemEntry::New(
       NativeFileSystemHandle::NewFile(
           manager()
-              ->CreateFileHandle(context(), url, file_system())
+              ->CreateFileHandle(context(), url, handle_state())
               .PassInterface()),
       name);
 }
 
+base::WeakPtr<NativeFileSystemHandleBase>
+NativeFileSystemDirectoryHandleImpl::AsWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
 }  // namespace content
diff --git a/content/browser/native_file_system/native_file_system_directory_handle_impl.h b/content/browser/native_file_system/native_file_system_directory_handle_impl.h
index 8066a95..66ebb08 100644
--- a/content/browser/native_file_system/native_file_system_directory_handle_impl.h
+++ b/content/browser/native_file_system/native_file_system_directory_handle_impl.h
@@ -25,11 +25,10 @@
     : public NativeFileSystemHandleBase,
       public blink::mojom::NativeFileSystemDirectoryHandle {
  public:
-  NativeFileSystemDirectoryHandleImpl(
-      NativeFileSystemManagerImpl* manager,
-      const BindingContext& context,
-      const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system);
+  NativeFileSystemDirectoryHandleImpl(NativeFileSystemManagerImpl* manager,
+                                      const BindingContext& context,
+                                      const storage::FileSystemURL& url,
+                                      const SharedHandleState& handle_state);
   ~NativeFileSystemDirectoryHandleImpl() override;
 
   // blink::mojom::NativeFileSystemDirectoryHandle:
@@ -86,6 +85,8 @@
       const storage::FileSystemURL& url,
       bool is_directory);
 
+  base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override;
+
   base::WeakPtrFactory<NativeFileSystemDirectoryHandleImpl> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(NativeFileSystemDirectoryHandleImpl);
 };
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl.cc b/content/browser/native_file_system/native_file_system_file_handle_impl.cc
index 9d95d5b..5c1f6dc 100644
--- a/content/browser/native_file_system/native_file_system_file_handle_impl.cc
+++ b/content/browser/native_file_system/native_file_system_file_handle_impl.cc
@@ -30,11 +30,8 @@
     NativeFileSystemManagerImpl* manager,
     const BindingContext& context,
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system)
-    : NativeFileSystemHandleBase(manager,
-                                 context,
-                                 url,
-                                 std::move(file_system)) {}
+    const SharedHandleState& handle_state)
+    : NativeFileSystemHandleBase(manager, context, url, handle_state) {}
 
 NativeFileSystemFileHandleImpl::~NativeFileSystemFileHandleImpl() = default;
 
@@ -263,4 +260,9 @@
           std::move(callback)));
 }
 
+base::WeakPtr<NativeFileSystemHandleBase>
+NativeFileSystemFileHandleImpl::AsWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
 }  // namespace content
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl.h b/content/browser/native_file_system/native_file_system_file_handle_impl.h
index 75ab721..f2801fb 100644
--- a/content/browser/native_file_system/native_file_system_file_handle_impl.h
+++ b/content/browser/native_file_system/native_file_system_file_handle_impl.h
@@ -35,11 +35,10 @@
     : public NativeFileSystemHandleBase,
       public blink::mojom::NativeFileSystemFileHandle {
  public:
-  NativeFileSystemFileHandleImpl(
-      NativeFileSystemManagerImpl* manager,
-      const BindingContext& context,
-      const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system);
+  NativeFileSystemFileHandleImpl(NativeFileSystemManagerImpl* manager,
+                                 const BindingContext& context,
+                                 const storage::FileSystemURL& url,
+                                 const SharedHandleState& handle_state);
   ~NativeFileSystemFileHandleImpl() override;
 
   // blink::mojom::NativeFileSystemFileHandle:
@@ -86,6 +85,8 @@
 
   void TruncateImpl(uint64_t length, TruncateCallback callback);
 
+  base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override;
+
   base::WeakPtrFactory<NativeFileSystemFileHandleImpl> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(NativeFileSystemFileHandleImpl);
 };
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc b/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc
index 56fba97..0192416 100644
--- a/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc
+++ b/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc
@@ -12,6 +12,7 @@
 #include "base/test/bind_test_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_task_environment.h"
+#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "mojo/public/cpp/system/string_data_pipe_producer.h"
 #include "net/base/io_buffer.h"
@@ -56,14 +57,17 @@
     blob_context_ = chrome_blob_context_->context();
 
     manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>(
-        file_system_context_, chrome_blob_context_);
+        file_system_context_, chrome_blob_context_,
+        /*permission_context=*/nullptr);
 
     handle_ = std::make_unique<NativeFileSystemFileHandleImpl>(
         manager_.get(),
         NativeFileSystemManagerImpl::BindingContext(
             test_url_.origin(), /*process_id=*/1,
             /*frame_id=*/MSG_ROUTING_NONE),
-        test_url_, storage::IsolatedContext::ScopedFSHandle());
+        test_url_,
+        NativeFileSystemManagerImpl::SharedHandleState(
+            permission_grant_, permission_grant_, /*file_system=*/{}));
   }
 
   blink::mojom::BlobPtr CreateBlob(const std::string& contents) {
@@ -192,6 +196,9 @@
 
   FileSystemURL test_url_;
 
+  scoped_refptr<FixedNativeFileSystemPermissionGrant> permission_grant_ =
+      base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+          FixedNativeFileSystemPermissionGrant::PermissionStatus::GRANTED);
   std::unique_ptr<NativeFileSystemFileHandleImpl> handle_;
 };
 
diff --git a/content/browser/native_file_system/native_file_system_handle_base.cc b/content/browser/native_file_system/native_file_system_handle_base.cc
index f8be556..28aa2d8 100644
--- a/content/browser/native_file_system/native_file_system_handle_base.cc
+++ b/content/browser/native_file_system/native_file_system_handle_base.cc
@@ -4,22 +4,20 @@
 
 #include "content/browser/native_file_system/native_file_system_handle_base.h"
 
-#include "content/public/common/content_switches.h"
-
 namespace content {
 
 NativeFileSystemHandleBase::NativeFileSystemHandleBase(
     NativeFileSystemManagerImpl* manager,
     const BindingContext& context,
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system)
+    const SharedHandleState& handle_state)
     : manager_(manager),
       context_(context),
       url_(url),
-      file_system_(std::move(file_system)) {
+      handle_state_(handle_state) {
   DCHECK(manager_);
   DCHECK_EQ(url_.mount_type() == storage::kFileSystemTypeIsolated,
-            file_system_.is_valid())
+            handle_state_.file_system.is_valid())
       << url_.mount_type();
   // For now only support sandboxed file system and native file system.
   DCHECK(url_.type() == storage::kFileSystemTypeNativeLocal ||
@@ -27,24 +25,25 @@
          url_.type() == storage::kFileSystemTypeTemporary ||
          url_.type() == storage::kFileSystemTypeTest)
       << url_.type();
-  // Sandboxed and test file systems should always be writable.
-  if (url_.type() == storage::kFileSystemTypePersistent ||
-      url_.type() == storage::kFileSystemTypeTemporary ||
-      url_.type() == storage::kFileSystemTypeTest) {
-    write_permission_status_ = PermissionStatus::GRANTED;
-  }
 }
 
 NativeFileSystemHandleBase::~NativeFileSystemHandleBase() = default;
 
 NativeFileSystemHandleBase::PermissionStatus
-NativeFileSystemHandleBase::GetWritePermissionStatus() const {
+NativeFileSystemHandleBase::GetReadPermissionStatus() {
+  return handle_state_.read_grant->GetStatus();
+}
+
+NativeFileSystemHandleBase::PermissionStatus
+NativeFileSystemHandleBase::GetWritePermissionStatus() {
   // It is not currently possible to have write only handles, so first check the
   // read permission status. See also:
   // http://wicg.github.io/native-file-system/#api-filesystemhandle-querypermission
-  if (read_permission_status_ != PermissionStatus::GRANTED)
-    return read_permission_status_;
-  return write_permission_status_;
+  PermissionStatus read_status = GetReadPermissionStatus();
+  if (read_status != PermissionStatus::GRANTED)
+    return read_status;
+
+  return handle_state_.write_grant->GetStatus();
 }
 
 void NativeFileSystemHandleBase::DoGetPermissionStatus(
@@ -64,24 +63,21 @@
     return;
   }
   if (!writable) {
-    // TODO(https://crbug.com/971401): Implement prompt. Currently unreachable,
-    // since read permission isn't revokable yet.
-    std::move(callback).Run(read_permission_status_);
+    handle_state_.read_grant->RequestPermission(
+        context().process_id, context().frame_id,
+        base::BindOnce(&NativeFileSystemHandleBase::DoGetPermissionStatus,
+                       AsWeakPtr(), writable, std::move(callback)));
     return;
   }
+
   // TODO(https://crbug.com/971401): Today read permission isn't revokable, so
   // current status should always be GRANTED.
   DCHECK_EQ(GetReadPermissionStatus(), PermissionStatus::GRANTED);
-  // TODO(https://crbug.com/878585): Actually prompt for write permission. For
-  // now we're just always denying requests, unless Experimental Web Platform
-  // features are enabled.
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kEnableExperimentalWebPlatformFeatures)) {
-    write_permission_status_ = PermissionStatus::GRANTED;
-  } else {
-    write_permission_status_ = PermissionStatus::DENIED;
-  }
-  std::move(callback).Run(write_permission_status_);
+
+  handle_state_.write_grant->RequestPermission(
+      context().process_id, context().frame_id,
+      base::BindOnce(&NativeFileSystemHandleBase::DoGetPermissionStatus,
+                     AsWeakPtr(), writable, std::move(callback)));
 }
 
 }  // namespace content
diff --git a/content/browser/native_file_system/native_file_system_handle_base.h b/content/browser/native_file_system/native_file_system_handle_base.h
index 336c8acf..8da0b11a 100644
--- a/content/browser/native_file_system/native_file_system_handle_base.h
+++ b/content/browser/native_file_system/native_file_system_handle_base.h
@@ -7,6 +7,7 @@
 
 #include <vector>
 
+#include "base/memory/weak_ptr.h"
 #include "content/browser/native_file_system/native_file_system_manager_impl.h"
 #include "content/common/content_export.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -33,24 +34,23 @@
 class CONTENT_EXPORT NativeFileSystemHandleBase {
  public:
   using BindingContext = NativeFileSystemManagerImpl::BindingContext;
+  using SharedHandleState = NativeFileSystemManagerImpl::SharedHandleState;
   using PermissionStatus = blink::mojom::PermissionStatus;
 
-  NativeFileSystemHandleBase(
-      NativeFileSystemManagerImpl* manager,
-      const BindingContext& context,
-      const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system);
+  NativeFileSystemHandleBase(NativeFileSystemManagerImpl* manager,
+                             const BindingContext& context,
+                             const storage::FileSystemURL& url,
+                             const SharedHandleState& handle_state);
   virtual ~NativeFileSystemHandleBase();
 
   const storage::FileSystemURL& url() const { return url_; }
+  const SharedHandleState& handle_state() const { return handle_state_; }
   const storage::IsolatedContext::ScopedFSHandle& file_system() const {
-    return file_system_;
+    return handle_state_.file_system;
   }
 
-  PermissionStatus GetReadPermissionStatus() const {
-    return read_permission_status_;
-  }
-  PermissionStatus GetWritePermissionStatus() const;
+  PermissionStatus GetReadPermissionStatus();
+  PermissionStatus GetWritePermissionStatus();
 
   // Implementation for the GetPermissionStatus method in the
   // blink::mojom::NativeFileSystemFileHandle and DirectoryHandle interfaces.
@@ -84,17 +84,14 @@
     return manager()->blob_context();
   }
 
+  virtual base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() = 0;
+
  private:
   // The NativeFileSystemManagerImpl that owns this instance.
   NativeFileSystemManagerImpl* const manager_;
   const BindingContext context_;
   const storage::FileSystemURL url_;
-  const storage::IsolatedContext::ScopedFSHandle file_system_;
-
-  // TODO(mek): We'll likely end up with something more complicated than simple
-  // fields like this, but this will do for now.
-  PermissionStatus read_permission_status_ = PermissionStatus::GRANTED;
-  PermissionStatus write_permission_status_ = PermissionStatus::ASK;
+  const SharedHandleState handle_state_;
 
   DISALLOW_COPY_AND_ASSIGN(NativeFileSystemHandleBase);
 };
diff --git a/content/browser/native_file_system/native_file_system_handle_base_unittest.cc b/content/browser/native_file_system/native_file_system_handle_base_unittest.cc
index dc12427..101bd42 100644
--- a/content/browser/native_file_system/native_file_system_handle_base_unittest.cc
+++ b/content/browser/native_file_system/native_file_system_handle_base_unittest.cc
@@ -6,8 +6,10 @@
 
 #include "base/files/scoped_temp_dir.h"
 #include "base/test/bind_test_util.h"
+#include "base/test/gmock_callback_support.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_task_environment.h"
+#include "content/browser/native_file_system/mock_native_file_system_permission_grant.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "storage/browser/blob/blob_storage_context.h"
 #include "storage/browser/test/test_file_system_context.h"
@@ -16,9 +18,25 @@
 
 namespace content {
 
+using base::test::RunOnceCallback;
 using blink::mojom::PermissionStatus;
 using storage::FileSystemURL;
 
+class TestNativeFileSystemHandle : public NativeFileSystemHandleBase {
+ public:
+  TestNativeFileSystemHandle(NativeFileSystemManagerImpl* manager,
+                             const BindingContext& context,
+                             const storage::FileSystemURL& url,
+                             const SharedHandleState& handle_state)
+      : NativeFileSystemHandleBase(manager, context, url, handle_state) {}
+
+ private:
+  base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override {
+    return weak_factory_.GetWeakPtr();
+  }
+  base::WeakPtrFactory<TestNativeFileSystemHandle> weak_factory_{this};
+};
+
 class NativeFileSystemHandleBaseTest : public testing::Test {
  public:
   NativeFileSystemHandleBaseTest()
@@ -37,7 +55,8 @@
     chrome_blob_context_->InitializeOnIOThread(base::FilePath(), nullptr);
 
     manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>(
-        file_system_context_, chrome_blob_context_);
+        file_system_context_, chrome_blob_context_,
+        /*permission_context=*/nullptr);
   }
 
  protected:
@@ -49,74 +68,136 @@
   base::ScopedTempDir dir_;
   scoped_refptr<storage::FileSystemContext> file_system_context_;
   scoped_refptr<ChromeBlobStorageContext> chrome_blob_context_;
+
+  scoped_refptr<MockNativeFileSystemPermissionGrant> read_grant_ =
+      base::MakeRefCounted<
+          testing::StrictMock<MockNativeFileSystemPermissionGrant>>();
+  scoped_refptr<MockNativeFileSystemPermissionGrant> write_grant_ =
+      base::MakeRefCounted<
+          testing::StrictMock<MockNativeFileSystemPermissionGrant>>();
+
   scoped_refptr<NativeFileSystemManagerImpl> manager_;
+
+  NativeFileSystemManagerImpl::SharedHandleState handle_state_ = {read_grant_,
+                                                                  write_grant_,
+                                                                  {}};
 };
 
-TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_TestURL) {
+TEST_F(NativeFileSystemHandleBaseTest, GetReadPermissionStatus) {
   auto url =
       FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest,
-                                   base::FilePath::FromUTF8Unsafe("test"));
-  NativeFileSystemHandleBase handle(manager_.get(),
+                                   base::FilePath::FromUTF8Unsafe("/test"));
+  TestNativeFileSystemHandle handle(manager_.get(),
                                     NativeFileSystemManagerImpl::BindingContext(
                                         kTestOrigin, /*process_id=*/1,
                                         /*frame_id=*/MSG_ROUTING_NONE),
-                                    url,
-                                    storage::IsolatedContext::ScopedFSHandle());
+                                    url, handle_state_);
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::ASK));
+  EXPECT_EQ(PermissionStatus::ASK, handle.GetReadPermissionStatus());
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::GRANTED));
   EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus());
-  EXPECT_EQ(PermissionStatus::GRANTED, handle.GetWritePermissionStatus());
 }
 
-TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_SandboxedURL) {
-  auto url = FileSystemURL::CreateForTest(
-      kTestOrigin, storage::kFileSystemTypeTemporary,
-      base::FilePath::FromUTF8Unsafe("test"));
-
-  NativeFileSystemHandleBase handle(manager_.get(),
+TEST_F(NativeFileSystemHandleBaseTest,
+       GetWritePermissionStatus_ReadStatusNotGranted) {
+  auto url =
+      FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest,
+                                   base::FilePath::FromUTF8Unsafe("/test"));
+  TestNativeFileSystemHandle handle(manager_.get(),
                                     NativeFileSystemManagerImpl::BindingContext(
                                         kTestOrigin, /*process_id=*/1,
                                         /*frame_id=*/MSG_ROUTING_NONE),
-                                    url,
-                                    storage::IsolatedContext::ScopedFSHandle());
-  EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus());
-  EXPECT_EQ(PermissionStatus::GRANTED, handle.GetWritePermissionStatus());
+                                    url, handle_state_);
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::ASK));
+  EXPECT_EQ(PermissionStatus::ASK, handle.GetWritePermissionStatus());
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::DENIED));
+  EXPECT_EQ(PermissionStatus::DENIED, handle.GetWritePermissionStatus());
 }
 
-TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_NativeFSURL) {
-  auto url = FileSystemURL::CreateForTest(
-      kTestOrigin, storage::kFileSystemTypeNativeLocal,
-      base::FilePath::FromUTF8Unsafe("test"));
-
-  NativeFileSystemHandleBase handle(manager_.get(),
+TEST_F(NativeFileSystemHandleBaseTest,
+       GetWritePermissionStatus_ReadStatusGranted) {
+  auto url =
+      FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest,
+                                   base::FilePath::FromUTF8Unsafe("/test"));
+  TestNativeFileSystemHandle handle(manager_.get(),
                                     NativeFileSystemManagerImpl::BindingContext(
                                         kTestOrigin, /*process_id=*/1,
                                         /*frame_id=*/MSG_ROUTING_NONE),
-                                    url,
-                                    storage::IsolatedContext::ScopedFSHandle());
-  EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus());
+                                    url, handle_state_);
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::GRANTED));
+  EXPECT_CALL(*write_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::ASK));
   EXPECT_EQ(PermissionStatus::ASK, handle.GetWritePermissionStatus());
 }
 
-TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission_NativeFSURL) {
-  auto url = FileSystemURL::CreateForTest(
-      kTestOrigin, storage::kFileSystemTypeNativeLocal,
-      base::FilePath::FromUTF8Unsafe("test"));
-
-  NativeFileSystemHandleBase handle(manager_.get(),
+TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission_AlreadyGranted) {
+  auto url =
+      FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest,
+                                   base::FilePath::FromUTF8Unsafe("/test"));
+  TestNativeFileSystemHandle handle(manager_.get(),
                                     NativeFileSystemManagerImpl::BindingContext(
                                         kTestOrigin, /*process_id=*/1,
                                         /*frame_id=*/MSG_ROUTING_NONE),
-                                    url,
-                                    storage::IsolatedContext::ScopedFSHandle());
+                                    url, handle_state_);
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::GRANTED));
+  EXPECT_CALL(*write_grant_, GetStatus())
+      .WillOnce(testing::Return(PermissionStatus::GRANTED));
 
   base::RunLoop loop;
   handle.DoRequestPermission(
       /*writable=*/true,
       base::BindLambdaForTesting([&](PermissionStatus result) {
-        EXPECT_EQ(PermissionStatus::DENIED, result);
+        EXPECT_EQ(PermissionStatus::GRANTED, result);
         loop.Quit();
       }));
   loop.Run();
-  EXPECT_EQ(PermissionStatus::DENIED, handle.GetWritePermissionStatus());
+}
+
+TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission) {
+  const int kProcessId = 1;
+  const int kFrameId = 2;
+
+  auto url =
+      FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest,
+                                   base::FilePath::FromUTF8Unsafe("/test"));
+  TestNativeFileSystemHandle handle(manager_.get(),
+                                    NativeFileSystemManagerImpl::BindingContext(
+                                        kTestOrigin, kProcessId, kFrameId),
+                                    url, handle_state_);
+
+  EXPECT_CALL(*read_grant_, GetStatus())
+      .WillRepeatedly(testing::Return(PermissionStatus::GRANTED));
+  {
+    testing::InSequence sequence;
+    EXPECT_CALL(*write_grant_, GetStatus())
+        .WillOnce(testing::Return(PermissionStatus::ASK));
+    EXPECT_CALL(*write_grant_,
+                RequestPermission_(kProcessId, kFrameId, testing::_))
+        .WillOnce(RunOnceCallback<2>());
+    EXPECT_CALL(*write_grant_, GetStatus())
+        .WillOnce(testing::Return(PermissionStatus::GRANTED));
+  }
+
+  base::RunLoop loop;
+  handle.DoRequestPermission(
+      /*writable=*/true,
+      base::BindLambdaForTesting([&](PermissionStatus result) {
+        EXPECT_EQ(PermissionStatus::GRANTED, result);
+        loop.Quit();
+      }));
+  loop.Run();
 }
 
 }  // namespace content
diff --git a/content/browser/native_file_system/native_file_system_manager_impl.cc b/content/browser/native_file_system/native_file_system_manager_impl.cc
index 24313daa..f3aa7aed 100644
--- a/content/browser/native_file_system/native_file_system_manager_impl.cc
+++ b/content/browser/native_file_system/native_file_system_manager_impl.cc
@@ -7,13 +7,13 @@
 #include "base/files/file_path.h"
 #include "base/task/post_task.h"
 #include "content/browser/native_file_system/file_system_chooser.h"
+#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h"
 #include "content/browser/native_file_system/native_file_system_directory_handle_impl.h"
 #include "content/browser/native_file_system/native_file_system_file_handle_impl.h"
 #include "content/browser/native_file_system/native_file_system_transfer_token_impl.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
-#include "content/public/browser/content_browser_client.h"
-#include "content/public/common/content_client.h"
+#include "content/public/common/content_switches.h"
 #include "mojo/public/cpp/bindings/callback_helpers.h"
 #include "storage/browser/fileapi/file_system_context.h"
 #include "storage/browser/fileapi/file_system_operation_runner.h"
@@ -24,14 +24,33 @@
 #include "third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom.h"
 #include "url/origin.h"
 
-using blink::mojom::NativeFileSystemError;
-
 namespace content {
 
+using blink::mojom::NativeFileSystemError;
+using PermissionStatus = NativeFileSystemPermissionGrant::PermissionStatus;
+
+NativeFileSystemManagerImpl::SharedHandleState::SharedHandleState(
+    scoped_refptr<NativeFileSystemPermissionGrant> read_grant,
+    scoped_refptr<NativeFileSystemPermissionGrant> write_grant,
+    storage::IsolatedContext::ScopedFSHandle file_system)
+    : read_grant(std::move(read_grant)),
+      write_grant(std::move(write_grant)),
+      file_system(std::move(file_system)) {
+  DCHECK(this->read_grant);
+  DCHECK(this->write_grant);
+}
+
+NativeFileSystemManagerImpl::SharedHandleState::SharedHandleState(
+    const SharedHandleState& other) = default;
+NativeFileSystemManagerImpl::SharedHandleState::~SharedHandleState() = default;
+
 NativeFileSystemManagerImpl::NativeFileSystemManagerImpl(
     scoped_refptr<storage::FileSystemContext> context,
-    scoped_refptr<ChromeBlobStorageContext> blob_context)
-    : context_(std::move(context)), blob_context_(std::move(blob_context)) {
+    scoped_refptr<ChromeBlobStorageContext> blob_context,
+    NativeFileSystemPermissionContext* permission_context)
+    : context_(std::move(context)),
+      blob_context_(std::move(blob_context)),
+      permission_context_(permission_context) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(context_);
   DCHECK(blob_context_);
@@ -87,18 +106,17 @@
 NativeFileSystemManagerImpl::CreateFileHandle(
     const BindingContext& binding_context,
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system) {
+    const SharedHandleState& handle_state) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(url.is_valid());
   DCHECK_EQ(url.mount_type() == storage::kFileSystemTypeIsolated,
-            file_system.is_valid())
+            handle_state.file_system.is_valid())
       << url.mount_type();
 
   blink::mojom::NativeFileSystemFileHandlePtr result;
-  file_bindings_.AddBinding(
-      std::make_unique<NativeFileSystemFileHandleImpl>(
-          this, binding_context, url, std::move(file_system)),
-      mojo::MakeRequest(&result));
+  file_bindings_.AddBinding(std::make_unique<NativeFileSystemFileHandleImpl>(
+                                this, binding_context, url, handle_state),
+                            mojo::MakeRequest(&result));
   return result;
 }
 
@@ -106,17 +124,17 @@
 NativeFileSystemManagerImpl::CreateDirectoryHandle(
     const BindingContext& binding_context,
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system) {
+    const SharedHandleState& handle_state) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(url.is_valid());
   DCHECK_EQ(url.mount_type() == storage::kFileSystemTypeIsolated,
-            file_system.is_valid())
+            handle_state.file_system.is_valid())
       << url.mount_type();
 
   blink::mojom::NativeFileSystemDirectoryHandlePtr result;
   directory_bindings_.AddBinding(
       std::make_unique<NativeFileSystemDirectoryHandleImpl>(
-          this, binding_context, url, std::move(file_system)),
+          this, binding_context, url, handle_state),
       mojo::MakeRequest(&result));
   return result;
 }
@@ -128,9 +146,30 @@
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   auto url = CreateFileSystemURLFromPath(binding_context.origin, file_path);
 
+  auto read_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+      PermissionStatus::GRANTED);
+  scoped_refptr<NativeFileSystemPermissionGrant> write_grant;
+  if (permission_context_) {
+    write_grant = permission_context_->GetWritePermissionGrant(
+        binding_context.origin, file_path, /*is_directory=*/false);
+  } else {
+    // Auto-deny all write grants if no permisson context is available, unless
+    // Experimental Web Platform features are enabled.
+    // TODO(mek): Remove experimental web platform check when permission UI is
+    // implemented.
+    write_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+        base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kEnableExperimentalWebPlatformFeatures)
+            ? PermissionStatus::GRANTED
+            : PermissionStatus::DENIED);
+  }
+
   return blink::mojom::NativeFileSystemEntry::New(
       blink::mojom::NativeFileSystemHandle::NewFile(
-          CreateFileHandle(binding_context, url.url, std::move(url.file_system))
+          CreateFileHandle(
+              binding_context, url.url,
+              SharedHandleState(std::move(read_grant), std::move(write_grant),
+                                std::move(url.file_system)))
               .PassInterface()),
       url.base_name);
 }
@@ -143,10 +182,30 @@
   auto url =
       CreateFileSystemURLFromPath(binding_context.origin, directory_path);
 
+  auto read_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+      PermissionStatus::GRANTED);
+  scoped_refptr<NativeFileSystemPermissionGrant> write_grant;
+  if (permission_context_) {
+    write_grant = permission_context_->GetWritePermissionGrant(
+        binding_context.origin, directory_path, /*is_directory=*/true);
+  } else {
+    // Auto-deny all write grants if no permisson context is available, unless
+    // Experimental Web Platform features are enabled.
+    // TODO(mek): Remove experimental web platform check when permission UI is
+    // implemented.
+    write_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+        base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kEnableExperimentalWebPlatformFeatures)
+            ? PermissionStatus::GRANTED
+            : PermissionStatus::DENIED);
+  }
+
   return blink::mojom::NativeFileSystemEntry::New(
       blink::mojom::NativeFileSystemHandle::NewDirectory(
-          CreateDirectoryHandle(binding_context, url.url,
-                                std::move(url.file_system))
+          CreateDirectoryHandle(
+              binding_context, url.url,
+              SharedHandleState(std::move(read_grant), std::move(write_grant),
+                                std::move(url.file_system)))
               .PassInterface()),
       url.base_name);
 }
@@ -154,14 +213,14 @@
 void NativeFileSystemManagerImpl::CreateTransferToken(
     const NativeFileSystemFileHandleImpl& file,
     blink::mojom::NativeFileSystemTransferTokenRequest request) {
-  return CreateTransferTokenImpl(file.url(), file.file_system(),
+  return CreateTransferTokenImpl(file.url(), file.handle_state(),
                                  /*is_directory=*/false, std::move(request));
 }
 
 void NativeFileSystemManagerImpl::CreateTransferToken(
     const NativeFileSystemDirectoryHandleImpl& directory,
     blink::mojom::NativeFileSystemTransferTokenRequest request) {
-  return CreateTransferTokenImpl(directory.url(), directory.file_system(),
+  return CreateTransferTokenImpl(directory.url(), directory.handle_state(),
                                  /*is_directory=*/true, std::move(request));
 }
 
@@ -198,10 +257,16 @@
     return;
   }
 
+  auto permission_grant =
+      base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+          PermissionStatus::GRANTED);
+
   std::move(callback).Run(
       NativeFileSystemError::New(base::File::FILE_OK),
-      CreateDirectoryHandle(binding_context, context()->CrackURL(root),
-                            /*file_system=*/{}));
+      CreateDirectoryHandle(
+          binding_context, context()->CrackURL(root),
+          SharedHandleState(permission_grant, permission_grant,
+                            /*file_system=*/{})));
 }
 
 void NativeFileSystemManagerImpl::DidChooseEntries(
@@ -224,18 +289,20 @@
       result_entries.push_back(CreateFileEntryFromPath(binding_context, entry));
     }
   }
+  // TODO(mek): Auto-grant write permission if this was a file as a result of a
+  // save dialog.
   std::move(callback).Run(std::move(result), std::move(result_entries));
 }
 
 void NativeFileSystemManagerImpl::CreateTransferTokenImpl(
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system,
+    const SharedHandleState& handle_state,
     bool is_directory,
     blink::mojom::NativeFileSystemTransferTokenRequest request) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   auto token_impl = std::make_unique<NativeFileSystemTransferTokenImpl>(
-      url, std::move(file_system),
+      url, handle_state,
       is_directory ? NativeFileSystemTransferTokenImpl::HandleType::kDirectory
                    : NativeFileSystemTransferTokenImpl::HandleType::kFile);
   auto token = token_impl->token();
diff --git a/content/browser/native_file_system/native_file_system_manager_impl.h b/content/browser/native_file_system/native_file_system_manager_impl.h
index d3e41e2..9ec1aed2f 100644
--- a/content/browser/native_file_system/native_file_system_manager_impl.h
+++ b/content/browser/native_file_system/native_file_system_manager_impl.h
@@ -12,10 +12,12 @@
 #include "content/browser/native_file_system/file_system_chooser.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/native_file_system_permission_context.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "mojo/public/cpp/bindings/strong_binding_set.h"
 #include "storage/browser/fileapi/file_system_url.h"
 #include "third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom.h"
+#include "third_party/blink/public/mojom/permissions/permission_status.mojom.h"
 
 namespace storage {
 class FileSystemContext;
@@ -43,7 +45,7 @@
                                         BrowserThread::DeleteOnIOThread>,
       public blink::mojom::NativeFileSystemManager {
  public:
-  struct BindingContext {
+  struct CONTENT_EXPORT BindingContext {
     BindingContext(const url::Origin& origin, int process_id, int frame_id)
         : origin(origin), process_id(process_id), frame_id(frame_id) {}
     url::Origin origin;
@@ -51,9 +53,33 @@
     int frame_id;
   };
 
+  // State that is shared between handles that are derived from each other.
+  // Handles that are created through ChooseEntries or GetSandboxedFileSystem
+  // get new values for these properties, while any handles derived from those
+  // (i.e. children of a directory) will inherit these properties from their
+  // parent.
+  struct CONTENT_EXPORT SharedHandleState {
+    SharedHandleState(
+        scoped_refptr<NativeFileSystemPermissionGrant> read_grant,
+        scoped_refptr<NativeFileSystemPermissionGrant> write_grant,
+        storage::IsolatedContext::ScopedFSHandle file_system);
+    SharedHandleState(const SharedHandleState& other);
+    ~SharedHandleState();
+
+    // Should never be null. These are the read and write permissions for this
+    // handle.
+    const scoped_refptr<NativeFileSystemPermissionGrant> read_grant;
+    const scoped_refptr<NativeFileSystemPermissionGrant> write_grant;
+    // Can be empty, if this handle is not backed by an isolated file system.
+    const storage::IsolatedContext::ScopedFSHandle file_system;
+  };
+
+  // The caller is responsible for ensuring that |permission_context| outlives
+  // this instance.
   NativeFileSystemManagerImpl(
       scoped_refptr<storage::FileSystemContext> context,
-      scoped_refptr<ChromeBlobStorageContext> blob_context);
+      scoped_refptr<ChromeBlobStorageContext> blob_context,
+      NativeFileSystemPermissionContext* permission_context);
 
   void BindRequest(const BindingContext& binding_context,
                    blink::mojom::NativeFileSystemManagerRequest request);
@@ -71,14 +97,14 @@
   blink::mojom::NativeFileSystemFileHandlePtr CreateFileHandle(
       const BindingContext& binding_context,
       const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system);
+      const SharedHandleState& handle_state);
 
   // Creates a new NativeFileSystemDirectoryHandleImpl for a given url. Assumes
   // the passed in URL is valid and represents a directory.
   blink::mojom::NativeFileSystemDirectoryHandlePtr CreateDirectoryHandle(
       const BindingContext& context,
       const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system);
+      const SharedHandleState& handle_state);
 
   // Creates a new NativeFileSystemEntryPtr from the path to a file. Assumes the
   // passed in path is valid and represents a file.
@@ -137,7 +163,7 @@
 
   void CreateTransferTokenImpl(
       const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system,
+      const SharedHandleState& handle_state,
       bool is_directory,
       blink::mojom::NativeFileSystemTransferTokenRequest request);
   void TransferTokenConnectionErrorHandler(const base::UnguessableToken& token);
@@ -158,6 +184,7 @@
   const scoped_refptr<storage::FileSystemContext> context_;
   const scoped_refptr<ChromeBlobStorageContext> blob_context_;
   std::unique_ptr<storage::FileSystemOperationRunner> operation_runner_;
+  NativeFileSystemPermissionContext* const permission_context_;
 
   // All the mojo bindings for this NativeFileSystemManager itself. Keeps track
   // of associated origin and other state as well to not have to rely on the
diff --git a/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc b/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc
new file mode 100644
index 0000000..ddf45d21
--- /dev/null
+++ b/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc
@@ -0,0 +1,152 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/native_file_system/native_file_system_manager_impl.h"
+
+#include "base/files/scoped_temp_dir.h"
+#include "base/test/bind_test_util.h"
+#include "base/test/gmock_callback_support.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/scoped_task_environment.h"
+#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "storage/browser/blob/blob_storage_context.h"
+#include "storage/browser/test/test_file_system_context.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/features.h"
+
+namespace content {
+
+using base::test::RunOnceCallback;
+using blink::mojom::PermissionStatus;
+using storage::FileSystemURL;
+
+// Mock NativeFileSystemPermissionContext implementation.
+class MockNativeFileSystemPermissionContext
+    : public NativeFileSystemPermissionContext {
+ public:
+  MOCK_METHOD3(
+      GetWritePermissionGrant,
+      scoped_refptr<NativeFileSystemPermissionGrant>(const url::Origin& origin,
+                                                     const base::FilePath& path,
+                                                     bool is_directory));
+};
+
+class NativeFileSystemManagerImplTest : public testing::Test {
+ public:
+  NativeFileSystemManagerImplTest()
+      : scoped_task_environment_(
+            base::test::ScopedTaskEnvironment::MainThreadType::IO) {
+    scoped_feature_list_.InitAndEnableFeature(
+        blink::features::kNativeFileSystemAPI);
+  }
+
+  void SetUp() override {
+    ASSERT_TRUE(dir_.CreateUniqueTempDir());
+    ASSERT_TRUE(dir_.GetPath().IsAbsolute());
+    file_system_context_ = CreateFileSystemContextForTesting(
+        /*quota_manager_proxy=*/nullptr, dir_.GetPath());
+
+    chrome_blob_context_ = base::MakeRefCounted<ChromeBlobStorageContext>();
+    chrome_blob_context_->InitializeOnIOThread(base::FilePath(), nullptr);
+
+    manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>(
+        file_system_context_, chrome_blob_context_, &permission_context_);
+
+    manager_->BindRequest(kBindingContext, mojo::MakeRequest(&manager_ptr_));
+  }
+
+  template <typename HandleType>
+  PermissionStatus GetPermissionStatusSync(bool writable, HandleType* handle) {
+    PermissionStatus result;
+    base::RunLoop loop;
+    handle->GetPermissionStatus(
+        writable, base::BindLambdaForTesting([&](PermissionStatus status) {
+          result = status;
+          loop.Quit();
+        }));
+    loop.Run();
+    return result;
+  }
+
+ protected:
+  const url::Origin kTestOrigin =
+      url::Origin::Create(GURL("https://example.com"));
+  const int kProcessId = 1;
+  const int kFrameId = 2;
+  const NativeFileSystemManagerImpl::BindingContext kBindingContext = {
+      kTestOrigin, kProcessId, kFrameId};
+
+  base::test::ScopedFeatureList scoped_feature_list_;
+  TestBrowserThreadBundle scoped_task_environment_;
+
+  base::ScopedTempDir dir_;
+  scoped_refptr<storage::FileSystemContext> file_system_context_;
+  scoped_refptr<ChromeBlobStorageContext> chrome_blob_context_;
+
+  testing::StrictMock<MockNativeFileSystemPermissionContext>
+      permission_context_;
+  scoped_refptr<NativeFileSystemManagerImpl> manager_;
+  blink::mojom::NativeFileSystemManagerPtr manager_ptr_;
+
+  scoped_refptr<FixedNativeFileSystemPermissionGrant> ask_grant_ =
+      base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>(
+          FixedNativeFileSystemPermissionGrant::PermissionStatus::ASK);
+};
+
+TEST_F(NativeFileSystemManagerImplTest, GetSandboxedFileSystem_Permissions) {
+  blink::mojom::NativeFileSystemDirectoryHandlePtr root;
+  base::RunLoop loop;
+  manager_ptr_->GetSandboxedFileSystem(base::BindLambdaForTesting(
+      [&](blink::mojom::NativeFileSystemErrorPtr result,
+          blink::mojom::NativeFileSystemDirectoryHandlePtr handle) {
+        EXPECT_EQ(base::File::FILE_OK, result->error_code);
+        root = std::move(handle);
+        loop.Quit();
+      }));
+  loop.Run();
+  ASSERT_TRUE(root);
+  EXPECT_EQ(PermissionStatus::GRANTED,
+            GetPermissionStatusSync(/*writable=*/false, root.get()));
+  EXPECT_EQ(PermissionStatus::GRANTED,
+            GetPermissionStatusSync(/*writable=*/true, root.get()));
+}
+
+TEST_F(NativeFileSystemManagerImplTest, CreateFileEntryFromPath_Permissions) {
+  const base::FilePath kTestPath(dir_.GetPath().AppendASCII("foo"));
+
+  EXPECT_CALL(permission_context_,
+              GetWritePermissionGrant(kTestOrigin, kTestPath, false))
+      .WillOnce(testing::Return(ask_grant_));
+
+  blink::mojom::NativeFileSystemEntryPtr entry =
+      manager_->CreateFileEntryFromPath(kBindingContext, kTestPath);
+  blink::mojom::NativeFileSystemFileHandlePtr handle(
+      std::move(entry->entry_handle->get_file()));
+
+  EXPECT_EQ(PermissionStatus::GRANTED,
+            GetPermissionStatusSync(/*writable=*/false, handle.get()));
+  EXPECT_EQ(PermissionStatus::ASK,
+            GetPermissionStatusSync(/*writable=*/true, handle.get()));
+}
+
+TEST_F(NativeFileSystemManagerImplTest,
+       CreateDirectoryEntryFromPath_Permissions) {
+  const base::FilePath kTestPath(dir_.GetPath().AppendASCII("foo"));
+
+  EXPECT_CALL(permission_context_,
+              GetWritePermissionGrant(kTestOrigin, kTestPath, true))
+      .WillOnce(testing::Return(ask_grant_));
+
+  blink::mojom::NativeFileSystemEntryPtr entry =
+      manager_->CreateDirectoryEntryFromPath(kBindingContext, kTestPath);
+  blink::mojom::NativeFileSystemDirectoryHandlePtr handle(
+      std::move(entry->entry_handle->get_directory()));
+  EXPECT_EQ(PermissionStatus::GRANTED,
+            GetPermissionStatusSync(/*writable=*/false, handle.get()));
+  EXPECT_EQ(PermissionStatus::ASK,
+            GetPermissionStatusSync(/*writable=*/true, handle.get()));
+}
+
+}  // namespace content
diff --git a/content/browser/native_file_system/native_file_system_transfer_token_impl.cc b/content/browser/native_file_system/native_file_system_transfer_token_impl.cc
index 1fe718c..8dd98bb 100644
--- a/content/browser/native_file_system/native_file_system_transfer_token_impl.cc
+++ b/content/browser/native_file_system/native_file_system_transfer_token_impl.cc
@@ -8,14 +8,14 @@
 
 NativeFileSystemTransferTokenImpl::NativeFileSystemTransferTokenImpl(
     const storage::FileSystemURL& url,
-    storage::IsolatedContext::ScopedFSHandle file_system,
+    const SharedHandleState& handle_state,
     HandleType type)
     : token_(base::UnguessableToken::Create()),
       url_(url),
-      file_system_(std::move(file_system)),
+      handle_state_(handle_state),
       type_(type) {
   DCHECK_EQ(url_.mount_type() == storage::kFileSystemTypeIsolated,
-            file_system_.is_valid())
+            handle_state_.file_system.is_valid())
       << url_.mount_type();
 }
 
diff --git a/content/browser/native_file_system/native_file_system_transfer_token_impl.h b/content/browser/native_file_system/native_file_system_transfer_token_impl.h
index 473d60f..0c1e3a3 100644
--- a/content/browser/native_file_system/native_file_system_transfer_token_impl.h
+++ b/content/browser/native_file_system/native_file_system_transfer_token_impl.h
@@ -5,6 +5,7 @@
 #ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_TRANSFER_TOKEN_IMPL_H_
 #define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_TRANSFER_TOKEN_IMPL_H_
 
+#include "content/browser/native_file_system/native_file_system_manager_impl.h"
 #include "storage/browser/fileapi/file_system_url.h"
 #include "storage/browser/fileapi/isolated_context.h"
 #include "third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom.h"
@@ -19,12 +20,13 @@
 class NativeFileSystemTransferTokenImpl
     : public blink::mojom::NativeFileSystemTransferToken {
  public:
+  using SharedHandleState = NativeFileSystemManagerImpl::SharedHandleState;
+
   enum class HandleType { kFile, kDirectory };
 
-  NativeFileSystemTransferTokenImpl(
-      const storage::FileSystemURL& url,
-      storage::IsolatedContext::ScopedFSHandle file_system,
-      HandleType type);
+  NativeFileSystemTransferTokenImpl(const storage::FileSystemURL& url,
+                                    const SharedHandleState& handle_state,
+                                    HandleType type);
 
   const base::UnguessableToken& token() const { return token_; }
   const storage::FileSystemURL& url() const { return url_; }
@@ -36,7 +38,7 @@
  private:
   const base::UnguessableToken token_;
   const storage::FileSystemURL url_;
-  const storage::IsolatedContext::ScopedFSHandle file_system_;
+  const SharedHandleState handle_state_;
   const HandleType type_;
 
   DISALLOW_COPY_AND_ASSIGN(NativeFileSystemTransferTokenImpl);
diff --git a/content/browser/network_service_restart_browsertest.cc b/content/browser/network_service_restart_browsertest.cc
index 2aca979f..59ba0a17 100644
--- a/content/browser/network_service_restart_browsertest.cc
+++ b/content/browser/network_service_restart_browsertest.cc
@@ -5,9 +5,11 @@
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/run_loop.h"
+#include "base/synchronization/lock.h"
 #include "base/test/bind_test_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_timeouts.h"
+#include "base/thread_annotations.h"
 #include "base/threading/thread_restrictions.h"
 #include "build/build_config.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
@@ -289,15 +291,18 @@
 
   // Called by |embedded_test_server()|.
   void MonitorRequest(const net::test_server::HttpRequest& request) {
+    base::AutoLock lock(last_request_lock_);
     last_request_relative_url_ = request.relative_url;
   }
 
   std::string last_request_relative_url() const {
+    base::AutoLock lock(last_request_lock_);
     return last_request_relative_url_;
   }
 
  private:
-  std::string last_request_relative_url_;
+  mutable base::Lock last_request_lock_;
+  std::string last_request_relative_url_ GUARDED_BY(last_request_lock_);
   base::test::ScopedFeatureList scoped_feature_list_;
 
   DISALLOW_COPY_AND_ASSIGN(NetworkServiceRestartBrowserTest);
diff --git a/content/browser/renderer_host/clipboard_host_impl.cc b/content/browser/renderer_host/clipboard_host_impl.cc
index a000b88..610592d 100644
--- a/content/browser/renderer_host/clipboard_host_impl.cc
+++ b/content/browser/renderer_host/clipboard_host_impl.cc
@@ -28,7 +28,7 @@
     : binding_(this, std::move(request)),
       clipboard_(ui::Clipboard::GetForCurrentThread()),
       clipboard_writer_(
-          new ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)) {}
+          new ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)) {}
 
 void ClipboardHostImpl::Create(blink::mojom::ClipboardHostRequest request) {
   // Clipboard implementations do interesting things, like run nested message
@@ -173,7 +173,7 @@
 
 void ClipboardHostImpl::CommitWrite() {
   clipboard_writer_.reset(
-      new ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE));
+      new ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste));
 }
 
 }  // namespace content
diff --git a/content/browser/renderer_host/clipboard_host_impl_unittest.cc b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
index 62ee689..b50470e 100644
--- a/content/browser/renderer_host/clipboard_host_impl_unittest.cc
+++ b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
@@ -49,20 +49,20 @@
   bitmap.eraseARGB(255, 0, 255, 0);
   mojo_clipboard()->WriteImage(bitmap);
   uint64_t sequence_number =
-      system_clipboard()->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      system_clipboard()->GetSequenceNumber(ui::ClipboardType::kCopyPaste);
   mojo_clipboard()->CommitWrite();
   base::RunLoop().RunUntilIdle();
 
   EXPECT_NE(sequence_number, system_clipboard()->GetSequenceNumber(
-                                 ui::CLIPBOARD_TYPE_COPY_PASTE));
+                                 ui::ClipboardType::kCopyPaste));
   EXPECT_FALSE(system_clipboard()->IsFormatAvailable(
       ui::ClipboardFormatType::GetPlainTextType(),
-      ui::CLIPBOARD_TYPE_COPY_PASTE));
+      ui::ClipboardType::kCopyPaste));
   EXPECT_TRUE(system_clipboard()->IsFormatAvailable(
-      ui::ClipboardFormatType::GetBitmapType(), ui::CLIPBOARD_TYPE_COPY_PASTE));
+      ui::ClipboardFormatType::GetBitmapType(), ui::ClipboardType::kCopyPaste));
 
   SkBitmap actual =
-      system_clipboard()->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      system_clipboard()->ReadImage(ui::ClipboardType::kCopyPaste);
   EXPECT_TRUE(gfx::BitmapsAreEqual(bitmap, actual));
 }
 
@@ -75,7 +75,7 @@
 
   // ReadText() is a sync method, so normally, one wouldn't call this method
   // directly. These are not normal times though...
-  mojo_clipboard()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, base::DoNothing());
+  mojo_clipboard()->ReadText(ui::ClipboardType::kCopyPaste, base::DoNothing());
 
   // Now purposely write a raw message which (hopefully) won't deserialize to
   // anything valid. The receiver side should still be in the midst of
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
index be65d1a..84dfe74 100644
--- a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
+++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
@@ -439,7 +439,7 @@
     case IDS_APP_PASTE: {
       base::string16 result;
       ui::Clipboard::GetForCurrentThread()->ReadText(
-          ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+          ui::ClipboardType::kCopyPaste, &result);
       return editable && !result.empty();
     }
     default:
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
index 420fd4f..dbd4c35 100644
--- a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
+++ b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
@@ -147,7 +147,7 @@
     case IDS_APP_PASTE: {
       base::string16 result;
       ui::Clipboard::GetForCurrentThread()->ReadText(
-          ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+          ui::ClipboardType::kCopyPaste, &result);
       return editable && !result.empty();
     }
     default:
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index b50b565..568f32799 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -867,6 +867,26 @@
     }
   }
 
+  // Check whether |host| is associated with at least one URL for which
+  // SiteInstance does not assign site URLs.  This is used to disqualify |host|
+  // from being reused if it has pending navigations to such URLs.
+  bool ContainsNonReusableSiteForHost(RenderProcessHost* host) {
+    for (auto iter : map_) {
+      // If SiteInstance doesn't assign a site URL for the current entry, check
+      // whether |host| is on the list of processes the entry is associated
+      // with.
+      //
+      // TODO(alexmos): ShouldAssignSiteForURL() expects a full URL, whereas we
+      // only have a site URL here.  For now, this mismatch is ok since
+      // ShouldAssignSiteForURL() only cares about schemes in practice, but
+      // this should be cleaned up.
+      if (!SiteInstanceImpl::ShouldAssignSiteForURL(iter.first) &&
+          base::Contains(iter.second, host->GetID()))
+        return true;
+    }
+    return false;
+  }
+
  private:
   void RenderProcessHostDestroyed(RenderProcessHost* host) override {
 #ifndef NDEBUG
@@ -3699,7 +3719,30 @@
     }
   }
 
-  return GetContentClient()->browser()->IsSuitableHost(host, site_url);
+  if (!GetContentClient()->browser()->IsSuitableHost(host, site_url))
+    return false;
+
+  // Check whether this process has a pending navigation to a URL for
+  // which SiteInstance does not assign site URLs.  If this is the case, it is
+  // not safe to reuse this process for a navigation which itself assigns site
+  // URLs, since in that case the latter navigation could lock this process
+  // before the commit for the siteless URL arrives, resulting in a renderer
+  // kill. See https://crbug.com/970046.
+  if (SiteInstanceImpl::ShouldAssignSiteForURL(site_url)) {
+    SiteProcessCountTracker* pending_tracker =
+        static_cast<SiteProcessCountTracker*>(
+            browser_context->GetUserData(kPendingSiteProcessCountTrackerKey));
+    bool has_disqualifying_pending_navigation =
+        pending_tracker &&
+        pending_tracker->ContainsNonReusableSiteForHost(host);
+    UMA_HISTOGRAM_BOOLEAN(
+        "SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse",
+        has_disqualifying_pending_navigation);
+    if (has_disqualifying_pending_navigation)
+      return false;
+  }
+
+  return true;
 }
 
 // static
diff --git a/content/browser/renderer_host/render_view_host_delegate.cc b/content/browser/renderer_host/render_view_host_delegate.cc
index 89feeaf..f8c11d0 100644
--- a/content/browser/renderer_host/render_view_host_delegate.cc
+++ b/content/browser/renderer_host/render_view_host_delegate.cc
@@ -61,6 +61,10 @@
   return false;
 }
 
+bool RenderViewHostDelegate::IsSpatialNavigationDisabled() const {
+  return false;
+}
+
 RenderFrameHost* RenderViewHostDelegate::GetPendingMainFrame() {
   return nullptr;
 }
diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h
index 3d15672..7ecbec7 100644
--- a/content/browser/renderer_host/render_view_host_delegate.h
+++ b/content/browser/renderer_host/render_view_host_delegate.h
@@ -184,6 +184,9 @@
   // Whether the WebContents as a persistent video.
   virtual bool HasPersistentVideo() const;
 
+  // Whether spatial navigation is permitted.
+  virtual bool IsSpatialNavigationDisabled() const;
+
   // Returns the RenderFrameHost for a pending or speculative main frame
   // navigation for the page.  Returns nullptr if there is no such navigation.
   virtual RenderFrameHost* GetPendingMainFrame();
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index d54af22..f717ea4 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -556,6 +556,9 @@
   prefs.spatial_navigation_enabled = command_line.HasSwitch(
       switches::kEnableSpatialNavigation);
 
+  if (delegate_ && delegate_->IsSpatialNavigationDisabled())
+    prefs.spatial_navigation_enabled = false;
+
   prefs.disable_reading_from_canvas = command_line.HasSwitch(
       switches::kDisableReadingFromCanvas);
 
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index bb2de3d..ff75742 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -2540,8 +2540,8 @@
   const TextInputManager::TextSelection* selection =
       GetTextInputManager()->GetTextSelection(focused_view);
   if (selection->selected_text().length()) {
-    // Set the CLIPBOARD_TYPE_SELECTION to the ui::Clipboard.
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_SELECTION);
+    // Set the ClipboardType::kSelection to the ui::Clipboard.
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kSelection);
     clipboard_writer.WriteText(selection->selected_text());
   }
 #endif  // defined(USE_X11)
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 0023fe4..781c2ee4 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -6398,7 +6398,7 @@
   EXPECT_TRUE(!!clipboard);
   std::vector<std::string> texts = {"text0", "text1", "text2", "text3"};
   for (auto index : active_view_sequence_) {
-    clipboard->Clear(ui::CLIPBOARD_TYPE_SELECTION);
+    clipboard->Clear(ui::ClipboardType::kSelection);
 
     // Focus the corresponding widget.
     render_widget_host_delegate()->set_focused_widget(
@@ -6411,7 +6411,7 @@
 
     // Retrieve the selected text from clipboard and verify it is as expected.
     base::string16 result_text;
-    clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text);
+    clipboard->ReadText(ui::ClipboardType::kSelection, &result_text);
     EXPECT_EQ(expected_text, result_text);
   }
 }
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index f346b89..600799b 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -766,6 +766,7 @@
   if (allow_default_site_url &&
       !base::FeatureList::IsEnabled(
           features::kProcessSharingWithStrictSiteInstances) &&
+      SiteInstanceImpl::ShouldAssignSiteForURL(url) &&
       !DoesSiteURLRequireDedicatedProcess(isolation_context, site_url)) {
     return GetDefaultSiteURL();
   }
diff --git a/content/browser/sms/sms_manager_impl.cc b/content/browser/sms/sms_manager_impl.cc
deleted file mode 100644
index d47ea1ec..0000000
--- a/content/browser/sms/sms_manager_impl.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <iterator>
-#include <queue>
-#include <utility>
-
-#include "content/browser/sms/sms_manager_impl.h"
-
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-
-namespace content {
-
-SmsManagerImpl::SmsManagerImpl(SmsProvider* sms_provider,
-                               const url::Origin& origin)
-    : sms_provider_(sms_provider), origin_(origin) {}
-
-SmsManagerImpl::~SmsManagerImpl() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-}
-
-void SmsManagerImpl::GetNextMessage(base::TimeDelta timeout,
-                                    GetNextMessageCallback callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  Push(std::move(callback));
-}
-
-void SmsManagerImpl::Push(GetNextMessageCallback callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (callbacks_.empty()) {
-    sms_provider_->AddObserver(this);
-  }
-
-  callbacks_.push(std::move(callback));
-  sms_provider_->Retrieve();
-}
-
-blink::mojom::SmsManager::GetNextMessageCallback SmsManagerImpl::Pop() {
-  DCHECK(!callbacks_.empty()) << "Unexpected SMS received";
-
-  GetNextMessageCallback callback = std::move(callbacks_.front());
-  callbacks_.pop();
-
-  if (callbacks_.empty()) {
-    sms_provider_->RemoveObserver(this);
-  }
-
-  return callback;
-}
-
-bool SmsManagerImpl::OnReceive(const url::Origin& origin,
-                               const std::string& sms) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (origin_ != origin) {
-    return false;
-  }
-
-  Pop().Run(
-      blink::mojom::SmsMessage::New(blink::mojom::SmsStatus::kSuccess, sms));
-
-  return true;
-}
-
-void SmsManagerImpl::OnTimeout() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  Pop().Run(blink::mojom::SmsMessage::New(blink::mojom::SmsStatus::kTimeout,
-                                          base::nullopt));
-}
-
-}  // namespace content
diff --git a/content/browser/sms/sms_manager_impl.h b/content/browser/sms/sms_manager_impl.h
deleted file mode 100644
index d3bafa6..0000000
--- a/content/browser/sms/sms_manager_impl.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_
-#define CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_
-
-#include <memory>
-#include <queue>
-
-#include "base/callback_forward.h"
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "base/sequence_checker.h"
-#include "base/time/time.h"
-#include "content/browser/sms/sms_provider.h"
-#include "content/common/content_export.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h"
-#include "url/origin.h"
-
-namespace content {
-
-class CONTENT_EXPORT SmsManagerImpl : public blink::mojom::SmsManager,
-                                      public content::SmsProvider::Observer {
- public:
-  SmsManagerImpl(SmsProvider*, const url::Origin&);
-  ~SmsManagerImpl() override;
-
-  // content::SmsProvider::Observer
-  bool OnReceive(const url::Origin&, const std::string& message) override;
-  void OnTimeout() override;
-
-  // blink::mojom::SmsManager
-  void GetNextMessage(base::TimeDelta timeout, GetNextMessageCallback) override;
-
- private:
-  // Manages the queue of callbacks.
-  void Push(GetNextMessageCallback);
-  blink::mojom::SmsManager::GetNextMessageCallback Pop();
-
-  // |sms_provider_| is safe because all instances of SmsManagerImpl are owned
-  // by SmsServiceImpl through a StrongBindingSet.
-  SmsProvider* sms_provider_;
-  const url::Origin origin_;
-  std::queue<GetNextMessageCallback> callbacks_;
-
-  SEQUENCE_CHECKER(sequence_checker_);
-  DISALLOW_COPY_AND_ASSIGN(SmsManagerImpl);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_
diff --git a/content/browser/sms/sms_receiver_impl.cc b/content/browser/sms/sms_receiver_impl.cc
new file mode 100644
index 0000000..56b7f1d
--- /dev/null
+++ b/content/browser/sms/sms_receiver_impl.cc
@@ -0,0 +1,68 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <iterator>
+#include <queue>
+#include <utility>
+
+#include "content/browser/sms/sms_receiver_impl.h"
+
+#include "base/bind.h"
+#include "base/callback_helpers.h"
+
+namespace content {
+
+SmsReceiverImpl::SmsReceiverImpl(SmsProvider* sms_provider,
+                                 const url::Origin& origin)
+    : sms_provider_(sms_provider), origin_(origin) {}
+
+SmsReceiverImpl::~SmsReceiverImpl() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+}
+
+void SmsReceiverImpl::Receive(base::TimeDelta timeout,
+                              ReceiveCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  Push(std::move(callback));
+}
+
+void SmsReceiverImpl::Push(ReceiveCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (callbacks_.empty())
+    sms_provider_->AddObserver(this);
+
+  callbacks_.push(std::move(callback));
+  sms_provider_->Retrieve();
+}
+
+blink::mojom::SmsReceiver::ReceiveCallback SmsReceiverImpl::Pop() {
+  DCHECK(!callbacks_.empty()) << "Unexpected SMS received";
+
+  ReceiveCallback callback = std::move(callbacks_.front());
+  callbacks_.pop();
+
+  if (callbacks_.empty())
+    sms_provider_->RemoveObserver(this);
+
+  return callback;
+}
+
+bool SmsReceiverImpl::OnReceive(const url::Origin& origin,
+                                const std::string& sms) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (origin_ != origin)
+    return false;
+
+  Pop().Run(blink::mojom::SmsStatus::kSuccess, sms);
+
+  return true;
+}
+
+void SmsReceiverImpl::OnTimeout() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  Pop().Run(blink::mojom::SmsStatus::kTimeout, base::nullopt);
+}
+
+}  // namespace content
diff --git a/content/browser/sms/sms_receiver_impl.h b/content/browser/sms/sms_receiver_impl.h
new file mode 100644
index 0000000..cf0298c8
--- /dev/null
+++ b/content/browser/sms/sms_receiver_impl.h
@@ -0,0 +1,52 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_
+#define CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_
+
+#include <memory>
+#include <queue>
+
+#include "base/callback_forward.h"
+#include "base/macros.h"
+#include "base/sequence_checker.h"
+#include "base/time/time.h"
+#include "content/browser/sms/sms_provider.h"
+#include "content/common/content_export.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h"
+#include "url/origin.h"
+
+namespace content {
+
+class CONTENT_EXPORT SmsReceiverImpl : public blink::mojom::SmsReceiver,
+                                       public content::SmsProvider::Observer {
+ public:
+  SmsReceiverImpl(SmsProvider*, const url::Origin&);
+  ~SmsReceiverImpl() override;
+
+  // content::SmsProvider::Observer:
+  bool OnReceive(const url::Origin&, const std::string& message) override;
+  void OnTimeout() override;
+
+  // blink::mojom::SmsReceiver:
+  void Receive(base::TimeDelta timeout, ReceiveCallback) override;
+
+ private:
+  // Manages the queue of callbacks.
+  void Push(ReceiveCallback);
+  ReceiveCallback Pop();
+
+  // |sms_provider_| is safe because all instances of SmsReceiverImpl are owned
+  // by SmsServiceImpl through a StrongBindingSet.
+  SmsProvider* sms_provider_;
+  const url::Origin origin_;
+  std::queue<ReceiveCallback> callbacks_;
+
+  SEQUENCE_CHECKER(sequence_checker_);
+  DISALLOW_COPY_AND_ASSIGN(SmsReceiverImpl);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_
diff --git a/content/browser/sms/sms_service_impl.cc b/content/browser/sms/sms_service_impl.cc
index f98021b3..fe84d90d 100644
--- a/content/browser/sms/sms_service_impl.cc
+++ b/content/browser/sms/sms_service_impl.cc
@@ -8,7 +8,7 @@
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
-#include "content/browser/sms/sms_manager_impl.h"
+#include "content/browser/sms/sms_receiver_impl.h"
 
 namespace content {
 
@@ -23,12 +23,12 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 }
 
-void SmsServiceImpl::Bind(blink::mojom::SmsManagerRequest request,
+void SmsServiceImpl::Bind(blink::mojom::SmsReceiverRequest request,
                           const url::Origin& origin) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   bindings_.AddBinding(
-      std::make_unique<SmsManagerImpl>(sms_provider_.get(), origin),
+      std::make_unique<SmsReceiverImpl>(sms_provider_.get(), origin),
       std::move(request));
 }
 
diff --git a/content/browser/sms/sms_service_impl.h b/content/browser/sms/sms_service_impl.h
index 571f9ed..caeee50 100644
--- a/content/browser/sms/sms_service_impl.h
+++ b/content/browser/sms/sms_service_impl.h
@@ -11,12 +11,11 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "content/browser/sms/sms_manager_impl.h"
 #include "content/browser/sms/sms_provider.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/sms_service.h"
 #include "mojo/public/cpp/bindings/strong_binding_set.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h"
 
 namespace url {
 class Origin;
@@ -32,8 +31,8 @@
   SmsServiceImpl();
   ~SmsServiceImpl() override;
 
-  // content::SmsService
-  void Bind(blink::mojom::SmsManagerRequest, const url::Origin&) override;
+  // content::SmsService:
+  void Bind(blink::mojom::SmsReceiverRequest, const url::Origin&) override;
 
   // Testing helpers.
   void SetSmsProviderForTest(std::unique_ptr<SmsProvider>);
@@ -42,7 +41,7 @@
   std::unique_ptr<SmsProvider> sms_provider_;
 
   // Registered clients.
-  mojo::StrongBindingSet<blink::mojom::SmsManager> bindings_;
+  mojo::StrongBindingSet<blink::mojom::SmsReceiver> bindings_;
   SEQUENCE_CHECKER(sequence_checker_);
 
   DISALLOW_COPY_AND_ASSIGN(SmsServiceImpl);
diff --git a/content/browser/sms/sms_service_impl_unittest.cc b/content/browser/sms/sms_service_impl_unittest.cc
index 154218a..abcff269 100644
--- a/content/browser/sms/sms_service_impl_unittest.cc
+++ b/content/browser/sms/sms_service_impl_unittest.cc
@@ -25,9 +25,9 @@
 #include "services/service_manager/public/cpp/connector.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h"
 
-using blink::mojom::SmsManagerPtr;
+using blink::mojom::SmsReceiverPtr;
 using ::testing::_;
 using ::testing::Invoke;
 using ::testing::NiceMock;
@@ -65,7 +65,7 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   GURL url("http://google.com");
   impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url));
   base::RunLoop loop;
@@ -74,11 +74,12 @@
     mock->NotifyReceive(url::Origin::Create(url), "hi");
   }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        EXPECT_EQ("hi", sms->content);
-        EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        EXPECT_EQ("hi", sms.value());
+        EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status);
         loop.Quit();
       }));
 
@@ -103,17 +104,18 @@
         mock->NotifyReceive(url::Origin::Create(url), "second");
       }));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url));
 
   {
     base::RunLoop loop;
 
-    service_ptr->GetNextMessage(
+    service_ptr->Receive(
         base::TimeDelta::FromSeconds(10),
-        base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-          EXPECT_EQ("first", sms->content);
-          EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status);
+        base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                       const base::Optional<std::string>& sms) {
+          EXPECT_EQ("first", sms.value());
+          EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status);
           loop.Quit();
         }));
 
@@ -123,11 +125,12 @@
   {
     base::RunLoop loop;
 
-    service_ptr->GetNextMessage(
+    service_ptr->Receive(
         base::TimeDelta::FromSeconds(10),
-        base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-          EXPECT_EQ("second", sms->content);
-          EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status);
+        base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                       const base::Optional<std::string>& sms) {
+          EXPECT_EQ("second", sms.value());
+          EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status);
           loop.Quit();
         }));
 
@@ -141,12 +144,13 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   GURL url("http://a.com");
   url::Origin origin = url::Origin::Create(url);
   impl->Bind(mojo::MakeRequest(&service_ptr), origin);
 
-  blink::mojom::SmsMessagePtr response;
+  blink::mojom::SmsStatus sms_status;
+  base::Optional<std::string> response;
 
   base::RunLoop listen_loop, sms_loop;
 
@@ -154,16 +158,18 @@
     listen_loop.Quit();
   }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status = status;
+        response = sms;
         sms_loop.Quit();
       }));
 
   listen_loop.Run();
 
-  // Delivers an SMS from an unrelated origin first and expect the manager to
+  // Delivers an SMS from an unrelated origin first and expect the receiver to
   // ignore it.
   GURL another_url("http://b.com");
   mock->NotifyReceive(url::Origin::Create(another_url), "wrong");
@@ -172,8 +178,8 @@
 
   sms_loop.Run();
 
-  EXPECT_EQ("right", response->content);
-  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response->status);
+  EXPECT_EQ("right", response.value());
+  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status);
 }
 
 TEST_F(SmsServiceImplTest, ExpectOneReceiveTwo) {
@@ -182,12 +188,13 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   GURL url("http://a.com");
   url::Origin origin = url::Origin::Create(url);
   impl->Bind(mojo::MakeRequest(&service_ptr), origin);
 
-  blink::mojom::SmsMessagePtr response;
+  blink::mojom::SmsStatus sms_status;
+  base::Optional<std::string> response;
 
   base::RunLoop listen_loop, sms_loop;
 
@@ -195,10 +202,12 @@
     listen_loop.Quit();
   }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status = status;
+        response = sms;
         sms_loop.Quit();
       }));
 
@@ -211,8 +220,8 @@
 
   sms_loop.Run();
 
-  EXPECT_EQ("first", response->content);
-  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response->status);
+  EXPECT_EQ("first", response.value());
+  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status);
 }
 
 TEST_F(SmsServiceImplTest, ExpectTwoReceiveTwoConcurrently) {
@@ -221,33 +230,39 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   GURL url("http://a.com");
   url::Origin origin = url::Origin::Create(url);
   impl->Bind(mojo::MakeRequest(&service_ptr), origin);
 
-  blink::mojom::SmsMessagePtr response1;
-  blink::mojom::SmsMessagePtr response2;
+  blink::mojom::SmsStatus sms_status1;
+  base::Optional<std::string> response1;
+  blink::mojom::SmsStatus sms_status2;
+  base::Optional<std::string> response2;
 
   base::RunLoop listen_loop, sms1_loop, sms2_loop;
 
-  // Expects two GetNextMessage() calls to be made before any of them gets
+  // Expects two Receive() calls to be made before any of them gets
   // an SMS to resolve them.
   EXPECT_CALL(*mock, Retrieve())
       .WillOnce(testing::Return())
       .WillOnce(Invoke([&listen_loop]() { listen_loop.Quit(); }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response1 = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status1 = status;
+        response1 = sms;
         sms1_loop.Quit();
       }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response2 = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status2 = status;
+        response2 = sms;
         sms2_loop.Quit();
       }));
 
@@ -259,8 +274,8 @@
 
   sms1_loop.Run();
 
-  EXPECT_EQ("first", response1->content);
-  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response1->status);
+  EXPECT_EQ("first", response1.value());
+  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status1);
 
   // Delivers the second SMS.
 
@@ -268,8 +283,8 @@
 
   sms2_loop.Run();
 
-  EXPECT_EQ("second", response2->content);
-  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response2->status);
+  EXPECT_EQ("second", response2.value());
+  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status2);
 }
 
 TEST_F(SmsServiceImplTest, Timeout) {
@@ -278,7 +293,7 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr;
+  blink::mojom::SmsReceiverPtr service_ptr;
   GURL url("http://a.com");
   impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url));
 
@@ -288,10 +303,11 @@
     mock->NotifyTimeout();
   }));
 
-  service_ptr->GetNextMessage(
+  service_ptr->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, sms->status);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, status);
         loop.Quit();
       }));
 
@@ -304,16 +320,18 @@
 
   impl->SetSmsProviderForTest(base::WrapUnique(mock));
 
-  blink::mojom::SmsManagerPtr service_ptr1;
+  blink::mojom::SmsReceiverPtr service_ptr1;
   GURL url1("http://a.com");
   impl->Bind(mojo::MakeRequest(&service_ptr1), url::Origin::Create(url1));
 
-  blink::mojom::SmsManagerPtr service_ptr2;
+  blink::mojom::SmsReceiverPtr service_ptr2;
   GURL url2("http://b.com");
   impl->Bind(mojo::MakeRequest(&service_ptr2), url::Origin::Create(url2));
 
-  blink::mojom::SmsMessagePtr response1;
-  blink::mojom::SmsMessagePtr response2;
+  blink::mojom::SmsStatus sms_status1;
+  base::Optional<std::string> response1;
+  blink::mojom::SmsStatus sms_status2;
+  base::Optional<std::string> response2;
 
   base::RunLoop listen, sms_loop1, sms_loop2;
 
@@ -321,17 +339,21 @@
       .WillOnce(testing::Return())
       .WillOnce(Invoke([&listen]() { listen.Quit(); }));
 
-  service_ptr1->GetNextMessage(
+  service_ptr1->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response1 = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status1 = status;
+        response1 = sms;
         sms_loop1.Quit();
       }));
 
-  service_ptr2->GetNextMessage(
+  service_ptr2->Receive(
       base::TimeDelta::FromSeconds(10),
-      base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) {
-        response2 = std::move(sms);
+      base::BindLambdaForTesting([&](blink::mojom::SmsStatus status,
+                                     const base::Optional<std::string>& sms) {
+        sms_status2 = status;
+        response2 = sms;
         sms_loop2.Quit();
       }));
 
@@ -343,7 +365,7 @@
 
   sms_loop1.Run();
 
-  EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, response1->status);
+  EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, sms_status1);
 
   // Delivers the second SMS.
 
@@ -351,8 +373,8 @@
 
   sms_loop2.Run();
 
-  EXPECT_EQ("second", response2->content);
-  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response2->status);
+  EXPECT_EQ("second", response2.value());
+  EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status2);
 }
 
 }  // namespace content
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 6f533db1..fa2bc37 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -813,7 +813,8 @@
 
   partition->native_file_system_manager_ =
       base::MakeRefCounted<NativeFileSystemManagerImpl>(
-          partition->filesystem_context_, blob_context);
+          partition->filesystem_context_, blob_context,
+          context->GetNativeFileSystemPermissionContext());
 
   GeneratedCodeCacheSettings settings =
       GetContentClient()->browser()->GetGeneratedCodeCacheSettings(context);
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index f56aafc..7d469fd 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -688,6 +688,13 @@
           overscroll_refresh_handler));
 }
 
+void WebContentsAndroid::SetSpatialNavigationDisabled(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jobject>& obj,
+    bool disabled) {
+  web_contents_->SetSpatialNavigationDisabled(disabled);
+}
+
 void WebContentsAndroid::WriteContentBitmapToDisk(
     JNIEnv* env,
     const JavaParamRef<jobject>& obj,
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
index 594fe7e..e8ee623 100644
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -184,6 +184,11 @@
       const base::android::JavaParamRef<jobject>& obj,
       const base::android::JavaParamRef<jobject>& overscroll_refresh_handler);
 
+  void SetSpatialNavigationDisabled(
+      JNIEnv* env,
+      const base::android::JavaParamRef<jobject>& obj,
+      bool disabled);
+
   // Relay the access from Java layer to RWHV::CopyFromSurface() through JNI.
   void WriteContentBitmapToDisk(
       JNIEnv* env,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 8713403..970def0 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5500,6 +5500,10 @@
   return has_persistent_video_;
 }
 
+bool WebContentsImpl::IsSpatialNavigationDisabled() const {
+  return is_spatial_navigation_disabled_;
+}
+
 RenderFrameHost* WebContentsImpl::GetPendingMainFrame() {
   return GetRenderManager()->speculative_frame_host();
 }
@@ -6800,6 +6804,14 @@
   media_web_contents_observer()->RequestPersistentVideo(has_persistent_video);
 }
 
+void WebContentsImpl::SetSpatialNavigationDisabled(bool disabled) {
+  if (is_spatial_navigation_disabled_ == disabled)
+    return;
+
+  is_spatial_navigation_disabled_ = disabled;
+  NotifyPreferencesChanged();
+}
+
 void WebContentsImpl::BrowserPluginGuestWillDetach() {
   WebContentsImpl* outermost = GetOutermostWebContents();
   if (this != outermost && ContainsOrIsFocusedWebContents())
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 7171fb4a..a6513ded 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -668,6 +668,7 @@
   bool ShouldIgnoreUnresponsiveRenderer() override;
   bool HideDownloadUI() const override;
   bool HasPersistentVideo() const override;
+  bool IsSpatialNavigationDisabled() const override;
   RenderFrameHost* GetPendingMainFrame() override;
   void DidFirstVisuallyNonEmptyPaint(RenderViewHostImpl* source) override;
   void DidCommitAndDrawCompositorFrame(RenderViewHostImpl* source) override;
@@ -996,6 +997,9 @@
   // a video currently in Picture-in-Picture mode.
   void SetHasPictureInPictureVideo(bool has_picture_in_picture_video);
 
+  // Sets the spatial navigation state.
+  void SetSpatialNavigationDisabled(bool disabled);
+
 #if defined(OS_ANDROID)
   // Called by FindRequestManager when all of the find match rects are in.
   void NotifyFindMatchRectsReply(int version,
@@ -1838,6 +1842,8 @@
 
   bool has_persistent_video_ = false;
 
+  bool is_spatial_navigation_disabled_ = false;
+
   bool is_currently_audible_ = false;
   bool was_ever_audible_ = false;
 
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.cc b/content/browser/webauth/virtual_fido_discovery_factory.cc
index 241d3ac..548f972 100644
--- a/content/browser/webauth/virtual_fido_discovery_factory.cc
+++ b/content/browser/webauth/virtual_fido_discovery_factory.cc
@@ -13,6 +13,7 @@
 #include "content/browser/webauth/virtual_discovery.h"
 #include "device/fido/fido_discovery_base.h"
 #include "device/fido/virtual_ctap2_device.h"
+#include "device/fido/virtual_u2f_device.h"
 
 namespace content {
 
@@ -38,6 +39,10 @@
     device::AuthenticatorAttachment attachment,
     bool has_resident_key,
     bool has_user_verification) {
+  if (protocol == device::ProtocolVersion::kU2f &&
+      !device::VirtualU2fDevice::IsTransportSupported(transport)) {
+    return nullptr;
+  }
   auto authenticator = std::make_unique<VirtualAuthenticator>(
       protocol, transport, attachment, has_resident_key, has_user_verification);
   auto* authenticator_ptr = authenticator.get();
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.h b/content/browser/webauth/virtual_fido_discovery_factory.h
index 6fb6ec40d..44049ed 100644
--- a/content/browser/webauth/virtual_fido_discovery_factory.h
+++ b/content/browser/webauth/virtual_fido_discovery_factory.h
@@ -38,7 +38,8 @@
   ~VirtualFidoDiscoveryFactory() override;
 
   // Create an authenticator that will generate virtual devices for the given
-  // parameters.
+  // parameters. Returns nullptr if an error occurs when trying to create the
+  // authenticator.
   VirtualAuthenticator* CreateAuthenticator(
       device::ProtocolVersion protocol,
       device::FidoTransportProtocol transport,
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc
index 4e9146e0..691259ba 100644
--- a/content/child/child_thread_impl.cc
+++ b/content/child/child_thread_impl.cc
@@ -260,6 +260,23 @@
   DISALLOW_COPY_AND_ASSIGN(ChannelBootstrapFilter);
 };
 
+class ContentClientConnectionFilter : public ConnectionFilter {
+ public:
+  ContentClientConnectionFilter() = default;
+
+ private:
+  // ConnectionFilter:
+  void OnBindInterface(const service_manager::BindSourceInfo& source_info,
+                       const std::string& interface_name,
+                       mojo::ScopedMessagePipeHandle* interface_pipe,
+                       service_manager::Connector* connector) override {
+    GetContentClient()->BindChildProcessInterface(interface_name,
+                                                  interface_pipe);
+  }
+
+  DISALLOW_COPY_AND_ASSIGN(ContentClientConnectionFilter);
+};
+
 }  // namespace
 
 ChildThread* ChildThread::Get() {
@@ -442,6 +459,9 @@
   thread_safe_sender_ =
       new ThreadSafeSender(main_thread_runner_, sync_message_filter_.get());
 
+  GetServiceManagerConnection()->AddConnectionFilter(
+      std::make_unique<ContentClientConnectionFilter>());
+
   auto registry = std::make_unique<service_manager::BinderRegistry>();
   registry->AddInterface(base::Bind(&ChildHistogramFetcherFactoryImpl::Create),
                          GetIOTaskRunner());
@@ -676,8 +696,6 @@
 
 void ChildThreadImpl::StartServiceManagerConnection() {
   DCHECK(service_manager_connection_);
-  GetContentClient()->OnServiceManagerConnected(
-      service_manager_connection_.get());
 
   // NOTE: You must register any ConnectionFilter instances on
   // |service_manager_connection_| *before* this call to |Start()|, otherwise
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index 425b433..edc7f97 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -745,6 +745,12 @@
     }
 
     @Override
+    public void setSpatialNavigationDisabled(boolean disabled) {
+        checkNotDestroyed();
+        nativeSetSpatialNavigationDisabled(mNativeWebContentsAndroid, disabled);
+    }
+
+    @Override
     public void writeContentBitmapToDiskAsync(
             int width, int height, String path, Callback<String> callback) {
         checkNotDestroyed();
@@ -1030,6 +1036,8 @@
             long nativeWebContentsAndroid, AccessibilitySnapshotCallback callback);
     private native void nativeSetOverscrollRefreshHandler(
             long nativeWebContentsAndroid, OverscrollRefreshHandler nativeOverscrollRefreshHandler);
+    private native void nativeSetSpatialNavigationDisabled(
+            long nativeWebContentsAndroid, boolean disabled);
     private native void nativeWriteContentBitmapToDisk(long nativeWebContentsAndroid, int width,
             int height, String path, Callback<String> callback);
     private native void nativeReloadLoFiImages(long nativeWebContentsAndroid);
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
index 6696c90..cdfff84 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -400,6 +400,12 @@
     void setOverscrollRefreshHandler(OverscrollRefreshHandler handler);
 
     /**
+     * Controls use of spatial-navigation mode.
+     * @param disable True if spatial navigation should never be used.
+     */
+    void setSpatialNavigationDisabled(boolean disabled);
+
+    /**
      * Requests an image snapshot of the content and stores it in the specified folder.
      *
      * @param width The width of the resulting bitmap, or 0 for "auto."
diff --git a/content/public/app/content_browser_manifest.cc b/content/public/app/content_browser_manifest.cc
index c36f884c..44a2e08 100644
--- a/content/public/app/content_browser_manifest.cc
+++ b/content/public/app/content_browser_manifest.cc
@@ -178,7 +178,7 @@
                   "blink.mojom.PermissionService",
                   "blink.mojom.QuotaDispatcherHost",
                   "blink.mojom.SerialService", "blink.mojom.WebUsbService",
-                  "blink.mojom.SmsManager", "network.mojom.WebSocket",
+                  "blink.mojom.SmsReceiver", "network.mojom.WebSocket",
                   "media.mojom.VideoDecodePerfHistory",
                   "payments.mojom.PaymentManager",
                   "shape_detection.mojom.BarcodeDetectionProvider",
@@ -235,7 +235,7 @@
                   "blink.mojom.QuotaDispatcherHost",
                   "blink.mojom.SerialService",
                   "blink.mojom.SharedWorkerConnector",
-                  "blink.mojom.SmsManager",
+                  "blink.mojom.SmsReceiver",
                   "blink.mojom.SpeechRecognizer",
                   "blink.mojom.TextSuggestionHost",
                   "blink.mojom.UnhandledTapNotifier",
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
index 253dcfc..4fc6ba6 100644
--- a/content/public/browser/BUILD.gn
+++ b/content/public/browser/BUILD.gn
@@ -194,6 +194,8 @@
     "native_event_processor_mac.h",
     "native_event_processor_observer_mac.h",
     "native_event_processor_observer_mac.mm",
+    "native_file_system_permission_context.h",
+    "native_file_system_permission_grant.h",
     "native_web_keyboard_event.h",
     "navigation_controller.cc",
     "navigation_controller.h",
diff --git a/content/public/browser/browser_context.h b/content/public/browser/browser_context.h
index 5c20c891e..1d65e03 100644
--- a/content/public/browser/browser_context.h
+++ b/content/public/browser/browser_context.h
@@ -81,6 +81,7 @@
 class DownloadManager;
 class ClientHintsControllerDelegate;
 class DownloadManagerDelegate;
+class NativeFileSystemPermissionContext;
 class PermissionController;
 class PermissionControllerDelegate;
 class PushMessagingService;
@@ -356,6 +357,11 @@
   // nullptr otherwise.
   virtual SmsService* GetSmsService();
 
+  // Returns the NativeFileSystemPermissionContext associated with this context
+  // if any, nullptr otherwise.
+  virtual NativeFileSystemPermissionContext*
+  GetNativeFileSystemPermissionContext();
+
  private:
   const std::string unique_id_;
   bool was_notify_will_be_destroyed_called_ = false;
diff --git a/content/public/browser/native_file_system_permission_context.h b/content/public/browser/native_file_system_permission_context.h
new file mode 100644
index 0000000..f7af7aa
--- /dev/null
+++ b/content/public/browser/native_file_system_permission_context.h
@@ -0,0 +1,38 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
+#define CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
+
+#include "base/files/file_path.h"
+#include "content/public/browser/native_file_system_permission_grant.h"
+#include "url/origin.h"
+
+namespace content {
+
+// Entry point to an embedder implemented permission context for the Native File
+// System API. Instances of this class can be retrieved via a BrowserContext.
+// All these methods should always be called on the same sequence.
+class NativeFileSystemPermissionContext {
+ public:
+  // TODO(mek): Add methods related to read permissions as well, when revoking
+  // and re-prompting for those gets implemented.
+
+  // Returns the permission grant to use for a particular path. This could be a
+  // grant that applies to more than just the path passed in, for example if a
+  // user has already granted write access to a directory, this method could
+  // return that existing grant when figuring the grant to use for a file in
+  // that directory.
+  virtual scoped_refptr<NativeFileSystemPermissionGrant>
+  GetWritePermissionGrant(const url::Origin& origin,
+                          const base::FilePath& path,
+                          bool is_directory) = 0;
+
+ protected:
+  virtual ~NativeFileSystemPermissionContext() = default;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
diff --git a/content/public/browser/native_file_system_permission_grant.h b/content/public/browser/native_file_system_permission_grant.h
new file mode 100644
index 0000000..98961dd3
--- /dev/null
+++ b/content/public/browser/native_file_system_permission_grant.h
@@ -0,0 +1,47 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+#define CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
+
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+#include "third_party/blink/public/mojom/permissions/permission_status.mojom-forward.h"
+
+namespace content {
+
+// A ref-counted permission grant. This is needed so the implementation of
+// this class can keep track of references to permissions, and clean up state
+// when no more references remain. Multiple NativeFileSystemHandle instances
+// can share the same permission grant. For example a directory and all its
+// children will use the same grant.
+//
+// Instances of this class can be retrieved via a
+// NativeFileSystemPermissionContext instance.
+//
+// NativeFileSystemPermissionGrant instances are not thread safe, and should
+// only be used (and referenced) on the same sequence as the PermssionContext
+// that created them.
+class NativeFileSystemPermissionGrant
+    : public base::RefCounted<NativeFileSystemPermissionGrant> {
+ public:
+  using PermissionStatus = blink::mojom::PermissionStatus;
+
+  virtual PermissionStatus GetStatus() const = 0;
+
+  // Call this method to request permission for this grant. The |callback|
+  // should be called after the status of this grant has been updated with
+  // the outcome of the request.
+  virtual void RequestPermission(int process_id,
+                                 int frame_id,
+                                 base::OnceClosure callback) = 0;
+
+ protected:
+  friend class base::RefCounted<NativeFileSystemPermissionGrant>;
+  virtual ~NativeFileSystemPermissionGrant() = default;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/public/browser/sms_service.h b/content/public/browser/sms_service.h
index 39e0c99..42066c1 100644
--- a/content/public/browser/sms_service.h
+++ b/content/public/browser/sms_service.h
@@ -6,7 +6,7 @@
 #define CONTENT_PUBLIC_BROWSER_SMS_SERVICE_H_
 
 #include "content/common/content_export.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-forward.h"
 
 namespace url {
 class Origin;
@@ -23,7 +23,7 @@
 
   static std::unique_ptr<SmsService> Create();
 
-  virtual void Bind(blink::mojom::SmsManagerRequest request,
+  virtual void Bind(blink::mojom::SmsReceiverRequest request,
                     const url::Origin& origin) = 0;
 };
 
diff --git a/content/public/common/content_client.cc b/content/public/common/content_client.cc
index b738513..338ec48 100644
--- a/content/public/common/content_client.cc
+++ b/content/public/common/content_client.cc
@@ -129,7 +129,8 @@
 }
 #endif  // OS_ANDROID
 
-void ContentClient::OnServiceManagerConnected(
-    ServiceManagerConnection* connection) {}
+void ContentClient::BindChildProcessInterface(
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle* receiving_handle) {}
 
 }  // namespace content
diff --git a/content/public/common/content_client.h b/content/public/common/content_client.h
index 83c2abb..d5aa585 100644
--- a/content/public/common/content_client.h
+++ b/content/public/common/content_client.h
@@ -13,6 +13,7 @@
 #include "base/strings/string_piece.h"
 #include "build/build_config.h"
 #include "content/common/content_export.h"
+#include "mojo/public/cpp/system/message_pipe.h"
 #include "ui/base/layout.h"
 #include "url/gurl.h"
 #include "url/origin.h"
@@ -51,7 +52,6 @@
 class ContentGpuClient;
 class ContentRendererClient;
 class ContentUtilityClient;
-class ServiceManagerConnection;
 struct CdmInfo;
 struct PepperPluginInfo;
 
@@ -205,7 +205,11 @@
   virtual media::MediaDrmBridgeClient* GetMediaDrmBridgeClient();
 #endif  // OS_ANDROID
 
-  virtual void OnServiceManagerConnected(ServiceManagerConnection* connection);
+  // Allows the embedder to handle incoming interface binding requests from
+  // the browser process to any type of child process.
+  virtual void BindChildProcessInterface(
+      const std::string& interface_name,
+      mojo::ScopedMessagePipeHandle* receiving_handle);
 
  private:
   friend class ContentClientInitializer;  // To set these pointers.
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
index 8e8e53e1..59d9426f 100644
--- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
@@ -229,6 +229,9 @@
     public void setOverscrollRefreshHandler(OverscrollRefreshHandler handler) {}
 
     @Override
+    public void setSpatialNavigationDisabled(boolean disabled) {}
+
+    @Override
     public void writeContentBitmapToDiskAsync(
             int width, int height, String path, Callback<String> callback) {}
 
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
index 21470c4..2947bc8e 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -2593,18 +2593,18 @@
 }
 
 void BrowserTestClipboardScope::SetRtf(const std::string& rtf) {
-  ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
   clipboard_writer.WriteRTF(rtf);
 }
 
 void BrowserTestClipboardScope::SetText(const std::string& text) {
-  ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
   clipboard_writer.WriteText(base::ASCIIToUTF16(text));
 }
 
 void BrowserTestClipboardScope::GetText(std::string* result) {
   ui::Clipboard::GetForCurrentThread()->ReadAsciiText(
-      ui::CLIPBOARD_TYPE_COPY_PASTE, result);
+      ui::ClipboardType::kCopyPaste, result);
 }
 
 class FrameFocusedObserver::FrameTreeNodeObserverImpl
@@ -2765,7 +2765,7 @@
   // Wait for the desired state if needed.
   if (current_state_ < desired_state_) {
     DCHECK(!quit_closure_);
-    base::RunLoop run_loop;
+    base::RunLoop run_loop(message_loop_type_);
     quit_closure_ = run_loop.QuitClosure();
     run_loop.Run();
   }
@@ -2797,6 +2797,10 @@
   return true;
 }
 
+void TestNavigationManager::AllowNestableTasks() {
+  message_loop_type_ = base::RunLoop::Type::kNestableTasksAllowed;
+}
+
 NavigationHandleCommitObserver::NavigationHandleCommitObserver(
     content::WebContents* web_contents,
     const GURL& url)
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h
index 8ba8639..8456549 100644
--- a/content/public/test/browser_test_utils.h
+++ b/content/public/test/browser_test_utils.h
@@ -1380,6 +1380,10 @@
   // Whether the navigation successfully committed.
   bool was_successful() const { return was_successful_; }
 
+  // Allows nestable tasks when running a message loop in the Wait* functions.
+  // This is useful for utilizing this class from within another message loop.
+  void AllowNestableTasks();
+
  protected:
   // Derived classes can override if they want to filter out navigations. This
   // is called from DidStartNavigation.
@@ -1421,6 +1425,7 @@
   NavigationState desired_state_;
   bool was_successful_ = false;
   base::OnceClosure quit_closure_;
+  base::RunLoop::Type message_loop_type_ = base::RunLoop::Type::kDefault;
 
   base::WeakPtrFactory<TestNavigationManager> weak_factory_;
 
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
index 689d160..b83c912 100644
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -305,8 +305,6 @@
     "media/webrtc/webrtc_util.h",
     "media/webrtc/webrtc_video_track_source.cc",
     "media/webrtc/webrtc_video_track_source.h",
-    "media/webrtc/webrtc_video_utils.cc",
-    "media/webrtc/webrtc_video_utils.h",
     "menu_item_builder.cc",
     "menu_item_builder.h",
     "mhtml_handle_writer.cc",
diff --git a/content/renderer/media/webrtc/media_stream_remote_video_source.cc b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
index ac476586..359ab17 100644
--- a/content/renderer/media/webrtc/media_stream_remote_video_source.cc
+++ b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
@@ -11,7 +11,6 @@
 #include "base/callback_helpers.h"
 #include "base/location.h"
 #include "base/trace_event/trace_event.h"
-#include "content/renderer/media/webrtc/webrtc_video_utils.h"
 #include "media/base/bind_to_current_loop.h"
 #include "media/base/timestamp_constants.h"
 #include "media/base/video_frame.h"
@@ -19,6 +18,7 @@
 #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
 #include "third_party/blink/public/platform/modules/webrtc/track_observer.h"
 #include "third_party/blink/public/platform/modules/webrtc/webrtc_video_frame_adapter.h"
+#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h"
 #include "third_party/webrtc/api/video/i420_buffer.h"
 #include "third_party/webrtc/api/video/video_sink_interface.h"
 #include "third_party/webrtc/rtc_base/time_utils.h"  // for TimeMicros
@@ -174,12 +174,12 @@
   if (incoming_frame.rotation() != webrtc::kVideoRotation_0) {
     video_frame->metadata()->SetRotation(
         media::VideoFrameMetadata::ROTATION,
-        WebRtcToMediaVideoRotation(incoming_frame.rotation()));
+        blink::WebRtcToMediaVideoRotation(incoming_frame.rotation()));
   }
 
   if (incoming_frame.color_space()) {
     video_frame->set_color_space(
-        WebRtcToMediaVideoColorSpace(*incoming_frame.color_space())
+        blink::WebRtcToMediaVideoColorSpace(*incoming_frame.color_space())
             .ToGfxColorSpace());
   }
 
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
index 1108c07e..9df2383 100644
--- a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
+++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
@@ -23,7 +23,6 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "content/renderer/media/render_media_log.h"
-#include "content/renderer/media/webrtc/webrtc_video_utils.h"
 #include "media/base/media_log.h"
 #include "media/base/media_util.h"
 #include "media/base/overlay_info.h"
@@ -31,6 +30,7 @@
 #include "media/video/gpu_video_accelerator_factories.h"
 #include "media/video/video_decode_accelerator.h"
 #include "third_party/blink/public/platform/modules/webrtc/webrtc_video_frame_adapter.h"
+#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h"
 #include "third_party/webrtc/api/video/video_frame.h"
 #include "third_party/webrtc/media/base/vp9_profile.h"
 #include "third_party/webrtc/modules/video_coding/codecs/h264/include/h264.h"
@@ -274,7 +274,7 @@
 
   if (ShouldReinitializeForSettingHDRColorSpace(input_image)) {
     config_.set_color_space_info(
-        WebRtcToMediaVideoColorSpace(*input_image.ColorSpace()));
+        blink::WebRtcToMediaVideoColorSpace(*input_image.ColorSpace()));
     if (!ReinitializeSync(config_))
       return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
     if (input_image._frameType != webrtc::VideoFrameType::kVideoFrameKey)
@@ -459,7 +459,7 @@
   if (config_.profile() == media::VP9PROFILE_PROFILE2 &&
       input_image.ColorSpace()) {
     const media::VideoColorSpace& new_color_space =
-        WebRtcToMediaVideoColorSpace(*input_image.ColorSpace());
+        blink::WebRtcToMediaVideoColorSpace(*input_image.ColorSpace());
     if (!config_.color_space_info().IsSpecified() ||
         new_color_space != config_.color_space_info()) {
       return true;
diff --git a/content/renderer/media/webrtc/webrtc_video_utils.h b/content/renderer/media/webrtc/webrtc_video_utils.h
deleted file mode 100644
index 5bcfcf0..0000000
--- a/content/renderer/media/webrtc/webrtc_video_utils.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_
-#define CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_
-
-#include "media/base/video_color_space.h"
-#include "media/base/video_transformation.h"
-#include "third_party/webrtc/api/video/color_space.h"
-#include "third_party/webrtc/api/video/video_rotation.h"
-
-namespace content {
-
-// This file has helper methods for conversion between chromium types and
-// webrtc/api/video types.
-
-media::VideoRotation WebRtcToMediaVideoRotation(webrtc::VideoRotation rotation);
-
-media::VideoColorSpace WebRtcToMediaVideoColorSpace(
-    const webrtc::ColorSpace& color_space);
-
-}  // namespace content
-
-#endif  // CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_
diff --git a/content/renderer/pepper/pepper_webplugin_impl.cc b/content/renderer/pepper/pepper_webplugin_impl.cc
index f5d60db..dd5d616 100644
--- a/content/renderer/pepper/pepper_webplugin_impl.cc
+++ b/content/renderer/pepper/pepper_webplugin_impl.cc
@@ -351,7 +351,7 @@
           blink::Platform::Current()->GetBrowserServiceName(), &clipboard_);
     }
     base::string16 text;
-    clipboard_->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
+    clipboard_->ReadText(ui::ClipboardType::kCopyPaste, &text);
 
     instance_->ReplaceSelection(base::UTF16ToUTF8(text));
     return true;
diff --git a/content/shell/test_runner/pixel_dump.cc b/content/shell/test_runner/pixel_dump.cc
index 62e102b..f5caf4f 100644
--- a/content/shell/test_runner/pixel_dump.cc
+++ b/content/shell/test_runner/pixel_dump.cc
@@ -94,17 +94,17 @@
       blink::Platform::Current()->GetBrowserServiceName(), &clipboard);
 
   uint64_t sequence_number_before = 0;
-  clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste,
                                &sequence_number_before);
   web_frame->CopyImageAt(blink::WebPoint(x, y));
   uint64_t sequence_number_after = 0;
   while (sequence_number_before == sequence_number_after) {
-    clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE,
+    clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste,
                                  &sequence_number_after);
   }
 
   SkBitmap bitmap;
-  clipboard->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, &bitmap);
+  clipboard->ReadImage(ui::ClipboardType::kCopyPaste, &bitmap);
   std::move(callback).Run(bitmap);
 }
 
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index ff0808b..1c87c41 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -54,6 +54,8 @@
     "../browser/media/session/mock_media_session_service_impl.h",
     "../browser/native_file_system/file_system_chooser_test_helpers.cc",
     "../browser/native_file_system/file_system_chooser_test_helpers.h",
+    "../browser/native_file_system/mock_native_file_system_permission_grant.cc",
+    "../browser/native_file_system/mock_native_file_system_permission_grant.h",
     "../browser/renderer_host/input/mock_input_router.cc",
     "../browser/renderer_host/input/mock_input_router.h",
     "../browser/renderer_host/mock_render_widget_host.cc",
@@ -1620,6 +1622,7 @@
     "../browser/native_file_system/file_system_chooser_unittest.cc",
     "../browser/native_file_system/native_file_system_file_handle_impl_unittest.cc",
     "../browser/native_file_system/native_file_system_handle_base_unittest.cc",
+    "../browser/native_file_system/native_file_system_manager_impl_unittest.cc",
     "../browser/net/network_quality_observer_impl_unittest.cc",
     "../browser/net/quota_policy_cookie_store_unittest.cc",
     "../browser/network_service_client_unittest.cc",
diff --git a/content/test/gpu/gather_power_measurement_results.py b/content/test/gpu/gather_power_measurement_results.py
index 0a95b803..cb2933fa 100755
--- a/content/test/gpu/gather_power_measurement_results.py
+++ b/content/test/gpu/gather_power_measurement_results.py
@@ -85,8 +85,7 @@
   builds_json = GetBuildData('SearchBuilds', request)
   builds = builds_json['builds']
   if len(builds) != build_count:
-    raise ValueError('Asked %d builds, got %d builds' % (
-        len(builds, build_count)))
+    logging.warn('Asked %d builds, got %d builds', build_count, len(builds))
   return builds
 
 
@@ -266,9 +265,13 @@
     builds = []
     for build_id in range(last_build, first_build - 1, -1):
       logging.debug('Pull data for build %d' % build_id)
-      build_json = GetJsonForBuildSteps(options.bot, build_id)
-      build_json['number'] = build_id
-      builds.append(build_json)
+      try:
+        build_json = GetJsonForBuildSteps(options.bot, build_id)
+        build_json['number'] = build_id
+        builds.append(build_json)
+      except urllib2.HTTPError:
+        logging.warn('HTTPError raised, failed to load data from build %d',
+                     build_id)
 
   logging.debug('Start processing stdout data')
   results = { 'builds': [] }
diff --git a/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py b/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py
index f6b97ce..5b0ae9e 100644
--- a/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py
+++ b/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py
@@ -17,6 +17,7 @@
 from collections import defaultdict
 
 from telemetry.testing import browser_test_runner
+from telemetry.testing import fakes
 from telemetry.internal.platform import system_info
 
 from gpu_tests import context_lost_integration_test
@@ -60,117 +61,77 @@
 
 ResultType = json_results.ResultType
 
-class MockPlatform(object):
-  def __init__(self, os_name, os_version_name=None):
-    self.os_name = os_name
-    self.os_version_name = os_version_name
-
-  def GetOSName(self):
-    return self.os_name
-
-  def GetOSVersionName(self):
-    return self.os_version_name
+def _GetMockArgs(is_asan=False, webgl_version='1.0.0'):
+  args = mock.MagicMock()
+  args.is_asan = is_asan
+  args.webgl_conformance_version = webgl_version
+  args.webgl2_only = False
+  args.url = 'https://www.google.com'
+  args.duration = 10
+  args.delay = 10
+  args.resolution = 100
+  args.fullscreen = False
+  args.underlay = False
+  args.logdir = '/tmp'
+  args.repeat = 1
+  args.outliers = 0
+  args.bypass_ipg = False
+  args.expected_vendor_id = 0
+  args.expected_device_id = 0
+  args.browser_options = []
+  return args
 
 
-class MockBrowser(object):
-  def __init__(self, platform, gpu='', device='', vendor_string='',
-               device_string='', browser_type=None, gl_renderer=None,
-               passthrough=False):
-    self.platform = platform
-    self.browser_type = browser_type
-    sys_info = {
-      'model_name': '',
-      'gpu': {
-        'devices': [
-          {'vendor_id': gpu, 'device_id': device,
-           'vendor_string': vendor_string, 'device_string': device_string},
-        ],
-       'aux_attributes': {'passthrough_cmd_decoder': passthrough}
-      }
+def _GetSystemInfo(
+    gpu='', device='', vendor_string='',
+    device_string='', passthrough=False, gl_renderer=''):
+  sys_info = {
+    'model_name': '',
+    'gpu': {
+      'devices': [
+        {'vendor_id': gpu, 'device_id': device,
+         'vendor_string': vendor_string, 'device_string': device_string},
+      ],
+     'aux_attributes': {'passthrough_cmd_decoder': passthrough}
     }
-    if gl_renderer:
-      sys_info['gpu']['aux_attributes']['gl_renderer'] = gl_renderer
-    self.system_info = system_info.SystemInfo.FromDict(sys_info)
-
-  def GetSystemInfo(self):
-    return self.system_info
-
-  def __enter__(self):
-    return self
-
-  def __exit__(self, *args):
-    pass
+  }
+  if gl_renderer:
+    sys_info['gpu']['aux_attributes']['gl_renderer'] = gl_renderer
+  return system_info.SystemInfo.FromDict(sys_info)
 
 
-class MockArgs(object):
-
-  def __init__(self, is_asan=False, webgl_version='1.0.0'):
-    self.is_asan = is_asan
-    self.webgl_conformance_version = webgl_version
-    self.webgl2_only = False
-    self.url = 'https://www.google.com'
-    self.duration = 10
-    self.delay = 10
-    self.resolution = 100
-    self.fullscreen = False
-    self.underlay = False
-    self.logdir = '/tmp'
-    self.repeat = 1
-    self.outliers = 0
-    self.bypass_ipg = False
-    self.expected_vendor_id = 0
-    self.expected_device_id = 0
-    self.browser_options = []
+def _GetTagsToTest(browser, test_class=None, args=None):
+  gpu_tests = test_class or gpu_integration_test.GpuIntegrationTest
+  expectations_fn = gpu_tests.ExpectationsFiles
+  gpu_tests.ExpectationsFiles = mock.MagicMock(return_value=['exp.txt'])
+  ret = None
+  try:
+    possible_browser = fakes.FakePossibleBrowser()
+    possible_browser._returned_browser = browser
+    args = args or _GetMockArgs()
+    ret = set(gpu_tests.GenerateTags(args, possible_browser))
+  finally:
+    gpu_tests.ExpectationsFiles = expectations_fn
+  return ret
 
 
-class MockAbstractGpuTestClass(gpu_integration_test.GpuIntegrationTest):
-
-  @classmethod
-  def GenerateGpuTests(cls, options):
-    return []
-
-  def RunActualGpuTest(self, test_path, *args):
-    pass
+def _GenerateNvidiaExampleTagsForTestClassAndArgs(test_class, args):
+  exp_files_fn = test_class.ExpectationsFiles
+  ret = None
+  try:
+    test_class.ExpectationsFiles = mock.MagicMock(return_value=['exp.txt'])
+    _ = [_ for _ in test_class.GenerateGpuTests(args)]
+    platform = fakes.FakePlatform('win', 'win10')
+    browser = fakes.FakeBrowser(platform, 'release')
+    browser._returned_system_info = _GetSystemInfo(
+        gpu=VENDOR_NVIDIA, device=0x1cb3, gl_renderer='ANGLE Direct3D9')
+    ret = _GetTagsToTest(browser, test_class)
+  finally:
+    test_class.ExpectationsFiles = exp_files_fn
+  return ret
 
 
-class MockTestCaseWithoutExpectationsFile(MockAbstractGpuTestClass):
-  pass
-
-
-class MockTestCaseWithExpectationsFile(MockAbstractGpuTestClass):
-
-  @classmethod
-  def ExpectationsFiles(cls):
-    return ['example_test_expectations.txt']
-
-
-class MockPossibleBrowser(object):
-
-  def __init__(self, browser=None):
-    self._returned_browser = browser
-
-  def BrowserSession(self, options):
-    del options
-    return self._returned_browser
-
-
-def _generateNvidiaExampleTagsForTestClassAndArgs(test_class, args):
-  class MockTestCase(test_class, MockAbstractGpuTestClass):
-
-    @classmethod
-    def ExpectationsFiles(cls):
-      return ['example_test_expectations.txt']
-
-  _ = [_ for _ in MockTestCase.GenerateGpuTests(args)]
-  platform = MockPlatform('win', 'win10')
-  browser = MockBrowser(
-      platform, VENDOR_NVIDIA, 0x1cb3, browser_type='release',
-      gl_renderer='ANGLE Direct3D9')
-  possible_browser = MockPossibleBrowser(browser)
-  return set(MockTestCase.GenerateTags(args, possible_browser))
-
-
-def _checkTestExpectationsAreForExistingTests(
+def _CheckTestExpectationsAreForExistingTests(
     test_class, mock_options, test_names=None):
   test_names = test_names or [
       args[0] for args in
@@ -197,7 +158,7 @@
       _trie = _trie[l]
 
 
-def is_collision(s1, s2):
+def _IsCollision(s1, s2):
   # s1 collides with s2 when s1 is a subset of s2
   # A tag is in both sets if its a generic tag
   # and its in one set while a specifc tag covered by the generic tag is in
@@ -211,7 +172,7 @@
   return True
 
 
-def _glob_conflicts_with_exp(possible_collision, exp):
+def _ConflictLeaksRegression(possible_collision, exp):
   reason_template = (
       'Pattern \'{0}\' on line {1} has the %s expectation however the '
       'the pattern on \'{2}\' line {3} has the Pass expectation'). format(
@@ -228,7 +189,7 @@
   return ''
 
 
-def _map_gpu_devices_to_vendors(tag_sets):
+def _MapGpuDevicesToVendors(tag_sets):
   for tag_set in tag_sets:
     if any(gpu in tag_set for gpu in GPU_CONDITIONS):
       _map_specific_to_generic.update(
@@ -237,7 +198,7 @@
       break
 
 
-def _checkTestExpectationGlobsForCollision(expectations, file_name):
+def _CheckTestExpectationGlobsForCollision(expectations, file_name):
   """This function looks for collisions between test expectations with patterns
   that match with test expectation patterns that are globs. A test expectation
   collides with another if its pattern matches with another's glob and if its
@@ -256,7 +217,7 @@
   parser = expectations_parser.TaggedTestListParser(expectations)
   globs_to_expectations = defaultdict(list)
 
-  _map_gpu_devices_to_vendors(parser.tag_sets)
+  _MapGpuDevicesToVendors(parser.tag_sets)
 
   for exp in parser.expectations:
     _trie = trie.setdefault(exp.test[0], {})
@@ -284,9 +245,9 @@
     matched_to_globs = [e for e in expectations if e.test != glob]
     for match in matched_to_globs:
       for possible_collision in globs_to_match:
-        reason = _glob_conflicts_with_exp(possible_collision, match)
+        reason = _ConflictLeaksRegression(possible_collision, match)
         if (reason and
-            is_collision(possible_collision.tags, match.tags)):
+            _IsCollision(possible_collision.tags, match.tags)):
           if not conflicts_found:
             error_msg += ('\n\nFound conflicts for pattern %s in %s:\n' %
                           (glob, file_name))
@@ -296,7 +257,7 @@
   assert not master_conflicts_found, error_msg
 
 
-def _checkTestExpectationPatternsForCollision(expectations, file_name):
+def _CheckTestExpectationPatternsForCollision(expectations, file_name):
   """This function makes sure that any test expectations that have the same
   pattern do not collide with each other. They collide when one expectation's
   tags are a subset of the other expectation's tags. If the expectation with
@@ -311,14 +272,14 @@
   tests_to_exps = defaultdict(list)
   master_conflicts_found = False
   error_msg = ''
-  _map_gpu_devices_to_vendors(parser.tag_sets)
+  _MapGpuDevicesToVendors(parser.tag_sets)
 
   for exp in parser.expectations:
     tests_to_exps[exp.test].append(exp)
   for pattern, exps in tests_to_exps.items():
     conflicts_found = False
     for e1, e2 in itertools.combinations(exps, 2):
-      if is_collision(e1.tags, e2.tags) or is_collision(e2.tags, e1.tags):
+      if _IsCollision(e1.tags, e2.tags) or _IsCollision(e2.tags, e1.tags):
         if not conflicts_found:
           error_msg += ('\n\nFound conflicts for test %s in %s:\n' %
                         (pattern, file_name))
@@ -337,28 +298,22 @@
         'expectation does not exist: ' + full_path)
 
 
-def _testCheckTestExpectationsAreForExistingTests(expectations):
-  options = MockArgs()
+def _TestCheckTestExpectationsAreForExistingTests(expectations):
+  options = _GetMockArgs()
   expectations_file = tempfile.NamedTemporaryFile(delete=False)
   expectations_file.write(expectations)
   expectations_file.close()
-
-  class _MockTestCase(object):
-    @classmethod
-    def Name(cls):
-      return '_MockTestCase'
-
-    @classmethod
-    def GenerateGpuTests(cls, options):
-      tests = [('a/b/c', ())]
-      for t in tests:
-        yield t
-
-    @classmethod
-    def ExpectationsFiles(cls):
-      return [expectations_file.name]
-
-  _checkTestExpectationsAreForExistingTests(_MockTestCase, options)
+  gpu_tests = gpu_integration_test.GpuIntegrationTest
+  generate_gpu_fn = gpu_tests.GenerateGpuTests
+  expectations_files_fn = gpu_tests.ExpectationsFiles
+  gpu_tests.GenerateGpuTests = mock.MagicMock(return_value=[('a/b/c', ())])
+  gpu_tests.ExpectationsFiles = mock.MagicMock(
+      return_value=[expectations_file.name])
+  try:
+    _CheckTestExpectationsAreForExistingTests(gpu_tests, options)
+  finally:
+    gpu_tests.GenerateGpuTests = generate_gpu_fn
+    gpu_tests.ExpectationsFiles = expectations_files_fn
 
 
 def _FindTestCases():
@@ -405,7 +360,7 @@
     [ intel xp debug ] a/b/c/d [ Skip ]
     '''
     with self.assertRaises(AssertionError):
-      _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testNoCollisionBetweenSpecificOsTags(self):
     test_expectations = '''# tags: [ mac win linux xp win7 ]
@@ -414,7 +369,7 @@
     [ intel win7 ] a/b/c/d [ Failure ]
     [ intel xp debug ] a/b/c/d [ Skip ]
     '''
-    _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+    _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testCollisionInTestExpectationsWithGpuVendorAndDeviceTags(self):
     test_expectations = '''# tags: [ mac win linux xp ]
@@ -424,7 +379,7 @@
     [ nvidia-0x01 xp debug ] a/b/c/d [ Skip ]
     '''
     with self.assertRaises(AssertionError):
-      _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testCollisionInTestExpectationsWithGpuVendorAndDeviceTags2(self):
     test_expectations = '''# tags: [ mac win linux xp win7 ]
@@ -434,7 +389,7 @@
     [ nvidia win7 debug ] a/b/c/* [ Skip ]
     '''
     with self.assertRaises(AssertionError):
-      _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testNoCollisionBetweenGpuDeviceTags(self):
     test_expectations = '''# tags: [ mac win linux xp win7 ]
@@ -444,7 +399,7 @@
     [ nvidia-0x02 win7 debug ] a/b/c/d [ Skip ]
     [ nvidia win debug ] a/b/c/* [ Skip ]
     '''
-    _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+    _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testMixGenericandSpecificTagsInCollidingSets(self):
     test_expectations = '''# tags: [ mac win linux xp win7 ]
@@ -454,7 +409,7 @@
     [ nvidia win7 debug ] a/b/c/d [ Skip ]
     '''
     with self.assertRaises(AssertionError):
-      _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testCollisionInTestExpectationCausesAssertion(self):
     test_expectations = '''# tags: [ mac win linux ]
@@ -469,7 +424,7 @@
     [ intel mac ] a/b/c [ Failure ]
     '''
     with self.assertRaises(AssertionError) as context:
-      _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
     self.assertIn("Found conflicts for test a/b/c/d in test.txt:",
       str(context.exception))
     self.assertIn('line 4 conflicts with line 5',
@@ -494,7 +449,7 @@
     [ intel debug mac ] a/b/c/d/e [ Failure ]
     '''
     with self.assertRaises(AssertionError) as context:
-      _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt')
     self.assertIn('Found conflicts for pattern a/b/c/d* in test.txt:',
         str(context.exception))
     self.assertIn(("line 4 conflicts with line 5: Pattern 'a/b/c/d*' on line 4 "
@@ -512,7 +467,7 @@
     [ intel debug ] a/b/c/d [ Failure ]
     [ intel debug ] a/b/c/d [ Skip ]
     '''
-    _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt')
+    _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt')
 
   def testCollisionWithGlobsWithSkipExpectation(self):
     test_expectations = '''# tags: [ mac win linux ]
@@ -523,7 +478,7 @@
     [ intel debug mac ] a/b/c/d/e [ RetryOnFailure ]
     '''
     with self.assertRaises(AssertionError) as context:
-      _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt')
+      _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt')
     self.assertIn('Found conflicts for pattern a/b/c/d* in test.txt:',
         str(context.exception))
     self.assertNotIn('line 4 conflicts with line 5',
@@ -543,7 +498,7 @@
     [ intel debug ] a/b/c/d [ Skip ]
     [ intel debug ] a/b/c/d [ Skip ]
     '''
-    _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt')
+    _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt')
 
   def testNoCollisionInTestExpectations(self):
     test_expectations = '''# tags: [ mac win linux ]
@@ -553,7 +508,7 @@
     [ intel debug ] a/b/c/d [ Failure ]
     [ nvidia debug ] a/b/c/d [ Failure ]
     '''
-    _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt')
+    _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt')
 
   def testNoCollisionsForSameTestsInGpuTestExpectations(self):
     webgl_conformance_test_class = (
@@ -562,10 +517,10 @@
       if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__:
         for i in xrange(1, 2 + (test_case == webgl_conformance_test_class)):
           _ = list(test_case.GenerateGpuTests(
-              MockArgs(webgl_version=('%d.0.0' % i))))
+              _GetMockArgs(webgl_version=('%d.0.0' % i))))
           if test_case.ExpectationsFiles():
             with open(test_case.ExpectationsFiles()[0]) as f:
-              _checkTestExpectationPatternsForCollision(f.read(),
+              _CheckTestExpectationPatternsForCollision(f.read(),
               os.path.basename(f.name))
 
   def testNoCollisionsWithGlobsInGpuTestExpectations(self):
@@ -575,19 +530,19 @@
       if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__:
         for i in xrange(1, 2 + (test_case == webgl_conformance_test_class)):
           _ = list(test_case.GenerateGpuTests(
-              MockArgs(webgl_version=('%d.0.0' % i))))
+              _GetMockArgs(webgl_version=('%d.0.0' % i))))
           if test_case.ExpectationsFiles():
             with open(test_case.ExpectationsFiles()[0]) as f:
-              _checkTestExpectationGlobsForCollision(f.read(),
+              _CheckTestExpectationGlobsForCollision(f.read(),
               os.path.basename(f.name))
 
   def testGpuTestExpectationsAreForExistingTests(self):
-    options = MockArgs()
+    options = _GetMockArgs()
     for test_case in _FindTestCases():
       if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__:
         if (test_case.Name() not in ('pixel', 'webgl_conformance')
             and test_case.ExpectationsFiles()):
-          _checkTestExpectationsAreForExistingTests(test_case, options)
+          _CheckTestExpectationsAreForExistingTests(test_case, options)
 
   def testWebglTestPathsExist(self):
     webgl_test_class = (
@@ -596,7 +551,7 @@
       if test_case == webgl_test_class:
         for i in xrange(1, 3):
           _ = list(test_case.GenerateGpuTests(
-              MockArgs(webgl_version='%d.0.0' % i)))
+              _GetMockArgs(webgl_version='%d.0.0' % i)))
           with open(test_case.ExpectationsFiles()[0], 'r') as f:
             expectations = expectations_parser.TaggedTestListParser(f.read())
             for exp in expectations.expectations:
@@ -609,19 +564,19 @@
       pixel_test_names.extend(
           [p.name for p in method(
               pixel_integration_test.PixelIntegrationTest.test_base_name)])
-    _checkTestExpectationsAreForExistingTests(
+    _CheckTestExpectationsAreForExistingTests(
         pixel_integration_test.PixelIntegrationTest,
-        MockArgs(), pixel_test_names)
+        _GetMockArgs(), pixel_test_names)
 
   def testExpectationPatternNotInGeneratedTests(self):
     with self.assertRaises(AssertionError) as context:
-      _testCheckTestExpectationsAreForExistingTests('a/b/d [ Failure ]')
+      _TestCheckTestExpectationsAreForExistingTests('a/b/d [ Failure ]')
     self.assertIn(("1: Glob 'a/b/d' does not match with any"
-                  " tests in the _MockTestCase test suite"),
+                  " tests in the GpuIntegrationTest test suite"),
                   str(context.exception))
 
   def testGlobMatchesTestName(self):
-    _testCheckTestExpectationsAreForExistingTests('a/b* [ Failure ]')
+    _TestCheckTestExpectationsAreForExistingTests('a/b* [ Failure ]')
 
   def testOverrideDefaultRetryArgumentsinRunGpuIntegrationTests(self):
     self._RunGpuIntegrationTests(
@@ -645,13 +600,13 @@
     # we need to make sure that GenerateTags() returns an empty list if
     # there are no expectations files returned from ExpectationsFiles() or
     # else Typ will raise an exception
-    args = MockArgs()
-    possible_browser = MockPossibleBrowser()
-    self.assertFalse(MockTestCaseWithoutExpectationsFile.GenerateTags(
+    args = _GetMockArgs()
+    possible_browser = mock.MagicMock()
+    self.assertFalse(gpu_integration_test.GpuIntegrationTest.GenerateTags(
         args, possible_browser))
 
   def _TestTagGenerationForMockPlatform(self, test_class, args):
-    tag_set = _generateNvidiaExampleTagsForTestClassAndArgs(
+    tag_set = _GenerateNvidiaExampleTagsForTestClassAndArgs(
         webgl_conformance_integration_test.WebGLConformanceIntegrationTest,
         args)
     self.assertTrue(
@@ -660,7 +615,7 @@
     return tag_set
 
   def testGenerateContextLostExampleTagsForAsan(self):
-    args = MockArgs(is_asan=True)
+    args = _GetMockArgs(is_asan=True)
     tag_set = self._TestTagGenerationForMockPlatform(
         context_lost_integration_test.ContextLostIntegrationTest,
         args)
@@ -668,7 +623,7 @@
     self.assertNotIn('no-asan', tag_set)
 
   def testGenerateContextLostExampleTagsForNoAsan(self):
-    args = MockArgs()
+    args = _GetMockArgs()
     tag_set = self._TestTagGenerationForMockPlatform(
         context_lost_integration_test.ContextLostIntegrationTest,
         args)
@@ -676,7 +631,7 @@
     self.assertNotIn('asan', tag_set)
 
   def testGenerateWebglConformanceExampleTagsForWebglVersion1andAsan(self):
-    args = MockArgs(is_asan=True, webgl_version='1.0.0')
+    args = _GetMockArgs(is_asan=True, webgl_version='1.0.0')
     tag_set = self._TestTagGenerationForMockPlatform(
         webgl_conformance_integration_test.WebGLConformanceIntegrationTest,
         args)
@@ -684,7 +639,7 @@
     self.assertFalse(set(['no-asan', 'webgl-version-2']) & tag_set)
 
   def testGenerateWebglConformanceExampleTagsForWebglVersion2andNoAsan(self):
-    args = MockArgs(is_asan=False, webgl_version='2.0.0')
+    args = _GetMockArgs(is_asan=False, webgl_version='2.0.0')
     tag_set = self._TestTagGenerationForMockPlatform(
         webgl_conformance_integration_test.WebGLConformanceIntegrationTest,
         args)
@@ -692,45 +647,36 @@
     self.assertFalse(set(['asan', 'webgl-version-1']) & tag_set)
 
   def testGenerateNvidiaExampleTags(self):
-    args = MockArgs()
-    platform = MockPlatform('win', 'win10')
-    browser = MockBrowser(
-        platform, VENDOR_NVIDIA, 0x1cb3, browser_type='release',
-        gl_renderer='ANGLE Direct3D9')
-    possible_browser = MockPossibleBrowser(browser)
+    platform = fakes.FakePlatform('win', 'win10')
+    browser = fakes.FakeBrowser(platform, 'release')
+    browser._returned_system_info = _GetSystemInfo(
+        gpu=VENDOR_NVIDIA, device=0x1cb3, gl_renderer='ANGLE Direct3D9')
     self.assertEqual(
-        set(MockTestCaseWithExpectationsFile.GenerateTags(
-            args, possible_browser)),
+        _GetTagsToTest(browser),
         set(['win', 'win10', 'release', 'nvidia', 'nvidia-0x1cb3',
              'd3d9', 'no-passthrough']))
 
   def testGenerateVendorTagUsingVendorString(self):
-    args = MockArgs()
-    platform = MockPlatform('mac', 'mojave')
-    browser = MockBrowser(
-        platform, browser_type='release',
-        gl_renderer='ANGLE OpenGL ES', passthrough=True,
+    platform = fakes.FakePlatform('mac', 'mojave')
+    browser = fakes.FakeBrowser(platform, 'release')
+    browser._returned_system_info = _GetSystemInfo(
         vendor_string=VENDOR_STRING_IMAGINATION,
-        device_string=DEVICE_STRING_SGX)
-    possible_browser = MockPossibleBrowser(browser)
+        device_string=DEVICE_STRING_SGX,
+        passthrough=True, gl_renderer='ANGLE OpenGL ES')
     self.assertEqual(
-        set(MockTestCaseWithExpectationsFile.GenerateTags(
-            args, possible_browser)),
+        _GetTagsToTest(browser),
         set(['mac', 'mojave', 'release', 'imagination',
              'imagination-powervr-sgx-554',
              'opengles', 'passthrough']))
 
   def testGenerateVendorTagUsingDeviceString(self):
-    args = MockArgs()
-    platform = MockPlatform('mac', 'mojave')
-    browser = MockBrowser(
-        platform, browser_type='release',
+    platform = fakes.FakePlatform('mac', 'mojave')
+    browser = fakes.FakeBrowser(platform, 'release')
+    browser._returned_system_info = _GetSystemInfo(
         vendor_string='illegal vendor string',
         device_string='ANGLE (Imagination, Triangle Monster 3000, 1.0)')
-    possible_browser = MockPossibleBrowser(browser)
     self.assertEqual(
-        set(MockTestCaseWithExpectationsFile.GenerateTags(
-            args, possible_browser)),
+        _GetTagsToTest(browser),
         set(['mac', 'mojave', 'release', 'imagination',
              'imagination-triangle-monster-3000',
              'no-angle', 'no-passthrough']))
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index f594a24..8947ac82 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -1,7 +1,7 @@
 # tags: [ android chromeos highsierra linux mac mojave win ]
 # tags: [ android-chromium android-webview-instrumentation debug ]
 # tags: [ skia-renderer no-skia-renderer ]
-# tags: [ amd amd-0x6613 amd-0x679e amd-0x6821 intel intel-0xa2e
+# tags: [ amd amd-0x6613 amd-0x679e amd-0x6821 intel intel-0xa2e intel-0x5912
 #         nvidia nvidia-0xfe9 qualcomm-adreno-(tm)-330 qualcomm-adreno-(tm)-418
 #         qualcomm-adreno-(tm)-420 qualcomm-adreno-(tm)-430
 #         qualcomm-adreno-(tm)-540
@@ -192,3 +192,6 @@
 
 # Fails when the browser feature SkiaRenderer is enabled
 crbug.com/976370 [ skia-renderer ] Pixel_CSS3DBlueBox [ Skip ]
+
+# Produces blank images on Intel HD 630 w/ Mesa 19.0.2
+crbug.com/976861 [ linux intel-0x5912 ] Pixel_OffscreenCanvasTransferToImageBitmap [ Failure ]
diff --git a/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv
new file mode 100644
index 0000000..8c990cf
--- /dev/null
+++ b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv
Binary files differ
diff --git a/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json
new file mode 100644
index 0000000..3ac2e08
--- /dev/null
+++ b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json
@@ -0,0 +1,53494 @@
+{
+  "builds": [
+    {
+      "bot": "BUILD132-A9",
+      "number": 4759,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5823866666666666,
+            0.5764533333333333,
+            0.5718724832214762
+          ],
+          "GT Power_0": [
+            0.038879999999999984,
+            0.010326666666666666,
+            0.009966442953020132
+          ],
+          "IA Power_0": [
+            3.220493333333332,
+            3.845860000000002,
+            3.0313087248322153
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5699533333333346,
+            4.1070600000000015,
+            3.2882953020134207
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7202533333333326,
+            0.7361192052980128,
+            0.7117682119205297
+          ],
+          "GT Power_0": [
+            0.09264666666666667,
+            0.09566225165562914,
+            0.09649668874172185
+          ],
+          "IA Power_0": [
+            6.829333333333333,
+            6.263350993377485,
+            6.28644370860927
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.163753333333331,
+            6.768185430463577,
+            6.646503311258278
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7309072847682114,
+            0.7160599999999994,
+            0.7382933333333328
+          ],
+          "GT Power_0": [
+            0.09303311258278145,
+            0.0916,
+            0.09156666666666674
+          ],
+          "IA Power_0": [
+            6.678125827814571,
+            6.522126666666667,
+            6.277859999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.173092715231789,
+            6.791979999999997,
+            7.142326666666671
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7715960264900664,
+            0.7703666666666666,
+            0.7722266666666668
+          ],
+          "GT Power_0": [
+            0.20318543046357612,
+            0.20220000000000005,
+            0.20260666666666668
+          ],
+          "IA Power_0": [
+            6.877768211920529,
+            6.509946666666665,
+            6.863893333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.3702450331125835,
+            6.98878,
+            7.313619999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7365562913907282,
+            0.7198145695364232,
+            0.7200199999999997
+          ],
+          "GT Power_0": [
+            0.09627814569536429,
+            0.09611920529801327,
+            0.09822666666666666
+          ],
+          "IA Power_0": [
+            7.0789668874172165,
+            6.366079470198675,
+            6.65
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4248145695364265,
+            6.695635761589402,
+            6.969120000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD169-A9",
+      "number": 4758,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5789866666666664,
+            0.5723377483443711,
+            0.571973333333333
+          ],
+          "GT Power_0": [
+            0.03306666666666665,
+            0.011781456953642381,
+            0.011479999999999997
+          ],
+          "IA Power_0": [
+            3.008753333333334,
+            3.3222516556291386,
+            2.9635266666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3194599999999976,
+            3.574940397350993,
+            3.190746666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109333333333331,
+            0.7112266666666662,
+            0.710833333333333
+          ],
+          "GT Power_0": [
+            0.10583999999999999,
+            0.10608666666666673,
+            0.10608000000000002
+          ],
+          "IA Power_0": [
+            5.683573333333331,
+            5.998953333333331,
+            5.730679999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.063626666666667,
+            6.3839066666666655,
+            6.106126666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123399999999996,
+            0.7103466666666659,
+            0.709793333333333
+          ],
+          "GT Power_0": [
+            0.10800666666666663,
+            0.10845333333333332,
+            0.10656666666666671
+          ],
+          "IA Power_0": [
+            5.760346666666667,
+            5.778360000000003,
+            5.758066666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.116973333333336,
+            6.120046666666669,
+            6.108473333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7891390728476821,
+            0.7877333333333337,
+            0.7713266666666668
+          ],
+          "GT Power_0": [
+            0.23634437086092713,
+            0.23479333333333324,
+            0.23487999999999995
+          ],
+          "IA Power_0": [
+            6.737880794701986,
+            6.023453333333335,
+            6.132913333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.362735099337748,
+            6.688939999999998,
+            6.65094
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187999999999998,
+            0.71782119205298,
+            0.7157533333333331
+          ],
+          "GT Power_0": [
+            0.11425333333333339,
+            0.11662251655629138,
+            0.11318666666666673
+          ],
+          "IA Power_0": [
+            6.280133333333334,
+            5.8874900662251655,
+            5.840966666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6627266666666705,
+            6.263105960264898,
+            6.240113333333336
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD138-A9",
+      "number": 4757,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5878999999999994,
+            0.5735933333333334,
+            0.5866333333333333
+          ],
+          "GT Power_0": [
+            0.011219999999999999,
+            0.011326666666666665,
+            0.011179999999999997
+          ],
+          "IA Power_0": [
+            2.576366666666667,
+            2.6314733333333336,
+            2.526793333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.9590666666666645,
+            2.887373333333335,
+            2.879413333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7398333333333333,
+            0.7118874172185429,
+            0.7326688741721848
+          ],
+          "GT Power_0": [
+            0.10132,
+            0.09700662251655634,
+            0.10141059602649007
+          ],
+          "IA Power_0": [
+            4.9895533333333315,
+            4.888629139072847,
+            5.033490066225166
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.32817333333333,
+            5.270715231788076,
+            5.52646357615894
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.71328476821192,
+            0.7338066666666659,
+            0.7123399999999993
+          ],
+          "GT Power_0": [
+            0.10396688741721859,
+            0.10222666666666669,
+            0.09973333333333337
+          ],
+          "IA Power_0": [
+            4.964834437086094,
+            4.950780000000001,
+            5.003713333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.35954966887417,
+            5.551706666666665,
+            5.376233333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7872333333333336,
+            0.7779933774834438,
+            0.7720132450331131
+          ],
+          "GT Power_0": [
+            0.21635999999999997,
+            0.21862913907284773,
+            0.21818543046357625
+          ],
+          "IA Power_0": [
+            5.150620000000001,
+            5.156086092715233,
+            5.097158940397353
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7902666666666684,
+            5.676152317880794,
+            5.6251788079470195
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7192999999999995,
+            0.7179999999999995,
+            0.7202133333333326
+          ],
+          "GT Power_0": [
+            0.12082666666666668,
+            0.10544000000000003,
+            0.10440000000000005
+          ],
+          "IA Power_0": [
+            5.039733333333334,
+            5.0146733333333335,
+            4.986966666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.450046666666666,
+            5.374686666666665,
+            5.372499999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4756,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5738133333333333,
+            0.5735933333333332,
+            0.5726026490066224
+          ],
+          "GT Power_0": [
+            0.026459999999999984,
+            0.010566666666666663,
+            0.011284768211920527
+          ],
+          "IA Power_0": [
+            3.261306666666667,
+            3.230279999999999,
+            3.172629139072847
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4948333333333337,
+            3.4458800000000003,
+            3.406543046357616
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7455800000000002,
+            0.7111799999999998,
+            0.7113066666666664
+          ],
+          "GT Power_0": [
+            0.09537999999999998,
+            0.09700666666666669,
+            0.09674666666666668
+          ],
+          "IA Power_0": [
+            7.350939999999999,
+            6.191686666666667,
+            6.237113333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.726653333333334,
+            6.54614,
+            6.564153333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7116866666666661,
+            0.7297549668874171,
+            0.7118799999999996
+          ],
+          "GT Power_0": [
+            0.09612666666666672,
+            0.09731125827814568,
+            0.09772666666666663
+          ],
+          "IA Power_0": [
+            6.527313333333334,
+            6.285304635761589,
+            6.303986666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.904506666666668,
+            6.910860927152316,
+            6.627700000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7705562913907291,
+            0.7708333333333341,
+            0.7846133333333335
+          ],
+          "GT Power_0": [
+            0.22288079470198677,
+            0.22071333333333332,
+            0.22292666666666658
+          ],
+          "IA Power_0": [
+            6.515754966887419,
+            6.6994,
+            6.842313333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.984834437086093,
+            7.181699999999999,
+            7.489779999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159602649006621,
+            0.716233333333333,
+            0.7164304635761585
+          ],
+          "GT Power_0": [
+            0.10542384105960267,
+            0.10538000000000004,
+            0.10627152317880802
+          ],
+          "IA Power_0": [
+            6.5072052980132415,
+            6.408833333333333,
+            6.7672119205298005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.788397350993375,
+            6.795193333333334,
+            7.159238410596027
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD138-A9",
+      "number": 4755,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5876199999999998,
+            0.58817880794702,
+            0.5727466666666666
+          ],
+          "GT Power_0": [
+            0.0416133333333333,
+            0.012072847682119204,
+            0.010886666666666666
+          ],
+          "IA Power_0": [
+            3.2445800000000022,
+            2.604423841059602,
+            2.5081333333333347
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.56178,
+            2.914973509933777,
+            2.8013533333333323
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7289599999999999,
+            0.7121324503311252,
+            0.7137086092715226
+          ],
+          "GT Power_0": [
+            0.10280666666666669,
+            0.09996688741721854,
+            0.10031788079470201
+          ],
+          "IA Power_0": [
+            5.0784733333333305,
+            4.934735099337746,
+            4.980549668874171
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.616066666666666,
+            5.328927152317882,
+            5.3744105960264905
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128278145695359,
+            0.7116533333333334,
+            0.7139399999999994
+          ],
+          "GT Power_0": [
+            0.0984039735099338,
+            0.10123999999999997,
+            0.10177333333333333
+          ],
+          "IA Power_0": [
+            4.978086092715231,
+            4.938526666666666,
+            4.988733333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.350602649006623,
+            5.307026666666665,
+            5.376333333333331
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.807993377483444,
+            0.7712000000000008,
+            0.8057000000000006
+          ],
+          "GT Power_0": [
+            0.2300794701986756,
+            0.21913999999999986,
+            0.21979333333333342
+          ],
+          "IA Power_0": [
+            5.178264900662254,
+            5.110146666666664,
+            5.826126666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.214152317880796,
+            5.628219999999998,
+            6.460399999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7178933333333328,
+            0.719165562913907,
+            0.7187086092715234
+          ],
+          "GT Power_0": [
+            0.10734000000000002,
+            0.10976821192052977,
+            0.10992052980132454
+          ],
+          "IA Power_0": [
+            4.95864,
+            5.049695364238413,
+            5.046927152317882
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.395413333333334,
+            5.420039735099338,
+            5.41330463576159
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4754,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5739666666666667,
+            0.5837933333333334,
+            0.5721533333333332
+          ],
+          "GT Power_0": [
+            0.03297999999999999,
+            0.012480000000000002,
+            0.01227333333333333
+          ],
+          "IA Power_0": [
+            3.386600000000001,
+            3.384633333333332,
+            3.7326266666666683
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6371933333333355,
+            3.6814533333333337,
+            3.933553333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7092866666666664,
+            0.7110728476821188,
+            0.711533333333333
+          ],
+          "GT Power_0": [
+            0.11427333333333335,
+            0.11711258278145706,
+            0.11527333333333335
+          ],
+          "IA Power_0": [
+            6.679999999999999,
+            6.739913907284771,
+            6.658366666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.023959999999996,
+            7.068774834437088,
+            7.022913333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7117019867549665,
+            0.7122913907284762,
+            0.7102066666666661
+          ],
+          "GT Power_0": [
+            0.11410596026490066,
+            0.11244370860927157,
+            0.11417333333333332
+          ],
+          "IA Power_0": [
+            6.693649006622514,
+            7.116205298013249,
+            6.736553333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.079476821192053,
+            7.460311258278146,
+            7.071093333333328
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7892400000000003,
+            0.7679733333333335,
+            0.7680529801324505
+          ],
+          "GT Power_0": [
+            0.25254,
+            0.2528733333333333,
+            0.2549470198675497
+          ],
+          "IA Power_0": [
+            6.941319999999999,
+            7.392359999999999,
+            7.0008013245033105
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.612746666666668,
+            7.842033333333332,
+            7.515410596026491
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7175629139072843,
+            0.7161733333333332,
+            0.7298799999999999
+          ],
+          "GT Power_0": [
+            0.12354966887417218,
+            0.12163999999999998,
+            0.12217333333333334
+          ],
+          "IA Power_0": [
+            6.845132450331123,
+            6.846826666666668,
+            6.792659999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.20219867549669,
+            7.192106666666671,
+            7.349913333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4753,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6028533333333335,
+            0.5721533333333335,
+            0.5730266666666662
+          ],
+          "GT Power_0": [
+            0.013346666666666665,
+            0.012086666666666664,
+            0.012679999999999999
+          ],
+          "IA Power_0": [
+            4.535293333333334,
+            4.097319999999999,
+            3.739066666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.954773333333335,
+            4.314373333333335,
+            3.9294799999999994
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7114066666666661,
+            0.7127466666666663,
+            0.7120529801324501
+          ],
+          "GT Power_0": [
+            0.1391,
+            0.10658666666666669,
+            0.10642384105960265
+          ],
+          "IA Power_0": [
+            7.212833333333331,
+            7.17062666666667,
+            7.206357615894039
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.475873333333331,
+            7.489346666666665,
+            7.567046357615891
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124768211920524,
+            0.7128399999999995,
+            0.713304635761589
+          ],
+          "GT Power_0": [
+            0.1050264900662252,
+            0.10310666666666674,
+            0.10762251655629138
+          ],
+          "IA Power_0": [
+            7.5675099337748355,
+            7.26802,
+            7.222112582781455
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.884821192052979,
+            7.581733333333333,
+            7.520688741721856
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.76858940397351,
+            0.7696953642384108,
+            0.7698533333333332
+          ],
+          "GT Power_0": [
+            0.2346423841059603,
+            0.2360331125827814,
+            0.24752666666666662
+          ],
+          "IA Power_0": [
+            7.839827814569545,
+            7.445814569536419,
+            7.520966666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.301880794701994,
+            7.949006622516562,
+            7.988466666666664
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7343933333333329,
+            0.7254569536423837,
+            0.7191333333333331
+          ],
+          "GT Power_0": [
+            0.11733333333333332,
+            0.11387417218543056,
+            0.12450666666666668
+          ],
+          "IA Power_0": [
+            7.32480666666667,
+            7.362596026490072,
+            7.656486666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.846999999999998,
+            7.783112582781457,
+            8.029000000000002
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4752,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5775369127516777,
+            0.57524,
+            0.5864466666666662
+          ],
+          "GT Power_0": [
+            0.028798657718120773,
+            0.010159999999999999,
+            0.009999999999999998
+          ],
+          "IA Power_0": [
+            2.710496644295305,
+            3.1782933333333343,
+            2.7063266666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0592416107382547,
+            3.413126666666667,
+            3.1026866666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7331266666666661,
+            0.7128609271523171,
+            0.7223576158940395
+          ],
+          "GT Power_0": [
+            0.08146000000000003,
+            0.07927152317880791,
+            0.08099337748344367
+          ],
+          "IA Power_0": [
+            5.59878666666667,
+            5.478874172185428,
+            5.5448344370860925
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.097079999999997,
+            5.814192052980133,
+            5.967788079470197
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150133333333332,
+            0.7334066666666662,
+            0.713079999999999
+          ],
+          "GT Power_0": [
+            0.08148666666666667,
+            0.08369999999999998,
+            0.08217333333333333
+          ],
+          "IA Power_0": [
+            5.839099999999997,
+            5.588286666666665,
+            5.493573333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.31092,
+            6.063733333333335,
+            5.820159999999996
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7727533333333337,
+            0.772226666666667,
+            0.7705000000000002
+          ],
+          "GT Power_0": [
+            0.19367333333333334,
+            0.1915333333333333,
+            0.1871466666666667
+          ],
+          "IA Power_0": [
+            5.99068,
+            5.705260000000001,
+            5.701086666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.463680000000002,
+            6.154559999999999,
+            6.211100000000002
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7206622516556291,
+            0.7197748344370859,
+            0.7297866666666665
+          ],
+          "GT Power_0": [
+            0.10397350993377483,
+            0.08690728476821191,
+            0.08537333333333336
+          ],
+          "IA Power_0": [
+            5.906609271523178,
+            5.614470198675494,
+            6.1769799999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.196602649006624,
+            5.96875496688742,
+            6.530006666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4751,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5737799999999996,
+            0.5729337748344367,
+            0.5727599999999996
+          ],
+          "GT Power_0": [
+            0.04270666666666665,
+            0.01342384105960265,
+            0.012233333333333334
+          ],
+          "IA Power_0": [
+            3.124939999999999,
+            3.335059602649006,
+            3.040193333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3770600000000015,
+            3.5984966887417213,
+            3.2896733333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7270397350993376,
+            0.7105799999999993,
+            0.7089466666666664
+          ],
+          "GT Power_0": [
+            0.11294039735099337,
+            0.10954666666666672,
+            0.11266666666666668
+          ],
+          "IA Power_0": [
+            5.8938609271523195,
+            5.838006666666665,
+            5.947919999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.307516556291392,
+            6.21263333333333,
+            6.284986666666664
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712126666666666,
+            0.7103066666666659,
+            0.7255231788079463
+          ],
+          "GT Power_0": [
+            0.1136666666666667,
+            0.11309333333333337,
+            0.11105298013245037
+          ],
+          "IA Power_0": [
+            6.310986666666666,
+            5.9176133333333345,
+            5.956013245033112
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.647633333333332,
+            6.2807066666666636,
+            6.448913907284768
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7668000000000004,
+            0.7672200000000001,
+            0.7670927152317889
+          ],
+          "GT Power_0": [
+            0.2707666666666667,
+            0.26932666666666666,
+            0.2689205298013246
+          ],
+          "IA Power_0": [
+            6.379473333333336,
+            6.14768,
+            6.137417218543046
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.928080000000003,
+            6.701186666666667,
+            6.704900662251655
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7310993377483438,
+            0.7326225165562914,
+            0.7150993377483439
+          ],
+          "GT Power_0": [
+            0.11935761589403976,
+            0.12361589403973505,
+            0.12167549668874171
+          ],
+          "IA Power_0": [
+            6.027456953642385,
+            6.038741721854303,
+            6.297920529801321
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.600986754966889,
+            6.570496688741724,
+            6.662390728476823
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD161-A9",
+      "number": 4750,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5771879194630871,
+            0.5724133333333332,
+            0.5724333333333332
+          ],
+          "GT Power_0": [
+            0.041221476510067086,
+            0.011953333333333331,
+            0.011366666666666666
+          ],
+          "IA Power_0": [
+            2.721161073825504,
+            2.7990066666666658,
+            2.5301466666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.996395973154364,
+            3.044720000000001,
+            2.7833933333333336
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7114370860927147,
+            0.7172799999999995,
+            0.7298066666666663
+          ],
+          "GT Power_0": [
+            0.1046622516556292,
+            0.10454000000000001,
+            0.10608666666666666
+          ],
+          "IA Power_0": [
+            4.93362913907285,
+            4.995753333333335,
+            5.19758
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.294523178807949,
+            5.37066,
+            5.615373333333339
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7269733333333329,
+            0.7258933333333332,
+            0.7115466666666658
+          ],
+          "GT Power_0": [
+            0.10566666666666671,
+            0.11227333333333339,
+            0.10277333333333336
+          ],
+          "IA Power_0": [
+            5.058053333333328,
+            5.004806666666667,
+            4.895859999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.542960000000002,
+            5.50124,
+            5.299980000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7694768211920532,
+            0.768860927152318,
+            0.7847866666666672
+          ],
+          "GT Power_0": [
+            0.22829139072847673,
+            0.22476158940397342,
+            0.2272800000000001
+          ],
+          "IA Power_0": [
+            5.34362251655629,
+            5.107092715231787,
+            5.129593333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.845927152317876,
+            5.617211920529799,
+            5.756233333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7171599999999992,
+            0.7179867549668869,
+            0.7162266666666666
+          ],
+          "GT Power_0": [
+            0.11317999999999998,
+            0.11141721854304634,
+            0.11191333333333339
+          ],
+          "IA Power_0": [
+            4.9553866666666675,
+            5.0708807947019885,
+            5.172700000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.339533333333334,
+            5.426417218543048,
+            5.544699999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4749,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5802800000000001,
+            0.571933333333333,
+            0.5730993377483444
+          ],
+          "GT Power_0": [
+            0.037626666666666655,
+            0.010486666666666665,
+            0.010079470198675496
+          ],
+          "IA Power_0": [
+            2.753733333333333,
+            2.688706666666668,
+            2.7560728476821197
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.129713333333334,
+            2.956573333333334,
+            2.983655629139072
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133399999999992,
+            0.7141456953642374,
+            0.7136754966887413
+          ],
+          "GT Power_0": [
+            0.08752000000000001,
+            0.09245695364238413,
+            0.0910397350993377
+          ],
+          "IA Power_0": [
+            5.565806666666666,
+            5.425218543046358,
+            5.3888874172185455
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.949226666666668,
+            5.751112582781455,
+            5.752052980132456
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7142799999999996,
+            0.7128741721854299,
+            0.7128866666666661
+          ],
+          "GT Power_0": [
+            0.09142666666666668,
+            0.09076821192052979,
+            0.09130666666666672
+          ],
+          "IA Power_0": [
+            5.630673333333332,
+            5.397291390728481,
+            5.425633333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.980633333333337,
+            5.744708609271524,
+            5.723479999999999
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7710993377483447,
+            0.784093333333334,
+            0.7722600000000004
+          ],
+          "GT Power_0": [
+            0.19949006622516563,
+            0.19997333333333345,
+            0.19882
+          ],
+          "IA Power_0": [
+            5.56413907284768,
+            5.5095133333333335,
+            5.856086666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.038331125827815,
+            6.020786666666669,
+            6.322613333333336
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7342913907284765,
+            0.7185298013245033,
+            0.7355562913907283
+          ],
+          "GT Power_0": [
+            0.09565562913907286,
+            0.09366887417218539,
+            0.09284768211920531
+          ],
+          "IA Power_0": [
+            5.4469933774834445,
+            5.432172185430463,
+            5.704178807947022
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.942701986754971,
+            5.792046357615892,
+            6.141337748344373
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4748,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5761476510067113,
+            0.5706133333333333,
+            0.571846666666667
+          ],
+          "GT Power_0": [
+            0.04175838926174494,
+            0.012853333333333331,
+            0.012186666666666665
+          ],
+          "IA Power_0": [
+            3.1962483221476505,
+            2.98606,
+            3.1094
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.444577181208056,
+            3.232513333333334,
+            3.3306199999999992
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7097999999999992,
+            0.709370860927152,
+            0.7104238410596023
+          ],
+          "GT Power_0": [
+            0.11116666666666669,
+            0.11605960264900661,
+            0.11596026490066232
+          ],
+          "IA Power_0": [
+            5.834853333333334,
+            6.147947019867547,
+            5.889397350993376
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.213593333333334,
+            6.566225165562912,
+            6.215841059602646
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7092733333333331,
+            0.7245266666666667,
+            0.711172185430463
+          ],
+          "GT Power_0": [
+            0.11260000000000008,
+            0.11325333333333333,
+            0.11696688741721849
+          ],
+          "IA Power_0": [
+            5.892073333333332,
+            6.138579999999998,
+            5.858019867549671
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.246886666666667,
+            6.633933333333332,
+            6.256311258278147
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7835933333333338,
+            0.7655562913907291,
+            0.767127516778524
+          ],
+          "GT Power_0": [
+            0.27390666666666685,
+            0.2736158940397352,
+            0.2741409395973155
+          ],
+          "IA Power_0": [
+            5.958946666666668,
+            6.012721854304636,
+            5.989577181208054
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7111133333333335,
+            6.5811788079470235,
+            6.554174496644294
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143066666666661,
+            0.7145266666666663,
+            0.732913333333333
+          ],
+          "GT Power_0": [
+            0.12320666666666673,
+            0.11959333333333333,
+            0.12198666666666674
+          ],
+          "IA Power_0": [
+            6.197953333333336,
+            5.872653333333335,
+            5.975706666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.606139999999999,
+            6.248659999999997,
+            6.4439199999999985
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4747,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5857133333333331,
+            0.5720198675496692,
+            0.5715827814569535
+          ],
+          "GT Power_0": [
+            0.03230666666666664,
+            0.01151655629139073,
+            0.011430463576158937
+          ],
+          "IA Power_0": [
+            3.3807066666666654,
+            3.0497019867549673,
+            3.0257417218543035
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6446866666666664,
+            3.275092715231788,
+            3.2572582781456956
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7112847682119199,
+            0.7115960264900659,
+            0.7106666666666667
+          ],
+          "GT Power_0": [
+            0.10202649006622516,
+            0.10021854304635769,
+            0.10131333333333335
+          ],
+          "IA Power_0": [
+            6.234629139072849,
+            5.922079470198674,
+            5.92483333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.596397350993374,
+            6.2686953642384085,
+            6.251159999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128999999999996,
+            0.7126066666666662,
+            0.7135033112582778
+          ],
+          "GT Power_0": [
+            0.10317333333333328,
+            0.10110000000000005,
+            0.10158278145695365
+          ],
+          "IA Power_0": [
+            6.302146666666666,
+            5.953679999999997,
+            5.915476821192053
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.636660000000004,
+            6.333693333333334,
+            6.27262251655629
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7709866666666672,
+            0.7825733333333337,
+            0.77053642384106
+          ],
+          "GT Power_0": [
+            0.22585333333333332,
+            0.24111999999999995,
+            0.22322516556291397
+          ],
+          "IA Power_0": [
+            6.231339999999999,
+            6.17029333333333,
+            6.381430463576155
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7031066666666606,
+            6.805673333333334,
+            6.91496026490066
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182781456953639,
+            0.7171125827814568,
+            0.7167466666666661
+          ],
+          "GT Power_0": [
+            0.11357615894039741,
+            0.1091788079470199,
+            0.10334666666666667
+          ],
+          "IA Power_0": [
+            5.99353642384106,
+            6.06048344370861,
+            6.037759999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.394821192052982,
+            6.420026490066225,
+            6.37262
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD138-A9",
+      "number": 4746,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5722953020134228,
+            0.5878600000000002,
+            0.5995167785234896
+          ],
+          "GT Power_0": [
+            0.010785234899328857,
+            0.012206666666666668,
+            0.011644295302013424
+          ],
+          "IA Power_0": [
+            2.593953020134227,
+            2.6526199999999993,
+            3.1091409395973164
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.834691275167785,
+            2.9666200000000007,
+            3.4234429530201362
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145629139072845,
+            0.733213333333333,
+            0.718946308724832
+          ],
+          "GT Power_0": [
+            0.09717880794701986,
+            0.1000666666666667,
+            0.10208053691275168
+          ],
+          "IA Power_0": [
+            5.027841059602649,
+            5.628300000000001,
+            5.549751677852349
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.388139072847685,
+            6.005126666666667,
+            5.937577181208054
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7310399999999995,
+            0.7169735099337742,
+            0.727626666666666
+          ],
+          "GT Power_0": [
+            0.10059333333333334,
+            0.10118543046357618,
+            0.09754666666666667
+          ],
+          "IA Power_0": [
+            5.038226666666668,
+            5.108913907284766,
+            5.023700000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.534126666666666,
+            5.420576158940396,
+            5.509046666666668
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.771629139072848,
+            0.7705695364238414,
+            0.7719933333333335
+          ],
+          "GT Power_0": [
+            0.2126291390728478,
+            0.2108741721854304,
+            0.21138666666666667
+          ],
+          "IA Power_0": [
+            5.156900662251656,
+            5.22074834437086,
+            5.179799999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.668158940397355,
+            5.711596026490068,
+            5.687306666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.719754966887417,
+            0.7206092715231786,
+            0.8378791946308719
+          ],
+          "GT Power_0": [
+            0.1053112582781458,
+            0.10429801324503316,
+            0.105013422818792
+          ],
+          "IA Power_0": [
+            5.191907284768213,
+            5.1217483443708645,
+            8.504751677852347
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.606304635761585,
+            5.488192052980132,
+            8.86422147651007
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD142-A9",
+      "number": 4745,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5740799999999998,
+            0.5733533333333334,
+            0.5715666666666662
+          ],
+          "GT Power_0": [
+            0.04374666666666663,
+            0.01344666666666667,
+            0.012026666666666665
+          ],
+          "IA Power_0": [
+            3.079246666666668,
+            3.0519933333333333,
+            3.0144066666666656
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3155333333333323,
+            3.287473333333333,
+            3.22186
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7220999999999999,
+            0.7135600000000001,
+            0.7119072847682112
+          ],
+          "GT Power_0": [
+            0.11915999999999997,
+            0.12065333333333338,
+            0.12209933774834437
+          ],
+          "IA Power_0": [
+            6.36762,
+            5.962393333333336,
+            5.9138940397351005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7312266666666645,
+            6.3049066666666675,
+            6.422668874172187
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7222266666666661,
+            0.7132781456953637,
+            0.7131059602649008
+          ],
+          "GT Power_0": [
+            0.11912666666666664,
+            0.11509933774834437,
+            0.11840397350993383
+          ],
+          "IA Power_0": [
+            6.3177,
+            6.314218543046354,
+            5.976596026490067
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.695726666666664,
+            6.685185430463576,
+            6.343794701986755
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7787152317880801,
+            0.7687516778523495,
+            0.8207866666666674
+          ],
+          "GT Power_0": [
+            0.26543046357615896,
+            0.2592348993288591,
+            0.27895333333333333
+          ],
+          "IA Power_0": [
+            6.613529801324502,
+            6.204295302013419,
+            6.236393333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.138390728476822,
+            6.669845637583893,
+            7.330793333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7451533333333332,
+            0.7362715231788076,
+            0.7172466666666665
+          ],
+          "GT Power_0": [
+            0.12738,
+            0.12949668874172188,
+            0.12163333333333334
+          ],
+          "IA Power_0": [
+            7.259639999999999,
+            6.0482847682119205,
+            6.026699999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.61464,
+            6.5707019867549645,
+            6.409906666666664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4744,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5801800000000001,
+            0.5845430463576159,
+            0.5865562913907286
+          ],
+          "GT Power_0": [
+            0.039606666666666644,
+            0.010854304635761584,
+            0.010887417218543045
+          ],
+          "IA Power_0": [
+            2.751373333333334,
+            2.667490066225165,
+            3.086165562913907
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.069726666666666,
+            2.950602649006624,
+            3.3878741721854295
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7120066666666661,
+            0.711715231788079,
+            0.7291059602648998
+          ],
+          "GT Power_0": [
+            0.08508666666666669,
+            0.08486754966887415,
+            0.08849668874172191
+          ],
+          "IA Power_0": [
+            5.067886666666669,
+            5.15251655629139,
+            5.148986754966888
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.426593333333332,
+            5.504364238410596,
+            5.575933774834441
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7263133333333329,
+            0.7134039735099336,
+            0.7113841059602644
+          ],
+          "GT Power_0": [
+            0.08603333333333332,
+            0.08735099337748345,
+            0.08705960264900663
+          ],
+          "IA Power_0": [
+            5.106746666666665,
+            5.349543046357612,
+            5.143456953642384
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.53146,
+            5.692165562913908,
+            5.480099337748345
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7700933333333332,
+            0.7708410596026494,
+            0.7681866666666672
+          ],
+          "GT Power_0": [
+            0.19640000000000002,
+            0.19181456953642378,
+            0.1959733333333333
+          ],
+          "IA Power_0": [
+            5.231133333333335,
+            5.310635761589402,
+            5.246066666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.718873333333333,
+            5.779953642384103,
+            5.711613333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.727913333333333,
+            0.7192599999999997,
+            0.7163245033112577
+          ],
+          "GT Power_0": [
+            0.10087333333333338,
+            0.09236666666666665,
+            0.09147019867549669
+          ],
+          "IA Power_0": [
+            5.7794533333333336,
+            5.169446666666667,
+            5.144960264900662
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2155933333333335,
+            5.524613333333331,
+            5.511456953642385
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4743,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6030866666666668,
+            0.5878133333333331,
+            0.5712466666666665
+          ],
+          "GT Power_0": [
+            0.039573333333333315,
+            0.012306666666666664,
+            0.011899999999999999
+          ],
+          "IA Power_0": [
+            3.5318066666666654,
+            2.79248,
+            2.7649666666666683
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8484066666666674,
+            3.12616,
+            2.9777799999999996
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129139072847681,
+            0.7111999999999995,
+            0.7294900662251653
+          ],
+          "GT Power_0": [
+            0.11463576158940399,
+            0.1129866666666667,
+            0.11443046357615894
+          ],
+          "IA Power_0": [
+            5.520867549668877,
+            5.207533333333335,
+            5.269331125827816
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.885430463576162,
+            5.610966666666667,
+            5.717456953642384
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7118543046357613,
+            0.7142933333333326,
+            0.7277133333333329
+          ],
+          "GT Power_0": [
+            0.12360264900662254,
+            0.11246000000000002,
+            0.11304666666666673
+          ],
+          "IA Power_0": [
+            5.295158940397353,
+            5.277926666666669,
+            5.5849866666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.707503311258277,
+            5.676373333333337,
+            6.081273333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708733333333339,
+            0.8160266666666672,
+            0.7708211920529807
+          ],
+          "GT Power_0": [
+            0.24037333333333336,
+            0.27036666666666664,
+            0.2413708609271525
+          ],
+          "IA Power_0": [
+            5.396639999999999,
+            5.527593333333334,
+            5.717198675496689
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.942393333333334,
+            6.352633333333335,
+            6.243251655629143
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7189602649006619,
+            0.7175799999999997,
+            0.7177266666666661
+          ],
+          "GT Power_0": [
+            0.12170860927152313,
+            0.12811333333333327,
+            0.12037999999999997
+          ],
+          "IA Power_0": [
+            5.364033112582781,
+            5.439999999999998,
+            5.443460000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.756933774834437,
+            5.7677466666666675,
+            5.8236399999999975
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD136-A9",
+      "number": 4742,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5734666666666667,
+            0.5874266666666669,
+            0.572033333333333
+          ],
+          "GT Power_0": [
+            0.03801999999999999,
+            0.011539999999999995,
+            0.010106666666666668
+          ],
+          "IA Power_0": [
+            2.7727399999999993,
+            2.732326666666667,
+            2.690886666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.031733333333332,
+            3.049600000000001,
+            2.9523666666666655
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7102333333333332,
+            0.7114533333333329,
+            0.7115999999999996
+          ],
+          "GT Power_0": [
+            0.09550666666666664,
+            0.09436666666666668,
+            0.09496000000000003
+          ],
+          "IA Power_0": [
+            5.207879999999998,
+            5.258793333333335,
+            5.254426666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.555433333333334,
+            5.607406666666668,
+            5.552766666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7296599999999996,
+            0.8572550335570467,
+            0.7343733333333328
+          ],
+          "GT Power_0": [
+            0.09373333333333338,
+            0.09271812080536913,
+            0.09208666666666672
+          ],
+          "IA Power_0": [
+            5.42222,
+            8.907342281879195,
+            6.302359999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.870473333333334,
+            9.661718120805372,
+            6.652013333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7741933333333337,
+            0.7686225165562921,
+            0.7916040268456382
+          ],
+          "GT Power_0": [
+            0.20254000000000008,
+            0.20380132450331126,
+            0.20685906040268465
+          ],
+          "IA Power_0": [
+            5.714733333333332,
+            5.4856225165562895,
+            5.5084630872483205
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.242373333333331,
+            5.976662251655632,
+            6.26645637583893
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7174503311258273,
+            0.7322847682119205,
+            0.7166423841059598
+          ],
+          "GT Power_0": [
+            0.09908609271523182,
+            0.09881456953642385,
+            0.10031788079470201
+          ],
+          "IA Power_0": [
+            5.407596026490066,
+            5.398768211920531,
+            5.509496688741723
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.782807947019867,
+            5.847715231788082,
+            5.800602649006622
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD178-A9",
+      "number": 4741,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5719666666666665,
+            0.586946666666667,
+            0.5707549668874172
+          ],
+          "GT Power_0": [
+            0.0375,
+            0.010020000000000001,
+            0.009503311258278142
+          ],
+          "IA Power_0": [
+            2.9898266666666657,
+            2.86814,
+            3.213238410596027
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3660266666666665,
+            3.215713333333333,
+            3.4341854304635753
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7106688741721849,
+            0.7113266666666663,
+            0.7251324503311253
+          ],
+          "GT Power_0": [
+            0.07356953642384108,
+            0.07300000000000002,
+            0.07415894039735098
+          ],
+          "IA Power_0": [
+            5.748781456953642,
+            5.789466666666667,
+            5.812986754966887
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.078920529801327,
+            6.106226666666667,
+            6.219403973509936
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122799999999994,
+            0.7125496688741716,
+            0.7105733333333333
+          ],
+          "GT Power_0": [
+            0.07389333333333331,
+            0.07607284768211918,
+            0.07246000000000001
+          ],
+          "IA Power_0": [
+            5.801273333333332,
+            6.068735099337749,
+            5.759986666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.114033333333334,
+            6.390119205298013,
+            6.068020000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7692600000000003,
+            0.7687466666666664,
+            0.7695800000000003
+          ],
+          "GT Power_0": [
+            0.17743333333333325,
+            0.17811333333333337,
+            0.17899333333333337
+          ],
+          "IA Power_0": [
+            5.942099999999996,
+            6.232620000000003,
+            5.946213333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.385793333333337,
+            6.705906666666665,
+            6.417626666666662
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.738251655629139,
+            0.7275298013245032,
+            0.7180133333333332
+          ],
+          "GT Power_0": [
+            0.08116556291390728,
+            0.0793046357615894,
+            0.07880666666666664
+          ],
+          "IA Power_0": [
+            5.949185430463575,
+            6.5631523178807925,
+            5.84145333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5070529801324515,
+            6.879231788079465,
+            6.2106333333333374
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4740,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.584453333333333,
+            0.5851390728476823,
+            0.5734333333333331
+          ],
+          "GT Power_0": [
+            0.030159999999999996,
+            0.01239072847682119,
+            0.012359999999999998
+          ],
+          "IA Power_0": [
+            3.0867866666666655,
+            2.6792317880794694,
+            3.0714066666666677
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.400153333333335,
+            3.034476821192053,
+            3.323806666666669
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139668874172178,
+            0.7297880794701983,
+            0.7298079470198672
+          ],
+          "GT Power_0": [
+            0.11295364238410596,
+            0.11207947019867552,
+            0.11185430463576157
+          ],
+          "IA Power_0": [
+            5.317913907284769,
+            5.302350993377484,
+            5.530298013245031
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.701,
+            5.951867549668871,
+            6.049046357615893
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7292933333333326,
+            0.7115333333333326,
+            0.711893333333333
+          ],
+          "GT Power_0": [
+            0.10857333333333337,
+            0.10947333333333335,
+            0.1061266666666667
+          ],
+          "IA Power_0": [
+            5.369260000000001,
+            5.332613333333334,
+            5.390593333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.830619999999998,
+            5.708079999999996,
+            5.739593333333337
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7696400000000004,
+            0.7690397350993381,
+            0.7774533333333338
+          ],
+          "GT Power_0": [
+            0.23507333333333344,
+            0.23829139072847685,
+            0.23152666666666677
+          ],
+          "IA Power_0": [
+            5.527233333333335,
+            5.731927152317881,
+            6.066599999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.008733333333336,
+            6.273529801324503,
+            6.592253333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.729496688741721,
+            0.7186466666666661,
+            0.7172999999999994
+          ],
+          "GT Power_0": [
+            0.11481456953642387,
+            0.11542666666666672,
+            0.11372666666666674
+          ],
+          "IA Power_0": [
+            5.3675231788079465,
+            5.64598,
+            5.337366666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.862668874172183,
+            6.047859999999999,
+            5.752546666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD166-A9",
+      "number": 4739,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5725933333333332,
+            0.5723333333333331,
+            0.5718933333333337
+          ],
+          "GT Power_0": [
+            0.039746666666666645,
+            0.01226,
+            0.012340000000000002
+          ],
+          "IA Power_0": [
+            2.965806666666664,
+            2.930133333333333,
+            2.853086666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2078,
+            3.172180000000001,
+            3.103913333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712073333333333,
+            0.7292599999999996,
+            0.7298866666666665
+          ],
+          "GT Power_0": [
+            0.11999333333333335,
+            0.1214066666666668,
+            0.11652666666666668
+          ],
+          "IA Power_0": [
+            5.7868466666666665,
+            6.511613333333336,
+            5.824513333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.132186666666666,
+            6.953733333333333,
+            6.329580000000005
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124172185430461,
+            0.7302599999999995,
+            0.7118145695364232
+          ],
+          "GT Power_0": [
+            0.11696688741721852,
+            0.11641333333333333,
+            0.11450331125827815
+          ],
+          "IA Power_0": [
+            5.773390728476821,
+            5.83932,
+            5.81069536423841
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.190251655629139,
+            6.200066666666671,
+            6.205854304635762
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7689205298013246,
+            0.7791125827814573,
+            0.7682317880794707
+          ],
+          "GT Power_0": [
+            0.25747019867549664,
+            0.2619271523178808,
+            0.259337748344371
+          ],
+          "IA Power_0": [
+            6.395390728476818,
+            6.5026291390728455,
+            6.026390728476821
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.940079470198673,
+            7.04015894039735,
+            6.592701986754967
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7171333333333328,
+            0.7308933333333332,
+            0.7303178807947017
+          ],
+          "GT Power_0": [
+            0.12328,
+            0.12164000000000007,
+            0.1235165562913908
+          ],
+          "IA Power_0": [
+            6.183753333333332,
+            5.879393333333334,
+            5.888145695364239
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5814933333333325,
+            6.437866666666664,
+            6.295423841059605
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4738,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5793509933774836,
+            0.5712666666666665,
+            0.571333333333333
+          ],
+          "GT Power_0": [
+            0.02767549668874171,
+            0.010666666666666665,
+            0.010546666666666666
+          ],
+          "IA Power_0": [
+            3.233523178807946,
+            3.1098533333333354,
+            3.0886466666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.531900662251655,
+            3.3239000000000005,
+            3.3005866666666677
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7116599999999994,
+            0.7326666666666661,
+            0.7135999999999999
+          ],
+          "GT Power_0": [
+            0.09874666666666669,
+            0.09194000000000005,
+            0.09696000000000003
+          ],
+          "IA Power_0": [
+            6.135193333333334,
+            6.366340000000001,
+            6.134533333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.419540000000002,
+            7.133793333333333,
+            6.470326666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7263907284768207,
+            0.7130728476821188,
+            0.727873333333333
+          ],
+          "GT Power_0": [
+            0.09552980132450335,
+            0.09139072847682125,
+            0.09340000000000007
+          ],
+          "IA Power_0": [
+            6.119311258278145,
+            6.642913907284767,
+            6.122119999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.562410596026489,
+            6.934364238410593,
+            6.547673333333331
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8027866666666673,
+            0.7693600000000004,
+            0.7692000000000005
+          ],
+          "GT Power_0": [
+            0.21595333333333333,
+            0.21319333333333343,
+            0.2138933333333335
+          ],
+          "IA Power_0": [
+            7.5210333333333335,
+            6.288366666666666,
+            6.3487333333333344
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.169686666666665,
+            6.80421333333333,
+            6.803773333333336
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172999999999994,
+            0.7173666666666665,
+            0.7381721854304633
+          ],
+          "GT Power_0": [
+            0.10230000000000007,
+            0.09841333333333332,
+            0.10090728476821194
+          ],
+          "IA Power_0": [
+            6.531706666666668,
+            6.158246666666666,
+            6.158198675496689
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.889233333333333,
+            6.520633333333335,
+            6.99978145695364
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD174-A9",
+      "number": 4737,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5808000000000001,
+            0.5787718120805365,
+            0.5728013245033111
+          ],
+          "GT Power_0": [
+            0.03706666666666666,
+            0.012738255033557046,
+            0.013059602649006625
+          ],
+          "IA Power_0": [
+            3.7926466666666663,
+            3.943516778523489,
+            3.1746821192052987
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.0521933333333315,
+            4.1853758389261735,
+            3.4006754966887414
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            149,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7112582781456949,
+            0.712258278145695,
+            0.7117466666666662
+          ],
+          "GT Power_0": [
+            0.11218543046357614,
+            0.11360927152317879,
+            0.11456666666666673
+          ],
+          "IA Power_0": [
+            6.56280794701987,
+            6.236390728476826,
+            6.306413333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.944052980132454,
+            6.628715231788081,
+            6.691599999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7250999999999995,
+            0.7118933333333332,
+            0.7124133333333327
+          ],
+          "GT Power_0": [
+            0.11410666666666672,
+            0.11350666666666666,
+            0.12134000000000005
+          ],
+          "IA Power_0": [
+            7.112720000000001,
+            6.264046666666665,
+            6.675046666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.418386666666667,
+            6.6112666666666655,
+            7.003520000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7704503311258281,
+            0.7702781456953647,
+            0.7710066225165565
+          ],
+          "GT Power_0": [
+            0.246271523178808,
+            0.2539801324503312,
+            0.24968874172185432
+          ],
+          "IA Power_0": [
+            6.49922516556291,
+            6.4752781456953645,
+            6.863463576158944
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.98615894039735,
+            7.003854304635759,
+            7.373735099337754
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7167466666666662,
+            0.7254768211920524,
+            0.7185099337748339
+          ],
+          "GT Power_0": [
+            0.11785333333333341,
+            0.12108609271523178,
+            0.1214966887417219
+          ],
+          "IA Power_0": [
+            6.334040000000003,
+            6.527582781456956,
+            6.389668874172188
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.717386666666667,
+            6.885337748344368,
+            6.736350993377483
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4736,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5990399999999996,
+            0.5718933333333333,
+            0.578786666666667
+          ],
+          "GT Power_0": [
+            0.033766666666666646,
+            0.010366666666666665,
+            0.010039999999999999
+          ],
+          "IA Power_0": [
+            3.2036000000000007,
+            2.692353333333334,
+            3.244640000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5325133333333354,
+            2.944859999999999,
+            3.4569733333333343
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7155733333333333,
+            0.7287549668874168,
+            0.71328
+          ],
+          "GT Power_0": [
+            0.08673999999999998,
+            0.08589403973509933,
+            0.08685333333333332
+          ],
+          "IA Power_0": [
+            5.952913333333333,
+            5.545649006622513,
+            5.551720000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.314593333333336,
+            6.040490066225165,
+            5.874120000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123533333333333,
+            0.711827814569536,
+            0.7128599999999995
+          ],
+          "GT Power_0": [
+            0.08149333333333338,
+            0.08245695364238413,
+            0.08132000000000003
+          ],
+          "IA Power_0": [
+            5.462033333333332,
+            5.521311258278145,
+            5.830666666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.807733333333332,
+            5.8594304635761585,
+            6.157653333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7825133333333336,
+            0.7686000000000011,
+            0.7706556291390735
+          ],
+          "GT Power_0": [
+            0.19236666666666669,
+            0.19260000000000005,
+            0.192748344370861
+          ],
+          "IA Power_0": [
+            5.744520000000002,
+            5.63158,
+            5.762132450331125
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.396760000000003,
+            6.141406666666666,
+            6.256238410596026
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7205999999999997,
+            0.7189602649006617,
+            0.7176733333333328
+          ],
+          "GT Power_0": [
+            0.08726666666666666,
+            0.0891523178807947,
+            0.09055333333333337
+          ],
+          "IA Power_0": [
+            5.6589866666666655,
+            5.881781456953642,
+            5.6212599999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.010439999999999,
+            6.234854304635763,
+            5.973153333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4735,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6170133333333333,
+            0.6069133333333334,
+            0.6120827586206893
+          ],
+          "GT Power_0": [
+            0.029126666666666648,
+            0.011459999999999998,
+            0.01082068965517241
+          ],
+          "IA Power_0": [
+            4.8066533333333314,
+            4.817380000000001,
+            5.587220689655174
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.141299999999998,
+            5.029340000000001,
+            5.899627586206898
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            145
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7016174496644287,
+            0.7542770270270268,
+            0.7062123287671231
+          ],
+          "GT Power_0": [
+            0.09318791946308731,
+            0.09296621621621622,
+            0.09076027397260278
+          ],
+          "IA Power_0": [
+            10.566308724832215,
+            8.44235810810811,
+            9.037465753424657
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            11.01642953020134,
+            8.920283783783784,
+            9.450979452054794
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            148,
+            146
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7768410596026492,
+            0.7693800000000003,
+            0.7277066666666666
+          ],
+          "GT Power_0": [
+            0.09335099337748348,
+            0.0944866666666667,
+            0.09651333333333335
+          ],
+          "IA Power_0": [
+            7.7776357615894,
+            7.95486,
+            6.755960000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.744827814569538,
+            8.74272,
+            7.242633333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708066666666669,
+            0.7693200000000003,
+            0.7752800000000005
+          ],
+          "GT Power_0": [
+            0.22034000000000006,
+            0.22338000000000008,
+            0.22107333333333334
+          ],
+          "IA Power_0": [
+            6.554566666666667,
+            6.503540000000001,
+            6.652733333333329
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.035253333333332,
+            6.977713333333331,
+            7.250946666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172781456953641,
+            0.7244039735099336,
+            0.7176066666666663
+          ],
+          "GT Power_0": [
+            0.10523178807947021,
+            0.1119470198675497,
+            0.10494666666666663
+          ],
+          "IA Power_0": [
+            6.377781456953644,
+            6.811735099337745,
+            6.429033333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7680927152317905,
+            7.134721854304637,
+            6.755259999999998
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD176-A9",
+      "number": 4734,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5860133333333329,
+            0.5870066225165566,
+            0.5853112582781459
+          ],
+          "GT Power_0": [
+            0.03277333333333331,
+            0.011801324503311257,
+            0.011953642384105961
+          ],
+          "IA Power_0": [
+            3.07366,
+            2.6181721854304625,
+            2.6531986754966894
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3930533333333326,
+            2.9790264900662247,
+            2.9657350993377483
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7104399999999998,
+            0.711346666666666,
+            0.7109139072847679
+          ],
+          "GT Power_0": [
+            0.10376666666666673,
+            0.1045666666666667,
+            0.10137748344370863
+          ],
+          "IA Power_0": [
+            5.394686666666668,
+            5.087446666666666,
+            5.454417218543051
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.749979999999997,
+            5.468346666666663,
+            5.781741721854304
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7264768211920527,
+            0.7123377483443704,
+            0.7282185430463574
+          ],
+          "GT Power_0": [
+            0.10230463576158944,
+            0.10305960264900663,
+            0.10393377483443716
+          ],
+          "IA Power_0": [
+            5.132033112582783,
+            5.161814569536423,
+            5.366576158940398
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5974370860927145,
+            5.521847682119203,
+            5.766139072847681
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.769086092715232,
+            0.7704370860927158,
+            0.7690733333333334
+          ],
+          "GT Power_0": [
+            0.22764238410596038,
+            0.22027814569536427,
+            0.22182666666666667
+          ],
+          "IA Power_0": [
+            5.3509801324503306,
+            5.276655629139071,
+            5.497033333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.822403973509933,
+            5.766192052980132,
+            6.024693333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7178799999999994,
+            0.7333266666666661,
+            0.7173933333333328
+          ],
+          "GT Power_0": [
+            0.10786666666666664,
+            0.10676000000000005,
+            0.11396666666666673
+          ],
+          "IA Power_0": [
+            5.139606666666666,
+            5.243633333333332,
+            5.37410666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5210199999999965,
+            5.790613333333331,
+            5.754213333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD178-A9",
+      "number": 4733,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6150399999999995,
+            0.5715960264900664,
+            0.571311258278146
+          ],
+          "GT Power_0": [
+            0.03607999999999997,
+            0.009655629139072848,
+            0.009384105960264897
+          ],
+          "IA Power_0": [
+            4.36113333333333,
+            2.9575430463576162,
+            2.8314635761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.625040000000001,
+            3.1499602649006615,
+            3.1148940397350993
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133266666666664,
+            0.726806666666666,
+            0.7318199999999995
+          ],
+          "GT Power_0": [
+            0.07391333333333336,
+            0.07604666666666668,
+            0.07479999999999998
+          ],
+          "IA Power_0": [
+            6.094506666666667,
+            5.787926666666664,
+            6.368206666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.422633333333334,
+            6.2308133333333355,
+            6.772393333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7224569536423835,
+            0.7143046357615884,
+            0.731993333333333
+          ],
+          "GT Power_0": [
+            0.08616556291390723,
+            0.07546357615894037,
+            0.07526000000000001
+          ],
+          "IA Power_0": [
+            6.073350993377485,
+            5.793503311258279,
+            6.294300000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.541046357615892,
+            6.10047682119205,
+            6.772519999999999
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7692317880794702,
+            0.7861192052980133,
+            0.7699333333333336
+          ],
+          "GT Power_0": [
+            0.182,
+            0.1800794701986755,
+            0.18027333333333334
+          ],
+          "IA Power_0": [
+            5.8929801324503295,
+            5.9391125827814575,
+            6.208873333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.388099337748346,
+            6.531814569536421,
+            6.64689333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7183178807947015,
+            0.7190662251655625,
+            0.7165033112582775
+          ],
+          "GT Power_0": [
+            0.07968874172185438,
+            0.08039072847682122,
+            0.07984768211920529
+          ],
+          "IA Power_0": [
+            5.960562913907285,
+            5.843463576158941,
+            5.789536423841061
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.291357615894042,
+            6.168827814569536,
+            6.126920529801324
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD136-A9",
+      "number": 4732,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6045866666666667,
+            0.6138590604026839,
+            0.5731133333333331
+          ],
+          "GT Power_0": [
+            0.035846666666666645,
+            0.010993288590604024,
+            0.010146666666666663
+          ],
+          "IA Power_0": [
+            3.9193200000000026,
+            5.004684563758385,
+            2.7837866666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.280273333333332,
+            5.283557046979864,
+            3.053406666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7366933333333332,
+            0.7143973509933769,
+            0.712834437086092
+          ],
+          "GT Power_0": [
+            0.09737333333333335,
+            0.09434437086092717,
+            0.09476821192052988
+          ],
+          "IA Power_0": [
+            5.553420000000004,
+            5.28719205298013,
+            5.279860927152319
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.988373333333339,
+            5.643993377483443,
+            5.656748344370862
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7130533333333325,
+            0.7128399999999994,
+            0.713493333333333
+          ],
+          "GT Power_0": [
+            0.09416666666666665,
+            0.09342666666666671,
+            0.09007333333333332
+          ],
+          "IA Power_0": [
+            5.261186666666665,
+            5.335453333333334,
+            5.331786666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.662766666666667,
+            5.70496,
+            5.636806666666662
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7700331125827818,
+            0.7853733333333337,
+            0.768913333333334
+          ],
+          "GT Power_0": [
+            0.20062251655629132,
+            0.2032000000000001,
+            0.2040466666666667
+          ],
+          "IA Power_0": [
+            5.449271523178809,
+            5.459753333333334,
+            5.48554666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9701788079470175,
+            6.0597466666666655,
+            6.006726666666671
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7167733333333327,
+            0.7259799999999993,
+            0.7347866666666664
+          ],
+          "GT Power_0": [
+            0.10309333333333334,
+            0.09922000000000003,
+            0.09902666666666668
+          ],
+          "IA Power_0": [
+            5.287493333333331,
+            5.389573333333336,
+            5.353866666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.689859999999997,
+            5.783373333333332,
+            5.932653333333331
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4731,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5809599999999997,
+            0.5824066666666667,
+            0.5838940397350992
+          ],
+          "GT Power_0": [
+            0.027979999999999984,
+            0.010559999999999998,
+            0.01086754966887417
+          ],
+          "IA Power_0": [
+            2.738846666666666,
+            2.7268999999999983,
+            3.0096953642384126
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0390866666666656,
+            2.9889066666666677,
+            3.2510198675496684
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7115999999999993,
+            0.7214266666666662,
+            0.7132399999999997
+          ],
+          "GT Power_0": [
+            0.09184666666666662,
+            0.08994000000000003,
+            0.08718666666666668
+          ],
+          "IA Power_0": [
+            5.325753333333334,
+            5.377593333333332,
+            5.636939999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.690293333333329,
+            5.767213333333336,
+            5.988873333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7110666666666661,
+            0.7260666666666664,
+            0.712866666666666
+          ],
+          "GT Power_0": [
+            0.08645333333333337,
+            0.0877400000000001,
+            0.0859
+          ],
+          "IA Power_0": [
+            5.361333333333333,
+            5.312053333333337,
+            5.40402666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.724006666666665,
+            5.7018666666666675,
+            5.754839999999999
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7685133333333336,
+            0.7857218543046364,
+            0.7692266666666673
+          ],
+          "GT Power_0": [
+            0.1970733333333334,
+            0.1968145695364239,
+            0.19746000000000008
+          ],
+          "IA Power_0": [
+            5.55394,
+            5.825350993377483,
+            5.554113333333329
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.033433333333336,
+            6.360841059602647,
+            6.003533333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7164399999999995,
+            0.736059999999999,
+            0.7163841059602647
+          ],
+          "GT Power_0": [
+            0.09125999999999995,
+            0.09391333333333332,
+            0.09456953642384106
+          ],
+          "IA Power_0": [
+            5.421353333333333,
+            5.785473333333335,
+            5.427827814569536
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.777479999999997,
+            6.223106666666667,
+            5.7825894039735095
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4730,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5812199999999998,
+            0.5720993377483442,
+            0.5704466666666663
+          ],
+          "GT Power_0": [
+            0.04189333333333332,
+            0.013072847682119205,
+            0.011553333333333332
+          ],
+          "IA Power_0": [
+            3.3123799999999997,
+            3.3232384105960278,
+            3.2467133333333322
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.655873333333333,
+            3.5501192052980137,
+            3.470079999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711258278145695,
+            0.7316733333333332,
+            0.7206266666666664
+          ],
+          "GT Power_0": [
+            0.11876158940397348,
+            0.11550666666666672,
+            0.11867999999999998
+          ],
+          "IA Power_0": [
+            6.504999999999997,
+            7.236320000000002,
+            7.2916799999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.830086092715235,
+            7.791066666666668,
+            7.636973333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128013245033109,
+            0.7114199999999994,
+            0.7107417218543044
+          ],
+          "GT Power_0": [
+            0.1152781456953642,
+            0.11626666666666673,
+            0.11844370860927156
+          ],
+          "IA Power_0": [
+            6.617807947019868,
+            6.7412600000000005,
+            6.459198675496689
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.888251655629136,
+            7.151026666666668,
+            6.847821192052979
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7685333333333336,
+            0.7677814569536427,
+            0.7294966887417218
+          ],
+          "GT Power_0": [
+            0.2547533333333332,
+            0.25775496688741717,
+            0.26909933774834444
+          ],
+          "IA Power_0": [
+            6.744179999999997,
+            6.964417218543044,
+            16.019291390728476
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.272959999999999,
+            7.510854304635759,
+            16.694178807947022
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.6495866666666669,
+            0.7152066666666667,
+            0.7327466666666667
+          ],
+          "GT Power_0": [
+            0.12826000000000004,
+            0.12480666666666655,
+            0.12466
+          ],
+          "IA Power_0": [
+            15.956133333333334,
+            6.563380000000001,
+            6.614993333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            16.276393333333328,
+            6.958713333333335,
+            7.2069866666666655
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD118-A9",
+      "number": 4729,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5791333333333333,
+            0.5721589403973508,
+            0.5708278145695364
+          ],
+          "GT Power_0": [
+            0.033073333333333316,
+            0.012576158940397349,
+            0.011377483443708609
+          ],
+          "IA Power_0": [
+            3.203686666666668,
+            2.8044569536423833,
+            2.8024370860927137
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4590733333333326,
+            3.051503311258279,
+            3.0359072847682125
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7103178807947015,
+            0.7240666666666665,
+            0.7111655629139065
+          ],
+          "GT Power_0": [
+            0.09776158940397352,
+            0.10020666666666674,
+            0.101523178807947
+          ],
+          "IA Power_0": [
+            5.445364238410597,
+            5.673373333333335,
+            5.421549668874171
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.767900662251654,
+            6.111100000000004,
+            5.810794701986754
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.723331125827814,
+            0.7105761589403968,
+            0.7236158940397343
+          ],
+          "GT Power_0": [
+            0.10162913907284774,
+            0.09803311258278147,
+            0.09847682119205299
+          ],
+          "IA Power_0": [
+            5.4173046357615915,
+            5.694000000000001,
+            5.4542582781456925
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.84114569536424,
+            6.052099337748341,
+            5.930072847682121
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7677086092715236,
+            0.7696953642384108,
+            0.7692533333333339
+          ],
+          "GT Power_0": [
+            0.22674834437086092,
+            0.22584105960264908,
+            0.22389999999999996
+          ],
+          "IA Power_0": [
+            5.583225165562914,
+            5.762980132450331,
+            5.808519999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.1242781456953646,
+            6.320894039735103,
+            6.292893333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7163333333333326,
+            0.7166622516556291,
+            0.7448666666666665
+          ],
+          "GT Power_0": [
+            0.10476666666666667,
+            0.10561589403973506,
+            0.12384666666666667
+          ],
+          "IA Power_0": [
+            5.450773333333332,
+            5.52066225165563,
+            5.552620000000007
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.843953333333331,
+            5.885596026490063,
+            6.151186666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD164-A9",
+      "number": 4728,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5728333333333334,
+            0.5877399999999996,
+            0.5716533333333336
+          ],
+          "GT Power_0": [
+            0.025566666666666647,
+            0.011046666666666668,
+            0.011986666666666666
+          ],
+          "IA Power_0": [
+            3.1413133333333336,
+            3.6994799999999985,
+            3.0769266666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.378753333333334,
+            3.9163600000000005,
+            3.3341066666666657
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7231799999999993,
+            0.7240533333333327,
+            0.7258199999999996
+          ],
+          "GT Power_0": [
+            0.10775333333333335,
+            0.10654666666666669,
+            0.10734666666666669
+          ],
+          "IA Power_0": [
+            6.286013333333334,
+            5.917526666666669,
+            6.008193333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.714039999999999,
+            6.356626666666665,
+            6.499813333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126026490066225,
+            0.727556291390728,
+            0.7119060402684558
+          ],
+          "GT Power_0": [
+            0.10798013245033115,
+            0.11584105960264908,
+            0.10808053691275174
+          ],
+          "IA Power_0": [
+            6.3207880794702005,
+            6.055443708609272,
+            6.655114093959733
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.704933774834436,
+            6.615675496688739,
+            6.995845637583898
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7824333333333334,
+            0.7683708609271529,
+            0.7686799999999998
+          ],
+          "GT Power_0": [
+            0.2367733333333335,
+            0.23783443708609278,
+            0.23758666666666664
+          ],
+          "IA Power_0": [
+            6.156626666666667,
+            6.252112582781451,
+            6.57496
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.744113333333337,
+            6.782947019867548,
+            7.074013333333337
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.717397350993377,
+            0.7143199999999997,
+            0.7380199999999997
+          ],
+          "GT Power_0": [
+            0.12078807947019873,
+            0.11418666666666671,
+            0.11365333333333337
+          ],
+          "IA Power_0": [
+            6.137629139072845,
+            6.063486666666667,
+            6.166379999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4658476821192075,
+            6.437146666666665,
+            6.631846666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4727,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5796600000000002,
+            0.5780596026490068,
+            0.5848666666666669
+          ],
+          "GT Power_0": [
+            0.026673333333333316,
+            0.011629139072847683,
+            0.010766666666666667
+          ],
+          "IA Power_0": [
+            2.6006133333333317,
+            2.595754966887417,
+            2.519866666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.8882266666666667,
+            2.885986754966887,
+            2.8943466666666673
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711099337748344,
+            0.7292066666666658,
+            0.7239139072847676
+          ],
+          "GT Power_0": [
+            0.09595364238410597,
+            0.09982666666666667,
+            0.09711258278145699
+          ],
+          "IA Power_0": [
+            4.947715231788079,
+            5.299333333333334,
+            5.038099337748341
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.332178807947021,
+            5.7488133333333336,
+            5.449430463576159
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7119205298013243,
+            0.7128666666666665,
+            0.7316158940397347
+          ],
+          "GT Power_0": [
+            0.09860264900662255,
+            0.09668666666666667,
+            0.09606622516556296
+          ],
+          "IA Power_0": [
+            4.9632980132450335,
+            4.938246666666666,
+            5.047940397350992
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.328019867549669,
+            5.35606,
+            5.533039735099337
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7676333333333337,
+            0.7702800000000004,
+            0.7753066666666673
+          ],
+          "GT Power_0": [
+            0.21680666666666676,
+            0.21670000000000006,
+            0.21859333333333333
+          ],
+          "IA Power_0": [
+            5.102426666666671,
+            5.100133333333336,
+            5.475193333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.6196866666666665,
+            5.627306666666665,
+            5.9629400000000015
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182980132450332,
+            0.7616688741721851,
+            0.7175199999999997
+          ],
+          "GT Power_0": [
+            0.10401986754966888,
+            0.10023841059602648,
+            0.1017933333333334
+          ],
+          "IA Power_0": [
+            5.320536423841064,
+            6.212039735099338,
+            5.035913333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.696609271523176,
+            6.5663112582781435,
+            5.405633333333336
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4726,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5733866666666667,
+            0.5714900662251654,
+            0.5742200000000002
+          ],
+          "GT Power_0": [
+            0.03537333333333332,
+            0.010549668874172186,
+            0.011566666666666659
+          ],
+          "IA Power_0": [
+            3.106513333333333,
+            3.091019867549668,
+            3.454053333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3537266666666663,
+            3.3048741721854307,
+            3.699806666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7279865771812073,
+            0.722529801324503,
+            0.7296423841059598
+          ],
+          "GT Power_0": [
+            0.11376510067114098,
+            0.09076821192052982,
+            0.09175496688741723
+          ],
+          "IA Power_0": [
+            6.505201342281882,
+            6.687059602649007,
+            6.187847682119203
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.93491275167785,
+            7.024456953642384,
+            6.609291390728475
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713306666666666,
+            0.7131258278145691,
+            0.712933333333333
+          ],
+          "GT Power_0": [
+            0.09254000000000007,
+            0.09427152317880796,
+            0.09343333333333338
+          ],
+          "IA Power_0": [
+            6.162113333333336,
+            6.522807947019867,
+            6.136039999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.497840000000003,
+            6.789364238410599,
+            6.500279999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7702733333333339,
+            0.7707814569536428,
+            0.7768675496688748
+          ],
+          "GT Power_0": [
+            0.2148333333333333,
+            0.21905298013245023,
+            0.2200794701986755
+          ],
+          "IA Power_0": [
+            6.294913333333335,
+            6.785298013245031,
+            6.500112582781456
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.74889333333333,
+            7.254198675496688,
+            6.998238410596029
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177866666666664,
+            0.7304266666666662,
+            0.7299470198675494
+          ],
+          "GT Power_0": [
+            0.10206666666666671,
+            0.11702666666666671,
+            0.10265562913907285
+          ],
+          "IA Power_0": [
+            6.228226666666665,
+            6.598786666666669,
+            6.2214701986754966
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.574746666666665,
+            7.112706666666668,
+            6.5904039735099325
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4725,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5719799999999999,
+            0.57186,
+            0.5758399999999998
+          ],
+          "GT Power_0": [
+            0.044339999999999984,
+            0.012013333333333332,
+            0.0127
+          ],
+          "IA Power_0": [
+            3.2774200000000007,
+            3.306573333333333,
+            4.0942599999999985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5224199999999994,
+            3.523753333333335,
+            4.302933333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.729713333333333,
+            0.7307333333333327,
+            0.7266754966887413
+          ],
+          "GT Power_0": [
+            0.1444,
+            0.11774666666666664,
+            0.11960264900662244
+          ],
+          "IA Power_0": [
+            6.553673333333332,
+            6.547646666666667,
+            6.498814569536422
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.083186666666663,
+            7.043939999999999,
+            7.023410596026495
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131655629139068,
+            0.7115894039735092,
+            0.7242052980132445
+          ],
+          "GT Power_0": [
+            0.11665562913907283,
+            0.11447019867549671,
+            0.11823178807947023
+          ],
+          "IA Power_0": [
+            6.528470198675494,
+            6.900933774834437,
+            6.5404304635761585
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.878350993377484,
+            7.241735099337746,
+            6.974059602649004
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7756225165562911,
+            0.7904238410596025,
+            0.7700463576158939
+          ],
+          "GT Power_0": [
+            0.25237748344370864,
+            0.254225165562914,
+            0.25335099337748324
+          ],
+          "IA Power_0": [
+            7.20251655629139,
+            7.13837748344371,
+            6.834913907284769
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.732125827814572,
+            7.777264900662253,
+            7.337615894039733
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179733333333329,
+            0.715853333333333,
+            0.7171854304635757
+          ],
+          "GT Power_0": [
+            0.12494666666666668,
+            0.11948000000000003,
+            0.127271523178808
+          ],
+          "IA Power_0": [
+            6.628746666666671,
+            6.7221933333333315,
+            6.70140397350993
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.001680000000004,
+            7.050553333333331,
+            7.072384105960269
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4724,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5908999999999996,
+            0.58778,
+            0.5749536423841056
+          ],
+          "GT Power_0": [
+            0.013119999999999998,
+            0.012293333333333331,
+            0.012999999999999998
+          ],
+          "IA Power_0": [
+            2.7444199999999994,
+            3.0597266666666654,
+            2.7519536423841062
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.192593333333334,
+            3.4509400000000006,
+            3.004503311258278
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141999999999995,
+            0.7144768211920526,
+            0.7134266666666662
+          ],
+          "GT Power_0": [
+            0.08390666666666668,
+            0.08300662251655631,
+            0.08240000000000001
+          ],
+          "IA Power_0": [
+            5.49558,
+            5.850026490066223,
+            5.520586666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.844113333333337,
+            6.163357615894039,
+            5.833273333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139072847682113,
+            0.7134172185430461,
+            0.7117666666666668
+          ],
+          "GT Power_0": [
+            0.0819867549668874,
+            0.08521854304635766,
+            0.08052000000000008
+          ],
+          "IA Power_0": [
+            5.4562384105960255,
+            5.597490066225164,
+            5.521066666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.775039735099337,
+            5.921145695364239,
+            5.849479999999996
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7790268456375843,
+            0.7726622516556293,
+            0.7830866666666672
+          ],
+          "GT Power_0": [
+            0.20818791946308726,
+            0.19700662251655654,
+            0.21816000000000013
+          ],
+          "IA Power_0": [
+            5.996288590604027,
+            5.708940397350994,
+            5.786339999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.528812080536911,
+            6.1913708609271545,
+            6.284500000000003
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            149,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7403576158940395,
+            0.7352933333333328,
+            0.7194697986577177
+          ],
+          "GT Power_0": [
+            0.09725827814569542,
+            0.09214666666666665,
+            0.08885906040268454
+          ],
+          "IA Power_0": [
+            6.023119205298014,
+            5.694899999999994,
+            5.6551409395973185
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.470741721854304,
+            6.185680000000003,
+            6.000973154362415
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD120-A9",
+      "number": 4723,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5902399999999995,
+            0.5892933333333332,
+            0.5744733333333333
+          ],
+          "GT Power_0": [
+            0.014479999999999998,
+            0.015006666666666668,
+            0.014820000000000005
+          ],
+          "IA Power_0": [
+            3.0988800000000007,
+            3.4709,
+            3.1279999999999992
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.466446666666666,
+            3.7824466666666647,
+            3.331146666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7263933333333332,
+            0.7310733333333329,
+            0.7130266666666661
+          ],
+          "GT Power_0": [
+            0.11440000000000003,
+            0.11376000000000003,
+            0.11528000000000004
+          ],
+          "IA Power_0": [
+            5.986979999999999,
+            6.477286666666671,
+            6.036926666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.395906666666667,
+            6.824506666666668,
+            6.366380000000003
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7279199999999996,
+            0.7136821192052976,
+            0.714813333333333
+          ],
+          "GT Power_0": [
+            0.11217999999999996,
+            0.11294701986754967,
+            0.11721999999999996
+          ],
+          "IA Power_0": [
+            6.3158933333333325,
+            5.977019867549671,
+            5.958733333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.776599999999999,
+            6.379814569536424,
+            6.376846666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.806153333333334,
+            0.7717066666666672,
+            0.7873973509933782
+          ],
+          "GT Power_0": [
+            0.2518599999999998,
+            0.25114666666666663,
+            0.25240397350993365
+          ],
+          "IA Power_0": [
+            6.555000000000001,
+            6.120193333333333,
+            6.1907152317880785
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.245773333333331,
+            6.674573333333334,
+            6.842264900662251
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7219271523178803,
+            0.7188800000000002,
+            0.7199999999999992
+          ],
+          "GT Power_0": [
+            0.12103973509933773,
+            0.11645999999999998,
+            0.11750993377483453
+          ],
+          "IA Power_0": [
+            6.190086092715235,
+            6.138373333333332,
+            6.363145695364238
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.558410596026493,
+            6.506333333333334,
+            6.704662251655629
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD124-A9",
+      "number": 4722,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5757200000000002,
+            0.5757066666666667,
+            0.5772119205298012
+          ],
+          "GT Power_0": [
+            0.043113333333333316,
+            0.01726,
+            0.016867549668874167
+          ],
+          "IA Power_0": [
+            3.0735733333333317,
+            3.035093333333335,
+            3.4114238410596025
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3160399999999983,
+            3.2858000000000005,
+            3.6711456953642383
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7118066666666661,
+            0.7115799999999997,
+            0.7115733333333331
+          ],
+          "GT Power_0": [
+            0.12153999999999997,
+            0.12086000000000001,
+            0.12846666666666662
+          ],
+          "IA Power_0": [
+            5.873979999999998,
+            5.973459999999998,
+            5.903613333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.24696,
+            6.315733333333332,
+            6.276153333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7118609271523171,
+            0.7282266666666665,
+            0.711490066225165
+          ],
+          "GT Power_0": [
+            0.12247019867549667,
+            0.1233133333333334,
+            0.11970198675496688
+          ],
+          "IA Power_0": [
+            5.873377483443712,
+            6.223126666666667,
+            5.876993377483445
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.262072847682117,
+            6.68562,
+            6.2454966887417225
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7678333333333336,
+            0.7694066666666672,
+            0.7671733333333334
+          ],
+          "GT Power_0": [
+            0.27042,
+            0.27308,
+            0.26886666666666686
+          ],
+          "IA Power_0": [
+            6.157353333333331,
+            6.436426666666666,
+            6.126939999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.68772,
+            6.973379999999996,
+            6.674966666666666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7176666666666661,
+            0.7180662251655624,
+            0.7355629139072846
+          ],
+          "GT Power_0": [
+            0.1307066666666666,
+            0.12679470198675502,
+            0.13295364238410595
+          ],
+          "IA Power_0": [
+            6.023013333333335,
+            6.026463576158941,
+            5.946774834437088
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.396766666666668,
+            6.430490066225161,
+            6.501655629139072
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4721,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5779466666666669,
+            0.5740533333333331,
+            0.5764834437086093
+          ],
+          "GT Power_0": [
+            0.03045999999999997,
+            0.015053333333333339,
+            0.014715231788079475
+          ],
+          "IA Power_0": [
+            3.16766,
+            3.5942333333333347,
+            3.270973509933775
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.47638,
+            3.863266666666666,
+            3.5204569536423853
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7245165562913902,
+            0.7135827814569531,
+            0.7111266666666665
+          ],
+          "GT Power_0": [
+            0.11346357615894039,
+            0.11438410596026494,
+            0.1147733333333333
+          ],
+          "IA Power_0": [
+            6.193099337748346,
+            6.477814569536425,
+            6.304860000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.69698675496689,
+            6.832337748344371,
+            6.667466666666669
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7253199999999993,
+            0.7165666666666659,
+            0.7127799999999996
+          ],
+          "GT Power_0": [
+            0.11475999999999999,
+            0.11279333333333336,
+            0.11499333333333338
+          ],
+          "IA Power_0": [
+            6.283939999999998,
+            6.349573333333332,
+            6.293466666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.735640000000001,
+            6.731999999999999,
+            6.652586666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7749333333333339,
+            0.7711192052980134,
+            0.7823266666666666
+          ],
+          "GT Power_0": [
+            0.24997999999999995,
+            0.2500397350993377,
+            0.25096
+          ],
+          "IA Power_0": [
+            6.915620000000003,
+            6.590211920529802,
+            6.4352
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.43784,
+            7.122463576158939,
+            7.04311333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7327748344370857,
+            0.7166291390728474,
+            0.7163377483443706
+          ],
+          "GT Power_0": [
+            0.11876158940397355,
+            0.11590728476821198,
+            0.12090728476821196
+          ],
+          "IA Power_0": [
+            6.285119205298011,
+            6.387841059602651,
+            6.626364238410596
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.79633774834437,
+            6.753503311258278,
+            6.980953642384103
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4720,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5817933333333334,
+            0.5730400000000001,
+            0.5874370860927153
+          ],
+          "GT Power_0": [
+            0.0452133333333333,
+            0.015340000000000001,
+            0.014278145695364236
+          ],
+          "IA Power_0": [
+            3.3877600000000005,
+            3.269520000000001,
+            3.2646887417218555
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.680766666666665,
+            3.4770866666666667,
+            3.640165562913907
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127866666666659,
+            0.7183841059602644,
+            0.7138066666666663
+          ],
+          "GT Power_0": [
+            0.11112000000000007,
+            0.1100264900662252,
+            0.11221333333333341
+          ],
+          "IA Power_0": [
+            6.799380000000001,
+            6.644847682119207,
+            6.536973333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.18306,
+            7.003854304635762,
+            6.901386666666669
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7481788079470194,
+            0.7133443708609263,
+            0.7126357615894038
+          ],
+          "GT Power_0": [
+            0.11348344370860924,
+            0.11186754966887419,
+            0.11225827814569544
+          ],
+          "IA Power_0": [
+            6.836947019867549,
+            6.617887417218544,
+            6.943549668874173
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.620642384105962,
+            6.95848344370861,
+            7.320900662251658
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7702384105960273,
+            0.7710400000000008,
+            0.7708543046357622
+          ],
+          "GT Power_0": [
+            0.2383245033112583,
+            0.23271999999999993,
+            0.23160927152317895
+          ],
+          "IA Power_0": [
+            6.855403973509935,
+            6.794486666666671,
+            7.170443708609275
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.282258278145695,
+            7.31526666666667,
+            7.698225165562917
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7170728476821193,
+            0.735788079470198,
+            0.718993377483443
+          ],
+          "GT Power_0": [
+            0.11902649006622525,
+            0.12576821192052984,
+            0.11590728476821197
+          ],
+          "IA Power_0": [
+            6.719205298013245,
+            6.662211920529805,
+            6.809225165562912
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0515165562913875,
+            7.064529801324501,
+            7.165350993377484
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD178-A9",
+      "number": 4719,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5833200000000001,
+            0.5747880794701984,
+            0.5725562913907287
+          ],
+          "GT Power_0": [
+            0.03469333333333332,
+            0.012357615894039733,
+            0.010953642384105958
+          ],
+          "IA Power_0": [
+            3.499493333333333,
+            2.9119933774834434,
+            3.1525894039735083
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7451133333333346,
+            3.181192052980133,
+            3.4078344370860925
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145599999999996,
+            0.7130866666666663,
+            0.712827814569536
+          ],
+          "GT Power_0": [
+            0.07428000000000001,
+            0.07617999999999996,
+            0.07505298013245035
+          ],
+          "IA Power_0": [
+            5.7071466666666675,
+            5.698606666666664,
+            5.910105960264902
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9911400000000015,
+            6.020973333333333,
+            6.295735099337746
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7113733333333327,
+            0.713713333333333,
+            0.7125999999999991
+          ],
+          "GT Power_0": [
+            0.07309333333333337,
+            0.07375333333333334,
+            0.07436000000000004
+          ],
+          "IA Power_0": [
+            5.631073333333333,
+            5.717200000000001,
+            5.623626666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.970166666666669,
+            6.013486666666668,
+            5.97662
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7709867549668881,
+            0.7700000000000006,
+            0.7898933333333338
+          ],
+          "GT Power_0": [
+            0.1805562913907284,
+            0.17978807947019868,
+            0.1959599999999999
+          ],
+          "IA Power_0": [
+            5.853086092715234,
+            6.17537086092715,
+            5.879760000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.299192052980132,
+            6.632344370860927,
+            6.425579999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177599999999995,
+            0.7175399999999998,
+            0.7193066666666664
+          ],
+          "GT Power_0": [
+            0.07748000000000001,
+            0.07944000000000002,
+            0.09532666666666673
+          ],
+          "IA Power_0": [
+            5.698993333333334,
+            5.9755666666666665,
+            5.848906666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.074493333333334,
+            6.361786666666668,
+            6.113473333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD178-A9",
+      "number": 4718,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5764768211920532,
+            0.5759466666666669,
+            0.5745066666666668
+          ],
+          "GT Power_0": [
+            0.012205298013245028,
+            0.011739999999999999,
+            0.011866666666666666
+          ],
+          "IA Power_0": [
+            3.0495099337748344,
+            3.3670466666666687,
+            2.9247933333333354
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.297403973509934,
+            3.59026,
+            3.1716266666666653
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159866666666663,
+            0.7129866666666661,
+            0.7145430463576156
+          ],
+          "GT Power_0": [
+            0.07513333333333337,
+            0.07556000000000002,
+            0.07397350993377484
+          ],
+          "IA Power_0": [
+            5.746246666666668,
+            6.064039999999996,
+            5.843132450331125
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.090266666666668,
+            6.372406666666669,
+            6.168317880794704
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133399999999998,
+            0.7163266666666667,
+            0.7159403973509931
+          ],
+          "GT Power_0": [
+            0.07230666666666667,
+            0.07580666666666669,
+            0.07611258278145693
+          ],
+          "IA Power_0": [
+            5.733906666666668,
+            6.064040000000001,
+            5.882066225165563
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.078273333333334,
+            6.407433333333336,
+            6.2492649006622525
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7819072847682123,
+            0.7706800000000005,
+            0.7747266666666671
+          ],
+          "GT Power_0": [
+            0.2050728476821192,
+            0.1817466666666666,
+            0.18180000000000002
+          ],
+          "IA Power_0": [
+            5.971562913907283,
+            6.016480000000001,
+            6.1033866666666645
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.476119205298012,
+            6.478006666666667,
+            6.563139999999996
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7193774834437081,
+            0.7205799999999998,
+            0.7198807947019864
+          ],
+          "GT Power_0": [
+            0.07981456953642388,
+            0.08226000000000003,
+            0.0817086092715232
+          ],
+          "IA Power_0": [
+            6.135218543046357,
+            5.870599999999998,
+            5.882099337748345
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.474503311258279,
+            6.167546666666667,
+            6.217205298013249
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4717,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5815666666666663,
+            0.5737615894039738,
+            0.5736199999999999
+          ],
+          "GT Power_0": [
+            0.01466,
+            0.015172185430463572,
+            0.014966666666666665
+          ],
+          "IA Power_0": [
+            3.2220999999999993,
+            3.0602582781456977,
+            3.014786666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4843133333333336,
+            3.2683046357615897,
+            3.246880000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7137666666666661,
+            0.7128199999999996,
+            0.7268133333333328
+          ],
+          "GT Power_0": [
+            0.1143266666666666,
+            0.10880666666666668,
+            0.1137533333333334
+          ],
+          "IA Power_0": [
+            6.421140000000002,
+            6.018226666666665,
+            6.050733333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.783933333333334,
+            6.370626666666671,
+            6.49811333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.71378,
+            0.7125364238410592,
+            0.7171266666666664
+          ],
+          "GT Power_0": [
+            0.11228000000000003,
+            0.11129801324503312,
+            0.11272666666666675
+          ],
+          "IA Power_0": [
+            6.1437199999999965,
+            6.0962715231788085,
+            6.575793333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.45146666666667,
+            6.461463576158941,
+            6.949733333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7857333333333338,
+            0.7806000000000006,
+            0.770626666666667
+          ],
+          "GT Power_0": [
+            0.24307333333333342,
+            0.27169333333333334,
+            0.24456000000000003
+          ],
+          "IA Power_0": [
+            6.34056,
+            6.314553333333334,
+            6.67878
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9699333333333335,
+            6.893839999999997,
+            7.198646666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7421059602649005,
+            0.7389536423841054,
+            0.7186266666666663
+          ],
+          "GT Power_0": [
+            0.12487417218543047,
+            0.1266158940397351,
+            0.12603333333333336
+          ],
+          "IA Power_0": [
+            7.104768211920533,
+            6.267066225165565,
+            6.169533333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.463225165562918,
+            6.76169536423841,
+            6.541619999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD121-A9",
+      "number": 4716,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5899733333333333,
+            0.5878399999999999,
+            0.5859801324503313
+          ],
+          "GT Power_0": [
+            0.049006666666666636,
+            0.015839999999999993,
+            0.016145695364238412
+          ],
+          "IA Power_0": [
+            3.31486,
+            3.1899866666666656,
+            3.1728476821192078
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7147466666666666,
+            3.555586666666666,
+            3.460278145695363
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159602649006616,
+            0.7127866666666663,
+            0.712946666666666
+          ],
+          "GT Power_0": [
+            0.11011920529801332,
+            0.1119266666666667,
+            0.12058000000000002
+          ],
+          "IA Power_0": [
+            6.732033112582781,
+            6.338953333333334,
+            6.359086666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0876821192053,
+            6.692373333333336,
+            6.753286666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145761589403967,
+            0.7134966887417215,
+            0.7145266666666666
+          ],
+          "GT Power_0": [
+            0.10816556291390732,
+            0.10809933774834439,
+            0.11221333333333343
+          ],
+          "IA Power_0": [
+            6.393940397350991,
+            6.335549668874176,
+            6.786886666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.691172185430463,
+            6.687556291390728,
+            7.104906666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7837748344370862,
+            0.7767666666666667,
+            0.7873933333333336
+          ],
+          "GT Power_0": [
+            0.24668874172185448,
+            0.24584666666666655,
+            0.24295333333333335
+          ],
+          "IA Power_0": [
+            6.58673509933775,
+            6.621866666666665,
+            6.959959999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.204887417218543,
+            7.112433333333334,
+            7.612080000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191788079470196,
+            0.7330466666666663,
+            0.7277549668874168
+          ],
+          "GT Power_0": [
+            0.11402649006622519,
+            0.11402000000000004,
+            0.11672847682119204
+          ],
+          "IA Power_0": [
+            6.422,
+            6.6299666666666655,
+            6.8389470198675495
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.789132450331129,
+            6.970466666666665,
+            7.2004105960264955
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4715,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5810733333333334,
+            0.5738675496688737,
+            0.5893907284768212
+          ],
+          "GT Power_0": [
+            0.03805333333333332,
+            0.014397350993377486,
+            0.01447682119205298
+          ],
+          "IA Power_0": [
+            3.350973333333333,
+            3.4557615894039753,
+            3.163403973509934
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.599493333333334,
+            3.6896291390728493,
+            3.474927152317881
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143642384105955,
+            0.7128333333333331,
+            0.8070333333333332
+          ],
+          "GT Power_0": [
+            0.11143708609271522,
+            0.11278666666666669,
+            0.11324000000000001
+          ],
+          "IA Power_0": [
+            6.352960264900661,
+            6.5741466666666675,
+            9.79544666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.679529801324504,
+            6.932506666666663,
+            10.171033333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140533333333333,
+            0.7147814569536423,
+            0.7290533333333328
+          ],
+          "GT Power_0": [
+            0.11005333333333328,
+            0.11339735099337754,
+            0.10875333333333337
+          ],
+          "IA Power_0": [
+            6.303959999999999,
+            6.2977417218543055,
+            6.281420000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.634066666666669,
+            6.715178807947019,
+            6.794939999999995
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7792533333333335,
+            0.7770993377483445,
+            0.7813311258278148
+          ],
+          "GT Power_0": [
+            0.26128666666666667,
+            0.26186092715231785,
+            0.2687086092715232
+          ],
+          "IA Power_0": [
+            6.871926666666668,
+            6.456695364238412,
+            6.5816622516556285
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.428199999999996,
+            7.014317880794702,
+            7.111602649006621
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7396357615894038,
+            0.7159666666666665,
+            0.7254333333333332
+          ],
+          "GT Power_0": [
+            0.11852317880794701,
+            0.12698,
+            0.11724666666666662
+          ],
+          "IA Power_0": [
+            6.747066225165562,
+            6.3540666666666645,
+            6.535806666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.308211920529803,
+            6.709546666666664,
+            6.8975
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4714,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.586893333333333,
+            0.572993333333333,
+            0.57354
+          ],
+          "GT Power_0": [
+            0.04503999999999999,
+            0.014526666666666669,
+            0.015026666666666664
+          ],
+          "IA Power_0": [
+            3.650473333333331,
+            2.714973333333333,
+            2.720053333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9220799999999993,
+            2.9906666666666677,
+            2.982839999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352399999999991,
+            0.711786666666666,
+            0.713286666666666
+          ],
+          "GT Power_0": [
+            0.11775999999999999,
+            0.11108000000000001,
+            0.11457333333333333
+          ],
+          "IA Power_0": [
+            5.464213333333333,
+            5.1746599999999985,
+            5.200119999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.129473333333333,
+            5.554639999999999,
+            5.585553333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133333333333328,
+            0.712373333333333,
+            0.7295399999999991
+          ],
+          "GT Power_0": [
+            0.11729333333333335,
+            0.11955999999999999,
+            0.11672666666666669
+          ],
+          "IA Power_0": [
+            5.311706666666669,
+            5.211879999999995,
+            5.580233333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.656400000000002,
+            5.603686666666667,
+            6.0280000000000005
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.782973509933775,
+            0.7708476821192058,
+            0.7725133333333338
+          ],
+          "GT Power_0": [
+            0.23764900662251665,
+            0.23670198675496681,
+            0.23714666666666667
+          ],
+          "IA Power_0": [
+            5.838728476821193,
+            5.492543046357616,
+            5.715466666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.360132450331127,
+            6.008443708609274,
+            6.2516
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7185266666666664,
+            0.7167466666666664,
+            0.7190200000000001
+          ],
+          "GT Power_0": [
+            0.12027333333333338,
+            0.12248666666666667,
+            0.11584666666666665
+          ],
+          "IA Power_0": [
+            5.369339999999999,
+            5.321820000000002,
+            5.372166666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7536933333333335,
+            5.679673333333335,
+            5.7335400000000005
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD159-A9",
+      "number": 4713,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5755799999999995,
+            0.5743599999999998,
+            0.5876866666666667
+          ],
+          "GT Power_0": [
+            0.04402666666666666,
+            0.01416,
+            0.013893333333333329
+          ],
+          "IA Power_0": [
+            3.0201333333333316,
+            2.7091933333333347,
+            2.7022066666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2739599999999993,
+            2.9490466666666673,
+            3.0330600000000003
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712213333333333,
+            0.7286866666666659,
+            0.7300331125827811
+          ],
+          "GT Power_0": [
+            0.11741333333333333,
+            0.1148466666666667,
+            0.11484768211920539
+          ],
+          "IA Power_0": [
+            5.187899999999997,
+            5.190213333333336,
+            5.493463576158943
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.558633333333334,
+            5.666700000000002,
+            5.972046357615895
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131866666666662,
+            0.7349666666666661,
+            0.7124039735099336
+          ],
+          "GT Power_0": [
+            0.11659333333333334,
+            0.11787333333333332,
+            0.11452317880794706
+          ],
+          "IA Power_0": [
+            5.192633333333333,
+            5.196539999999998,
+            5.484953642384107
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.573520000000004,
+            5.940006666666664,
+            5.8594834437086085
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7790533333333338,
+            0.781172185430464,
+            0.7982516556291398
+          ],
+          "GT Power_0": [
+            0.26433333333333336,
+            0.26862251655629127,
+            0.26158940397351005
+          ],
+          "IA Power_0": [
+            5.3578133333333335,
+            5.390867549668876,
+            5.380847682119205
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.924733333333333,
+            5.959754966887418,
+            6.091980132450334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7340728476821188,
+            0.7192266666666663,
+            0.7169072847682112
+          ],
+          "GT Power_0": [
+            0.12086754966887411,
+            0.12184666666666664,
+            0.12216556291390727
+          ],
+          "IA Power_0": [
+            5.228543046357615,
+            5.500946666666667,
+            5.269350993377488
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.705476821192058,
+            5.894046666666665,
+            5.630821192052978
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4712,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5757019867549666,
+            0.5994569536423837,
+            0.57546
+          ],
+          "GT Power_0": [
+            0.0195364238410596,
+            0.019450331125827815,
+            0.019113333333333333
+          ],
+          "IA Power_0": [
+            3.0930860927152315,
+            3.687165562913909,
+            2.8384133333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3775033112582777,
+            3.946562913907286,
+            3.0896066666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7089139072847676,
+            0.711033112582781,
+            0.7095666666666665
+          ],
+          "GT Power_0": [
+            0.141046357615894,
+            0.1428543046357616,
+            0.1379733333333333
+          ],
+          "IA Power_0": [
+            5.468688741721854,
+            5.559728476821192,
+            5.851226666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.904682119205296,
+            5.954397350993378,
+            6.267346666666664
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7097417218543042,
+            0.711072847682119,
+            0.7100600000000001
+          ],
+          "GT Power_0": [
+            0.13688741721854303,
+            0.14055629139072837,
+            0.1378066666666666
+          ],
+          "IA Power_0": [
+            5.54649668874172,
+            5.5814238410596015,
+            5.725579999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.91571523178808,
+            5.993960264900661,
+            6.146073333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.76642,
+            0.7623933333333336,
+            0.8071523178807952
+          ],
+          "GT Power_0": [
+            0.3275600000000001,
+            0.3254466666666669,
+            0.3235231788079471
+          ],
+          "IA Power_0": [
+            5.889240000000004,
+            5.6888266666666665,
+            7.636483443708607
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.48575333333333,
+            6.311866666666666,
+            8.262728476821191
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7471600000000002,
+            0.7459999999999999,
+            0.7449199999999997
+          ],
+          "GT Power_0": [
+            0.15046000000000004,
+            0.14615333333333327,
+            0.14656000000000002
+          ],
+          "IA Power_0": [
+            6.397660000000001,
+            7.0730333333333295,
+            6.442166666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.828046666666667,
+            7.473719999999998,
+            6.8523666666666685
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4711,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5764733333333326,
+            0.5894466666666667,
+            0.5732715231788079
+          ],
+          "GT Power_0": [
+            0.03765999999999997,
+            0.01362,
+            0.012715231788079472
+          ],
+          "IA Power_0": [
+            2.7866199999999997,
+            2.9844399999999984,
+            2.713523178807946
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.058233333333334,
+            3.35782,
+            2.9650927152317865
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7390463576158935,
+            0.7140331125827809,
+            0.7127947019867544
+          ],
+          "GT Power_0": [
+            0.09583443708609275,
+            0.0896158940397351,
+            0.09080132450331131
+          ],
+          "IA Power_0": [
+            5.226350993377485,
+            5.183503311258275,
+            5.173867549668872
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.992019867549667,
+            5.534907284768216,
+            5.518052980132451
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140463576158933,
+            0.7303576158940394,
+            0.7257748344370856
+          ],
+          "GT Power_0": [
+            0.08860264900662249,
+            0.08901324503311261,
+            0.09092052980132452
+          ],
+          "IA Power_0": [
+            5.42950331125828,
+            5.175841059602647,
+            5.229602649006621
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.810364238410591,
+            5.622311258278144,
+            5.718649006622516
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7787947019867558,
+            0.7888133333333338,
+            0.8620000000000001
+          ],
+          "GT Power_0": [
+            0.20636423841059595,
+            0.19562666666666673,
+            0.21909333333333328
+          ],
+          "IA Power_0": [
+            5.644503311258276,
+            5.316746666666668,
+            6.695219999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.161596026490069,
+            5.91686666666667,
+            7.5567199999999985
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7203933333333329,
+            0.7208733333333328,
+            0.7207284768211921
+          ],
+          "GT Power_0": [
+            0.11102000000000004,
+            0.09521333333333339,
+            0.09445033112582782
+          ],
+          "IA Power_0": [
+            5.389666666666665,
+            5.214419999999999,
+            5.540589403973508
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.707313333333336,
+            5.641066666666668,
+            5.852119205298011
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD145-A9",
+      "number": 4710,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.590019867549669,
+            0.5886066666666667,
+            0.5741192052980131
+          ],
+          "GT Power_0": [
+            0.013370860927152313,
+            0.013120000000000001,
+            0.014086092715231787
+          ],
+          "IA Power_0": [
+            2.857516556291392,
+            2.769986666666666,
+            2.724993377483443
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.211841059602651,
+            3.0900266666666676,
+            2.9956490066225183
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713788079470198,
+            0.7137086092715226,
+            0.7304503311258272
+          ],
+          "GT Power_0": [
+            0.09629139072847684,
+            0.09531788079470199,
+            0.09513245033112586
+          ],
+          "IA Power_0": [
+            5.393052980132449,
+            5.402874172185428,
+            5.323238410596024
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.751880794701986,
+            5.7300662251655625,
+            5.760761589403971
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7351266666666663,
+            0.7129470198675492,
+            0.7149399999999998
+          ],
+          "GT Power_0": [
+            0.09666666666666672,
+            0.0983973509933775,
+            0.09684000000000005
+          ],
+          "IA Power_0": [
+            5.436333333333331,
+            5.356960264900663,
+            5.39082
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.856919999999994,
+            5.714867549668876,
+            5.713646666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7702533333333338,
+            0.7708211920529802,
+            0.7723400000000005
+          ],
+          "GT Power_0": [
+            0.20923333333333338,
+            0.2125894039735099,
+            0.21644666666666665
+          ],
+          "IA Power_0": [
+            5.546399999999999,
+            5.540039735099337,
+            5.599733333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.01176,
+            6.015642384105957,
+            6.043593333333337
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7188278145695361,
+            0.716126666666666,
+            0.7341466666666665
+          ],
+          "GT Power_0": [
+            0.1020397350993378,
+            0.10184666666666674,
+            0.10188000000000001
+          ],
+          "IA Power_0": [
+            5.423556291390728,
+            5.349380000000003,
+            5.8492266666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7532781456953614,
+            5.742119999999999,
+            6.229619999999998
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4709,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5776490066225163,
+            0.5851721854304636,
+            0.590509933774834
+          ],
+          "GT Power_0": [
+            0.01292715231788079,
+            0.013503311258278146,
+            0.013470198675496687
+          ],
+          "IA Power_0": [
+            2.854006622516557,
+            2.5943841059602666,
+            2.809814569536423
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.085549668874174,
+            2.9540397350993373,
+            3.218331125827814
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138066666666661,
+            0.7547133333333329,
+            0.7125562913907281
+          ],
+          "GT Power_0": [
+            0.08803333333333335,
+            0.08852666666666668,
+            0.0924569536423841
+          ],
+          "IA Power_0": [
+            5.792426666666664,
+            6.3542200000000015,
+            5.543271523178806
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.149646666666672,
+            6.7357666666666685,
+            5.819337748344374
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7164733333333327,
+            0.8312684563758387,
+            0.7135960264900657
+          ],
+          "GT Power_0": [
+            0.09021333333333337,
+            0.08718791946308725,
+            0.08917218543046361
+          ],
+          "IA Power_0": [
+            5.514780000000001,
+            9.219637583892622,
+            5.465304635761589
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.859486666666664,
+            9.53270469798657,
+            5.823960264900662
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            149,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7716200000000002,
+            0.7803800000000004,
+            0.7728476821192057
+          ],
+          "GT Power_0": [
+            0.19672,
+            0.2014666666666667,
+            0.20898675496688754
+          ],
+          "IA Power_0": [
+            5.7502266666666655,
+            5.877833333333333,
+            5.907741721854307
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.215346666666667,
+            6.303826666666668,
+            6.413913907284766
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7193245033112581,
+            0.717513333333333,
+            0.7200331125827811
+          ],
+          "GT Power_0": [
+            0.09651655629139072,
+            0.09272666666666672,
+            0.09567549668874172
+          ],
+          "IA Power_0": [
+            5.488774834437088,
+            5.641373333333333,
+            5.44814569536424
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.888682119205303,
+            5.95774,
+            5.856476821192054
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4708,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5914799999999998,
+            0.5851866666666665,
+            0.5751066666666668
+          ],
+          "GT Power_0": [
+            0.013899999999999994,
+            0.013506666666666669,
+            0.0135
+          ],
+          "IA Power_0": [
+            3.2680066666666647,
+            3.3477199999999994,
+            3.003613333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.648366666666666,
+            3.6730866666666664,
+            3.2451200000000004
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7162582781456948,
+            0.7395399999999996,
+            0.7324066666666662
+          ],
+          "GT Power_0": [
+            0.10903973509933777,
+            0.11429333333333334,
+            0.10816666666666667
+          ],
+          "IA Power_0": [
+            5.856708609271527,
+            5.887200000000001,
+            5.913093333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.209443708609274,
+            6.537646666666664,
+            6.3971866666666655
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143799999999993,
+            0.7220999999999995,
+            0.7151390728476816
+          ],
+          "GT Power_0": [
+            0.10408666666666662,
+            0.10711333333333334,
+            0.10476821192052983
+          ],
+          "IA Power_0": [
+            6.180973333333335,
+            5.9918466666666665,
+            5.93998013245033
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5613600000000005,
+            6.3895599999999995,
+            6.333761589403972
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7740133333333333,
+            0.7728609271523179,
+            0.7879600000000007
+          ],
+          "GT Power_0": [
+            0.2329866666666667,
+            0.22990728476821207,
+            0.2320266666666667
+          ],
+          "IA Power_0": [
+            6.368540000000001,
+            6.142059602649005,
+            6.070693333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.89416666666667,
+            6.667324503311259,
+            6.761373333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.722879999999999,
+            0.7377199999999995,
+            0.7202516556291388
+          ],
+          "GT Power_0": [
+            0.11200000000000007,
+            0.11506,
+            0.1195562913907285
+          ],
+          "IA Power_0": [
+            6.0213600000000005,
+            6.0110600000000005,
+            6.385331125827812
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.387053333333335,
+            6.526653333333333,
+            6.715298013245033
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4707,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5829328859060403,
+            0.5877133333333336,
+            0.5888400000000003
+          ],
+          "GT Power_0": [
+            0.03131543624161072,
+            0.013073333333333333,
+            0.020046666666666667
+          ],
+          "IA Power_0": [
+            3.1684295302013434,
+            2.954493333333333,
+            3.0542599999999984
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.521409395973154,
+            3.262060000000002,
+            3.3939666666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7146556291390724,
+            0.7271199999999998,
+            0.7205066666666661
+          ],
+          "GT Power_0": [
+            0.10585430463576158,
+            0.10704666666666668,
+            0.10663333333333336
+          ],
+          "IA Power_0": [
+            5.892993377483442,
+            6.2112066666666665,
+            5.9445000000000014
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.258364238410598,
+            6.678093333333332,
+            6.318793333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.725006622516556,
+            0.7534333333333333,
+            0.716633333333333
+          ],
+          "GT Power_0": [
+            0.10498675496688745,
+            0.10903333333333338,
+            0.10972000000000004
+          ],
+          "IA Power_0": [
+            6.618675496688742,
+            6.6069733333333325,
+            5.944313333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9289999999999985,
+            7.386520000000001,
+            6.31212666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7730666666666669,
+            0.7715866666666668,
+            0.7851933333333337
+          ],
+          "GT Power_0": [
+            0.23169333333333328,
+            0.2275533333333333,
+            0.23125333333333334
+          ],
+          "IA Power_0": [
+            6.110333333333336,
+            6.044713333333338,
+            6.093153333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.591433333333331,
+            6.593233333333333,
+            6.768593333333331
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7181799999999993,
+            0.7196799999999997,
+            0.7195999999999996
+          ],
+          "GT Power_0": [
+            0.11348000000000004,
+            0.11560666666666668,
+            0.11270666666666673
+          ],
+          "IA Power_0": [
+            6.230066666666665,
+            5.903573333333332,
+            6.021160000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.629206666666665,
+            6.280340000000001,
+            6.379186666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD165-A9",
+      "number": 4706,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5769333333333327,
+            0.5734105960264899,
+            0.5752582781456956
+          ],
+          "GT Power_0": [
+            0.03313999999999998,
+            0.01358940397350993,
+            0.014602649006622514
+          ],
+          "IA Power_0": [
+            3.233559999999999,
+            3.406615894039735,
+            3.1857350993377493
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.48762,
+            3.6174039735099344,
+            3.377774834437086
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7394599999999998,
+            0.7118733333333328,
+            0.7319403973509929
+          ],
+          "GT Power_0": [
+            0.09948000000000003,
+            0.10108666666666669,
+            0.09996688741721858
+          ],
+          "IA Power_0": [
+            6.541319999999998,
+            6.124680000000004,
+            6.157364238410593
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.971826666666668,
+            6.456573333333335,
+            6.498622516556291
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7293266666666663,
+            0.7140133333333328,
+            0.7146622516556286
+          ],
+          "GT Power_0": [
+            0.09985333333333342,
+            0.10046666666666668,
+            0.09996688741721861
+          ],
+          "IA Power_0": [
+            6.452633333333337,
+            6.149419999999997,
+            6.184072847682119
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.942393333333332,
+            6.488320000000002,
+            6.5517086092715235
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7720000000000005,
+            0.7708200000000002,
+            0.7732066666666666
+          ],
+          "GT Power_0": [
+            0.23362251655629135,
+            0.2248733333333333,
+            0.2261333333333333
+          ],
+          "IA Power_0": [
+            6.715827814569536,
+            6.370053333333335,
+            6.461040000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.240675496688739,
+            6.860246666666667,
+            6.938373333333329
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187199999999994,
+            0.7189536423841058,
+            0.7179801324503309
+          ],
+          "GT Power_0": [
+            0.10923333333333335,
+            0.10578807947019869,
+            0.10761589403973512
+          ],
+          "IA Power_0": [
+            6.316606666666668,
+            6.258039735099336,
+            6.57547682119205
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6188133333333345,
+            6.647609271523177,
+            6.8752516556291425
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD157-A9",
+      "number": 4705,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5890331125827809,
+            0.5888543046357614,
+            0.5962733333333332
+          ],
+          "GT Power_0": [
+            0.032112582781456935,
+            0.015516556291390728,
+            0.015166666666666663
+          ],
+          "IA Power_0": [
+            4.106496688741723,
+            4.0483509933774835,
+            4.366473333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.386933774834437,
+            4.354019867549671,
+            4.653686666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7206999999999997,
+            0.715093333333333,
+            0.7222980132450327
+          ],
+          "GT Power_0": [
+            0.1147733333333334,
+            0.11342666666666669,
+            0.1141920529801325
+          ],
+          "IA Power_0": [
+            6.90638,
+            6.985799999999999,
+            7.134774834437085
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.299906666666664,
+            7.419126666666664,
+            7.484397350993376
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7244768211920527,
+            0.72623178807947,
+            0.7287284768211918
+          ],
+          "GT Power_0": [
+            0.11267549668874169,
+            0.1109205298013246,
+            0.11195364238410599
+          ],
+          "IA Power_0": [
+            6.570801324503311,
+            6.794993377483447,
+            6.999708609271524
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.042066225165562,
+            7.195172185430463,
+            7.500264900662251
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7764370860927154,
+            0.7778211920529803,
+            0.7798000000000008
+          ],
+          "GT Power_0": [
+            0.24200662251655644,
+            0.24339072847682122,
+            0.24404
+          ],
+          "IA Power_0": [
+            7.021271523178805,
+            7.292185430463576,
+            6.97238
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.615456953642388,
+            7.882543046357623,
+            7.575506666666664
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7249333333333329,
+            0.7236533333333328,
+            0.7281920529801322
+          ],
+          "GT Power_0": [
+            0.11630000000000006,
+            0.11574666666666664,
+            0.12715231788079476
+          ],
+          "IA Power_0": [
+            6.9087466666666675,
+            7.4629600000000025,
+            7.196854304635764
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.269753333333333,
+            7.898373333333331,
+            7.684841059602646
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD149-A9",
+      "number": 4704,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5770666666666665,
+            0.57464,
+            0.5738543046357616
+          ],
+          "GT Power_0": [
+            0.015680000000000003,
+            0.01608,
+            0.01457615894039735
+          ],
+          "IA Power_0": [
+            3.949606666666667,
+            3.3614533333333347,
+            3.7459006622516564
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.168073333333333,
+            3.6229733333333343,
+            3.974543046357618
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7111456953642379,
+            0.7127748344370856,
+            0.7126821192052977
+          ],
+          "GT Power_0": [
+            0.1067086092715232,
+            0.10880132450331124,
+            0.11446357615894041
+          ],
+          "IA Power_0": [
+            6.6663311258278135,
+            6.650708609271524,
+            7.0728278145695365
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.012768211920532,
+            6.985178807947021,
+            7.464
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7204768211920527,
+            0.7121599999999995,
+            0.7127880794701981
+          ],
+          "GT Power_0": [
+            0.11166887417218545,
+            0.11782,
+            0.11217218543046359
+          ],
+          "IA Power_0": [
+            6.747834437086091,
+            6.7280533333333326,
+            6.767556291390728
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.207761589403974,
+            7.053380000000001,
+            7.106668874172185
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708200000000002,
+            0.7698466666666671,
+            0.7691200000000002
+          ],
+          "GT Power_0": [
+            0.26695333333333326,
+            0.26447333333333356,
+            0.2661333333333333
+          ],
+          "IA Power_0": [
+            7.052186666666667,
+            7.369280000000001,
+            7.0279933333333355
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.521126666666669,
+            7.836140000000003,
+            7.5347599999999995
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7360933333333328,
+            0.7188322147651005,
+            0.7626666666666664
+          ],
+          "GT Power_0": [
+            0.11816666666666667,
+            0.11623489932885901,
+            0.13949999999999999
+          ],
+          "IA Power_0": [
+            6.797206666666669,
+            7.375201342281876,
+            6.86904
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.280473333333334,
+            7.776704697986576,
+            7.621126666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD175-A9",
+      "number": 4703,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6046133333333333,
+            0.5749470198675498,
+            0.5751266666666666
+          ],
+          "GT Power_0": [
+            0.014913333333333329,
+            0.015165562913907285,
+            0.013926666666666664
+          ],
+          "IA Power_0": [
+            3.708773333333334,
+            2.9911920529801312,
+            3.0185533333333328
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.0284999999999975,
+            3.2277748344370885,
+            3.2532133333333344
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7429466666666662,
+            0.7133866666666663,
+            0.7284437086092714
+          ],
+          "GT Power_0": [
+            0.10592666666666667,
+            0.10058666666666671,
+            0.10352317880794705
+          ],
+          "IA Power_0": [
+            6.157166666666665,
+            5.74628,
+            6.1875629139072865
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.736913333333333,
+            6.132726666666666,
+            6.679582781456956
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138266666666663,
+            0.7142185430463573,
+            0.7362799999999997
+          ],
+          "GT Power_0": [
+            0.10190666666666667,
+            0.10301986754966887,
+            0.10822
+          ],
+          "IA Power_0": [
+            5.965226666666666,
+            5.896854304635764,
+            6.266153333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3337666666666665,
+            6.229039735099336,
+            6.782546666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7720666666666676,
+            0.7694600000000003,
+            0.7891986754966895
+          ],
+          "GT Power_0": [
+            0.22535333333333332,
+            0.22936666666666672,
+            0.2324039735099337
+          ],
+          "IA Power_0": [
+            6.057213333333335,
+            6.004999999999998,
+            6.148821192052982
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.563833333333334,
+            6.517673333333334,
+            6.817999999999997
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7327133333333329,
+            0.8382348993288585,
+            0.7172516556291391
+          ],
+          "GT Power_0": [
+            0.10965333333333331,
+            0.10846308724832215,
+            0.10817218543046357
+          ],
+          "IA Power_0": [
+            5.882053333333335,
+            10.179590604026846,
+            5.883549668874172
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3962,
+            10.479798657718117,
+            6.2427880794701975
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            149,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4702,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5749933774834434,
+            0.5765733333333335,
+            0.6054238410596028
+          ],
+          "GT Power_0": [
+            0.013609271523178803,
+            0.014093333333333326,
+            0.015218543046357613
+          ],
+          "IA Power_0": [
+            3.177364238410595,
+            3.900953333333334,
+            3.8447086092715237
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4224635761589415,
+            4.147673333333333,
+            4.16844370860927
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141199999999995,
+            0.735291390728476,
+            0.7139066666666657
+          ],
+          "GT Power_0": [
+            0.10687333333333332,
+            0.10782119205298014,
+            0.10979333333333331
+          ],
+          "IA Power_0": [
+            6.130293333333333,
+            6.13458278145695,
+            6.049386666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.453373333333334,
+            6.635317880794703,
+            6.4109733333333345
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7152715231788075,
+            0.7139933333333331,
+            0.7146399999999993
+          ],
+          "GT Power_0": [
+            0.10692052980132458,
+            0.10645333333333339,
+            0.10832000000000001
+          ],
+          "IA Power_0": [
+            6.4687880794701975,
+            6.143186666666666,
+            6.0600999999999985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8539006622516565,
+            6.487399999999995,
+            6.432486666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7738940397351001,
+            0.7724866666666667,
+            0.7721456953642389
+          ],
+          "GT Power_0": [
+            0.23300662251655624,
+            0.2282533333333334,
+            0.2281125827814569
+          ],
+          "IA Power_0": [
+            6.594960264900662,
+            6.257199999999998,
+            6.293662251655629
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.093059602649009,
+            6.766586666666669,
+            6.815569536423843
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7292199999999994,
+            0.7200264900662253,
+            0.7266466666666663
+          ],
+          "GT Power_0": [
+            0.13122,
+            0.11354304635761592,
+            0.12518000000000004
+          ],
+          "IA Power_0": [
+            6.087166666666668,
+            6.122582781456956,
+            6.526506666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.526946666666667,
+            6.5127483443708565,
+            6.981726666666665
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4701,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5797181208053688,
+            0.5713466666666667,
+            0.5913311258278147
+          ],
+          "GT Power_0": [
+            0.038402684563758366,
+            0.013053333333333333,
+            0.014039735099337753
+          ],
+          "IA Power_0": [
+            2.6759530201342305,
+            2.663293333333335,
+            3.056701986754968
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.025255033557047,
+            2.9423466666666664,
+            3.391933774834438
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7142251655629135,
+            0.7273489932885898,
+            0.7275399999999999
+          ],
+          "GT Power_0": [
+            0.08959602649006623,
+            0.08906711409395973,
+            0.08795999999999995
+          ],
+          "IA Power_0": [
+            5.281827814569538,
+            5.167697986577181,
+            5.282533333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.567582781456957,
+            5.6116241610738244,
+            5.668273333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7137133333333329,
+            0.7164266666666662,
+            0.7157748344370858
+          ],
+          "GT Power_0": [
+            0.08867999999999998,
+            0.08716666666666667,
+            0.08645033112582787
+          ],
+          "IA Power_0": [
+            5.247126666666665,
+            5.562793333333336,
+            5.324350993377484
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.595246666666662,
+            5.870306666666665,
+            5.660748344370866
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7813600000000003,
+            0.772192052980133,
+            0.7826866666666669
+          ],
+          "GT Power_0": [
+            0.21118,
+            0.1944834437086092,
+            0.21521333333333337
+          ],
+          "IA Power_0": [
+            5.419326666666669,
+            5.416317880794701,
+            5.396246666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.932106666666666,
+            5.885158940397351,
+            5.93298666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7340335570469795,
+            0.7195866666666663,
+            0.7200999999999995
+          ],
+          "GT Power_0": [
+            0.09563087248322151,
+            0.09445999999999999,
+            0.09502000000000005
+          ],
+          "IA Power_0": [
+            5.596825503355704,
+            5.391819999999997,
+            5.2705
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.022436241610738,
+            5.711879999999999,
+            5.64484666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD21-B1",
+      "number": 4700,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5772466666666665,
+            0.5756866666666663,
+            0.5755800000000001
+          ],
+          "GT Power_0": [
+            0.013899999999999997,
+            0.014633333333333338,
+            0.015086666666666667
+          ],
+          "IA Power_0": [
+            2.9528000000000003,
+            3.250226666666667,
+            2.914353333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.356953333333334,
+            4.68652,
+            4.370293333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7287800000000001,
+            0.7127399999999997,
+            0.7145999999999997
+          ],
+          "GT Power_0": [
+            0.10702666666666669,
+            0.10435333333333344,
+            0.10528000000000003
+          ],
+          "IA Power_0": [
+            5.5608933333333335,
+            5.627786666666666,
+            5.569966666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.256686666666666,
+            7.137706666666666,
+            7.110666666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150333333333332,
+            0.73078,
+            0.7134199999999993
+          ],
+          "GT Power_0": [
+            0.10287333333333336,
+            0.10639333333333338,
+            0.10449333333333334
+          ],
+          "IA Power_0": [
+            5.905733333333333,
+            5.614753333333333,
+            5.565380000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.437033333333326,
+            7.285019999999999,
+            7.102959999999995
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7741523178807952,
+            0.7881854304635763,
+            0.7711258278145697
+          ],
+          "GT Power_0": [
+            0.23668211920529794,
+            0.23286092715231788,
+            0.2419801324503313
+          ],
+          "IA Power_0": [
+            6.072933774834436,
+            5.833675496688743,
+            5.815655629139073
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.783331125827815,
+            7.86376821192053,
+            7.481450331125825
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7248187919463082,
+            0.7334266666666667,
+            0.7303933333333329
+          ],
+          "GT Power_0": [
+            0.11172483221476506,
+            0.11281999999999999,
+            0.11471999999999995
+          ],
+          "IA Power_0": [
+            6.057543624161075,
+            5.816060000000002,
+            6.319933333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.612489932885907,
+            7.39931333333333,
+            7.886700000000002
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4699,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5821599999999999,
+            0.5737417218543044,
+            0.5755466666666664
+          ],
+          "GT Power_0": [
+            0.04163999999999998,
+            0.01333774834437086,
+            0.012866666666666669
+          ],
+          "IA Power_0": [
+            2.6308999999999987,
+            2.5949602649006636,
+            2.895479999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.993113333333333,
+            2.850066225165563,
+            3.131246666666668
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7308874172185424,
+            0.7161999999999995,
+            0.7137866666666661
+          ],
+          "GT Power_0": [
+            0.08644370860927154,
+            0.08850666666666666,
+            0.08884666666666668
+          ],
+          "IA Power_0": [
+            5.549384105960262,
+            5.285486666666668,
+            5.2457866666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.967437086092717,
+            5.620479999999998,
+            5.616913333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7147152317880789,
+            0.7140927152317879,
+            0.7149337748344364
+          ],
+          "GT Power_0": [
+            0.08613245033112586,
+            0.0863973509933775,
+            0.08799337748344375
+          ],
+          "IA Power_0": [
+            5.507841059602647,
+            5.186417218543044,
+            5.278470198675498
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.843086092715232,
+            5.578291390728476,
+            5.588582781456952
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7720066666666671,
+            0.7883311258278151,
+            0.7724701986754967
+          ],
+          "GT Power_0": [
+            0.19561999999999996,
+            0.19398675496688741,
+            0.19598675496688742
+          ],
+          "IA Power_0": [
+            5.45292,
+            5.3865231788079475,
+            5.548324503311259
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.929239999999998,
+            5.993357615894039,
+            6.03003311258278
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7194569536423836,
+            0.7193774834437084,
+            0.7202516556291387
+          ],
+          "GT Power_0": [
+            0.08917880794701996,
+            0.09152317880794704,
+            0.09201324503311258
+          ],
+          "IA Power_0": [
+            5.264953642384106,
+            5.340317880794702,
+            5.556980132450332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.614278145695367,
+            5.67937748344371,
+            5.926483443708609
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4698,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5884569536423839,
+            0.5746711409395975,
+            0.5745430463576157
+          ],
+          "GT Power_0": [
+            0.012907284768211916,
+            0.012127516778523487,
+            0.013788079470198675
+          ],
+          "IA Power_0": [
+            2.833192052980133,
+            3.3179932885906047,
+            2.7752516556291384
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.160927152317879,
+            3.5824429530201343,
+            3.032178807947019
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            149,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7148741721854303,
+            0.7134066666666662,
+            0.7131589403973508
+          ],
+          "GT Power_0": [
+            0.0851390728476821,
+            0.08270000000000004,
+            0.08576821192052979
+          ],
+          "IA Power_0": [
+            5.8584370860927155,
+            5.490513333333333,
+            5.549291390728477
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.184821192052978,
+            5.83652,
+            5.884337748344367
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714529801324503,
+            0.7119533333333328,
+            0.8399865771812077
+          ],
+          "GT Power_0": [
+            0.08449006622516553,
+            0.08322666666666668,
+            0.0829060402684564
+          ],
+          "IA Power_0": [
+            5.837973509933776,
+            5.500780000000002,
+            9.335489932885906
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.192576158940397,
+            5.843999999999998,
+            9.667489932885902
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7703000000000001,
+            0.7705333333333334,
+            0.7730397350993384
+          ],
+          "GT Power_0": [
+            0.19200666666666658,
+            0.19341999999999995,
+            0.18882781456953635
+          ],
+          "IA Power_0": [
+            5.734460000000002,
+            5.694393333333332,
+            6.031523178807949
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.208393333333333,
+            6.171273333333333,
+            6.5172649006622505
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191324503311259,
+            0.7175933333333334,
+            0.7206866666666665
+          ],
+          "GT Power_0": [
+            0.08701324503311257,
+            0.08404666666666664,
+            0.09374666666666667
+          ],
+          "IA Power_0": [
+            5.598139072847683,
+            5.631100000000001,
+            5.926900000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.93919205298013,
+            5.922126666666667,
+            6.309400000000002
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD159-A9",
+      "number": 4697,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5836666666666667,
+            0.5854900662251658,
+            0.5714238410596023
+          ],
+          "GT Power_0": [
+            0.04333333333333333,
+            0.014827814569536423,
+            0.014821192052980133
+          ],
+          "IA Power_0": [
+            2.834933333333333,
+            2.920397350993377,
+            2.6320463576158946
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.19076,
+            3.248867549668873,
+            2.8557615894039743
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7235562913907282,
+            0.7343178807947018,
+            0.7315933333333333
+          ],
+          "GT Power_0": [
+            0.1219801324503312,
+            0.12445033112582775,
+            0.13603333333333334
+          ],
+          "IA Power_0": [
+            5.3263178807947025,
+            5.311278145695365,
+            5.2821
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.78756953642384,
+            5.756086092715236,
+            5.976333333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7604866666666663,
+            0.7281390728476819,
+            0.7152649006622512
+          ],
+          "GT Power_0": [
+            0.1206733333333333,
+            0.1215960264900663,
+            0.11996688741721857
+          ],
+          "IA Power_0": [
+            6.379119999999998,
+            5.214754966887416,
+            5.291463576158939
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.853686666666665,
+            5.774357615894041,
+            5.670178807947024
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7904569536423843,
+            0.7811866666666667,
+            0.8026622516556295
+          ],
+          "GT Power_0": [
+            0.2701523178807946,
+            0.27608,
+            0.2737417218543047
+          ],
+          "IA Power_0": [
+            5.515649006622517,
+            5.415666666666667,
+            5.7738079470198675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.221092715231785,
+            5.996060000000003,
+            6.415781456953641
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7360662251655624,
+            0.719073333333333,
+            0.7191266666666661
+          ],
+          "GT Power_0": [
+            0.12727152317880797,
+            0.1259066666666667,
+            0.12817333333333336
+          ],
+          "IA Power_0": [
+            5.312198675496692,
+            5.261653333333333,
+            5.6152999999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.844364238410598,
+            5.699560000000001,
+            5.990493333333337
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4696,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5772582781456946,
+            0.5760866666666664,
+            0.5905496688741717
+          ],
+          "GT Power_0": [
+            0.01373509933774834,
+            0.013026666666666667,
+            0.014357615894039734
+          ],
+          "IA Power_0": [
+            3.3616092715231805,
+            3.556033333333333,
+            3.1754768211920523
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5946158940397344,
+            3.7862666666666662,
+            3.5468278145695376
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7170397350993376,
+            0.7291733333333327,
+            0.7125298013245032
+          ],
+          "GT Power_0": [
+            0.11111920529801324,
+            0.10582666666666672,
+            0.10721854304635758
+          ],
+          "IA Power_0": [
+            6.213549668874175,
+            6.091133333333333,
+            6.145999999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.584251655629139,
+            6.612753333333333,
+            6.5111192052980105
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133133333333329,
+            0.7340927152317877,
+            0.7239999999999995
+          ],
+          "GT Power_0": [
+            0.10175999999999995,
+            0.10541721854304642,
+            0.10493959731543627
+          ],
+          "IA Power_0": [
+            6.535106666666663,
+            6.206993377483447,
+            7.1738389261745
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.809526666666667,
+            6.869688741721849,
+            7.471892617449661
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7744133333333337,
+            0.7728133333333338,
+            0.7740198675496689
+          ],
+          "GT Power_0": [
+            0.23237999999999986,
+            0.23072666666666672,
+            0.22757615894039743
+          ],
+          "IA Power_0": [
+            6.766746666666666,
+            6.412993333333331,
+            6.495483443708613
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.2318066666666665,
+            6.891173333333331,
+            6.986112582781455
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7222913907284767,
+            0.7261854304635758,
+            0.7182649006622511
+          ],
+          "GT Power_0": [
+            0.11262251655629134,
+            0.11856953642384103,
+            0.10623841059602653
+          ],
+          "IA Power_0": [
+            6.431238410596024,
+            6.233841059602645,
+            6.541973509933776
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.795543046357614,
+            6.671642384105955,
+            6.900887417218545
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4695,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5787133333333329,
+            0.5903333333333334,
+            0.5938600000000003
+          ],
+          "GT Power_0": [
+            0.04201333333333333,
+            0.01934666666666667,
+            0.019066666666666666
+          ],
+          "IA Power_0": [
+            3.557680000000001,
+            3.117659999999999,
+            3.1266999999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8145799999999994,
+            3.5285066666666665,
+            3.5300399999999996
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714735099337748,
+            0.7134105960264897,
+            0.7132781456953641
+          ],
+          "GT Power_0": [
+            0.10983443708609272,
+            0.10892715231788082,
+            0.10704635761589407
+          ],
+          "IA Power_0": [
+            6.465569536423841,
+            6.1197218543046334,
+            6.1536754966887415
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.803973509933775,
+            6.507887417218543,
+            6.517887417218543
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136999999999997,
+            0.7135695364238406,
+            0.7140266666666665
+          ],
+          "GT Power_0": [
+            0.10722000000000004,
+            0.1037218543046358,
+            0.10133333333333337
+          ],
+          "IA Power_0": [
+            6.148153333333337,
+            6.178874172185429,
+            6.4943533333333345
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.517880000000001,
+            6.530880794701988,
+            6.845686666666664
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.808473333333333,
+            0.8072847682119206,
+            0.8145799999999999
+          ],
+          "GT Power_0": [
+            0.2790066666666667,
+            0.2660463576158941,
+            0.2718733333333333
+          ],
+          "IA Power_0": [
+            6.670926666666666,
+            6.827847682119205,
+            6.890066666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.150086666666668,
+            7.370284768211921,
+            7.438860000000005
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7193866666666661,
+            0.7376066666666663,
+            0.719006622516556
+          ],
+          "GT Power_0": [
+            0.12696000000000002,
+            0.11275333333333336,
+            0.11468874172185434
+          ],
+          "IA Power_0": [
+            6.312400000000001,
+            6.542279999999999,
+            6.325794701986756
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.636779999999996,
+            6.985146666666669,
+            6.681245033112582
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD131-A9",
+      "number": 4694,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5906133333333333,
+            0.5819599999999998,
+            0.5992582781456953
+          ],
+          "GT Power_0": [
+            0.05267999999999999,
+            0.019266666666666665,
+            0.02036423841059603
+          ],
+          "IA Power_0": [
+            3.5186400000000004,
+            3.235426666666669,
+            3.218668874172184
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.761906666666667,
+            3.4054733333333327,
+            3.569794701986755
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7168599999999992,
+            0.7175866666666662,
+            0.7199599999999995
+          ],
+          "GT Power_0": [
+            0.10674000000000002,
+            0.10471333333333338,
+            0.10137999999999998
+          ],
+          "IA Power_0": [
+            5.766526666666667,
+            5.685713333333335,
+            6.067926666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.081940000000003,
+            6.0254199999999996,
+            6.3492666666666695
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.740713333333333,
+            0.7203199999999998,
+            0.7176754966887412
+          ],
+          "GT Power_0": [
+            0.10158000000000002,
+            0.10001333333333334,
+            0.0994701986754967
+          ],
+          "IA Power_0": [
+            5.684413333333331,
+            5.822126666666668,
+            5.984410596026493
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.447886666666667,
+            6.134446666666665,
+            6.290430463576158
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8151920529801322,
+            0.8198866666666665,
+            0.8150402684563759
+          ],
+          "GT Power_0": [
+            0.25813907284768217,
+            0.2665133333333334,
+            0.25803355704697994
+          ],
+          "IA Power_0": [
+            6.090357615894037,
+            6.122786666666667,
+            6.0350536912751656
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.585006622516559,
+            6.635433333333333,
+            6.556456375838926
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7216533333333328,
+            0.7269735099337747,
+            0.7435133333333332
+          ],
+          "GT Power_0": [
+            0.10770666666666669,
+            0.10742384105960272,
+            0.11319333333333335
+          ],
+          "IA Power_0": [
+            5.840239999999998,
+            6.290887417218545,
+            5.915633333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.134340000000001,
+            6.579450331125829,
+            6.419106666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD169-A9",
+      "number": 4672,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5761999999999999,
+            0.5747066666666666,
+            0.5743200000000002
+          ],
+          "GT Power_0": [
+            0.030973333333333304,
+            0.014919999999999998,
+            0.01594
+          ],
+          "IA Power_0": [
+            3.194366666666666,
+            3.114146666666664,
+            3.078293333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.442633333333334,
+            3.376213333333334,
+            3.3366733333333354
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122466666666664,
+            0.7123666666666664,
+            0.7363178807947017
+          ],
+          "GT Power_0": [
+            0.10875333333333335,
+            0.11198666666666672,
+            0.11596688741721851
+          ],
+          "IA Power_0": [
+            6.19942,
+            5.794986666666667,
+            5.96048344370861
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.547673333333336,
+            6.167373333333333,
+            6.601516556291387
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7259668874172184,
+            0.713026666666666,
+            0.7131920529801319
+          ],
+          "GT Power_0": [
+            0.11005960264900667,
+            0.11803333333333335,
+            0.12007284768211923
+          ],
+          "IA Power_0": [
+            6.187562913907283,
+            5.886346666666669,
+            5.933165562913906
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.574092715231789,
+            6.248653333333333,
+            6.257185430463576
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7855666666666669,
+            0.7678933333333336,
+            0.7822450331125829
+          ],
+          "GT Power_0": [
+            0.24063333333333334,
+            0.24359333333333338,
+            0.24403311258278162
+          ],
+          "IA Power_0": [
+            6.098246666666671,
+            6.134559999999997,
+            6.4060331125827785
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.698459999999995,
+            6.668353333333334,
+            6.9702317880794675
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182582781456949,
+            0.7348599999999997,
+            0.7182847682119201
+          ],
+          "GT Power_0": [
+            0.11774834437086093,
+            0.11564666666666663,
+            0.11515231788079479
+          ],
+          "IA Power_0": [
+            5.944350993377485,
+            6.029193333333335,
+            5.961801324503314
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3872251655629135,
+            6.513560000000001,
+            6.362847682119209
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD165-A9",
+      "number": 4671,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5817866666666668,
+            0.5747417218543045,
+            0.5757682119205295
+          ],
+          "GT Power_0": [
+            0.03286666666666665,
+            0.015496688741721856,
+            0.015152317880794703
+          ],
+          "IA Power_0": [
+            3.62496,
+            3.2081125827814576,
+            3.186019867549668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9225,
+            3.415172185430463,
+            3.426920529801324
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7146092715231783,
+            0.7110266666666661,
+            0.7298940397350991
+          ],
+          "GT Power_0": [
+            0.10368874172185436,
+            0.10087333333333336,
+            0.09784105960264905
+          ],
+          "IA Power_0": [
+            6.6548079470198696,
+            6.16424,
+            6.20439735099338
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.967158940397352,
+            6.502286666666666,
+            6.843668874172185
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7272266666666661,
+            0.7110533333333331,
+            0.716233333333333
+          ],
+          "GT Power_0": [
+            0.09806000000000005,
+            0.09758666666666671,
+            0.10132000000000004
+          ],
+          "IA Power_0": [
+            6.191046666666666,
+            6.211086666666666,
+            6.972086666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.690593333333334,
+            6.594460000000002,
+            7.304146666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8134834437086096,
+            0.76971523178808,
+            0.77014
+          ],
+          "GT Power_0": [
+            0.26088079470198683,
+            0.23907947019867562,
+            0.23561999999999994
+          ],
+          "IA Power_0": [
+            6.431271523178808,
+            6.533112582781459,
+            6.827133333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.354311258278144,
+            6.986139072847679,
+            7.339253333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177533333333328,
+            0.7328466666666665,
+            0.7204866666666667
+          ],
+          "GT Power_0": [
+            0.10890000000000008,
+            0.10717333333333336,
+            0.1094866666666667
+          ],
+          "IA Power_0": [
+            6.352373333333334,
+            6.352233333333333,
+            6.698400000000006
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.703853333333338,
+            6.855046666666667,
+            7.086133333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4670,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.575213333333333,
+            0.5851655629139074,
+            0.5923666666666668
+          ],
+          "GT Power_0": [
+            0.030959999999999977,
+            0.014125827814569534,
+            0.012879999999999999
+          ],
+          "IA Power_0": [
+            3.4536333333333324,
+            3.2783708609271534,
+            3.290566666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7059466666666676,
+            3.5375761589403956,
+            3.876386666666665
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138609271523173,
+            0.7142066666666663,
+            0.7137066666666658
+          ],
+          "GT Power_0": [
+            0.10069536423841062,
+            0.10134000000000001,
+            0.09716666666666667
+          ],
+          "IA Power_0": [
+            6.524523178807948,
+            6.702606666666662,
+            6.420433333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.790754966887416,
+            7.053506666666669,
+            6.758806666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7278933333333328,
+            0.7444266666666665,
+            0.7137880794701982
+          ],
+          "GT Power_0": [
+            0.10168000000000002,
+            0.10074000000000005,
+            0.10249668874172187
+          ],
+          "IA Power_0": [
+            7.118666666666668,
+            7.504620000000002,
+            6.41370198675497
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5009,
+            8.136806666666665,
+            6.786814569536422
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7876291390728482,
+            0.7728410596026493,
+            0.7901920529801331
+          ],
+          "GT Power_0": [
+            0.22780794701986745,
+            0.22532450331125833,
+            0.22638410596026493
+          ],
+          "IA Power_0": [
+            6.554377483443707,
+            6.6846821192052985,
+            6.989543046357616
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.190562913907286,
+            7.151913907284772,
+            7.589139072847682
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7184635761589402,
+            0.743993333333333,
+            0.7179599999999996
+          ],
+          "GT Power_0": [
+            0.10558278145695364,
+            0.10642000000000004,
+            0.10516666666666669
+          ],
+          "IA Power_0": [
+            6.791291390728477,
+            6.6067866666666655,
+            6.412926666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1556291390728495,
+            7.046866666666665,
+            6.777366666666671
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4669,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760799999999997,
+            0.5752066666666666,
+            0.5705894039735098
+          ],
+          "GT Power_0": [
+            0.04247999999999999,
+            0.015793333333333336,
+            0.014503311258278149
+          ],
+          "IA Power_0": [
+            2.829053333333333,
+            2.740746666666665,
+            2.5579735099337744
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.087179999999999,
+            2.9960000000000004,
+            2.792947019867549
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7154666666666665,
+            0.7338609271523177,
+            0.7138466666666663
+          ],
+          "GT Power_0": [
+            0.11654666666666669,
+            0.11411258278145692,
+            0.11804000000000006
+          ],
+          "IA Power_0": [
+            5.553586666666669,
+            5.228132450331121,
+            5.229393333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.909560000000001,
+            5.751251655629138,
+            5.597386666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138874172185425,
+            0.7169735099337742,
+            0.7310529801324498
+          ],
+          "GT Power_0": [
+            0.11631788079470198,
+            0.11375496688741722,
+            0.11747682119205297
+          ],
+          "IA Power_0": [
+            5.484278145695363,
+            5.364211920529804,
+            5.281907284768214
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.851417218543043,
+            5.740079470198678,
+            5.800629139072848
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7904834437086095,
+            0.7716490066225168,
+            0.7859933333333338
+          ],
+          "GT Power_0": [
+            0.235523178807947,
+            0.23254304635761588,
+            0.2370933333333333
+          ],
+          "IA Power_0": [
+            5.4607019867549695,
+            5.430523178807949,
+            5.669273333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.134139072847685,
+            5.954000000000002,
+            6.3099000000000025
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177284768211918,
+            0.7192066666666663,
+            0.7385234899328856
+          ],
+          "GT Power_0": [
+            0.12424503311258286,
+            0.12228666666666667,
+            0.12146979865771815
+          ],
+          "IA Power_0": [
+            5.324066225165562,
+            5.31266,
+            5.9093154362416085
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.675615894039738,
+            5.707579999999999,
+            6.409610738255032
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD164-A9",
+      "number": 4668,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5833355704697986,
+            0.5816399999999998,
+            0.5859801324503316
+          ],
+          "GT Power_0": [
+            0.02968456375838925,
+            0.014746666666666665,
+            0.015211920529801328
+          ],
+          "IA Power_0": [
+            3.2620872483221484,
+            3.389486666666667,
+            3.3754768211920534
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6323624161073815,
+            3.630766666666668,
+            3.715344370860926
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714026666666666,
+            0.7128199999999997,
+            0.7121390728476815
+          ],
+          "GT Power_0": [
+            0.11182000000000007,
+            0.11363333333333336,
+            0.1160397350993378
+          ],
+          "IA Power_0": [
+            5.933619999999998,
+            5.934553333333331,
+            5.922463576158938
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.309073333333335,
+            6.31702,
+            6.284165562913906
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141456953642379,
+            0.7316821192052975,
+            0.7126266666666661
+          ],
+          "GT Power_0": [
+            0.11419867549668875,
+            0.11282119205298013,
+            0.11552666666666667
+          ],
+          "IA Power_0": [
+            6.00088741721854,
+            6.358536423841058,
+            5.946713333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.355437086092718,
+            6.849814569536422,
+            6.309486666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713666666666666,
+            0.771132450331126,
+            0.7847000000000003
+          ],
+          "GT Power_0": [
+            0.2397,
+            0.24481456953642364,
+            0.2544733333333335
+          ],
+          "IA Power_0": [
+            6.170526666666663,
+            6.53796688741722,
+            6.256386666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.674726666666664,
+            7.047576158940399,
+            6.908406666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7209006622516546,
+            0.7297284768211917,
+            0.7295866666666659
+          ],
+          "GT Power_0": [
+            0.12380794701986758,
+            0.1189403973509934,
+            0.12329333333333341
+          ],
+          "IA Power_0": [
+            6.238841059602654,
+            6.045437086092714,
+            6.193993333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.549403973509935,
+            6.563185430463578,
+            6.688673333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD178-A9",
+      "number": 4667,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5811133333333335,
+            0.5741599999999998,
+            0.5732266666666668
+          ],
+          "GT Power_0": [
+            0.032399999999999984,
+            0.012659999999999998,
+            0.012466666666666668
+          ],
+          "IA Power_0": [
+            3.312446666666666,
+            2.922313333333332,
+            3.0337733333333325
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5996866666666665,
+            3.179320000000002,
+            3.3033600000000014
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7256556291390726,
+            0.7142649006622512,
+            0.7277852348993282
+          ],
+          "GT Power_0": [
+            0.08286754966887418,
+            0.07896026490066227,
+            0.0754362416107383
+          ],
+          "IA Power_0": [
+            5.703172185430464,
+            5.677112582781455,
+            5.8547046979865796
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.162185430463575,
+            5.9988543046357625,
+            6.251939597315435
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126092715231784,
+            0.7145799999999995,
+            0.7147333333333331
+          ],
+          "GT Power_0": [
+            0.07603973509933772,
+            0.07796000000000003,
+            0.07603333333333331
+          ],
+          "IA Power_0": [
+            5.657172185430463,
+            5.682246666666666,
+            5.710813333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.02371523178808,
+            6.031013333333332,
+            6.039226666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7712980132450337,
+            0.7702333333333335,
+            0.7700466666666667
+          ],
+          "GT Power_0": [
+            0.18005298013245044,
+            0.18746666666666673,
+            0.1797933333333333
+          ],
+          "IA Power_0": [
+            5.917754966887415,
+            6.2067,
+            5.864946666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.371947019867551,
+            6.6448466666666715,
+            6.312066666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7332533333333326,
+            0.7322582781456947,
+            0.7185066666666658
+          ],
+          "GT Power_0": [
+            0.07903333333333334,
+            0.07948344370860927,
+            0.07788666666666666
+          ],
+          "IA Power_0": [
+            5.782146666666664,
+            6.046880794701987,
+            5.7974666666666685
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2333733333333345,
+            6.454298013245035,
+            6.0983
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4666,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5738066666666665,
+            0.5730066225165559,
+            0.5740000000000002
+          ],
+          "GT Power_0": [
+            0.037653333333333316,
+            0.012503311258278145,
+            0.012112582781456955
+          ],
+          "IA Power_0": [
+            2.653973333333332,
+            2.586397350993377,
+            2.911390728476823
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.9122866666666676,
+            2.8518940397350994,
+            3.1668940397350984
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.737573333333333,
+            0.7128733333333328,
+            0.7126423841059601
+          ],
+          "GT Power_0": [
+            0.08725333333333336,
+            0.08704666666666669,
+            0.09058940397350991
+          ],
+          "IA Power_0": [
+            5.519106666666666,
+            5.232753333333336,
+            5.281026490066227
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.007293333333334,
+            5.557193333333335,
+            5.564907284768212
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7278666666666662,
+            0.7148666666666662,
+            0.7132866666666663
+          ],
+          "GT Power_0": [
+            0.0881733333333334,
+            0.08537333333333333,
+            0.08735999999999998
+          ],
+          "IA Power_0": [
+            5.248666666666667,
+            5.549606666666663,
+            5.216486666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.664153333333336,
+            5.88054,
+            5.5905666666666605
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7710662251655633,
+            0.7789735099337753,
+            0.7854000000000007
+          ],
+          "GT Power_0": [
+            0.19701324503311254,
+            0.19515894039735093,
+            0.20168000000000008
+          ],
+          "IA Power_0": [
+            5.428596026490065,
+            5.531947019867551,
+            5.595093333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.917456953642383,
+            6.051390728476819,
+            6.248426666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7751258278145695,
+            0.7420599999999994,
+            0.7190066225165559
+          ],
+          "GT Power_0": [
+            0.09094039735099335,
+            0.09609333333333339,
+            0.09135761589403978
+          ],
+          "IA Power_0": [
+            6.747920529801325,
+            5.335620000000002,
+            5.288761589403976
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1749933774834425,
+            5.924159999999998,
+            5.681814569536424
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4665,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5788733333333332,
+            0.5891920529801323,
+            0.5940933333333334
+          ],
+          "GT Power_0": [
+            0.034473333333333314,
+            0.01722516556291391,
+            0.01621333333333333
+          ],
+          "IA Power_0": [
+            3.3065133333333327,
+            3.0357086092715235,
+            3.2003733333333315
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6142066666666666,
+            3.361105960264901,
+            3.538526666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7104635761589397,
+            0.7107880794701981,
+            0.7109933333333329
+          ],
+          "GT Power_0": [
+            0.11446357615894037,
+            0.11299999999999998,
+            0.11689333333333339
+          ],
+          "IA Power_0": [
+            6.143768211920529,
+            5.884304635761589,
+            5.903813333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.500006622516554,
+            6.26328476821192,
+            6.273786666666668
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7117284768211916,
+            0.7270266666666662,
+            0.7119666666666661
+          ],
+          "GT Power_0": [
+            0.11541059602649013,
+            0.11400666666666669,
+            0.12082666666666664
+          ],
+          "IA Power_0": [
+            5.91328476821192,
+            5.83578,
+            6.152433333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.284708609271522,
+            6.324686666666668,
+            6.568153333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7855533333333338,
+            0.769894039735099,
+            0.7863866666666671
+          ],
+          "GT Power_0": [
+            0.27370000000000017,
+            0.275046357615894,
+            0.2747400000000001
+          ],
+          "IA Power_0": [
+            6.064546666666666,
+            6.108536423841061,
+            6.37792
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.739546666666666,
+            6.655152317880791,
+            7.088599999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7298940397350993,
+            0.7172582781456951,
+            0.7268013245033108
+          ],
+          "GT Power_0": [
+            0.12506622516556293,
+            0.12380794701986758,
+            0.13490728476821193
+          ],
+          "IA Power_0": [
+            5.923245033112581,
+            6.041384105960268,
+            5.883298013245031
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4472317880794705,
+            6.375245033112583,
+            6.394185430463574
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4664,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5751800000000001,
+            0.5876357615894042,
+            0.5730733333333334
+          ],
+          "GT Power_0": [
+            0.03283333333333332,
+            0.014403973509933776,
+            0.013039999999999996
+          ],
+          "IA Power_0": [
+            2.630513333333335,
+            2.570629139072848,
+            2.7613000000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.8922666666666648,
+            2.9434105960264887,
+            3.006740000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7287682119205295,
+            0.7132384105960261,
+            0.7314768211920527
+          ],
+          "GT Power_0": [
+            0.11864900662251654,
+            0.0980993377483444,
+            0.09927152317880802
+          ],
+          "IA Power_0": [
+            5.076801324503311,
+            5.066960264900665,
+            5.1558079470198654
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5840529801324505,
+            5.4240662251655625,
+            5.640119205298014
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7151599999999995,
+            0.7120529801324501,
+            0.7145827814569535
+          ],
+          "GT Power_0": [
+            0.09877333333333331,
+            0.09694039735099334,
+            0.09547019867549669
+          ],
+          "IA Power_0": [
+            5.086019999999998,
+            5.345536423841063,
+            4.995384105960263
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.464419999999997,
+            5.704761589403972,
+            5.364867549668877
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7718666666666668,
+            0.7722866666666665,
+            0.7708013245033111
+          ],
+          "GT Power_0": [
+            0.21473333333333333,
+            0.2184266666666666,
+            0.21790728476821208
+          ],
+          "IA Power_0": [
+            5.195473333333333,
+            5.469500000000001,
+            5.278728476821192
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.71339333333333,
+            5.9774199999999995,
+            5.802350993377483
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7259865771812082,
+            0.7358933333333326,
+            0.7199735099337744
+          ],
+          "GT Power_0": [
+            0.10002684563758393,
+            0.10248000000000004,
+            0.10164900662251657
+          ],
+          "IA Power_0": [
+            5.775711409395973,
+            5.22826,
+            5.1029205298013265
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.129402684563759,
+            5.641266666666664,
+            5.501721854304631
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4663,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5830799999999998,
+            0.5884199999999996,
+            0.5754093959731544
+          ],
+          "GT Power_0": [
+            0.027559999999999984,
+            0.01295333333333333,
+            0.013919463087248321
+          ],
+          "IA Power_0": [
+            2.8018533333333346,
+            2.7097933333333346,
+            3.2425503355704706
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1639666666666657,
+            3.0525799999999994,
+            3.4827046979865757
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712293333333333,
+            0.7122666666666663,
+            0.7386533333333334
+          ],
+          "GT Power_0": [
+            0.09336666666666674,
+            0.09238000000000002,
+            0.09106666666666668
+          ],
+          "IA Power_0": [
+            5.297393333333332,
+            5.363159999999999,
+            5.368819999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.651866666666669,
+            5.714106666666667,
+            6.211320000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7232450331125828,
+            0.7120133333333329,
+            0.727593333333333
+          ],
+          "GT Power_0": [
+            0.10323841059602651,
+            0.09114666666666667,
+            0.09083333333333334
+          ],
+          "IA Power_0": [
+            5.31437748344371,
+            5.547946666666665,
+            5.516946666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.773198675496688,
+            5.928593333333334,
+            5.914226666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7879867549668879,
+            0.7723377483443707,
+            0.770920529801325
+          ],
+          "GT Power_0": [
+            0.20389403973509926,
+            0.19992052980132438,
+            0.2023576158940397
+          ],
+          "IA Power_0": [
+            6.37158940397351,
+            5.785913907284766,
+            5.57943046357616
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.861086092715232,
+            6.287192052980131,
+            6.082953642384108
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7455234899328855,
+            0.7181333333333328,
+            0.7161986754966887
+          ],
+          "GT Power_0": [
+            0.09503355704697991,
+            0.09830666666666667,
+            0.09535099337748346
+          ],
+          "IA Power_0": [
+            5.659161073825502,
+            5.354013333333334,
+            5.354801324503314
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.358939597315436,
+            5.716626666666664,
+            5.732635761589405
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD132-A9",
+      "number": 4662,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5806066666666664,
+            0.5894768211920529,
+            0.5694370860927148
+          ],
+          "GT Power_0": [
+            0.033366666666666656,
+            0.013635761589403968,
+            0.012807947019867549
+          ],
+          "IA Power_0": [
+            3.197893333333332,
+            3.218933774834437,
+            3.1992913907284763
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4801200000000008,
+            3.5729337748344387,
+            3.4132649006622517
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129801324503303,
+            0.7140599999999993,
+            0.7293999999999995
+          ],
+          "GT Power_0": [
+            0.08961589403973513,
+            0.0905866666666667,
+            0.09292666666666669
+          ],
+          "IA Power_0": [
+            6.308602649006625,
+            6.326799999999997,
+            6.289219999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.624410596026492,
+            6.648320000000004,
+            6.768720000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7345629139072842,
+            0.7126821192052976,
+            0.7140466666666664
+          ],
+          "GT Power_0": [
+            0.09113245033112585,
+            0.09239072847682121,
+            0.08977333333333332
+          ],
+          "IA Power_0": [
+            6.347966887417218,
+            6.63890066225166,
+            6.3628599999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.001225165562913,
+            6.937033112582781,
+            6.621706666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713774834437092,
+            0.7736158940397355,
+            0.780688741721855
+          ],
+          "GT Power_0": [
+            0.20310596026490074,
+            0.22919205298013248,
+            0.23087417218543038
+          ],
+          "IA Power_0": [
+            6.541880794701987,
+            6.51932450331126,
+            6.485880794701985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.976496688741721,
+            7.007927152317883,
+            7.012821192052981
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7380666666666663,
+            0.7206092715231783,
+            0.7192466666666665
+          ],
+          "GT Power_0": [
+            0.09877999999999998,
+            0.09980132450331128,
+            0.09502666666666665
+          ],
+          "IA Power_0": [
+            7.086553333333333,
+            6.390152317880794,
+            6.607666666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.540793333333327,
+            6.73312582781457,
+            6.977286666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4661,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5837799999999997,
+            0.5903266666666664,
+            0.5874768211920526
+          ],
+          "GT Power_0": [
+            0.03146666666666666,
+            0.013279999999999993,
+            0.013350993377483444
+          ],
+          "IA Power_0": [
+            3.398093333333333,
+            2.7966933333333333,
+            2.7407549668874167
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.772626666666666,
+            3.161986666666668,
+            3.09823178807947
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7278266666666667,
+            0.730653333333333,
+            0.7125866666666659
+          ],
+          "GT Power_0": [
+            0.08019333333333332,
+            0.08213333333333338,
+            0.08066666666666665
+          ],
+          "IA Power_0": [
+            5.500953333333332,
+            5.5100999999999996,
+            5.750913333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.880946666666667,
+            6.014973333333333,
+            6.1304799999999995
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128533333333327,
+            0.7187350993377477,
+            0.7312251655629133
+          ],
+          "GT Power_0": [
+            0.08374000000000005,
+            0.08399999999999998,
+            0.08029801324503312
+          ],
+          "IA Power_0": [
+            5.519980000000001,
+            5.768410596026492,
+            5.826536423841059
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.865133333333332,
+            6.091529801324504,
+            6.239052980132453
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.786926666666667,
+            0.787046357615894,
+            0.7716200000000004
+          ],
+          "GT Power_0": [
+            0.19150666666666674,
+            0.1929139072847683,
+            0.19155999999999995
+          ],
+          "IA Power_0": [
+            5.704966666666671,
+            5.787013245033111,
+            5.767439999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2784866666666685,
+            6.356582781456951,
+            6.231646666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7186666666666662,
+            0.7179271523178804,
+            0.7184333333333328
+          ],
+          "GT Power_0": [
+            0.0872533333333333,
+            0.10124503311258279,
+            0.0884666666666667
+          ],
+          "IA Power_0": [
+            5.622306666666666,
+            5.875980132450329,
+            5.583886666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.955393333333334,
+            6.181410596026487,
+            5.951333333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4660,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5754599999999997,
+            0.5763733333333334,
+            0.5750397350993377
+          ],
+          "GT Power_0": [
+            0.03184666666666666,
+            0.013606666666666663,
+            0.013622516556291391
+          ],
+          "IA Power_0": [
+            2.7038933333333324,
+            2.7335666666666683,
+            2.630072847682119
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.966966666666666,
+            2.960360000000002,
+            2.899258278145695
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7147947019867545,
+            0.7428999999999994,
+            0.7146622516556287
+          ],
+          "GT Power_0": [
+            0.0895496688741722,
+            0.08757333333333335,
+            0.08323841059602649
+          ],
+          "IA Power_0": [
+            5.242192052980132,
+            5.543726666666665,
+            5.294384105960265
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.627271523178807,
+            6.0138533333333335,
+            5.644284768211923
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.72751655629139,
+            0.7256026490066217,
+            0.7307466666666663
+          ],
+          "GT Power_0": [
+            0.08630463576158942,
+            0.08333112582781463,
+            0.08429333333333336
+          ],
+          "IA Power_0": [
+            5.267112582781458,
+            5.5733774834437115,
+            5.270293333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.72771523178808,
+            5.976523178807948,
+            5.711573333333335
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7941324503311264,
+            0.7741258278145702,
+            0.7723377483443712
+          ],
+          "GT Power_0": [
+            0.19203973509933772,
+            0.19663576158940396,
+            0.19452980132450332
+          ],
+          "IA Power_0": [
+            5.514854304635762,
+            5.435417218543047,
+            5.507033112582784
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.091980132450332,
+            5.953264900662257,
+            5.98460264900662
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182251655629133,
+            0.7377986577181206,
+            0.7292333333333328
+          ],
+          "GT Power_0": [
+            0.08888741721854304,
+            0.087510067114094,
+            0.1042066666666667
+          ],
+          "IA Power_0": [
+            5.587059602649009,
+            5.6102416107382584,
+            5.361666666666671
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.953788079470198,
+            6.001812080536912,
+            5.794039999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            149,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD169-A9",
+      "number": 4659,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5825733333333333,
+            0.5739668874172184,
+            0.5755033112582777
+          ],
+          "GT Power_0": [
+            0.04555333333333332,
+            0.014596026490066229,
+            0.015258278145695364
+          ],
+          "IA Power_0": [
+            3.0323466666666676,
+            3.3065960264900642,
+            3.065403973509936
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.325226666666667,
+            3.548913907284769,
+            3.283668874172186
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711417218543046,
+            0.7104635761589396,
+            0.7392913907284764
+          ],
+          "GT Power_0": [
+            0.10398013245033118,
+            0.10360927152317881,
+            0.10708609271523176
+          ],
+          "IA Power_0": [
+            5.6796291390728495,
+            6.0545099337748365,
+            5.800278145695366
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.048079470198674,
+            6.444913907284771,
+            6.631927152317879
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7355695364238407,
+            0.7125799999999992,
+            0.7122399999999994
+          ],
+          "GT Power_0": [
+            0.1096092715231788,
+            0.10723999999999999,
+            0.10445333333333337
+          ],
+          "IA Power_0": [
+            5.774033112582781,
+            5.831373333333332,
+            5.845379999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.592635761589401,
+            6.153133333333333,
+            6.160206666666668
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7695894039735104,
+            0.7705496688741726,
+            0.7688466666666669
+          ],
+          "GT Power_0": [
+            0.23297350993377486,
+            0.23321192052980136,
+            0.23292000000000015
+          ],
+          "IA Power_0": [
+            6.243026490066224,
+            6.00092715231788,
+            5.984346666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.768119205298014,
+            6.509238410596029,
+            6.457086666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7170199999999997,
+            0.7175199999999989,
+            0.7175231788079466
+          ],
+          "GT Power_0": [
+            0.11374666666666668,
+            0.11633333333333336,
+            0.1151059602649007
+          ],
+          "IA Power_0": [
+            6.136919999999998,
+            5.793466666666667,
+            5.8621390728476825
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.524539999999999,
+            6.203593333333331,
+            6.263490066225166
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD170-A9",
+      "number": 4658,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5814066666666664,
+            0.574344370860927,
+            0.5893774834437085
+          ],
+          "GT Power_0": [
+            0.03721999999999999,
+            0.014509933774834435,
+            0.01398013245033112
+          ],
+          "IA Power_0": [
+            2.7595200000000015,
+            2.8775231788079485,
+            2.6629602649006627
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0611533333333343,
+            3.118662251655631,
+            3.059794701986755
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711912751677852,
+            0.7111390728476817,
+            0.7135231788079464
+          ],
+          "GT Power_0": [
+            0.09265771812080542,
+            0.09309271523178807,
+            0.09609271523178814
+          ],
+          "IA Power_0": [
+            5.3751677852349,
+            5.146529801324501,
+            5.181821192052979
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.744718120805367,
+            5.53076821192053,
+            5.527225165562914
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129599999999996,
+            0.7250794701986748,
+            0.7133509933774829
+          ],
+          "GT Power_0": [
+            0.09580666666666666,
+            0.0953046357615894,
+            0.09614569536423839
+          ],
+          "IA Power_0": [
+            5.459853333333334,
+            5.240933774834436,
+            5.176291390728477
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.82853333333333,
+            5.716642384105954,
+            5.552264900662252
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7702133333333336,
+            0.7703377483443713,
+            0.7705600000000006
+          ],
+          "GT Power_0": [
+            0.22074666666666667,
+            0.22055629139072844,
+            0.2178333333333334
+          ],
+          "IA Power_0": [
+            5.30701333333333,
+            5.3276953642384095,
+            5.6141400000000035
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.81849333333333,
+            5.851033112582782,
+            6.11788
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179735099337745,
+            0.7340132450331125,
+            0.7175430463576157
+          ],
+          "GT Power_0": [
+            0.10119205298013245,
+            0.10161589403973513,
+            0.0980728476821192
+          ],
+          "IA Power_0": [
+            5.254536423841063,
+            5.2067284768211906,
+            5.552258278145698
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.611609271523177,
+            5.6698874172185425,
+            5.903000000000002
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD156-A9",
+      "number": 4657,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58166,
+            0.5735364238410592,
+            0.5733112582781459
+          ],
+          "GT Power_0": [
+            0.03960666666666666,
+            0.015536423841059601,
+            0.01533774834437086
+          ],
+          "IA Power_0": [
+            2.764773333333334,
+            2.728807947019867,
+            2.6752384105960276
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0998466666666666,
+            2.9526622516556293,
+            2.9238211920529813
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7284799999999996,
+            0.7146266666666663,
+            0.7277799999999993
+          ],
+          "GT Power_0": [
+            0.11672000000000005,
+            0.11960666666666671,
+            0.12010666666666671
+          ],
+          "IA Power_0": [
+            5.192886666666667,
+            5.499460000000002,
+            5.200940000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.655959999999999,
+            5.8824933333333345,
+            5.804459999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712753333333333,
+            0.7134370860927148,
+            0.711273333333333
+          ],
+          "GT Power_0": [
+            0.11703333333333334,
+            0.1189801324503312,
+            0.11937333333333328
+          ],
+          "IA Power_0": [
+            5.2568133333333344,
+            5.241721854304636,
+            5.230039999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.6029666666666635,
+            5.644907284768214,
+            5.598886666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7906000000000004,
+            0.7702450331125827,
+            0.7836066666666669
+          ],
+          "GT Power_0": [
+            0.2522866666666667,
+            0.24943708609271514,
+            0.25144
+          ],
+          "IA Power_0": [
+            5.627526666666666,
+            5.423960264900661,
+            5.386399999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.355379999999999,
+            5.9561456953642375,
+            6.049546666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7196933333333331,
+            0.71882119205298,
+            0.7378199999999996
+          ],
+          "GT Power_0": [
+            0.12464666666666671,
+            0.13235761589403977,
+            0.12910666666666668
+          ],
+          "IA Power_0": [
+            5.6210066666666645,
+            5.258854304635756,
+            5.404233333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.003373333333331,
+            5.6584437086092745,
+            5.928579999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD118-A9",
+      "number": 4656,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58088,
+            0.5737880794701986,
+            0.5726333333333335
+          ],
+          "GT Power_0": [
+            0.039753333333333314,
+            0.014867549668874172,
+            0.013486666666666668
+          ],
+          "IA Power_0": [
+            2.9089799999999997,
+            2.8422582781456964,
+            3.071760000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2595666666666667,
+            3.071860927152318,
+            3.3236266666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7121192052980128,
+            0.712833333333333,
+            0.7133841059602647
+          ],
+          "GT Power_0": [
+            0.10355629139072851,
+            0.10442666666666668,
+            0.10654966887417229
+          ],
+          "IA Power_0": [
+            5.458344370860928,
+            5.693459999999998,
+            5.5531920529801315
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.838860927152316,
+            6.0547866666666685,
+            5.862066225165563
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7267350993377479,
+            0.7109801324503305,
+            0.7351133333333328
+          ],
+          "GT Power_0": [
+            0.10066225165562913,
+            0.098841059602649,
+            0.1012333333333333
+          ],
+          "IA Power_0": [
+            5.412516556291391,
+            5.707986754966887,
+            5.385913333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.83356953642384,
+            6.046013245033114,
+            6.189326666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7703774834437085,
+            0.7689533333333338,
+            0.7718874172185429
+          ],
+          "GT Power_0": [
+            0.23018543046357617,
+            0.22881999999999986,
+            0.23099337748344367
+          ],
+          "IA Power_0": [
+            5.629807947019867,
+            5.574413333333332,
+            5.63425165562914
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.162410596026488,
+            6.088193333333333,
+            6.149198675496687
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7171266666666659,
+            0.7179399999999998,
+            0.7177483443708608
+          ],
+          "GT Power_0": [
+            0.10597333333333331,
+            0.10521333333333334,
+            0.10507947019867557
+          ],
+          "IA Power_0": [
+            5.72839333333333,
+            5.521386666666668,
+            5.504536423841059
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.1220399999999975,
+            5.918573333333335,
+            5.867801324503316
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4655,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5753199999999998,
+            0.5743466666666663,
+            0.5736866666666663
+          ],
+          "GT Power_0": [
+            0.017773333333333332,
+            0.015860000000000006,
+            0.015966666666666667
+          ],
+          "IA Power_0": [
+            3.3900200000000007,
+            3.6399066666666675,
+            3.3061999999999987
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.579526666666667,
+            3.8480933333333343,
+            3.5270266666666656
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141333333333328,
+            0.7119668874172181,
+            0.7288133333333328
+          ],
+          "GT Power_0": [
+            0.11767333333333334,
+            0.12496688741721852,
+            0.11944000000000003
+          ],
+          "IA Power_0": [
+            6.644359999999998,
+            6.611662251655629,
+            6.625666666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9906199999999945,
+            6.966629139072846,
+            7.155513333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7121866666666662,
+            0.712456953642383,
+            0.7125099337748338
+          ],
+          "GT Power_0": [
+            0.11350000000000003,
+            0.11699337748344374,
+            0.11766225165562919
+          ],
+          "IA Power_0": [
+            6.938913333333335,
+            6.644384105960264,
+            6.700993377483443
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.2982133333333365,
+            6.9953112582781465,
+            7.027860927152319
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7833933333333336,
+            0.7702980132450332,
+            0.7698200000000006
+          ],
+          "GT Power_0": [
+            0.2557666666666665,
+            0.2856158940397352,
+            0.2575999999999997
+          ],
+          "IA Power_0": [
+            7.203033333333333,
+            6.905072847682121,
+            6.842533333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.8553999999999995,
+            7.405788079470198,
+            7.372213333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7304172185430461,
+            0.7274266666666663,
+            0.7312185430463577
+          ],
+          "GT Power_0": [
+            0.13590728476821196,
+            0.12455333333333335,
+            0.12472847682119212
+          ],
+          "IA Power_0": [
+            6.761165562913905,
+            7.339380000000001,
+            7.378066225165563
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.298019867549672,
+            7.722266666666664,
+            7.7834503311258345
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4654,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58078,
+            0.5729599999999999,
+            0.5746666666666667
+          ],
+          "GT Power_0": [
+            0.028079999999999997,
+            0.01372666666666667,
+            0.015006666666666668
+          ],
+          "IA Power_0": [
+            3.046393333333334,
+            2.9109333333333334,
+            3.0126800000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3354933333333343,
+            3.183646666666668,
+            3.2526933333333328
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303178807947015,
+            0.7287866666666664,
+            0.7138675496688737
+          ],
+          "GT Power_0": [
+            0.10968874172185429,
+            0.10628666666666668,
+            0.1064701986754967
+          ],
+          "IA Power_0": [
+            5.8832185430463575,
+            6.146633333333333,
+            5.936476821192053
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.335364238410596,
+            6.614480000000001,
+            6.28074834437086
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145333333333331,
+            0.71387417218543,
+            0.7632516556291387
+          ],
+          "GT Power_0": [
+            0.10795333333333328,
+            0.11147019867549676,
+            0.11241059602649014
+          ],
+          "IA Power_0": [
+            5.9469400000000014,
+            6.514178807947021,
+            6.464847682119204
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.302106666666669,
+            6.86608609271523,
+            7.325072847682118
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7737200000000002,
+            0.7728600000000005,
+            0.8546577181208057
+          ],
+          "GT Power_0": [
+            0.2372533333333333,
+            0.2380533333333333,
+            0.2322416107382551
+          ],
+          "IA Power_0": [
+            6.327053333333331,
+            6.337039999999999,
+            9.267255033557046
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.875860000000001,
+            6.835673333333332,
+            9.769570469798657
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7345231788079465,
+            0.7193199999999995,
+            0.7213066666666663
+          ],
+          "GT Power_0": [
+            0.11593377483443709,
+            0.11704666666666666,
+            0.1180933333333334
+          ],
+          "IA Power_0": [
+            6.361735099337749,
+            6.00341333333333,
+            6.028906666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.833721854304635,
+            6.369993333333335,
+            6.397353333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD174-A9",
+      "number": 4653,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.575150684931507,
+            0.5769932885906038,
+            0.5767382550335574
+          ],
+          "GT Power_0": [
+            0.030732876712328744,
+            0.0127248322147651,
+            0.013912751677852348
+          ],
+          "IA Power_0": [
+            0.8481712328767123,
+            1.071530201342282,
+            0.8624832214765102
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.2019246575342464,
+            1.4045033557046982,
+            1.195288590604027
+          ],
+          "name": "Basic",
+          "samples": [
+            146,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7377799999999998,
+            0.7326174496644293,
+            0.726140939597315
+          ],
+          "GT Power_0": [
+            0.09840666666666673,
+            0.1024765100671141,
+            0.0999060402684564
+          ],
+          "IA Power_0": [
+            1.423086666666667,
+            1.814610738255034,
+            1.2802483221476513
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.9859266666666668,
+            2.2505033557046983,
+            1.72548322147651
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7209798657718117,
+            0.7281208053691266,
+            0.7277516778523486
+          ],
+          "GT Power_0": [
+            0.10329530201342285,
+            0.09997315436241616,
+            0.09912751677852348
+          ],
+          "IA Power_0": [
+            1.585469798657718,
+            1.2970738255033558,
+            1.2112147651006706
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.0178255033557058,
+            1.7421610738255033,
+            1.6577516778523491
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            149,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7961744966442957,
+            0.7942333333333332,
+            0.8117785234899336
+          ],
+          "GT Power_0": [
+            0.23440268456375846,
+            0.23914666666666654,
+            0.2394630872483221
+          ],
+          "IA Power_0": [
+            1.9188724832214763,
+            1.2851599999999999,
+            1.3920872483221483
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.5222953020134233,
+            1.8975533333333332,
+            2.021255033557047
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            149,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7317449664429528,
+            0.7270469798657715,
+            0.7263918918918915
+          ],
+          "GT Power_0": [
+            0.1079664429530201,
+            0.10778523489932887,
+            0.1081824324324324
+          ],
+          "IA Power_0": [
+            1.2599530201342273,
+            1.2317852348993292,
+            1.526168918918919
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.7127785234899329,
+            1.6751208053691278,
+            1.968520270270271
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            149,
+            148
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4652,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6116533333333332,
+            0.573615894039735,
+            0.5848066666666664
+          ],
+          "GT Power_0": [
+            0.04449999999999999,
+            0.015609271523178807,
+            0.01516
+          ],
+          "IA Power_0": [
+            5.4468933333333345,
+            3.3224635761589427,
+            3.2996466666666673
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.737113333333334,
+            3.5630993377483438,
+            3.601600000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109735099337745,
+            0.7120533333333328,
+            0.7297666666666666
+          ],
+          "GT Power_0": [
+            0.11611920529801331,
+            0.11616666666666665,
+            0.11606000000000004
+          ],
+          "IA Power_0": [
+            6.595423841059602,
+            6.596153333333336,
+            6.878926666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.930496688741719,
+            6.98579333333333,
+            7.400799999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.710793333333333,
+            0.712099337748344,
+            0.7217399999999997
+          ],
+          "GT Power_0": [
+            0.11489333333333329,
+            0.11692052980132452,
+            0.12411333333333337
+          ],
+          "IA Power_0": [
+            6.612986666666664,
+            6.6375695364238405,
+            7.424746666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.975360000000002,
+            6.9736887417218565,
+            7.686240000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7826666666666668,
+            0.7691523178807952,
+            0.769786666666667
+          ],
+          "GT Power_0": [
+            0.25428000000000006,
+            0.25198675496688755,
+            0.25365999999999994
+          ],
+          "IA Power_0": [
+            6.881780000000002,
+            6.858662251655629,
+            7.213766666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4814066666666665,
+            7.402317880794702,
+            7.734839999999993
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7160860927152312,
+            0.7225364238410588,
+            0.7319066666666664
+          ],
+          "GT Power_0": [
+            0.12283443708609278,
+            0.12227814569536419,
+            0.12388666666666666
+          ],
+          "IA Power_0": [
+            6.68474834437086,
+            7.039874172185431,
+            6.800666666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.064350993377484,
+            7.450125827814573,
+            7.358300000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4651,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58192,
+            0.5865364238410598,
+            0.5745
+          ],
+          "GT Power_0": [
+            0.035479999999999984,
+            0.013317880794701987,
+            0.013266666666666664
+          ],
+          "IA Power_0": [
+            2.687733333333333,
+            2.830543046357617,
+            2.5970933333333317
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.063006666666665,
+            3.1149139072847665,
+            2.8455133333333347
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7280733333333326,
+            0.7132799999999994,
+            0.7129333333333325
+          ],
+          "GT Power_0": [
+            0.09184666666666669,
+            0.09099333333333336,
+            0.09031999999999998
+          ],
+          "IA Power_0": [
+            5.039473333333333,
+            5.065473333333335,
+            4.9967799999999984
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.565580000000001,
+            5.413753333333331,
+            5.37052
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7185333333333329,
+            0.71324,
+            0.8692229729729736
+          ],
+          "GT Power_0": [
+            0.09033333333333338,
+            0.09020666666666666,
+            0.08700000000000004
+          ],
+          "IA Power_0": [
+            5.612486666666664,
+            5.051960000000001,
+            15.897662162162161
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.970933333333332,
+            5.425780000000003,
+            16.25095270270271
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            148
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8559266666666667,
+            0.7884965986394562,
+            0.7748741721854308
+          ],
+          "GT Power_0": [
+            0.2053666666666666,
+            0.2053265306122449,
+            0.2077814569536422
+          ],
+          "IA Power_0": [
+            10.187793333333333,
+            6.011585034013604,
+            5.360834437086097
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            10.724286666666675,
+            6.4935646258503406,
+            5.8659933774834485
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            147,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7334966887417218,
+            0.7192185430463568,
+            0.7337019867549666
+          ],
+          "GT Power_0": [
+            0.09529139072847684,
+            0.09497350993377485,
+            0.09684768211920537
+          ],
+          "IA Power_0": [
+            5.515940397350992,
+            5.183761589403976,
+            5.211072847682119
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.028470198675499,
+            5.539225165562915,
+            5.674437086092717
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD136-A9",
+      "number": 4650,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5837880794701987,
+            0.5753377483443711,
+            0.5731733333333335
+          ],
+          "GT Power_0": [
+            0.04303973509933773,
+            0.014443708609271518,
+            0.013486666666666664
+          ],
+          "IA Power_0": [
+            2.811192052980132,
+            2.818622516556291,
+            2.6987399999999986
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1955099337748347,
+            3.0664370860927166,
+            2.9521600000000006
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7287019867549668,
+            0.7146291390728473,
+            0.7157666666666661
+          ],
+          "GT Power_0": [
+            0.08930463576158942,
+            0.0917880794701987,
+            0.09206666666666671
+          ],
+          "IA Power_0": [
+            5.220483443708611,
+            5.232602649006624,
+            5.4313400000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.6548476821192075,
+            5.55787417218543,
+            5.770626666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128278145695363,
+            0.7253443708609267,
+            0.7260860927152311
+          ],
+          "GT Power_0": [
+            0.08873509933774835,
+            0.09436423841059606,
+            0.0910132450331126
+          ],
+          "IA Power_0": [
+            5.25373509933775,
+            5.304682119205295,
+            5.196847682119209
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.585112582781461,
+            5.81132450331126,
+            5.603456953642382
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7964666666666665,
+            0.7802715231788083,
+            0.7781666666666672
+          ],
+          "GT Power_0": [
+            0.21761333333333344,
+            0.22058940397350993,
+            0.2153533333333334
+          ],
+          "IA Power_0": [
+            5.530079999999999,
+            5.447258278145693,
+            5.469153333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.066466666666669,
+            5.932456953642384,
+            5.9506733333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7181133333333327,
+            0.7372733333333329,
+            0.7247086092715231
+          ],
+          "GT Power_0": [
+            0.09698666666666675,
+            0.09356666666666666,
+            0.09341059602649011
+          ],
+          "IA Power_0": [
+            5.378506666666668,
+            5.673380000000001,
+            5.788529801324501
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.685633333333333,
+            6.125966666666668,
+            6.12590728476821
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD157-A9",
+      "number": 4649,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.582086666666667,
+            0.582271523178808,
+            0.5752450331125827
+          ],
+          "GT Power_0": [
+            0.043533333333333306,
+            0.01591390728476821,
+            0.015172185430463572
+          ],
+          "IA Power_0": [
+            3.1395000000000004,
+            3.507231788079469,
+            3.2769867549668867
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4626266666666674,
+            3.733966887417219,
+            3.440761589403974
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712311258278145,
+            0.7116866666666662,
+            0.7129799999999993
+          ],
+          "GT Power_0": [
+            0.1186423841059603,
+            0.1170466666666667,
+            0.11426
+          ],
+          "IA Power_0": [
+            5.910880794701987,
+            6.383206666666665,
+            5.965866666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.278417218543047,
+            6.721433333333334,
+            6.357633333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7283708609271518,
+            0.7318807947019864,
+            0.7133066666666665
+          ],
+          "GT Power_0": [
+            0.11296026490066234,
+            0.11381456953642384,
+            0.11346666666666666
+          ],
+          "IA Power_0": [
+            6.068165562913906,
+            6.3403377483443695,
+            6.064893333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.538589403973511,
+            6.849668874172182,
+            6.4695399999999985
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7862333333333337,
+            0.7715562913907289,
+            0.7714266666666668
+          ],
+          "GT Power_0": [
+            0.2451666666666668,
+            0.24304635761589402,
+            0.2376933333333334
+          ],
+          "IA Power_0": [
+            6.266853333333332,
+            6.255715231788079,
+            6.369766666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.911399999999996,
+            6.818410596026491,
+            6.864273333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7184105960264897,
+            0.7337333333333329,
+            0.7356423841059601
+          ],
+          "GT Power_0": [
+            0.12245033112582786,
+            0.12196666666666675,
+            0.12109933774834437
+          ],
+          "IA Power_0": [
+            6.509649006622521,
+            6.215186666666668,
+            6.281456953642388
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.860417218543048,
+            6.668786666666666,
+            6.684331125827816
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4648,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.582213333333333,
+            0.5740132450331125,
+            0.5882066666666665
+          ],
+          "GT Power_0": [
+            0.03190666666666665,
+            0.012582781456953641,
+            0.012753333333333335
+          ],
+          "IA Power_0": [
+            2.895573333333333,
+            3.04307284768212,
+            2.774726666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2079199999999997,
+            3.323887417218544,
+            3.1288933333333344
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139266666666662,
+            0.7294133333333329,
+            0.7300264900662247
+          ],
+          "GT Power_0": [
+            0.08388666666666668,
+            0.08543999999999995,
+            0.08352317880794705
+          ],
+          "IA Power_0": [
+            5.556599999999998,
+            5.9012133333333345,
+            5.447291390728478
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.89848,
+            6.438106666666667,
+            5.920682119205299
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140264900662247,
+            0.7300596026490069,
+            0.7261456953642379
+          ],
+          "GT Power_0": [
+            0.08531788079470201,
+            0.08300662251655631,
+            0.08642384105960266
+          ],
+          "IA Power_0": [
+            5.560986754966885,
+            5.609052980132449,
+            6.120231788079467
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.910092715231792,
+            6.074536423841063,
+            6.426682119205296
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7891258278145701,
+            0.7719266666666665,
+            0.7897086092715236
+          ],
+          "GT Power_0": [
+            0.19639735099337743,
+            0.19610666666666668,
+            0.19470198675496686
+          ],
+          "IA Power_0": [
+            5.9820463576158955,
+            5.745073333333337,
+            5.78269536423841
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.630344370860927,
+            6.234093333333332,
+            6.390225165562916
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7371866666666665,
+            0.7194105960264898,
+            0.7295099337748341
+          ],
+          "GT Power_0": [
+            0.08640000000000005,
+            0.08968211920529809,
+            0.09130463576158941
+          ],
+          "IA Power_0": [
+            5.994533333333335,
+            5.658569536423841,
+            5.725596026490067
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.494859999999999,
+            6.00827152317881,
+            6.15807284768212
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4647,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5832684563758386,
+            0.5696953642384107,
+            0.5751258278145693
+          ],
+          "GT Power_0": [
+            0.03668456375838925,
+            0.01624503311258278,
+            0.01650331125827814
+          ],
+          "IA Power_0": [
+            3.483899328859062,
+            3.203490066225165,
+            3.3866556291390726
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8368389261744973,
+            3.408112582781457,
+            3.6167152317880804
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7165599999999994,
+            0.7437483443708605,
+            0.7180266666666658
+          ],
+          "GT Power_0": [
+            0.12190666666666665,
+            0.12779470198675497,
+            0.12118666666666672
+          ],
+          "IA Power_0": [
+            7.508646666666666,
+            6.851741721854303,
+            6.703480000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.840666666666667,
+            7.742304635761589,
+            7.1826666666666705
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131854304635754,
+            0.727873333333333,
+            0.7161059602649004
+          ],
+          "GT Power_0": [
+            0.11872847682119206,
+            0.11538000000000001,
+            0.1211854304635762
+          ],
+          "IA Power_0": [
+            7.092741721854305,
+            6.875846666666666,
+            6.84525165562914
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.451788079470202,
+            7.335580000000001,
+            7.193490066225162
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7801133333333335,
+            0.7802866666666675,
+            0.7829266666666671
+          ],
+          "GT Power_0": [
+            0.2773133333333331,
+            0.29459333333333326,
+            0.28231333333333336
+          ],
+          "IA Power_0": [
+            7.014453333333336,
+            6.967419999999999,
+            7.328373333333328
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.536300000000002,
+            7.502813333333335,
+            7.8732933333333355
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7206622516556284,
+            0.7192649006622516,
+            0.7195496688741716
+          ],
+          "GT Power_0": [
+            0.13050331125827816,
+            0.12964238410596024,
+            0.12231125827814578
+          ],
+          "IA Power_0": [
+            6.920364238410593,
+            6.786384105960263,
+            7.192304635761585
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.272682119205298,
+            7.211370860927155,
+            7.53641059602649
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4646,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5835099337748343,
+            0.5745231788079468,
+            0.5737880794701985
+          ],
+          "GT Power_0": [
+            0.03749668874172184,
+            0.01680132450331126,
+            0.01598013245033113
+          ],
+          "IA Power_0": [
+            3.4161655629139065,
+            3.6865827814569503,
+            3.2779403973509944
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.803211920529803,
+            3.9153112582781486,
+            3.5232450331125817
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7146733333333332,
+            0.713655629139073,
+            0.7322333333333334
+          ],
+          "GT Power_0": [
+            0.12142666666666665,
+            0.12301324503311253,
+            0.12201333333333333
+          ],
+          "IA Power_0": [
+            6.5088333333333335,
+            6.849708609271524,
+            8.435340000000004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8839333333333315,
+            7.258503311258276,
+            8.776240000000003
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714350993377483,
+            0.7265599999999991,
+            0.7145733333333327
+          ],
+          "GT Power_0": [
+            0.12122516556291388,
+            0.11972666666666672,
+            0.11782
+          ],
+          "IA Power_0": [
+            6.540337748344369,
+            6.596473333333333,
+            6.751620000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.913384105960268,
+            7.014933333333336,
+            7.167146666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7786333333333335,
+            0.7710066666666672,
+            0.771686666666667
+          ],
+          "GT Power_0": [
+            0.2649466666666667,
+            0.2655533333333333,
+            0.2666933333333333
+          ],
+          "IA Power_0": [
+            7.1772666666666645,
+            6.774326666666667,
+            7.043320000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.709533333333338,
+            7.310100000000002,
+            7.525006666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7339999999999997,
+            0.729233333333333,
+            0.7177947019867545
+          ],
+          "GT Power_0": [
+            0.12709271523178806,
+            0.12450666666666668,
+            0.12639735099337746
+          ],
+          "IA Power_0": [
+            7.002225165562913,
+            6.789740000000003,
+            6.666682119205298
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.499834437086091,
+            7.188986666666667,
+            7.041178807947021
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4645,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5748609271523183,
+            0.5747350993377484,
+            0.5881333333333332
+          ],
+          "GT Power_0": [
+            0.013496688741721856,
+            0.01505960264900662,
+            0.012879999999999997
+          ],
+          "IA Power_0": [
+            2.6705960264900663,
+            2.89569536423841,
+            2.707753333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.927258278145695,
+            3.1453178807947033,
+            3.0268933333333337
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124466666666666,
+            0.7266622516556287,
+            0.7317483443708606
+          ],
+          "GT Power_0": [
+            0.09293999999999994,
+            0.09450331125827818,
+            0.09431788079470196
+          ],
+          "IA Power_0": [
+            5.014706666666664,
+            5.013165562913907,
+            5.050317880794704
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.377759999999999,
+            5.505933774834438,
+            5.517337748344368
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159799999999997,
+            0.7366754966887412,
+            0.7153642384105956
+          ],
+          "GT Power_0": [
+            0.09207333333333341,
+            0.09013907284768213,
+            0.09003973509933783
+          ],
+          "IA Power_0": [
+            5.3742133333333335,
+            5.431814569536424,
+            5.068754966887417
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.679313333333335,
+            5.879629139072851,
+            5.416649006622515
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717799999999999,
+            0.7901200000000002,
+            0.7713443708609272
+          ],
+          "GT Power_0": [
+            0.2054799999999999,
+            0.20657999999999985,
+            0.20473509933774825
+          ],
+          "IA Power_0": [
+            5.687253333333334,
+            5.279066666666667,
+            5.233589403973511
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2319999999999975,
+            5.907833333333336,
+            5.8413509933774845
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7403708609271518,
+            0.7368609271523178,
+            0.721198675496688
+          ],
+          "GT Power_0": [
+            0.10258278145695367,
+            0.09952980132450337,
+            0.10798013245033117
+          ],
+          "IA Power_0": [
+            5.107741721854305,
+            5.165403973509933,
+            5.387278145695365
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.692225165562913,
+            5.63153642384106,
+            5.763980132450331
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4644,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5740738255033553,
+            0.5899602649006619,
+            0.5730333333333333
+          ],
+          "GT Power_0": [
+            0.03824161073825502,
+            0.01365562913907285,
+            0.013646666666666668
+          ],
+          "IA Power_0": [
+            3.1344832214765095,
+            3.5498741721854294,
+            3.11198
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3797248322147637,
+            3.949145695364238,
+            3.3606266666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132052980132446,
+            0.7476466666666667,
+            0.7121409395973148
+          ],
+          "GT Power_0": [
+            0.10288079470198683,
+            0.09948666666666664,
+            0.0988657718120806
+          ],
+          "IA Power_0": [
+            6.064735099337746,
+            7.94848666666667,
+            6.103087248322149
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.408317880794702,
+            8.301953333333332,
+            6.430187919463088
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128211920529797,
+            0.712546666666666,
+            0.7342450331125823
+          ],
+          "GT Power_0": [
+            0.09968874172185432,
+            0.10311999999999999,
+            0.10261589403973512
+          ],
+          "IA Power_0": [
+            6.10751655629139,
+            6.102306666666669,
+            6.085238410596027
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.495781456953646,
+            6.430586666666672,
+            6.792675496688742
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7690266666666671,
+            0.7706158940397354,
+            0.7732666666666668
+          ],
+          "GT Power_0": [
+            0.23375999999999994,
+            0.2244701986754966,
+            0.2248733333333333
+          ],
+          "IA Power_0": [
+            6.419580000000001,
+            6.361874172185429,
+            6.337293333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.871886666666669,
+            6.832655629139078,
+            6.85762
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7353576158940397,
+            0.7180066225165564,
+            0.7288266666666663
+          ],
+          "GT Power_0": [
+            0.1084503311258278,
+            0.10736423841059597,
+            0.10689333333333337
+          ],
+          "IA Power_0": [
+            6.610357615894039,
+            6.106900662251657,
+            6.173866666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.074059602649008,
+            6.548165562913905,
+            6.60812
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4643,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5810469798657718,
+            0.573814569536424,
+            0.5729200000000003
+          ],
+          "GT Power_0": [
+            0.0383959731543624,
+            0.01806622516556291,
+            0.015653333333333335
+          ],
+          "IA Power_0": [
+            3.102744966442952,
+            3.0013377483443704,
+            3.330506666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.43079865771812,
+            3.2383178807947024,
+            3.5713533333333345
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.727513333333333,
+            0.7140399999999996,
+            0.7282119205298003
+          ],
+          "GT Power_0": [
+            0.1310600000000001,
+            0.13013999999999998,
+            0.12945033112582788
+          ],
+          "IA Power_0": [
+            5.879053333333331,
+            5.903739999999999,
+            5.93394701986755
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.34216,
+            6.343033333333332,
+            6.480615894039732
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7281986754966883,
+            0.7132582781456949,
+            0.7292133333333329
+          ],
+          "GT Power_0": [
+            0.12862251655629134,
+            0.1251788079470199,
+            0.12554666666666667
+          ],
+          "IA Power_0": [
+            5.9796225165562875,
+            6.47399337748344,
+            5.993693333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4771721854304625,
+            6.835933774834435,
+            6.477173333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7677417218543049,
+            0.7702133333333337,
+            0.7737666666666666
+          ],
+          "GT Power_0": [
+            0.27620529801324506,
+            0.2765000000000001,
+            0.2804199999999999
+          ],
+          "IA Power_0": [
+            6.149026490066227,
+            6.478933333333332,
+            6.288013333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.701470198675493,
+            7.031326666666666,
+            6.871699999999994
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7316399999999996,
+            0.7175165562913906,
+            0.7467133333333332
+          ],
+          "GT Power_0": [
+            0.13496000000000002,
+            0.13065562913907283,
+            0.1356666666666667
+          ],
+          "IA Power_0": [
+            6.016553333333333,
+            6.367894039735099,
+            6.159493333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.540533333333333,
+            6.776211920529801,
+            6.732926666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4642,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6440536912751678,
+            0.6711324503311259,
+            0.6345774647887326
+          ],
+          "GT Power_0": [
+            0.031228187919463066,
+            0.015417218543046356,
+            0.014633802816901407
+          ],
+          "IA Power_0": [
+            10.791731543624161,
+            13.87785430463576,
+            6.236880281690139
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            11.026087248322144,
+            14.366099337748338,
+            6.467697183098588
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            142
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7273999999999994,
+            0.7099266666666663,
+            0.7102399999999999
+          ],
+          "GT Power_0": [
+            0.10792000000000009,
+            0.10665333333333336,
+            0.10938000000000005
+          ],
+          "IA Power_0": [
+            6.460360000000001,
+            6.362419999999996,
+            6.718799999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.990093333333332,
+            6.734373333333335,
+            7.082773333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711546666666666,
+            0.7100666666666661,
+            0.7253799999999996
+          ],
+          "GT Power_0": [
+            0.11021333333333332,
+            0.11420666666666673,
+            0.10994666666666665
+          ],
+          "IA Power_0": [
+            6.364919999999999,
+            6.319893333333335,
+            6.796473333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.750859999999999,
+            6.688,
+            7.193380000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.782946666666667,
+            0.7684768211920534,
+            0.7672800000000001
+          ],
+          "GT Power_0": [
+            0.2500666666666667,
+            0.2563311258278146,
+            0.24975333333333338
+          ],
+          "IA Power_0": [
+            6.698566666666668,
+            6.607125827814568,
+            6.597293333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.267793333333335,
+            7.124887417218544,
+            7.135346666666663
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159799999999996,
+            0.7169333333333332,
+            0.7195430463576156
+          ],
+          "GT Power_0": [
+            0.1174533333333333,
+            0.11791333333333334,
+            0.11933112582781463
+          ],
+          "IA Power_0": [
+            6.5262133333333345,
+            6.851339999999999,
+            6.543185430463577
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.865506666666665,
+            7.194420000000002,
+            6.938589403973509
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4641,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.581271523178808,
+            0.5738733333333336,
+            0.5739266666666665
+          ],
+          "GT Power_0": [
+            0.04371523178807945,
+            0.01576666666666666,
+            0.015846666666666672
+          ],
+          "IA Power_0": [
+            3.6995629139072848,
+            3.278359999999999,
+            3.611973333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.991649006622516,
+            3.511566666666667,
+            3.864860000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131933333333329,
+            0.7127599999999995,
+            0.7226799999999995
+          ],
+          "GT Power_0": [
+            0.11798666666666667,
+            0.11859999999999997,
+            0.13603333333333337
+          ],
+          "IA Power_0": [
+            6.45848,
+            6.5089533333333325,
+            6.8719600000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.812320000000001,
+            6.84126,
+            7.375519999999998
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127814569536419,
+            0.7280794701986756,
+            0.7129403973509931
+          ],
+          "GT Power_0": [
+            0.1179403973509934,
+            0.11660927152317888,
+            0.11587417218543053
+          ],
+          "IA Power_0": [
+            6.475649006622516,
+            6.522225165562914,
+            6.837953642384099
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.824066225165561,
+            7.0120662251655625,
+            7.20734437086093
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7698800000000008,
+            0.7707533333333338,
+            0.7698145695364246
+          ],
+          "GT Power_0": [
+            0.2605533333333334,
+            0.2584333333333333,
+            0.25998013245033114
+          ],
+          "IA Power_0": [
+            6.817373333333335,
+            6.7061333333333355,
+            6.817807947019871
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.290733333333337,
+            7.246266666666667,
+            7.341132450331124
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.732173333333333,
+            0.7195906040268448,
+            0.719079470198675
+          ],
+          "GT Power_0": [
+            0.12423333333333342,
+            0.12464429530201342,
+            0.12427152317880795
+          ],
+          "IA Power_0": [
+            6.636053333333335,
+            7.407268456375839,
+            6.620920529801324
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.122866666666669,
+            7.804295302013421,
+            6.9844701986754965
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            149,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4640,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5762466666666666,
+            0.5965866666666663,
+            0.5745364238410596
+          ],
+          "GT Power_0": [
+            0.03834,
+            0.012833333333333332,
+            0.01333774834437086
+          ],
+          "IA Power_0": [
+            2.857993333333334,
+            2.766573333333332,
+            2.7323576158940392
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1233733333333347,
+            3.221286666666666,
+            3.0177748344370863
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124199999999997,
+            0.7121589403973505,
+            0.7138733333333327
+          ],
+          "GT Power_0": [
+            0.09369333333333336,
+            0.0954437086092716,
+            0.09078
+          ],
+          "IA Power_0": [
+            5.685199999999999,
+            5.380152317880794,
+            5.396739999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.991326666666665,
+            5.780748344370863,
+            5.75786
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713390728476821,
+            0.7135799999999997,
+            0.7274900662251651
+          ],
+          "GT Power_0": [
+            0.0890198675496689,
+            0.09265333333333338,
+            0.09052980132450333
+          ],
+          "IA Power_0": [
+            5.680377483443709,
+            5.462513333333334,
+            5.429324503311261
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.03368874172185,
+            5.804773333333334,
+            5.895298013245029
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8027284768211923,
+            0.7713642384105961,
+            0.7860666666666667
+          ],
+          "GT Power_0": [
+            0.20154966887417222,
+            0.2039403973509934,
+            0.1999666666666667
+          ],
+          "IA Power_0": [
+            5.6464172185430455,
+            5.663635761589403,
+            5.95502
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.341139072847679,
+            6.133132450331127,
+            6.52621333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7189599999999999,
+            0.7191192052980128,
+            0.7388333333333329
+          ],
+          "GT Power_0": [
+            0.09617333333333342,
+            0.09904635761589406,
+            0.09986000000000002
+          ],
+          "IA Power_0": [
+            5.5240399999999985,
+            5.569642384105964,
+            5.610653333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.854353333333335,
+            5.905205298013245,
+            6.284826666666663
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD159-A9",
+      "number": 4639,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5815200000000001,
+            0.5736953642384104,
+            0.5917
+          ],
+          "GT Power_0": [
+            0.04296666666666663,
+            0.01577483443708609,
+            0.01684
+          ],
+          "IA Power_0": [
+            2.7754933333333347,
+            2.7319139072847674,
+            2.660346666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1034133333333345,
+            2.9788476821192056,
+            3.235706666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7360466666666662,
+            0.711959999999999,
+            0.7128874172185429
+          ],
+          "GT Power_0": [
+            0.12315333333333332,
+            0.11802,
+            0.11625827814569537
+          ],
+          "IA Power_0": [
+            5.404366666666666,
+            5.231853333333333,
+            5.204284768211919
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.110926666666666,
+            5.585886666666666,
+            5.553026490066227
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7119536423841054,
+            0.7125533333333333,
+            0.7208211920529793
+          ],
+          "GT Power_0": [
+            0.1139470198675497,
+            0.12150666666666667,
+            0.11362913907284765
+          ],
+          "IA Power_0": [
+            5.453092715231786,
+            5.189060000000003,
+            5.518205298013247
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.832344370860928,
+            5.540526666666665,
+            5.9047218543046345
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7715133333333339,
+            0.792403973509934,
+            0.790403973509934
+          ],
+          "GT Power_0": [
+            0.2759933333333333,
+            0.24186092715231783,
+            0.24343708609271522
+          ],
+          "IA Power_0": [
+            5.427900000000001,
+            5.410152317880797,
+            5.654443708609272
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.939426666666663,
+            6.248516556291392,
+            6.301894039735101
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182715231788078,
+            0.7192384105960261,
+            0.736033333333333
+          ],
+          "GT Power_0": [
+            0.12372847682119212,
+            0.12142384105960267,
+            0.12545999999999993
+          ],
+          "IA Power_0": [
+            5.201576158940399,
+            5.248688741721855,
+            5.5575866666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.639655629139072,
+            5.632337748344373,
+            6.059460000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4638,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5845810810810811,
+            0.5741589403973514,
+            0.573913333333333
+          ],
+          "GT Power_0": [
+            0.03599999999999997,
+            0.016218543046357618,
+            0.01644
+          ],
+          "IA Power_0": [
+            4.38799324324324,
+            3.6380993377483435,
+            3.5820666666666656
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.7142027027027025,
+            3.885370860927152,
+            3.859899999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            148,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7134066666666661,
+            0.7126423841059599,
+            0.7289337748344366
+          ],
+          "GT Power_0": [
+            0.11191333333333338,
+            0.11160927152317884,
+            0.11064900662251662
+          ],
+          "IA Power_0": [
+            7.435453333333331,
+            7.109245033112583,
+            7.0230794701986765
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.786540000000003,
+            7.437251655629137,
+            7.522629139072846
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7118145695364233,
+            0.7128999999999993,
+            0.7140993377483439
+          ],
+          "GT Power_0": [
+            0.11025165562913909,
+            0.10829333333333334,
+            0.1092450331125828
+          ],
+          "IA Power_0": [
+            7.515662251655626,
+            7.177993333333335,
+            7.208509933774831
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.8503178807947025,
+            7.541746666666669,
+            7.548291390728476
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717000000000002,
+            0.7706423841059606,
+            0.7719337748344379
+          ],
+          "GT Power_0": [
+            0.2400666666666667,
+            0.24305960264900675,
+            0.24251655629139066
+          ],
+          "IA Power_0": [
+            7.473833333333335,
+            7.430052980132451,
+            7.37523178807947
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.901799999999998,
+            7.919271523178808,
+            7.903622516556291
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7312781456953636,
+            0.7261599999999999,
+            0.7204133333333328
+          ],
+          "GT Power_0": [
+            0.11454304635761592,
+            0.11746666666666661,
+            0.11775333333333327
+          ],
+          "IA Power_0": [
+            7.78772847682119,
+            7.382166666666664,
+            7.628846666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.122397350993376,
+            7.698120000000002,
+            7.9910666666666685
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4637,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5817046979865771,
+            0.589072847682119,
+            0.5738940397350991
+          ],
+          "GT Power_0": [
+            0.027369127516778512,
+            0.015225165562913904,
+            0.014218543046357612
+          ],
+          "IA Power_0": [
+            3.1877382550335582,
+            3.1614039735099353,
+            3.1360927152317877
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5508657718120795,
+            3.523662251655629,
+            3.3565165562913895
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144133333333325,
+            0.7398940397350987,
+            0.7271721854304637
+          ],
+          "GT Power_0": [
+            0.10786666666666671,
+            0.11251655629139069,
+            0.11028476821192054
+          ],
+          "IA Power_0": [
+            6.523673333333329,
+            6.274397350993376,
+            6.3260794701986764
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.897846666666666,
+            7.211258278145696,
+            6.748781456953642
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132384105960262,
+            0.7194799999999993,
+            0.7240993377483436
+          ],
+          "GT Power_0": [
+            0.10959602649006622,
+            0.10754000000000002,
+            0.11278807947019877
+          ],
+          "IA Power_0": [
+            6.6530662251655635,
+            6.376686666666668,
+            6.305721854304634
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.000801324503315,
+            6.733266666666666,
+            6.806913907284765
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7758999999999999,
+            0.7718400000000006,
+            0.7897800000000001
+          ],
+          "GT Power_0": [
+            0.23416000000000006,
+            0.23601333333333324,
+            0.2351
+          ],
+          "IA Power_0": [
+            7.13456,
+            6.486773333333332,
+            6.834526666666671
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.633380000000001,
+            6.989473333333332,
+            7.467546666666663
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7376225165562911,
+            0.7353377483443702,
+            0.7342333333333331
+          ],
+          "GT Power_0": [
+            0.12025165562913917,
+            0.11458940397350996,
+            0.11350666666666666
+          ],
+          "IA Power_0": [
+            6.41570198675497,
+            6.353059602649005,
+            6.649120000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.968622516556289,
+            6.814887417218543,
+            7.185406666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD162-A9",
+      "number": 4636,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5756866666666661,
+            0.5905000000000001,
+            0.574593333333333
+          ],
+          "GT Power_0": [
+            0.030553333333333328,
+            0.01572666666666667,
+            0.015366666666666667
+          ],
+          "IA Power_0": [
+            2.7553466666666653,
+            2.6636399999999982,
+            2.911139999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.016826666666666,
+            3.0492533333333323,
+            3.1821066666666673
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133178807947014,
+            0.7469867549668875,
+            0.7394933333333332
+          ],
+          "GT Power_0": [
+            0.11616556291390724,
+            0.11482119205298016,
+            0.1099066666666667
+          ],
+          "IA Power_0": [
+            5.23912582781457,
+            6.701880794701988,
+            7.948426666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.620476821192052,
+            7.481443708609275,
+            8.36577333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123112582781458,
+            0.7182317880794702,
+            0.7206953642384099
+          ],
+          "GT Power_0": [
+            0.11333112582781468,
+            0.11303311258278151,
+            0.11294039735099334
+          ],
+          "IA Power_0": [
+            6.4515960264900665,
+            6.0301920529801345,
+            5.921225165562914
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.912185430463576,
+            6.47777483443709,
+            6.3280264900662235
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7788533333333335,
+            0.7762251655629142,
+            0.7973112582781453
+          ],
+          "GT Power_0": [
+            0.24624,
+            0.2487549668874172,
+            0.24389403973509935
+          ],
+          "IA Power_0": [
+            5.974153333333328,
+            6.511960264900663,
+            6.145251655629142
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.574333333333332,
+            7.0997880794702,
+            6.788423841059603
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7263708609271521,
+            0.7306711409395968,
+            0.7281655629139072
+          ],
+          "GT Power_0": [
+            0.12264238410596025,
+            0.12078523489932888,
+            0.12214569536423846
+          ],
+          "IA Power_0": [
+            6.092410596026491,
+            6.65148322147651,
+            6.0592516556291365
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.552933774834435,
+            7.043174496644293,
+            6.489966887417216
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            149,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4635,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5845933333333331,
+            0.5711589403973507,
+            0.5757666666666665
+          ],
+          "GT Power_0": [
+            0.04901999999999999,
+            0.019026490066225164,
+            0.020673333333333332
+          ],
+          "IA Power_0": [
+            2.9526866666666662,
+            3.0103907284768217,
+            2.8744333333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3568866666666666,
+            3.25794701986755,
+            3.1204066666666654
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109072847682112,
+            0.7113576158940391,
+            0.7280933333333329
+          ],
+          "GT Power_0": [
+            0.1407615894039735,
+            0.14109271523178804,
+            0.1394733333333333
+          ],
+          "IA Power_0": [
+            5.543602649006623,
+            5.539549668874171,
+            5.5706133333333385
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9505827814569505,
+            5.943390728476822,
+            6.089913333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7111390728476821,
+            0.7280666666666662,
+            0.7214304635761585
+          ],
+          "GT Power_0": [
+            0.14263576158940397,
+            0.14146000000000003,
+            0.1418741721854305
+          ],
+          "IA Power_0": [
+            5.801543046357619,
+            5.5479666666666665,
+            5.587357615894038
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.20688079470199,
+            6.131819999999997,
+            6.111284768211918
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.780193333333334,
+            0.7656600000000001,
+            0.7744172185430466
+          ],
+          "GT Power_0": [
+            0.324246666666667,
+            0.3249133333333334,
+            0.3649536423841059
+          ],
+          "IA Power_0": [
+            6.112899999999999,
+            5.79847333333333,
+            5.779403973509935
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.790159999999999,
+            6.4275933333333315,
+            6.452735099337749
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187133333333325,
+            0.716801324503311,
+            0.7218866666666663
+          ],
+          "GT Power_0": [
+            0.16716666666666663,
+            0.15907947019867547,
+            0.15319999999999992
+          ],
+          "IA Power_0": [
+            6.166133333333332,
+            5.698403973509936,
+            5.9030599999999955
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.587233333333333,
+            6.108119205298015,
+            6.311106666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD131-A9",
+      "number": 4634,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.585872483221476,
+            0.5903933333333332,
+            0.5775496688741723
+          ],
+          "GT Power_0": [
+            0.045610738255033534,
+            0.014346666666666664,
+            0.014887417218543045
+          ],
+          "IA Power_0": [
+            3.677872483221476,
+            3.8769266666666664,
+            3.5700529801324508
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.897630872483223,
+            4.01553333333333,
+            3.7332516556291413
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7248874172185427,
+            0.7178807947019865,
+            0.7185666666666665
+          ],
+          "GT Power_0": [
+            0.120271523178808,
+            0.10406622516556292,
+            0.10096666666666661
+          ],
+          "IA Power_0": [
+            5.920397350993378,
+            5.82443046357616,
+            6.122819999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.250980132450331,
+            6.1282649006622565,
+            6.39098
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7169399999999995,
+            0.7171721854304633,
+            0.723993333333333
+          ],
+          "GT Power_0": [
+            0.1024666666666667,
+            0.101046357615894,
+            0.10654000000000002
+          ],
+          "IA Power_0": [
+            5.80384,
+            5.784973509933774,
+            5.9683399999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.112713333333331,
+            6.086701986754968,
+            6.239759999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8010728476821197,
+            0.7927200000000005,
+            0.7908807947019876
+          ],
+          "GT Power_0": [
+            0.22301324503311265,
+            0.2694733333333333,
+            0.2514437086092716
+          ],
+          "IA Power_0": [
+            6.047960264900661,
+            6.341866666666666,
+            6.083125827814571
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8332980132450345,
+            6.82072,
+            6.54319867549669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7393999999999996,
+            0.7421854304635761,
+            0.7233959731543619
+          ],
+          "GT Power_0": [
+            0.10932000000000003,
+            0.10986754966887415,
+            0.1131342281879194
+          ],
+          "IA Power_0": [
+            5.863106666666667,
+            6.193125827814575,
+            5.919080536912753
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.248420000000004,
+            6.657311258278146,
+            6.2377718120805365
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4633,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5800860927152316,
+            0.5757218543046353,
+            0.5755298013245034
+          ],
+          "GT Power_0": [
+            0.03463576158940395,
+            0.016172185430463577,
+            0.01611258278145695
+          ],
+          "IA Power_0": [
+            3.9469933774834427,
+            3.7677152317880775,
+            3.6463046357615894
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.18862251655629,
+            3.927801324503312,
+            3.8952781456953622
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303533333333332,
+            0.712086666666666,
+            0.7215629139072844
+          ],
+          "GT Power_0": [
+            0.10776000000000004,
+            0.10590666666666669,
+            0.11995364238410593
+          ],
+          "IA Power_0": [
+            7.44892,
+            7.031953333333336,
+            7.216774834437088
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.964566666666666,
+            7.366866666666667,
+            7.580033112582782
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7220927152317879,
+            0.714847682119205,
+            0.7136866666666658
+          ],
+          "GT Power_0": [
+            0.1070794701986755,
+            0.10637748344370865,
+            0.10809333333333335
+          ],
+          "IA Power_0": [
+            7.712364238410598,
+            7.219536423841061,
+            7.106533333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.068960264900657,
+            7.539476821192054,
+            7.49544666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7703973509933781,
+            0.7711125827814576,
+            0.7717133333333336
+          ],
+          "GT Power_0": [
+            0.2359602649006622,
+            0.23807947019867548,
+            0.2327333333333334
+          ],
+          "IA Power_0": [
+            7.769788079470196,
+            7.423450331125831,
+            7.377533333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.26152317880795,
+            7.916331125827816,
+            7.889186666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7190933333333329,
+            0.7207933333333328,
+            0.7194370860927148
+          ],
+          "GT Power_0": [
+            0.11102,
+            0.11394666666666665,
+            0.11582119205298017
+          ],
+          "IA Power_0": [
+            7.330846666666666,
+            7.254979999999994,
+            7.7534238410596
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.673673333333334,
+            7.614179999999999,
+            8.044662251655627
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD163-A9",
+      "number": 4632,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5867880794701988,
+            0.5739266666666666,
+            0.5748133333333333
+          ],
+          "GT Power_0": [
+            0.04301986754966886,
+            0.013326666666666665,
+            0.014026666666666666
+          ],
+          "IA Power_0": [
+            3.5360132450331125,
+            2.9610399999999992,
+            2.9464666666666677
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.796006622516555,
+            3.1909199999999984,
+            3.1974333333333336
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144733333333332,
+            0.7129466666666662,
+            0.71484
+          ],
+          "GT Power_0": [
+            0.09292666666666671,
+            0.0897666666666667,
+            0.09612000000000008
+          ],
+          "IA Power_0": [
+            5.835446666666663,
+            6.131700000000002,
+            5.860040000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.1643599999999985,
+            6.45362,
+            6.149773333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136688741721852,
+            0.714258278145695,
+            0.7134105960264896
+          ],
+          "GT Power_0": [
+            0.0902980132450331,
+            0.09470198675496692,
+            0.09092052980132455
+          ],
+          "IA Power_0": [
+            5.855754966887417,
+            6.069105960264901,
+            5.773423841059602
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.186119205298014,
+            6.385569536423843,
+            6.137860927152318
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7824733333333334,
+            0.7703841059602656,
+            0.7744238410596032
+          ],
+          "GT Power_0": [
+            0.24847333333333352,
+            0.21559602649006626,
+            0.21795364238410603
+          ],
+          "IA Power_0": [
+            5.990786666666666,
+            5.999788079470198,
+            6.04251655629139
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.447086666666662,
+            6.5021523178807925,
+            6.581973509933775
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7189466666666662,
+            0.718649006622516,
+            0.7338013245033111
+          ],
+          "GT Power_0": [
+            0.09737333333333337,
+            0.09921854304635767,
+            0.09533112582781461
+          ],
+          "IA Power_0": [
+            6.200106666666665,
+            5.830291390728477,
+            5.892635761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.550493333333336,
+            6.199165562913907,
+            6.375026490066224
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4631,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5756158940397351,
+            0.5754039735099333,
+            0.5739933333333335
+          ],
+          "GT Power_0": [
+            0.015635761589403968,
+            0.016933774834437084,
+            0.015746666666666666
+          ],
+          "IA Power_0": [
+            3.115403973509934,
+            3.0739205298013252,
+            3.068059999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3507549668874184,
+            3.334794701986755,
+            3.2957733333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145099337748342,
+            0.7139466666666662,
+            0.7435960264900656
+          ],
+          "GT Power_0": [
+            0.11739735099337763,
+            0.11600666666666669,
+            0.11634437086092714
+          ],
+          "IA Power_0": [
+            6.027443708609274,
+            6.2619066666666665,
+            6.066086092715231
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.385874172185429,
+            6.625126666666671,
+            6.670119205298014
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144370860927148,
+            0.717013333333333,
+            0.739506666666666
+          ],
+          "GT Power_0": [
+            0.11752317880794706,
+            0.1176133333333333,
+            0.12155333333333332
+          ],
+          "IA Power_0": [
+            6.173344370860927,
+            6.775073333333333,
+            6.090453333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.487867549668871,
+            7.170986666666668,
+            6.928293333333339
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7980000000000004,
+            0.7822133333333341,
+            0.7868066666666671
+          ],
+          "GT Power_0": [
+            0.2731258278145696,
+            0.2742200000000002,
+            0.24672666666666657
+          ],
+          "IA Power_0": [
+            6.326476821192055,
+            6.339813333333332,
+            6.290806666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.945860927152318,
+            6.912660000000001,
+            6.930346666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7327599999999995,
+            0.7191199999999998,
+            0.7454266666666662
+          ],
+          "GT Power_0": [
+            0.14143333333333327,
+            0.12366666666666674,
+            0.1231266666666667
+          ],
+          "IA Power_0": [
+            6.242313333333334,
+            6.116340000000003,
+            6.619093333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.700839999999998,
+            6.517453333333335,
+            7.074013333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD130-A9",
+      "number": 4630,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5928800000000005,
+            0.574880794701987,
+            0.574384105960265
+          ],
+          "GT Power_0": [
+            0.013813333333333337,
+            0.015039735099337748,
+            0.015357615894039733
+          ],
+          "IA Power_0": [
+            3.522553333333332,
+            3.6163311258278164,
+            3.2766423841059593
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.875493333333333,
+            3.8234370860927163,
+            3.508397350993377
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139602649006619,
+            0.713873333333333,
+            0.7314172185430458
+          ],
+          "GT Power_0": [
+            0.11076821192052987,
+            0.11390666666666666,
+            0.11409933774834448
+          ],
+          "IA Power_0": [
+            6.9691788079470225,
+            6.635666666666665,
+            6.654562913907288
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.282602649006618,
+            6.931053333333337,
+            7.190450331125824
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136199999999994,
+            0.7305866666666662,
+            0.7301523178807944
+          ],
+          "GT Power_0": [
+            0.11419333333333338,
+            0.11396666666666663,
+            0.11382119205298016
+          ],
+          "IA Power_0": [
+            7.022659999999997,
+            6.709200000000001,
+            6.682476821192052
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.333386666666666,
+            7.244940000000003,
+            7.175370860927157
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7838476821192057,
+            0.7773046357615895,
+            0.7871258278145697
+          ],
+          "GT Power_0": [
+            0.255158940397351,
+            0.23927152317880787,
+            0.23800662251655652
+          ],
+          "IA Power_0": [
+            7.224596026490066,
+            7.20875496688742,
+            6.886158940397352
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.826913907284771,
+            7.758814569536424,
+            7.485397350993374
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7346423841059597,
+            0.7179801324503312,
+            0.718113333333333
+          ],
+          "GT Power_0": [
+            0.11887417218543044,
+            0.11679470198675498,
+            0.1365333333333333
+          ],
+          "IA Power_0": [
+            6.792668874172185,
+            6.842523178807945,
+            7.133706666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.253827814569533,
+            7.158814569536424,
+            7.455266666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD138-A9",
+      "number": 4629,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5817533333333332,
+            0.57802,
+            0.5853533333333333
+          ],
+          "GT Power_0": [
+            0.03010666666666665,
+            0.014706666666666663,
+            0.015446666666666668
+          ],
+          "IA Power_0": [
+            2.575033333333334,
+            2.7785599999999993,
+            3.2526399999999986
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.9099066666666666,
+            3.062213333333334,
+            3.5345466666666643
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150399999999997,
+            0.7428133333333325,
+            0.7381466666666666
+          ],
+          "GT Power_0": [
+            0.10160666666666666,
+            0.10160666666666672,
+            0.1013533333333334
+          ],
+          "IA Power_0": [
+            4.921419999999999,
+            4.928526666666667,
+            5.030926666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.302553333333332,
+            5.7438600000000015,
+            5.538833333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141879194630866,
+            0.7458266666666663,
+            0.7154333333333329
+          ],
+          "GT Power_0": [
+            0.10654362416107385,
+            0.10991333333333336,
+            0.09899333333333332
+          ],
+          "IA Power_0": [
+            4.991986577181211,
+            4.965120000000002,
+            4.949233333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.346489932885905,
+            5.660993333333332,
+            5.3240933333333365
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713733333333334,
+            0.7867999999999999,
+            0.7877800000000005
+          ],
+          "GT Power_0": [
+            0.21883333333333335,
+            0.2176933333333334,
+            0.21919333333333327
+          ],
+          "IA Power_0": [
+            5.090993333333332,
+            5.140066666666665,
+            5.158380000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.618846666666666,
+            5.6915799999999965,
+            5.855133333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7164266666666663,
+            0.7192999999999995,
+            0.7343377483443706
+          ],
+          "GT Power_0": [
+            0.10705333333333338,
+            0.10603333333333337,
+            0.10740397350993387
+          ],
+          "IA Power_0": [
+            5.034653333333331,
+            5.030913333333331,
+            5.025165562913906
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5181466666666665,
+            5.39904,
+            5.5266357615894055
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4628,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6169599999999998,
+            0.5990529801324508,
+            0.62238
+          ],
+          "GT Power_0": [
+            0.03675333333333331,
+            0.01452317880794702,
+            0.015059999999999999
+          ],
+          "IA Power_0": [
+            4.51422,
+            11.458887417218541,
+            4.205733333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.878919999999997,
+            11.67819205298013,
+            4.437466666666664
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7795333333333329,
+            0.7378543046357612,
+            0.7121533333333329
+          ],
+          "GT Power_0": [
+            0.11036666666666667,
+            0.10952317880794707,
+            0.10988666666666662
+          ],
+          "IA Power_0": [
+            6.974860000000003,
+            9.717331125827815,
+            5.407680000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.408853333333335,
+            10.074728476821194,
+            5.810493333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7311390728476818,
+            0.7151523178807939,
+            0.7143642384105958
+          ],
+          "GT Power_0": [
+            0.11360927152317876,
+            0.11159602649006627,
+            0.11347019867549676
+          ],
+          "IA Power_0": [
+            5.400880794701983,
+            5.503033112582781,
+            5.4319735099337745
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9249205298013194,
+            5.878741721854302,
+            5.836980132450331
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7723333333333338,
+            0.7728666666666671,
+            0.7709800000000002
+          ],
+          "GT Power_0": [
+            0.23844666666666678,
+            0.23813333333333342,
+            0.2374533333333334
+          ],
+          "IA Power_0": [
+            5.827566666666663,
+            5.519339999999999,
+            5.579839999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.361339999999997,
+            6.080893333333331,
+            6.099566666666664
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7204701986754963,
+            0.7203443708609271,
+            0.7183066666666665
+          ],
+          "GT Power_0": [
+            0.12097350993377488,
+            0.12248344370860931,
+            0.11814000000000002
+          ],
+          "IA Power_0": [
+            5.705721854304636,
+            5.505993377483444,
+            5.444113333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.085602649006622,
+            5.925609271523181,
+            5.8365666666666645
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD179-A9",
+      "number": 4627,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5822800000000001,
+            0.5879867549668875,
+            0.5741324503311256
+          ],
+          "GT Power_0": [
+            0.04758666666666665,
+            0.0177682119205298,
+            0.01663576158940397
+          ],
+          "IA Power_0": [
+            3.474546666666665,
+            3.0880794701986742,
+            3.137781456953642
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.760266666666665,
+            3.4495827814569533,
+            3.4011192052980146
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126066666666664,
+            0.7312582781456947,
+            0.7119533333333328
+          ],
+          "GT Power_0": [
+            0.12571999999999994,
+            0.12586754966887423,
+            0.1262933333333333
+          ],
+          "IA Power_0": [
+            6.402513333333337,
+            6.129536423841061,
+            6.166953333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.789993333333333,
+            6.622350993377489,
+            6.529733333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136733333333327,
+            0.713,
+            0.7129999999999995
+          ],
+          "GT Power_0": [
+            0.1278133333333333,
+            0.12785999999999997,
+            0.12907947019867544
+          ],
+          "IA Power_0": [
+            6.109233333333336,
+            6.223653333333335,
+            6.441536423841063
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.505113333333334,
+            6.599073333333335,
+            6.853112582781455
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7704466666666671,
+            0.7712133333333333,
+            0.7706026490066228
+          ],
+          "GT Power_0": [
+            0.27384,
+            0.2748000000000001,
+            0.271887417218543
+          ],
+          "IA Power_0": [
+            6.2989799999999985,
+            6.349426666666667,
+            6.705397350993377
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.872406666666664,
+            6.89328,
+            7.237086092715232
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7186733333333327,
+            0.7183907284768212,
+            0.7201666666666662
+          ],
+          "GT Power_0": [
+            0.13360666666666662,
+            0.1296291390728477,
+            0.13649333333333336
+          ],
+          "IA Power_0": [
+            6.205880000000001,
+            6.2778940397351,
+            6.556480000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.611593333333332,
+            6.698894039735098,
+            6.947699999999998
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD161-A9",
+      "number": 4626,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5721599999999998,
+            0.5867200000000001,
+            0.573569536423841
+          ],
+          "GT Power_0": [
+            0.043506666666666645,
+            0.01367333333333333,
+            0.013655629139072846
+          ],
+          "IA Power_0": [
+            2.522146666666666,
+            2.4501999999999993,
+            2.7802185430463577
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.797366666666668,
+            2.8094666666666654,
+            3.0550927152317895
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132133333333327,
+            0.7126466666666663,
+            0.7119999999999997
+          ],
+          "GT Power_0": [
+            0.10952666666666667,
+            0.1109533333333334,
+            0.11131333333333342
+          ],
+          "IA Power_0": [
+            4.957006666666668,
+            4.961760000000002,
+            4.95022666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.330826666666668,
+            5.321446666666666,
+            5.440093333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141192052980133,
+            0.7252933333333329,
+            0.7147814569536421
+          ],
+          "GT Power_0": [
+            0.10956291390728481,
+            0.11103333333333334,
+            0.11276821192052984
+          ],
+          "IA Power_0": [
+            5.046576158940399,
+            5.182233333333335,
+            5.0307417218543025
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.385562913907283,
+            5.633213333333331,
+            5.41160927152318
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8140800000000006,
+            0.7817333333333338,
+            0.7937600000000001
+          ],
+          "GT Power_0": [
+            0.25568,
+            0.2604200000000001,
+            0.26848666666666665
+          ],
+          "IA Power_0": [
+            5.241726666666668,
+            5.373546666666665,
+            5.259026666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.272866666666667,
+            5.920946666666666,
+            5.978620000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7382466666666664,
+            0.7353866666666665,
+            0.7215599999999995
+          ],
+          "GT Power_0": [
+            0.11782,
+            0.11858666666666672,
+            0.12293999999999995
+          ],
+          "IA Power_0": [
+            5.045019999999998,
+            5.023639999999998,
+            5.079513333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.535519999999999,
+            5.540726666666664,
+            5.487053333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD124-A9",
+      "number": 4625,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5899403973509932,
+            0.5879470198675498,
+            0.5744701986754964
+          ],
+          "GT Power_0": [
+            0.01736423841059602,
+            0.017125827814569526,
+            0.017238410596026484
+          ],
+          "IA Power_0": [
+            3.1020860927152305,
+            3.0421920529801327,
+            3.092847682119204
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.471463576158939,
+            3.4328410596026484,
+            3.3245231788079472
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7363199999999994,
+            0.7119205298013238,
+            0.7216933333333327
+          ],
+          "GT Power_0": [
+            0.11828666666666668,
+            0.12093377483443715,
+            0.12984666666666664
+          ],
+          "IA Power_0": [
+            7.04129333333333,
+            5.951298013245035,
+            6.060653333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.410160000000004,
+            6.3245629139072825,
+            6.5694733333333355
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124900662251654,
+            0.7109133333333326,
+            0.7124105960264894
+          ],
+          "GT Power_0": [
+            0.11953642384105956,
+            0.11954000000000005,
+            0.119748344370861
+          ],
+          "IA Power_0": [
+            6.246311258278146,
+            5.97305333333333,
+            6.009013245033111
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.605675496688741,
+            6.341053333333334,
+            6.362026490066226
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.77004,
+            0.7687814569536428,
+            0.773741721854305
+          ],
+          "GT Power_0": [
+            0.27314666666666665,
+            0.2737019867549669,
+            0.2791788079470199
+          ],
+          "IA Power_0": [
+            6.177193333333334,
+            6.186039735099336,
+            6.563814569536423
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.75915333333333,
+            6.749284768211922,
+            7.076238410596027
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7327199999999991,
+            0.7507399999999997,
+            0.7367466666666665
+          ],
+          "GT Power_0": [
+            0.12557333333333334,
+            0.14600666666666673,
+            0.1359866666666667
+          ],
+          "IA Power_0": [
+            6.122920000000002,
+            6.138740000000003,
+            6.780413333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.642333333333333,
+            6.7611799999999995,
+            7.356700000000004
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4624,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5774733333333331,
+            0.5740933333333332,
+            0.5743112582781457
+          ],
+          "GT Power_0": [
+            0.04298,
+            0.012839999999999997,
+            0.012960264900662247
+          ],
+          "IA Power_0": [
+            2.9387600000000003,
+            2.7830533333333345,
+            2.7770198675496682
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1973133333333337,
+            3.026646666666666,
+            3.0588278145695362
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7535399999999995,
+            0.713291390728476,
+            0.7281866666666662
+          ],
+          "GT Power_0": [
+            0.08208666666666666,
+            0.08064238410596028,
+            0.07795333333333336
+          ],
+          "IA Power_0": [
+            5.642453333333331,
+            5.8049337748344385,
+            5.560493333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.575006666666666,
+            6.19498013245033,
+            5.933566666666664
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.736735099337748,
+            0.7174866666666664,
+            0.7250733333333327
+          ],
+          "GT Power_0": [
+            0.08130463576158942,
+            0.08170666666666665,
+            0.08126000000000004
+          ],
+          "IA Power_0": [
+            5.575172185430466,
+            6.170060000000001,
+            5.772293333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.230523178807949,
+            6.524799999999997,
+            6.099606666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7901125827814571,
+            0.7714304635761593,
+            0.7711466666666674
+          ],
+          "GT Power_0": [
+            0.19466225165562906,
+            0.1921456953642384,
+            0.19263333333333338
+          ],
+          "IA Power_0": [
+            6.3678410596026485,
+            5.8222450331125835,
+            5.807793333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.835841059602649,
+            6.28164238410596,
+            6.2409333333333326
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7184437086092716,
+            0.7190463576158932,
+            0.7192980132450327
+          ],
+          "GT Power_0": [
+            0.08752980132450326,
+            0.08696688741721857,
+            0.08530463576158942
+          ],
+          "IA Power_0": [
+            5.909986754966887,
+            5.596715231788077,
+            5.694450331125824
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.299622516556297,
+            5.975205298013246,
+            6.028463576158943
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD135-A9",
+      "number": 4623,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760599999999998,
+            0.5738133333333327,
+            0.5902847682119203
+          ],
+          "GT Power_0": [
+            0.04825999999999998,
+            0.019033333333333336,
+            0.019953642384105966
+          ],
+          "IA Power_0": [
+            3.6749933333333344,
+            3.561093333333334,
+            3.9617947019867548
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9203533333333347,
+            3.794993333333334,
+            4.335794701986754
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.710920529801324,
+            0.7123533333333331,
+            0.7285165562913908
+          ],
+          "GT Power_0": [
+            0.13894701986754965,
+            0.14622666666666667,
+            0.14663576158940392
+          ],
+          "IA Power_0": [
+            7.132066225165564,
+            7.171066666666667,
+            7.168390728476821
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.49551655629139,
+            7.574339999999996,
+            7.696662251655629
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7112317880794696,
+            0.7252266666666657,
+            0.7104900662251651
+          ],
+          "GT Power_0": [
+            0.14101986754966875,
+            0.14185333333333333,
+            0.14094039735099334
+          ],
+          "IA Power_0": [
+            7.169582781456958,
+            7.560173333333334,
+            7.136629139072849
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5554701986755,
+            7.990293333333333,
+            7.532701986754964
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7695496688741723,
+            0.7776778523489933,
+            0.7843112582781461
+          ],
+          "GT Power_0": [
+            0.32429139072847685,
+            0.33408724832214753,
+            0.318317880794702
+          ],
+          "IA Power_0": [
+            7.413880794701992,
+            8.45901342281879,
+            7.427794701986752
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.991423841059599,
+            9.035026845637585,
+            8.200284768211917
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            149,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7158476821192045,
+            0.717735099337748,
+            0.7160728476821187
+          ],
+          "GT Power_0": [
+            0.15333774834437083,
+            0.1522980132450332,
+            0.15122516556291393
+          ],
+          "IA Power_0": [
+            7.278569536423837,
+            7.259629139072844,
+            7.292874172185433
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.6729205298013285,
+            7.629668874172183,
+            7.685039735099343
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD131-A9",
+      "number": 4622,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5842933333333331,
+            0.5897814569536423,
+            0.5785866666666664
+          ],
+          "GT Power_0": [
+            0.03252666666666665,
+            0.01597350993377484,
+            0.015553333333333334
+          ],
+          "IA Power_0": [
+            3.4182599999999996,
+            3.390794701986754,
+            3.365240000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6950399999999997,
+            3.603039735099336,
+            3.571366666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7181192052980129,
+            0.7168079470198675,
+            0.7330198675496683
+          ],
+          "GT Power_0": [
+            0.10821854304635764,
+            0.11066225165562919,
+            0.1130728476821192
+          ],
+          "IA Power_0": [
+            5.831721854304637,
+            6.147741721854306,
+            5.813847682119205
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.152390728476818,
+            6.422523178807947,
+            6.255993377483441
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7181523178807943,
+            0.7356092715231781,
+            0.719152317880794
+          ],
+          "GT Power_0": [
+            0.11020529801324509,
+            0.1067748344370861,
+            0.1063576158940398
+          ],
+          "IA Power_0": [
+            5.807900662251652,
+            6.076099337748345,
+            5.825788079470198
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.125006622516557,
+            6.583218543046357,
+            6.162735099337748
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7934569536423843,
+            0.7812333333333338,
+            0.7812450331125834
+          ],
+          "GT Power_0": [
+            0.2605430463576159,
+            0.22995333333333348,
+            0.23436423841059595
+          ],
+          "IA Power_0": [
+            6.096456953642385,
+            6.054553333333334,
+            6.035642384105959
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.593966887417221,
+            6.546119999999999,
+            6.516423841059602
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7330533333333331,
+            0.72351655629139,
+            0.7349599999999997
+          ],
+          "GT Power_0": [
+            0.11612000000000001,
+            0.11519867549668882,
+            0.11442666666666663
+          ],
+          "IA Power_0": [
+            6.555146666666667,
+            5.952841059602648,
+            5.972173333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.857366666666667,
+            6.26007284768212,
+            6.434946666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD175-A9",
+      "number": 4621,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5879466666666665,
+            0.5916158940397347,
+            0.6027019867549663
+          ],
+          "GT Power_0": [
+            0.035513333333333306,
+            0.01458940397350993,
+            0.014258278145695368
+          ],
+          "IA Power_0": [
+            4.735846666666666,
+            4.089456953642381,
+            4.263920529801323
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.052273333333333,
+            4.420218543046359,
+            4.726695364238409
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7154533333333327,
+            0.7192649006622516,
+            0.7191125827814564
+          ],
+          "GT Power_0": [
+            0.10378000000000005,
+            0.10460927152317884,
+            0.10445695364238407
+          ],
+          "IA Power_0": [
+            7.0994466666666645,
+            6.80874834437086,
+            7.262331125827814
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.530966666666666,
+            7.2541059602649,
+            7.663033112582781
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7314503311258275,
+            0.7176778523489931,
+            0.7197417218543041
+          ],
+          "GT Power_0": [
+            0.09872847682119205,
+            0.10036241610738254,
+            0.1007814569536424
+          ],
+          "IA Power_0": [
+            7.064754966887416,
+            6.751275167785234,
+            7.144602649006624
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.614271523178807,
+            7.175234899328858,
+            7.540516556291394
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            149,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7764066666666668,
+            0.7903774834437093,
+            0.7790066666666665
+          ],
+          "GT Power_0": [
+            0.2337666666666666,
+            0.23213907284768207,
+            0.23220000000000005
+          ],
+          "IA Power_0": [
+            7.048613333333336,
+            7.592867549668877,
+            8.293193333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.6177333333333355,
+            8.394377483443705,
+            8.894173333333331
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7380866666666664,
+            0.7243311258278141,
+            0.7251125827814565
+          ],
+          "GT Power_0": [
+            0.10692,
+            0.10734437086092717,
+            0.1086158940397351
+          ],
+          "IA Power_0": [
+            7.137746666666671,
+            7.000582781456953,
+            7.350549668874174
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.820806666666666,
+            7.420271523178811,
+            7.71837086092715
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD157-A9",
+      "number": 4620,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5769333333333335,
+            0.5747284768211918,
+            0.5882266666666669
+          ],
+          "GT Power_0": [
+            0.028259999999999983,
+            0.015635761589403975,
+            0.01558666666666667
+          ],
+          "IA Power_0": [
+            3.0030533333333342,
+            3.3850794701986757,
+            3.153413333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3405466666666666,
+            3.6270397350993364,
+            3.4146600000000014
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7312715231788071,
+            0.7140599999999999,
+            0.7310266666666665
+          ],
+          "GT Power_0": [
+            0.11131788079470195,
+            0.1130466666666667,
+            0.11250666666666666
+          ],
+          "IA Power_0": [
+            6.080635761589403,
+            6.165506666666669,
+            6.129253333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.580039735099341,
+            6.543586666666668,
+            6.596973333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7309735099337744,
+            0.731493333333333,
+            0.7153642384105954
+          ],
+          "GT Power_0": [
+            0.1128543046357616,
+            0.11224000000000006,
+            0.11140397350993379
+          ],
+          "IA Power_0": [
+            6.259894039735101,
+            6.168379999999999,
+            6.202953642384106
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7594039735099365,
+            6.573740000000002,
+            6.572403973509937
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7718410596026493,
+            0.7846291390728481,
+            0.7868874172185433
+          ],
+          "GT Power_0": [
+            0.24059602649006617,
+            0.24202649006622506,
+            0.24216556291390728
+          ],
+          "IA Power_0": [
+            6.638172185430461,
+            6.40892715231788,
+            6.44056953642384
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.156298013245034,
+            6.985788079470198,
+            7.046562913907285
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.717894039735099,
+            0.7343841059602646,
+            0.7237350993377482
+          ],
+          "GT Power_0": [
+            0.1155827814569537,
+            0.11495364238410596,
+            0.11594039735099339
+          ],
+          "IA Power_0": [
+            6.528728476821193,
+            6.210741721854301,
+            6.369715231788076
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.922735099337745,
+            6.703589403973512,
+            6.77070198675497
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD166-A9",
+      "number": 4619,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5804066666666666,
+            0.5863733333333333,
+            0.5748066666666668
+          ],
+          "GT Power_0": [
+            0.035879999999999974,
+            0.016726666666666667,
+            0.017066666666666667
+          ],
+          "IA Power_0": [
+            2.9725999999999986,
+            2.934640000000001,
+            3.2258866666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.25252,
+            3.2509066666666673,
+            3.472086666666665
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7287417218543037,
+            0.7294466666666661,
+            0.731099337748344
+          ],
+          "GT Power_0": [
+            0.12173509933774838,
+            0.12047999999999998,
+            0.12120529801324498
+          ],
+          "IA Power_0": [
+            5.752178807947019,
+            5.746119999999998,
+            5.760132450331126
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.13151655629139,
+            6.275300000000005,
+            6.501635761589403
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126866666666661,
+            0.7137086092715229,
+            0.7148145695364236
+          ],
+          "GT Power_0": [
+            0.11761999999999997,
+            0.12142384105960263,
+            0.12823841059602645
+          ],
+          "IA Power_0": [
+            5.7432466666666695,
+            6.116052980132449,
+            5.830615894039732
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.137079999999998,
+            6.512721854304637,
+            6.157887417218541
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7714199999999997,
+            0.8004133333333336,
+            0.7912052980132456
+          ],
+          "GT Power_0": [
+            0.26351333333333327,
+            0.27687333333333336,
+            0.26141059602648997
+          ],
+          "IA Power_0": [
+            6.004473333333335,
+            6.708153333333331,
+            5.982278145695365
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.550393333333331,
+            7.453673333333336,
+            6.9443774834437075
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7195761589403967,
+            0.7184238410596023,
+            0.7180133333333331
+          ],
+          "GT Power_0": [
+            0.12580794701986753,
+            0.12374172185430472,
+            0.12410666666666668
+          ],
+          "IA Power_0": [
+            5.840509933774835,
+            5.830390728476821,
+            5.850859999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.249741721854305,
+            6.252264900662254,
+            6.2513733333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4618,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5857533333333332,
+            0.5921466666666663,
+            0.5922450331125828
+          ],
+          "GT Power_0": [
+            0.04031333333333331,
+            0.012826666666666662,
+            0.01290728476821192
+          ],
+          "IA Power_0": [
+            2.984366666666665,
+            2.730419999999999,
+            3.1151854304635753
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3669400000000005,
+            3.0950400000000005,
+            3.4855430463576154
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714735099337748,
+            0.7328866666666661,
+            0.7133666666666664
+          ],
+          "GT Power_0": [
+            0.08591390728476826,
+            0.0900733333333334,
+            0.09285333333333332
+          ],
+          "IA Power_0": [
+            5.227920529801324,
+            5.302899999999999,
+            5.2553866666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5889536423841095,
+            5.745686666666668,
+            5.576973333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713146666666666,
+            0.725693333333333,
+            0.7147199999999994
+          ],
+          "GT Power_0": [
+            0.08474666666666669,
+            0.09001999999999999,
+            0.08756666666666665
+          ],
+          "IA Power_0": [
+            5.231273333333333,
+            5.827266666666668,
+            5.286173333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.592339999999999,
+            6.152380000000002,
+            5.606826666666664
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7829200000000001,
+            0.783886666666667,
+            0.7818066666666671
+          ],
+          "GT Power_0": [
+            0.21042000000000002,
+            0.2106466666666667,
+            0.2113600000000002
+          ],
+          "IA Power_0": [
+            5.437766666666666,
+            5.743620000000002,
+            5.411020000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.956266666666664,
+            6.261706666666667,
+            5.941693333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182119205298011,
+            0.7203576158940393,
+            0.7215100671140933
+          ],
+          "GT Power_0": [
+            0.0909933774834437,
+            0.0924172185430464,
+            0.09533557046979863
+          ],
+          "IA Power_0": [
+            5.315774834437087,
+            5.292841059602647,
+            5.301295302013423
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.671913907284768,
+            5.656463576158942,
+            5.663731543624163
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD149-A9",
+      "number": 4617,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.573513333333333,
+            0.5754900662251656,
+            0.5838400000000001
+          ],
+          "GT Power_0": [
+            0.03827333333333331,
+            0.016642384105960265,
+            0.01548666666666667
+          ],
+          "IA Power_0": [
+            3.7108599999999994,
+            3.343006622516557,
+            3.3760466666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9316666666666653,
+            3.5885894039735127,
+            3.62548
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7217284768211917,
+            0.7104266666666665,
+            0.7118278145695358
+          ],
+          "GT Power_0": [
+            0.1252913907284769,
+            0.11299333333333332,
+            0.11505298013245034
+          ],
+          "IA Power_0": [
+            6.863741721854302,
+            6.627000000000002,
+            7.133847682119207
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.233907284768216,
+            6.986419999999998,
+            7.480781456953642
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126999999999998,
+            0.7380466666666664,
+            0.7291999999999992
+          ],
+          "GT Power_0": [
+            0.11242666666666667,
+            0.11300000000000002,
+            0.10962000000000004
+          ],
+          "IA Power_0": [
+            6.657720000000001,
+            6.882226666666667,
+            7.097073333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.059846666666666,
+            7.616373333333335,
+            7.524966666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7679200000000002,
+            0.7872000000000002,
+            0.7682933333333342
+          ],
+          "GT Power_0": [
+            0.2706,
+            0.2633666666666668,
+            0.2636999999999999
+          ],
+          "IA Power_0": [
+            7.049733333333332,
+            6.99304,
+            7.038540000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.499739999999998,
+            7.656219999999996,
+            7.559826666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7176556291390719,
+            0.7325266666666662,
+            0.7170999999999997
+          ],
+          "GT Power_0": [
+            0.11676158940397349,
+            0.11596666666666662,
+            0.11606000000000001
+          ],
+          "IA Power_0": [
+            6.824026490066226,
+            7.176299999999997,
+            6.820159999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.200834437086091,
+            7.718166666666666,
+            7.172679999999996
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD179-A9",
+      "number": 4616,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5776000000000003,
+            0.5904000000000004,
+            0.569933774834437
+          ],
+          "GT Power_0": [
+            0.03979333333333331,
+            0.01594,
+            0.016231788079470198
+          ],
+          "IA Power_0": [
+            3.169000000000001,
+            3.125126666666667,
+            3.052026490066225
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.450113333333336,
+            3.5077399999999996,
+            3.251456953642385
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7275866666666664,
+            0.711735099337748,
+            0.7287199999999996
+          ],
+          "GT Power_0": [
+            0.12773333333333337,
+            0.1299337748344371,
+            0.1305933333333334
+          ],
+          "IA Power_0": [
+            6.278599999999998,
+            6.312602649006623,
+            6.307153333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.722279999999998,
+            6.691649006622514,
+            6.7857933333333325
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.728393333333333,
+            0.7312450331125825,
+            0.7126666666666659
+          ],
+          "GT Power_0": [
+            0.13055333333333335,
+            0.12754304635761585,
+            0.1310466666666667
+          ],
+          "IA Power_0": [
+            6.380240000000001,
+            6.6578940397350985,
+            6.311440000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.884473333333331,
+            7.19262251655629,
+            6.6899133333333305
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.785806666666667,
+            0.7896754966887415,
+            0.7699000000000004
+          ],
+          "GT Power_0": [
+            0.27231333333333335,
+            0.27616556291390737,
+            0.2785133333333332
+          ],
+          "IA Power_0": [
+            6.4788799999999975,
+            6.61526490066225,
+            6.577993333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.14782,
+            7.551523178807948,
+            7.1217133333333384
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7163199999999996,
+            0.7179337748344368,
+            0.7181523178807947
+          ],
+          "GT Power_0": [
+            0.13823333333333332,
+            0.13825165562913905,
+            0.13930463576158947
+          ],
+          "IA Power_0": [
+            6.425386666666666,
+            6.410125827814568,
+            6.45629801324503
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.803873333333336,
+            6.831761589403974,
+            6.79317880794702
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4615,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5756866666666667,
+            0.5736799999999997,
+            0.5762119205298017
+          ],
+          "GT Power_0": [
+            0.034079999999999985,
+            0.013619999999999998,
+            0.014205298013245033
+          ],
+          "IA Power_0": [
+            3.300786666666668,
+            3.5084866666666668,
+            3.2854039735099336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.540006666666665,
+            3.7278400000000005,
+            3.522582781456953
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7507350993377477,
+            0.7144238410596024,
+            0.7141589403973506
+          ],
+          "GT Power_0": [
+            0.10219205298013248,
+            0.10018543046357617,
+            0.10213907284768213
+          ],
+          "IA Power_0": [
+            7.160112582781461,
+            6.733894039735097,
+            6.373662251655633
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.683596026490069,
+            7.057417218543047,
+            6.718715231788082
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7317682119205291,
+            0.7164999999999994,
+            0.7129999999999994
+          ],
+          "GT Power_0": [
+            0.1001390728476822,
+            0.10013333333333338,
+            0.09785333333333343
+          ],
+          "IA Power_0": [
+            6.516357615894038,
+            6.410746666666668,
+            6.31466
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.951735099337745,
+            6.738973333333331,
+            6.72249333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7872119205298017,
+            0.7774768211920532,
+            0.7911721854304637
+          ],
+          "GT Power_0": [
+            0.22731125827814572,
+            0.22614569536423829,
+            0.22808609271523186
+          ],
+          "IA Power_0": [
+            6.6926490066225135,
+            6.693258278145695,
+            6.564231788079469
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.338125827814572,
+            7.197039735099342,
+            7.198013245033112
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7196357615894037,
+            0.7190933333333328,
+            0.7384172185430459
+          ],
+          "GT Power_0": [
+            0.10584768211920532,
+            0.10606666666666663,
+            0.10550993377483446
+          ],
+          "IA Power_0": [
+            6.886827814569536,
+            6.432179999999997,
+            6.456635761589403
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.2369668874172195,
+            6.809406666666665,
+            7.089350993377483
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4614,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5810201342281873,
+            0.5863443708609273,
+            0.5848476821192052
+          ],
+          "GT Power_0": [
+            0.03238255033557046,
+            0.017562913907284768,
+            0.017145695364238406
+          ],
+          "IA Power_0": [
+            3.0595302013422803,
+            3.3147086092715248,
+            3.6809867549668893
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4065906040268445,
+            3.670258278145696,
+            3.906543046357617
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122450331125824,
+            0.7123999999999996,
+            0.711013245033112
+          ],
+          "GT Power_0": [
+            0.12891390728476831,
+            0.13301333333333334,
+            0.13337748344370864
+          ],
+          "IA Power_0": [
+            5.946880794701985,
+            6.328546666666664,
+            6.008582781456957
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.333483443708607,
+            6.711899999999999,
+            6.31746357615894
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7268533333333329,
+            0.7120132450331125,
+            0.7324635761589396
+          ],
+          "GT Power_0": [
+            0.12792666666666677,
+            0.12701986754966882,
+            0.12594039735099338
+          ],
+          "IA Power_0": [
+            5.936613333333333,
+            6.051874172185429,
+            5.960708609271521
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3984466666666675,
+            6.442854304635763,
+            6.491807947019867
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7813666666666671,
+            0.7765333333333342,
+            0.7686400000000002
+          ],
+          "GT Power_0": [
+            0.2707799999999999,
+            0.28052666666666665,
+            0.2723200000000003
+          ],
+          "IA Power_0": [
+            6.21366,
+            6.475340000000002,
+            6.2447066666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.890126666666668,
+            7.121773333333335,
+            6.806706666666666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7174569536423842,
+            0.7174768211920528,
+            0.7323112582781457
+          ],
+          "GT Power_0": [
+            0.1324172185430463,
+            0.13291390728476826,
+            0.13633774834437085
+          ],
+          "IA Power_0": [
+            6.33330463576159,
+            6.192609271523178,
+            6.116046357615894
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.738668874172185,
+            6.599973509933776,
+            6.645953642384107
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4613,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5824199999999998,
+            0.5736266666666664,
+            0.575158940397351
+          ],
+          "GT Power_0": [
+            0.049013333333333325,
+            0.01592666666666667,
+            0.015999999999999997
+          ],
+          "IA Power_0": [
+            3.5593199999999987,
+            3.5126666666666644,
+            3.9875629139072846
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.846506666666666,
+            3.736593333333333,
+            4.186337748344371
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7223311258278137,
+            0.7130866666666662,
+            0.7123466666666661
+          ],
+          "GT Power_0": [
+            0.11075496688741718,
+            0.11552000000000003,
+            0.11155999999999999
+          ],
+          "IA Power_0": [
+            6.922529801324501,
+            6.90591333333333,
+            6.929613333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.315172185430462,
+            7.185393333333335,
+            7.247660000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144370860927148,
+            0.7123666666666661,
+            0.7228543046357612
+          ],
+          "GT Power_0": [
+            0.11084768211920534,
+            0.10756000000000004,
+            0.10558940397350998
+          ],
+          "IA Power_0": [
+            6.9244370860927145,
+            7.08382666666666,
+            7.4146622516556295
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.266947019867549,
+            7.400426666666665,
+            7.785324503311254
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7707748344370868,
+            0.772166666666667,
+            0.7712649006622521
+          ],
+          "GT Power_0": [
+            0.24227152317880798,
+            0.24343333333333328,
+            0.24341059602649004
+          ],
+          "IA Power_0": [
+            7.274152317880797,
+            7.687520000000001,
+            7.253278145695362
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.777860927152313,
+            8.178146666666665,
+            7.745039735099336
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7320132450331122,
+            0.7319799999999993,
+            0.7175430463576155
+          ],
+          "GT Power_0": [
+            0.11637748344370871,
+            0.11273333333333334,
+            0.11506622516556293
+          ],
+          "IA Power_0": [
+            7.023324503311259,
+            7.426166666666668,
+            7.1526026490066235
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.529569536423845,
+            7.794213333333329,
+            7.454006622516557
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD146-A9",
+      "number": 4612,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5820933333333332,
+            0.5738266666666668,
+            0.5740331125827813
+          ],
+          "GT Power_0": [
+            0.03599333333333331,
+            0.014013333333333333,
+            0.014761589403973511
+          ],
+          "IA Power_0": [
+            2.977866666666669,
+            2.8211199999999996,
+            2.8689536423841075
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2929866666666667,
+            3.0978666666666665,
+            3.1140794701986745
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132066666666665,
+            0.7146999999999994,
+            0.7274133333333329
+          ],
+          "GT Power_0": [
+            0.12458666666666667,
+            0.12159333333333341,
+            0.12062666666666667
+          ],
+          "IA Power_0": [
+            5.670133333333332,
+            5.823913333333335,
+            5.640633333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.0443333333333324,
+            6.1942200000000005,
+            6.082906666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7156556291390721,
+            0.7136953642384102,
+            0.7155099337748339
+          ],
+          "GT Power_0": [
+            0.12161589403973505,
+            0.11939735099337748,
+            0.12233112582781461
+          ],
+          "IA Power_0": [
+            5.706715231788081,
+            5.703688741721853,
+            5.684172185430461
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.06771523178808,
+            6.061112582781458,
+            6.060788079470198
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7706092715231789,
+            0.7729403973509937,
+            0.794966666666667
+          ],
+          "GT Power_0": [
+            0.24639072847682128,
+            0.25267549668874184,
+            0.27538666666666656
+          ],
+          "IA Power_0": [
+            6.132152317880795,
+            5.847311258278149,
+            5.8869133333333306
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.679238410596027,
+            6.384814569536426,
+            6.536273333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.743193333333333,
+            0.7434768211920529,
+            0.7329266666666665
+          ],
+          "GT Power_0": [
+            0.14358666666666658,
+            0.13073509933774843,
+            0.1275466666666667
+          ],
+          "IA Power_0": [
+            6.09352,
+            5.777596026490067,
+            5.740133333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.705453333333328,
+            6.513622516556292,
+            6.237353333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4611,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5680266666666667,
+            0.5762980132450333,
+            0.5750794701986756
+          ],
+          "GT Power_0": [
+            0.04535333333333333,
+            0.013907284768211922,
+            0.013927152317880796
+          ],
+          "IA Power_0": [
+            3.326506666666668,
+            3.1907086092715247,
+            3.1160860927152303
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.530600000000001,
+            3.4374768211920537,
+            3.3310529801324487
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7343973509933771,
+            0.7145894039735096,
+            0.7153178807947019
+          ],
+          "GT Power_0": [
+            0.10766887417218543,
+            0.11003973509933772,
+            0.10442384105960266
+          ],
+          "IA Power_0": [
+            6.086794701986757,
+            6.043423841059604,
+            6.041019867549664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.590192052980137,
+            6.417781456953646,
+            6.382364238410593
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7231589403973505,
+            0.7248466666666664,
+            0.7151059602649006
+          ],
+          "GT Power_0": [
+            0.10727814569536427,
+            0.11271333333333336,
+            0.10578807947019869
+          ],
+          "IA Power_0": [
+            6.107874172185428,
+            6.076806666666667,
+            6.360920529801323
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.568655629139073,
+            6.543020000000001,
+            6.730649006622515
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7741200000000001,
+            0.7722781456953642,
+            0.7729200000000006
+          ],
+          "GT Power_0": [
+            0.22703333333333334,
+            0.22996688741721868,
+            0.24613999999999994
+          ],
+          "IA Power_0": [
+            6.554833333333333,
+            6.2691059602649,
+            6.6745
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0405799999999985,
+            6.730688741721856,
+            7.174720000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7188410596026488,
+            0.7401920529801321,
+            0.7186733333333328
+          ],
+          "GT Power_0": [
+            0.10668211920529802,
+            0.11023178807947022,
+            0.10962000000000004
+          ],
+          "IA Power_0": [
+            6.118125827814571,
+            6.199675496688741,
+            6.2117666666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.47980132450331,
+            6.873576158940398,
+            6.5462533333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD149-A9",
+      "number": 4610,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5811788079470197,
+            0.5873066666666666,
+            0.5760662251655622
+          ],
+          "GT Power_0": [
+            0.042364238410596,
+            0.016373333333333337,
+            0.016596026490066227
+          ],
+          "IA Power_0": [
+            3.268476821192054,
+            3.2428800000000018,
+            3.3113841059602644
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.555622516556294,
+            3.544879999999999,
+            3.5415496688741714
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7288145695364235,
+            0.7144238410596023,
+            0.7275165562913903
+          ],
+          "GT Power_0": [
+            0.11535761589403978,
+            0.11581456953642384,
+            0.11731788079470196
+          ],
+          "IA Power_0": [
+            6.445701986754968,
+            6.830324503311255,
+            6.507708609271527
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.007496688741724,
+            7.183264900662256,
+            7.042079470198676
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7407814569536421,
+            0.7275399999999994,
+            0.7117748344370857
+          ],
+          "GT Power_0": [
+            0.1118609271523179,
+            0.11150666666666662,
+            0.11208609271523177
+          ],
+          "IA Power_0": [
+            6.9112781456953645,
+            7.017380000000001,
+            6.553006622516559
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4122185430463565,
+            7.5058799999999986,
+            6.935218543046356
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7690133333333334,
+            0.7787933333333334,
+            0.7706158940397353
+          ],
+          "GT Power_0": [
+            0.26375999999999994,
+            0.2658,
+            0.26202649006622525
+          ],
+          "IA Power_0": [
+            6.786799999999997,
+            7.727740000000001,
+            6.83317880794702
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.320613333333337,
+            8.265266666666667,
+            7.407470198675498
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.741218543046357,
+            0.7176556291390725,
+            0.7175799999999994
+          ],
+          "GT Power_0": [
+            0.12426490066225168,
+            0.12273509933774847,
+            0.12433333333333345
+          ],
+          "IA Power_0": [
+            6.722629139072847,
+            6.720033112582785,
+            6.657680000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.429337748344373,
+            7.082019867549668,
+            7.018146666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4609,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5817466666666666,
+            0.5887814569536424,
+            0.5734966887417217
+          ],
+          "GT Power_0": [
+            0.05527333333333331,
+            0.019291390728476816,
+            0.044754966887417216
+          ],
+          "IA Power_0": [
+            2.9256666666666673,
+            3.1691721854304635,
+            2.9384172185430457
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2732533333333347,
+            3.502576158940397,
+            3.137158940397352
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7246423841059602,
+            0.7237284768211917,
+            0.7108410596026484
+          ],
+          "GT Power_0": [
+            0.14388741721854303,
+            0.14454304635761586,
+            0.1455364238410596
+          ],
+          "IA Power_0": [
+            5.750251655629137,
+            5.53319205298013,
+            5.522801324503312
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.315476821192051,
+            6.054139072847681,
+            5.930523178807944
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122582781456951,
+            0.7085399999999997,
+            0.7072980132450325
+          ],
+          "GT Power_0": [
+            0.1439271523178808,
+            0.14186666666666667,
+            0.1429271523178808
+          ],
+          "IA Power_0": [
+            6.131589403973509,
+            5.451286666666665,
+            5.516403973509936
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.548794701986755,
+            5.890133333333332,
+            5.9376556291390745
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7647,
+            0.784146666666667,
+            0.7673333333333339
+          ],
+          "GT Power_0": [
+            0.32447333333333356,
+            0.32564,
+            0.32330666666666663
+          ],
+          "IA Power_0": [
+            5.738719999999998,
+            5.768339999999999,
+            6.0543266666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3628199999999975,
+            6.6936599999999995,
+            6.64016
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.728853333333333,
+            0.7134399999999995,
+            0.7156199999999998
+          ],
+          "GT Power_0": [
+            0.1542066666666666,
+            0.1513266666666666,
+            0.15639333333333327
+          ],
+          "IA Power_0": [
+            5.647420000000003,
+            5.592586666666666,
+            5.930659999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.205479999999994,
+            6.012966666666668,
+            6.359446666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4608,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5751133333333331,
+            0.5843466666666666,
+            0.5887019867549664
+          ],
+          "GT Power_0": [
+            0.036539999999999996,
+            0.01272,
+            0.01372185430463576
+          ],
+          "IA Power_0": [
+            2.8102466666666674,
+            3.439566666666667,
+            2.7213907284768206
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0607066666666674,
+            3.7160066666666656,
+            3.0357947019867537
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138866666666662,
+            0.7127999999999993,
+            0.7133666666666663
+          ],
+          "GT Power_0": [
+            0.08861333333333334,
+            0.091,
+            0.0903866666666667
+          ],
+          "IA Power_0": [
+            5.620906666666667,
+            5.347900000000003,
+            5.3357133333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.962766666666668,
+            5.71,
+            5.713226666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7319735099337746,
+            0.7138599999999994,
+            0.7154000000000003
+          ],
+          "GT Power_0": [
+            0.09009933774834442,
+            0.09075333333333332,
+            0.09256666666666669
+          ],
+          "IA Power_0": [
+            5.618728476821193,
+            5.325280000000002,
+            5.417953333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.09673509933775,
+            5.6956266666666675,
+            5.78982
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7961986754966887,
+            0.7724039735099344,
+            0.7922185430463581
+          ],
+          "GT Power_0": [
+            0.2212185430463576,
+            0.20347682119205293,
+            0.20501324503311255
+          ],
+          "IA Power_0": [
+            5.577695364238411,
+            5.622596026490066,
+            5.896245033112581
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.20527152317881,
+            6.109860927152318,
+            6.506847682119204
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.721317880794702,
+            0.7221125827814565,
+            0.7178476821192049
+          ],
+          "GT Power_0": [
+            0.10290066225165566,
+            0.10074172185430465,
+            0.09533774834437096
+          ],
+          "IA Power_0": [
+            5.453516556291392,
+            5.509158940397351,
+            5.743980132450333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.823907284768213,
+            5.873019867549668,
+            6.115748344370859
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4607,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5813892617449664,
+            0.5902133333333334,
+            0.5747682119205298
+          ],
+          "GT Power_0": [
+            0.0388456375838926,
+            0.014493333333333332,
+            0.014046357615894034
+          ],
+          "IA Power_0": [
+            2.587288590604027,
+            2.5435533333333327,
+            2.601635761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.9447583892617453,
+            2.9263933333333316,
+            2.881178807947019
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7290596026490062,
+            0.7149602649006622,
+            0.7289337748344368
+          ],
+          "GT Power_0": [
+            0.10150331125827819,
+            0.10327152317880799,
+            0.1038344370860928
+          ],
+          "IA Power_0": [
+            5.283245033112581,
+            5.002185430463577,
+            5.071112582781458
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.723986754966888,
+            5.38934437086093,
+            5.504735099337747
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7302333333333328,
+            0.7457218543046354,
+            0.7136953642384102
+          ],
+          "GT Power_0": [
+            0.10230666666666664,
+            0.1009006622516557,
+            0.09929801324503312
+          ],
+          "IA Power_0": [
+            5.259926666666668,
+            5.5218807947019855,
+            4.981615894039736
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.719459999999999,
+            5.9738940397350975,
+            5.381112582781454
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7883178807947028,
+            0.7731000000000003,
+            0.7988666666666673
+          ],
+          "GT Power_0": [
+            0.21889403973509935,
+            0.21911333333333335,
+            0.23158
+          ],
+          "IA Power_0": [
+            5.187940397350991,
+            5.2777400000000005,
+            5.504960000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.813370860927152,
+            5.776466666666664,
+            6.228833333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191466666666662,
+            0.7205733333333328,
+            0.7201866666666663
+          ],
+          "GT Power_0": [
+            0.10597333333333339,
+            0.10584000000000003,
+            0.10525333333333337
+          ],
+          "IA Power_0": [
+            5.05317333333333,
+            5.157013333333333,
+            5.368926666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.441626666666668,
+            5.525866666666667,
+            5.74890666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4606,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5838933333333332,
+            0.5986754966887419,
+            0.5746599999999998
+          ],
+          "GT Power_0": [
+            0.03606666666666665,
+            0.014682119205298012,
+            0.014826666666666665
+          ],
+          "IA Power_0": [
+            3.2870533333333345,
+            4.436834437086092,
+            3.1315466666666683
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5789333333333335,
+            4.668264900662252,
+            3.3351400000000004
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122399999999994,
+            0.713258278145695,
+            0.7104635761589398
+          ],
+          "GT Power_0": [
+            0.11721333333333339,
+            0.11064900662251659,
+            0.10918543046357618
+          ],
+          "IA Power_0": [
+            6.141673333333333,
+            6.145642384105963,
+            6.09630463576159
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.438979999999999,
+            6.501059602649007,
+            6.425615894039732
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.710847682119205,
+            0.7311866666666659,
+            0.7114304635761589
+          ],
+          "GT Power_0": [
+            0.10746357615894042,
+            0.10554000000000002,
+            0.1074039735099338
+          ],
+          "IA Power_0": [
+            6.388059602649005,
+            6.7134466666666635,
+            6.175569536423842
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.743245033112586,
+            7.153813333333331,
+            6.497509933774837
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7867733333333332,
+            0.7690331125827816,
+            0.7694437086092718
+          ],
+          "GT Power_0": [
+            0.23331333333333334,
+            0.23456953642384099,
+            0.23474172185430459
+          ],
+          "IA Power_0": [
+            6.644333333333336,
+            6.328728476821192,
+            6.337211920529799
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.357160000000002,
+            6.840721854304634,
+            6.8720993377483435
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177615894039733,
+            0.7179602649006618,
+            0.7161059602649004
+          ],
+          "GT Power_0": [
+            0.11413245033112589,
+            0.11317880794701989,
+            0.11296688741721861
+          ],
+          "IA Power_0": [
+            6.274046357615896,
+            6.6339735099337735,
+            6.569476821192054
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.682920529801327,
+            6.96871523178808,
+            6.909119205298018
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD146-A9",
+      "number": 4605,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5825133333333334,
+            0.5750397350993378,
+            0.5731866666666667
+          ],
+          "GT Power_0": [
+            0.03339999999999998,
+            0.016172185430463573,
+            0.014146666666666667
+          ],
+          "IA Power_0": [
+            3.2041066666666658,
+            2.9236291390728466,
+            3.128466666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5631666666666644,
+            3.1607284768211925,
+            3.351626666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122913907284764,
+            0.7442266666666666,
+            0.7160536912751673
+          ],
+          "GT Power_0": [
+            0.11907284768211923,
+            0.12211333333333343,
+            0.11779194630872485
+          ],
+          "IA Power_0": [
+            5.628860927152318,
+            5.815193333333333,
+            6.249100671140941
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.981384105960268,
+            6.349066666666666,
+            6.628161073825504
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7231986754966881,
+            0.7277999999999998,
+            0.7369866666666663
+          ],
+          "GT Power_0": [
+            0.12319867549668873,
+            0.12023333333333332,
+            0.12019999999999999
+          ],
+          "IA Power_0": [
+            5.7062781456953635,
+            5.5902199999999995,
+            5.578166666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.171781456953643,
+            6.093773333333335,
+            6.443360000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7870000000000005,
+            0.7951600000000001,
+            0.7706933333333336
+          ],
+          "GT Power_0": [
+            0.24659333333333341,
+            0.2483866666666666,
+            0.24519333333333335
+          ],
+          "IA Power_0": [
+            5.82642,
+            6.111326666666667,
+            5.775040000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.493500000000001,
+            6.868333333333333,
+            6.330666666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7374569536423838,
+            0.7185231788079467,
+            0.7371854304635759
+          ],
+          "GT Power_0": [
+            0.12782781456953646,
+            0.1313841059602649,
+            0.13258940397350993
+          ],
+          "IA Power_0": [
+            5.771754966887415,
+            6.038145695364237,
+            6.143410596026491
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.244132450331126,
+            6.375549668874173,
+            6.589635761589406
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4604,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5874238410596027,
+            0.5742866666666666,
+            0.5876291390728471
+          ],
+          "GT Power_0": [
+            0.013781456953642381,
+            0.014233333333333336,
+            0.014576158940397346
+          ],
+          "IA Power_0": [
+            3.0646821192052967,
+            3.0103466666666665,
+            3.2825761589403983
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3775761589403963,
+            3.2704866666666663,
+            3.6671589403973517
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127399999999995,
+            0.7100933333333331,
+            0.7422933333333334
+          ],
+          "GT Power_0": [
+            0.10703333333333338,
+            0.10742666666666673,
+            0.1168333333333333
+          ],
+          "IA Power_0": [
+            5.896879999999999,
+            5.969093333333333,
+            6.47542
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.290466666666665,
+            6.247793333333328,
+            6.986140000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109933333333328,
+            0.7115960264900656,
+            0.7126158940397345
+          ],
+          "GT Power_0": [
+            0.10373333333333337,
+            0.10245695364238411,
+            0.10091390728476819
+          ],
+          "IA Power_0": [
+            6.029353333333335,
+            5.986788079470198,
+            6.062887417218541
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.362253333333334,
+            6.355781456953641,
+            6.381470198675498
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7700662251655632,
+            0.7688675496688745,
+            0.7707000000000002
+          ],
+          "GT Power_0": [
+            0.22427814569536428,
+            0.2272847682119206,
+            0.23159333333333337
+          ],
+          "IA Power_0": [
+            6.161569536423843,
+            6.483410596026494,
+            6.161966666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7010397350993385,
+            7.000635761589404,
+            6.695400000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7160794701986751,
+            0.716529801324503,
+            0.7186533333333329
+          ],
+          "GT Power_0": [
+            0.10977483443708609,
+            0.11196688741721852,
+            0.10870666666666667
+          ],
+          "IA Power_0": [
+            6.098046357615894,
+            6.3756821192052975,
+            6.135306666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.667947019867554,
+            6.740880794701985,
+            6.500113333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD169-A9",
+      "number": 4603,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5750466666666665,
+            0.5734266666666663,
+            0.5734933333333329
+          ],
+          "GT Power_0": [
+            0.033793333333333314,
+            0.014319999999999998,
+            0.014946666666666664
+          ],
+          "IA Power_0": [
+            3.0170466666666687,
+            3.2497933333333333,
+            2.920479999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2564999999999995,
+            3.4962533333333323,
+            3.169253333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7314866666666662,
+            0.7291059602649006,
+            0.7312516556291391
+          ],
+          "GT Power_0": [
+            0.11765333333333329,
+            0.10854304635761593,
+            0.1071920529801325
+          ],
+          "IA Power_0": [
+            5.817340000000001,
+            5.944496688741722,
+            5.700192052980132
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.346453333333335,
+            6.462211920529802,
+            6.206218543046359
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7332133333333329,
+            0.7131799999999994,
+            0.7279933774834433
+          ],
+          "GT Power_0": [
+            0.10332666666666672,
+            0.10400000000000004,
+            0.10581456953642383
+          ],
+          "IA Power_0": [
+            5.6828333333333365,
+            5.658673333333337,
+            5.7129470198675545
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.126513333333335,
+            6.047153333333333,
+            6.229927152317883
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7850266666666669,
+            0.7706821192052983,
+            0.7698333333333333
+          ],
+          "GT Power_0": [
+            0.23478666666666664,
+            0.23191390728476824,
+            0.23333333333333342
+          ],
+          "IA Power_0": [
+            7.0519399999999965,
+            6.022437086092714,
+            5.997160000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5755666666666635,
+            6.548629139072846,
+            6.533413333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7336533333333328,
+            0.7180596026490064,
+            0.7335894039735096
+          ],
+          "GT Power_0": [
+            0.11266666666666664,
+            0.11565562913907292,
+            0.1142980132450332
+          ],
+          "IA Power_0": [
+            6.0756599999999965,
+            5.866423841059602,
+            5.884377483443709
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.590793333333336,
+            6.211410596026491,
+            6.326423841059601
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD137-A9",
+      "number": 4602,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5744266666666665,
+            0.5862715231788078,
+            0.5834533333333332
+          ],
+          "GT Power_0": [
+            0.03753999999999999,
+            0.01486092715231788,
+            0.013346666666666665
+          ],
+          "IA Power_0": [
+            3.4796599999999995,
+            3.1267483443708626,
+            3.6315266666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7325066666666626,
+            3.495602649006621,
+            3.981253333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7344999999999997,
+            0.7162866666666663,
+            0.7094900662251654
+          ],
+          "GT Power_0": [
+            0.10690666666666668,
+            0.10903999999999998,
+            0.10774834437086098
+          ],
+          "IA Power_0": [
+            6.745086666666666,
+            6.941866666666668,
+            6.7781059602649005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.486073333333335,
+            7.411313333333331,
+            7.093993377483444
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7301192052980126,
+            0.7112333333333327,
+            0.7254172185430457
+          ],
+          "GT Power_0": [
+            0.10523178807947019,
+            0.10117333333333338,
+            0.10386754966887422
+          ],
+          "IA Power_0": [
+            6.992172185430463,
+            7.1743133333333375,
+            6.8612516556291405
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4820794701986735,
+            7.535326666666664,
+            7.343556291390725
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7843533333333332,
+            0.7850993377483448,
+            0.7701066666666665
+          ],
+          "GT Power_0": [
+            0.22827333333333338,
+            0.23288741721854297,
+            0.2300333333333334
+          ],
+          "IA Power_0": [
+            7.074159999999994,
+            7.451245033112586,
+            7.063353333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.639073333333334,
+            8.055993377483443,
+            7.569960000000003
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7221390728476816,
+            0.7344768211920532,
+            0.7367947019867547
+          ],
+          "GT Power_0": [
+            0.11687417218543056,
+            0.11234437086092716,
+            0.10998675496688747
+          ],
+          "IA Power_0": [
+            7.107019867549666,
+            6.9452119205298,
+            6.96635761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.420311258278146,
+            7.646119205298009,
+            7.501165562913905
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4601,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5750799999999999,
+            0.5872866666666665,
+            0.5893841059602649
+          ],
+          "GT Power_0": [
+            0.04589999999999997,
+            0.015586666666666667,
+            0.01649006622516556
+          ],
+          "IA Power_0": [
+            3.563646666666666,
+            3.2116133333333323,
+            3.165609271523181
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8061199999999995,
+            3.53238,
+            3.5588807947019867
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109403973509932,
+            0.7399602649006617,
+            0.7108999999999992
+          ],
+          "GT Power_0": [
+            0.11546357615894035,
+            0.11856953642384103,
+            0.11485333333333336
+          ],
+          "IA Power_0": [
+            6.223470198675497,
+            6.837456953642385,
+            6.625666666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6024172185430485,
+            7.394185430463576,
+            7.015013333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7271466666666662,
+            0.711833333333333,
+            0.73032
+          ],
+          "GT Power_0": [
+            0.1191066666666667,
+            0.1188133333333334,
+            0.11762666666666666
+          ],
+          "IA Power_0": [
+            6.2766399999999996,
+            6.383253333333334,
+            6.696793333333329
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.909446666666668,
+            6.795046666666666,
+            7.218653333333337
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7674733333333338,
+            0.7685333333333338,
+            0.7700400000000002
+          ],
+          "GT Power_0": [
+            0.2585133333333333,
+            0.25922,
+            0.2573333333333333
+          ],
+          "IA Power_0": [
+            6.617013333333332,
+            6.611613333333332,
+            6.905686666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.145279999999996,
+            7.121066666666664,
+            7.38267333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4600,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5739865771812079,
+            0.5735000000000002,
+            0.5732533333333333
+          ],
+          "GT Power_0": [
+            0.036140939597315416,
+            0.013206666666666665,
+            0.013873333333333333
+          ],
+          "IA Power_0": [
+            3.0603892617449664,
+            3.0566333333333335,
+            3.0126800000000022
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.308322147651006,
+            3.270200000000001,
+            3.281420000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140662251655624,
+            0.7124503311258276,
+            0.7127133333333328
+          ],
+          "GT Power_0": [
+            0.10636423841059613,
+            0.10037748344370863,
+            0.0990466666666667
+          ],
+          "IA Power_0": [
+            6.093516556291392,
+            6.255536423841059,
+            5.9748
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.368649006622513,
+            6.609403973509934,
+            6.330946666666664
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7431599999999995,
+            0.7121324503311254,
+            0.7120728476821189
+          ],
+          "GT Power_0": [
+            0.1017266666666667,
+            0.09701324503311261,
+            0.09717218543046356
+          ],
+          "IA Power_0": [
+            5.975773333333335,
+            6.191768211920532,
+            6.003794701986755
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.933106666666669,
+            6.54862251655629,
+            6.3550927152317875
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7679400000000005,
+            0.7892450331125831,
+            0.7694333333333339
+          ],
+          "GT Power_0": [
+            0.21618000000000004,
+            0.22425165562913912,
+            0.22081333333333342
+          ],
+          "IA Power_0": [
+            6.1211,
+            6.212165562913906,
+            6.164380000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6587733333333325,
+            7.077139072847686,
+            6.654633333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7249866666666659,
+            0.7190397350993373,
+            0.7377799999999998
+          ],
+          "GT Power_0": [
+            0.11058,
+            0.10780132450331127,
+            0.10978666666666667
+          ],
+          "IA Power_0": [
+            6.4377066666666645,
+            6.056509933774837,
+            6.107360000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.760806666666671,
+            6.432781456953644,
+            6.7230533333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD165-A9",
+      "number": 4599,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5805400000000001,
+            0.5740198675496689,
+            0.5870993377483441
+          ],
+          "GT Power_0": [
+            0.03650666666666666,
+            0.01429139072847682,
+            0.014218543046357614
+          ],
+          "IA Power_0": [
+            3.17218,
+            3.124304635761589,
+            3.162807947019867
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.513826666666664,
+            3.3449668874172183,
+            3.457317880794701
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7425629139072847,
+            0.7233443708609265,
+            0.7112266666666662
+          ],
+          "GT Power_0": [
+            0.09935761589403974,
+            0.11415894039735104,
+            0.09984
+          ],
+          "IA Power_0": [
+            6.809112582781458,
+            6.296715231788081,
+            6.180206666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.317039735099336,
+            6.840675496688742,
+            6.547100000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7262466666666663,
+            0.7130463576158936,
+            0.7119735099337743
+          ],
+          "GT Power_0": [
+            0.10316,
+            0.10103973509933774,
+            0.09896026490066225
+          ],
+          "IA Power_0": [
+            6.503033333333331,
+            6.2288344370860935,
+            6.290099337748349
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.940953333333332,
+            6.57871523178808,
+            6.625284768211924
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7799866666666672,
+            0.7863333333333339,
+            0.7852649006622522
+          ],
+          "GT Power_0": [
+            0.2574466666666667,
+            0.23321999999999998,
+            0.23472847682119202
+          ],
+          "IA Power_0": [
+            6.532453333333336,
+            6.50702,
+            6.844562913907283
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.108166666666671,
+            7.04079333333333,
+            7.425576158940397
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172333333333328,
+            0.7326887417218542,
+            0.7178807947019863
+          ],
+          "GT Power_0": [
+            0.11066666666666665,
+            0.10952980132450335,
+            0.10969536423841061
+          ],
+          "IA Power_0": [
+            6.344613333333338,
+            6.345251655629141,
+            6.642099337748346
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6966600000000005,
+            6.886748344370863,
+            7.011960264900664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD183-A9",
+      "number": 4598,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5810599999999997,
+            0.5799666666666663,
+            0.5831333333333337
+          ],
+          "GT Power_0": [
+            0.04326666666666665,
+            0.0154,
+            0.01592666666666667
+          ],
+          "IA Power_0": [
+            3.017866666666667,
+            3.2022466666666682,
+            3.8296266666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3765600000000013,
+            3.4076466666666665,
+            4.0529866666666665
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126423841059593,
+            0.7124866666666663,
+            0.7310533333333326
+          ],
+          "GT Power_0": [
+            0.11731788079470194,
+            0.11572,
+            0.11608000000000002
+          ],
+          "IA Power_0": [
+            5.916662251655631,
+            5.911079999999999,
+            6.242446666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.303675496688739,
+            6.283426666666666,
+            6.7881933333333295
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122199999999995,
+            0.7116333333333331,
+            0.7257218543046356
+          ],
+          "GT Power_0": [
+            0.11558666666666664,
+            0.11891999999999996,
+            0.1152384105960265
+          ],
+          "IA Power_0": [
+            6.0482733333333325,
+            5.957893333333334,
+            5.967238410596028
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.413333333333335,
+            6.350426666666664,
+            6.478417218543044
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7696887417218544,
+            0.7695231788079473,
+            0.7703973509933777
+          ],
+          "GT Power_0": [
+            0.25256953642384095,
+            0.2514238410596025,
+            0.2513576158940397
+          ],
+          "IA Power_0": [
+            6.173245033112583,
+            6.498913907284768,
+            6.151821192052978
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.70834437086093,
+            7.028814569536423,
+            6.705907284768214
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7163311258278141,
+            0.7187682119205296,
+            0.7173178807947013
+          ],
+          "GT Power_0": [
+            0.12174172185430465,
+            0.12019205298013243,
+            0.12081456953642387
+          ],
+          "IA Power_0": [
+            6.077463576158941,
+            6.3750066225165565,
+            6.022807947019865
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.44288741721854,
+            6.745536423841062,
+            6.454423841059604
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4597,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5751533333333334,
+            0.5879066666666669,
+            0.5691258278145692
+          ],
+          "GT Power_0": [
+            0.029966666666666645,
+            0.014079999999999995,
+            0.01334437086092715
+          ],
+          "IA Power_0": [
+            3.0255466666666675,
+            2.7545599999999997,
+            2.5581059602649
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.282493333333334,
+            3.073786666666665,
+            2.826562913907284
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141258278145689,
+            0.7128666666666663,
+            0.7140463576158939
+          ],
+          "GT Power_0": [
+            0.11488079470198681,
+            0.11336666666666666,
+            0.11258940397350999
+          ],
+          "IA Power_0": [
+            5.29655629139073,
+            5.2624466666666665,
+            5.504867549668873
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.702993377483444,
+            5.641379999999999,
+            5.903562913907283
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7262799999999998,
+            0.714629139072847,
+            0.7139735099337746
+          ],
+          "GT Power_0": [
+            0.11223333333333337,
+            0.11582781456953646,
+            0.11237748344370864
+          ],
+          "IA Power_0": [
+            5.314913333333332,
+            5.274013245033116,
+            5.509211920529803
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.773566666666668,
+            5.8167947019867565,
+            5.900596026490069
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713311258278149,
+            0.771211920529802,
+            0.7897814569536427
+          ],
+          "GT Power_0": [
+            0.23489403973509929,
+            0.23275496688741718,
+            0.2327814569536424
+          ],
+          "IA Power_0": [
+            5.434384105960265,
+            5.509509933774836,
+            5.478105960264898
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.946251655629135,
+            5.9757814569536425,
+            6.125086092715231
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7190397350993373,
+            0.7277814569536417,
+            0.7273443708609271
+          ],
+          "GT Power_0": [
+            0.1181192052980133,
+            0.11883443708609277,
+            0.1184569536423842
+          ],
+          "IA Power_0": [
+            5.402437086092713,
+            5.571933774834439,
+            5.352377483443708
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.753953642384107,
+            5.916847682119208,
+            5.7805629139072865
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD21-B1",
+      "number": 4596,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5821066666666666,
+            0.5754503311258278,
+            0.5744238410596023
+          ],
+          "GT Power_0": [
+            0.03404666666666664,
+            0.015344370860927157,
+            0.015456953642384107
+          ],
+          "IA Power_0": [
+            2.983926666666666,
+            3.182761589403972,
+            2.885271523178809
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.493853333333332,
+            4.603516556291389,
+            4.2896490066225175
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138410596026484,
+            0.7139999999999992,
+            0.7139139072847679
+          ],
+          "GT Power_0": [
+            0.1040860927152318,
+            0.1045562913907285,
+            0.10498675496688745
+          ],
+          "IA Power_0": [
+            5.508033112582784,
+            5.518503311258277,
+            5.550814569536426
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.066072847682121,
+            7.067933774834438,
+            7.104629139072849
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7294635761589398,
+            0.7156622516556284,
+            0.7132847682119202
+          ],
+          "GT Power_0": [
+            0.10410596026490064,
+            0.10807284768211926,
+            0.10735761589403979
+          ],
+          "IA Power_0": [
+            5.892516556291391,
+            5.605364238410597,
+            5.558801324503313
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.557986754966885,
+            7.1223642384106,
+            7.088006622516559
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717400000000002,
+            0.7892466666666671,
+            0.7817533333333334
+          ],
+          "GT Power_0": [
+            0.23083333333333328,
+            0.22935333333333324,
+            0.22779333333333335
+          ],
+          "IA Power_0": [
+            6.021799999999999,
+            5.835800000000003,
+            5.825319999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.717373333333332,
+            7.6950466666666655,
+            7.509926666666664
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7202999999999995,
+            0.7193311258278139,
+            0.7257583892617443
+          ],
+          "GT Power_0": [
+            0.11752666666666668,
+            0.11015894039735104,
+            0.11276510067114096
+          ],
+          "IA Power_0": [
+            5.613253333333334,
+            5.714357615894038,
+            6.590255033557047
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1652466666666665,
+            7.232920529801328,
+            8.094000000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4595,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5888079470198675,
+            0.5710132450331123,
+            0.5745533333333331
+          ],
+          "GT Power_0": [
+            0.015006622516556292,
+            0.014364238410596024,
+            0.015133333333333334
+          ],
+          "IA Power_0": [
+            2.719682119205297,
+            2.609192052980134,
+            2.671953333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0352649006622503,
+            2.8458476821192047,
+            2.9380599999999992
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7183199999999995,
+            0.7149801324503308,
+            0.7137615894039729
+          ],
+          "GT Power_0": [
+            0.11188000000000005,
+            0.11170198675496691,
+            0.11101986754966889
+          ],
+          "IA Power_0": [
+            5.630526666666669,
+            5.272880794701985,
+            5.339993377483443
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.012493333333335,
+            5.646966887417219,
+            5.700761589403978
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7221523178807945,
+            0.7282317880794701,
+            0.7122317880794696
+          ],
+          "GT Power_0": [
+            0.11307284768211924,
+            0.11215231788079476,
+            0.11333112582781452
+          ],
+          "IA Power_0": [
+            5.735887417218543,
+            5.265437086092712,
+            5.261026490066226
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.092556291390727,
+            5.704238410596028,
+            5.620384105960265
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7871933333333334,
+            0.780586666666667,
+            0.8134768211920536
+          ],
+          "GT Power_0": [
+            0.24041333333333345,
+            0.24055999999999997,
+            0.24218543046357627
+          ],
+          "IA Power_0": [
+            5.5362866666666655,
+            5.4973399999999994,
+            5.437443708609272
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.203646666666665,
+            6.12478,
+            6.396649006622518
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7331799999999995,
+            0.7226399999999998,
+            0.755693333333333
+          ],
+          "GT Power_0": [
+            0.12163999999999994,
+            0.11831999999999998,
+            0.11974666666666661
+          ],
+          "IA Power_0": [
+            5.335706666666668,
+            5.57092,
+            6.310586666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.759013333333336,
+            5.871273333333332,
+            6.727086666666662
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4594,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5762666666666665,
+            0.5754768211920528,
+            0.5753245033112584
+          ],
+          "GT Power_0": [
+            0.034733333333333304,
+            0.015880794701986757,
+            0.016556291390728475
+          ],
+          "IA Power_0": [
+            3.1597199999999996,
+            3.0909999999999997,
+            3.0568940397350994
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.399206666666666,
+            3.3417284768211912,
+            3.3055960264900675
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145364238410594,
+            0.7153266666666663,
+            0.7134399999999996
+          ],
+          "GT Power_0": [
+            0.11736423841059605,
+            0.12012666666666667,
+            0.11916000000000004
+          ],
+          "IA Power_0": [
+            6.0980927152317905,
+            6.379666666666669,
+            6.012066666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.446344370860923,
+            6.74166666666667,
+            6.374120000000004
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7135799999999993,
+            0.7141192052980124,
+            0.7247866666666665
+          ],
+          "GT Power_0": [
+            0.12024000000000012,
+            0.12164238410596026,
+            0.11927333333333333
+          ],
+          "IA Power_0": [
+            6.004906666666668,
+            6.2448940397351,
+            6.074886666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.379686666666669,
+            6.6786556291390715,
+            6.464180000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7851258278145695,
+            0.7767266666666667,
+            0.7890728476821194
+          ],
+          "GT Power_0": [
+            0.25056953642384117,
+            0.2531400000000001,
+            0.26068211920529805
+          ],
+          "IA Power_0": [
+            6.3051059602649,
+            6.946240000000002,
+            6.553165562913909
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9464834437086065,
+            7.479546666666667,
+            7.086721854304636
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.730633333333333,
+            0.7315364238410588,
+            0.7182781456953639
+          ],
+          "GT Power_0": [
+            0.12728,
+            0.1247218543046358,
+            0.125887417218543
+          ],
+          "IA Power_0": [
+            6.534779999999999,
+            6.156642384105959,
+            6.055774834437086
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.91533333333333,
+            6.732781456953644,
+            6.472649006622518
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD175-A9",
+      "number": 4593,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5763733333333333,
+            0.5749337748344366,
+            0.5862384105960257
+          ],
+          "GT Power_0": [
+            0.03312666666666665,
+            0.01392715231788079,
+            0.01439735099337748
+          ],
+          "IA Power_0": [
+            3.3782066666666664,
+            2.9236225165562915,
+            2.953953642384106
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6293866666666674,
+            3.180423841059603,
+            3.2142384105960264
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7151721854304629,
+            0.7433708609271518,
+            0.7294599999999991
+          ],
+          "GT Power_0": [
+            0.10424503311258285,
+            0.10031125827814573,
+            0.10518000000000005
+          ],
+          "IA Power_0": [
+            6.16090066225165,
+            6.104476821192053,
+            5.8722733333333315
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.531788079470198,
+            6.914370860927151,
+            6.375353333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.727493333333333,
+            0.7122333333333327,
+            0.7124768211920526
+          ],
+          "GT Power_0": [
+            0.10237333333333336,
+            0.10417333333333333,
+            0.1009867549668874
+          ],
+          "IA Power_0": [
+            5.884926666666666,
+            5.874013333333334,
+            6.030503311258276
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.377439999999997,
+            6.2534199999999975,
+            6.381993377483445
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.770826666666667,
+            0.7742119205298015,
+            0.770377483443709
+          ],
+          "GT Power_0": [
+            0.22980666666666674,
+            0.252317880794702,
+            0.2317814569536423
+          ],
+          "IA Power_0": [
+            6.147680000000001,
+            6.239688741721854,
+            6.456953642384107
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6270799999999985,
+            6.746450331125825,
+            6.980649006622518
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179470198675496,
+            0.7305333333333333,
+            0.7162399999999994
+          ],
+          "GT Power_0": [
+            0.10648344370860925,
+            0.10910000000000003,
+            0.11045333333333335
+          ],
+          "IA Power_0": [
+            5.925860927152319,
+            5.933673333333335,
+            6.305226666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.296774834437085,
+            6.410826666666664,
+            6.657413333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD162-A9",
+      "number": 4592,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5823288590604023,
+            0.5912847682119204,
+            0.576373333333333
+          ],
+          "GT Power_0": [
+            0.03371140939597314,
+            0.014450331125827814,
+            0.014366666666666668
+          ],
+          "IA Power_0": [
+            3.1298590604026844,
+            2.712046357615894,
+            2.822906666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4256442953020128,
+            3.0825364238410597,
+            3.0559600000000007
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7297880794701985,
+            0.7146291390728468,
+            0.7141466666666665
+          ],
+          "GT Power_0": [
+            0.1247019867549669,
+            0.12268874172185427,
+            0.12225333333333334
+          ],
+          "IA Power_0": [
+            5.611271523178808,
+            5.3699536423841066,
+            5.315853333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.106947019867549,
+            5.760933774834435,
+            5.69253333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7319867549668869,
+            0.7125666666666659,
+            0.7166225165562908
+          ],
+          "GT Power_0": [
+            0.12129139072847683,
+            0.12344000000000001,
+            0.1215298013245033
+          ],
+          "IA Power_0": [
+            5.30187417218543,
+            5.249986666666667,
+            5.64066225165563
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.881821192052978,
+            5.659200000000001,
+            6.044258278145694
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.773986666666667,
+            0.7739466666666666,
+            0.7795231788079474
+          ],
+          "GT Power_0": [
+            0.25000666666666665,
+            0.2555333333333334,
+            0.27409271523178813
+          ],
+          "IA Power_0": [
+            5.544833333333334,
+            5.602433333333333,
+            5.913688741721856
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.053806666666667,
+            6.134686666666669,
+            6.404940397350994
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7197218543046353,
+            0.7502199999999991,
+            0.7196688741721851
+          ],
+          "GT Power_0": [
+            0.14139072847682116,
+            0.13588000000000008,
+            0.1334635761589404
+          ],
+          "IA Power_0": [
+            5.471271523178808,
+            5.421260000000004,
+            5.446139072847682
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.838278145695365,
+            6.130713333333335,
+            5.831814569536422
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD136-A9",
+      "number": 4591,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.7070533333333328,
+            0.6298926174496643,
+            0.6311812080536909
+          ],
+          "GT Power_0": [
+            0.013353333333333332,
+            0.014261744966442953,
+            0.0147248322147651
+          ],
+          "IA Power_0": [
+            6.556213333333333,
+            4.304812080536914,
+            5.023208053691273
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.821179999999998,
+            4.651510067114096,
+            5.287644295302015
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7299602649006618,
+            0.7337199999999995,
+            0.738793333333333
+          ],
+          "GT Power_0": [
+            0.09378807947019867,
+            0.09490666666666674,
+            0.0955133333333333
+          ],
+          "IA Power_0": [
+            5.203476821192052,
+            5.147533333333333,
+            5.908346666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.686827814569538,
+            5.621526666666664,
+            6.237433333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7162533333333326,
+            0.7130264900662248,
+            0.7292317880794696
+          ],
+          "GT Power_0": [
+            0.09557999999999998,
+            0.09390728476821202,
+            0.09489403973509933
+          ],
+          "IA Power_0": [
+            5.199253333333332,
+            5.163847682119207,
+            5.188913907284768
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.560746666666666,
+            5.5175430463576145,
+            5.623311258278144
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7822913907284771,
+            0.7728543046357624,
+            0.7725894039735102
+          ],
+          "GT Power_0": [
+            0.22874172185430464,
+            0.20675496688741724,
+            0.21624503311258286
+          ],
+          "IA Power_0": [
+            5.342370860927152,
+            5.3122913907284754,
+            5.339072847682117
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.875662251655629,
+            5.839596026490067,
+            5.843092715231787
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7320927152317873,
+            0.756373333333333,
+            0.7307999999999999
+          ],
+          "GT Power_0": [
+            0.10212582781456954,
+            0.11599999999999996,
+            0.1003066666666668
+          ],
+          "IA Power_0": [
+            5.201589403973509,
+            5.340706666666665,
+            5.2855
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.717589403973509,
+            5.911073333333337,
+            5.759986666666661
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD119-A9",
+      "number": 4590,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.57952,
+            0.5741986754966888,
+            0.5888807947019867
+          ],
+          "GT Power_0": [
+            0.03844666666666665,
+            0.014509933774834434,
+            0.014298013245033114
+          ],
+          "IA Power_0": [
+            3.1373666666666673,
+            3.1599470198675483,
+            3.4621854304635775
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4265933333333334,
+            3.363344370860927,
+            3.795933774834436
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352185430463573,
+            0.7466225165562909,
+            0.7134266666666665
+          ],
+          "GT Power_0": [
+            0.1068278145695364,
+            0.11273509933774842,
+            0.10751333333333332
+          ],
+          "IA Power_0": [
+            6.264549668874172,
+            6.273867549668877,
+            6.565940000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.916523178807947,
+            7.083245033112583,
+            6.954726666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7174399999999994,
+            0.7385733333333326,
+            0.72574
+          ],
+          "GT Power_0": [
+            0.10951999999999996,
+            0.1085066666666667,
+            0.10838
+          ],
+          "IA Power_0": [
+            6.454719999999999,
+            6.3267999999999995,
+            6.344120000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7776933333333345,
+            7.207853333333335,
+            6.780626666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7862733333333333,
+            0.7838741721854304,
+            0.7895000000000003
+          ],
+          "GT Power_0": [
+            0.2356066666666667,
+            0.2593245033112584,
+            0.2726666666666666
+          ],
+          "IA Power_0": [
+            6.525620000000001,
+            6.981649006622515,
+            6.578686666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.085359999999996,
+            7.508298013245036,
+            7.2212999999999985
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7363333333333331,
+            0.7241399999999995,
+            0.7377814569536421
+          ],
+          "GT Power_0": [
+            0.11708000000000003,
+            0.12146666666666668,
+            0.1178278145695365
+          ],
+          "IA Power_0": [
+            6.354253333333332,
+            7.186653333333334,
+            6.565046357615893
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.865646666666665,
+            7.588020000000005,
+            6.944264900662249
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4589,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58282,
+            0.5807615894039735,
+            0.5733599999999998
+          ],
+          "GT Power_0": [
+            0.03945999999999999,
+            0.014569536423841064,
+            0.013819999999999997
+          ],
+          "IA Power_0": [
+            3.361366666666667,
+            3.1355165562913903,
+            2.9818199999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.706926666666666,
+            3.399364238410596,
+            3.214040000000002
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.726733333333333,
+            0.713313333333333,
+            0.713353333333333
+          ],
+          "GT Power_0": [
+            0.11361333333333332,
+            0.11364666666666669,
+            0.11052666666666668
+          ],
+          "IA Power_0": [
+            6.558213333333333,
+            6.128986666666665,
+            6.1760600000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.029246666666671,
+            6.489726666666664,
+            6.5071266666666645
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714483443708609,
+            0.713801324503311,
+            0.7140132450331119
+          ],
+          "GT Power_0": [
+            0.1096291390728477,
+            0.11029139072847689,
+            0.11063576158940397
+          ],
+          "IA Power_0": [
+            6.201629139072848,
+            6.166172185430465,
+            6.628105960264901
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.551576158940399,
+            6.566000000000002,
+            6.914443708609268
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713333333333338,
+            0.7969866666666668,
+            0.7717615894039741
+          ],
+          "GT Power_0": [
+            0.23871333333333325,
+            0.25566666666666654,
+            0.24210596026490075
+          ],
+          "IA Power_0": [
+            6.373073333333334,
+            6.485706666666669,
+            6.472105960264903
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.924506666666666,
+            7.20434,
+            6.973980132450332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.718019867549668,
+            0.7383576158940396,
+            0.720649006622516
+          ],
+          "GT Power_0": [
+            0.12358940397350997,
+            0.12084105960264906,
+            0.12241721854304641
+          ],
+          "IA Power_0": [
+            6.330682119205299,
+            6.622576158940398,
+            6.3379139072847686
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6817615894039735,
+            7.109794701986751,
+            6.713529801324503
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD21-B1",
+      "number": 4588,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6060133333333333,
+            0.6298266666666663,
+            0.5758866666666667
+          ],
+          "GT Power_0": [
+            0.03081999999999998,
+            0.014826666666666669,
+            0.015266666666666666
+          ],
+          "IA Power_0": [
+            4.386220000000003,
+            4.142293333333334,
+            2.9555066666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.852586666666667,
+            5.583546666666666,
+            4.3842133333333315
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7306466666666664,
+            0.7143178807947013,
+            0.7141733333333328
+          ],
+          "GT Power_0": [
+            0.11661333333333346,
+            0.11296026490066224,
+            0.1120333333333333
+          ],
+          "IA Power_0": [
+            6.4072266666666655,
+            5.659649006622517,
+            5.621719999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.948753333333331,
+            7.194039735099337,
+            7.163926666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7151466666666663,
+            0.7221788079470194,
+            0.7215761589403971
+          ],
+          "GT Power_0": [
+            0.1108466666666667,
+            0.11462251655629141,
+            0.10957615894039732
+          ],
+          "IA Power_0": [
+            5.952333333333332,
+            6.26317880794702,
+            5.961238410596027
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.475553333333332,
+            7.779529801324504,
+            7.526238410596025
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7727666666666677,
+            0.782706666666667,
+            0.7871000000000005
+          ],
+          "GT Power_0": [
+            0.24023333333333322,
+            0.23956666666666662,
+            0.23484666666666673
+          ],
+          "IA Power_0": [
+            5.839060000000002,
+            5.896766666666667,
+            6.047206666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.710646666666668,
+            7.644933333333331,
+            7.959120000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7340463576158933,
+            0.7211589403973505,
+            0.6313533333333331
+          ],
+          "GT Power_0": [
+            0.13517880794701984,
+            0.11731788079470201,
+            0.4776066666666666
+          ],
+          "IA Power_0": [
+            5.741245033112584,
+            5.684589403973511,
+            6.215533333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.3037350993377474,
+            7.232205298013243,
+            8.131739999999995
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD133-A9",
+      "number": 4587,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5735496688741721,
+            0.5744966887417216,
+            0.5696556291390728
+          ],
+          "GT Power_0": [
+            0.03159602649006621,
+            0.015801324503311256,
+            0.015503311258278144
+          ],
+          "IA Power_0": [
+            3.1018807947019864,
+            2.832052980132449,
+            2.7007218543046347
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3548807947019865,
+            3.0891854304635764,
+            2.928317880794701
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7105629139072845,
+            0.7129337748344363,
+            0.7289139072847678
+          ],
+          "GT Power_0": [
+            0.12021854304635764,
+            0.11672847682119211,
+            0.11913907284768209
+          ],
+          "IA Power_0": [
+            5.469311258278147,
+            5.528145695364236,
+            5.7782119205298
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.859860927152317,
+            5.8814503311258255,
+            6.279324503311257
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7258874172185426,
+            0.711940397350993,
+            0.7131920529801321
+          ],
+          "GT Power_0": [
+            0.12282119205298017,
+            0.11762251655629148,
+            0.1194635761589404
+          ],
+          "IA Power_0": [
+            5.531523178807946,
+            5.597430463576156,
+            5.616013245033114
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.995701986754967,
+            5.929960264900661,
+            5.949072847682116
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7775430463576158,
+            0.7726933333333335,
+            0.7718466666666671
+          ],
+          "GT Power_0": [
+            0.24729139072847672,
+            0.2464600000000001,
+            0.24651333333333342
+          ],
+          "IA Power_0": [
+            5.8081920529801305,
+            6.01776,
+            5.764446666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.40244370860927,
+            6.5288066666666715,
+            6.2858399999999985
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7192980132450333,
+            0.7192980132450326,
+            0.7184399999999995
+          ],
+          "GT Power_0": [
+            0.12678145695364235,
+            0.12886092715231795,
+            0.1268800000000001
+          ],
+          "IA Power_0": [
+            5.6463774834437075,
+            5.91092715231788,
+            5.636306666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.035834437086092,
+            6.302761589403972,
+            6.013306666666664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4586,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5820066666666661,
+            0.5851059602649008,
+            0.5734666666666665
+          ],
+          "GT Power_0": [
+            0.04060666666666666,
+            0.013238410596026491,
+            0.012399999999999998
+          ],
+          "IA Power_0": [
+            2.7378333333333322,
+            2.6999867549668872,
+            2.7207733333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1080866666666678,
+            3.0135761589403978,
+            2.96378
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303046357615885,
+            0.7286026490066221,
+            0.7301258278145689
+          ],
+          "GT Power_0": [
+            0.08917218543046361,
+            0.08968211920529805,
+            0.0903907284768212
+          ],
+          "IA Power_0": [
+            5.579635761589406,
+            5.356682119205301,
+            5.442311258278147
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.078887417218542,
+            5.738013245033112,
+            5.9336754966887355
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7125099337748343,
+            0.71441059602649,
+            0.7298799999999992
+          ],
+          "GT Power_0": [
+            0.09011920529801323,
+            0.08725165562913907,
+            0.0856533333333334
+          ],
+          "IA Power_0": [
+            5.62837086092715,
+            5.496668874172184,
+            5.362286666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.970615894039735,
+            5.796079470198678,
+            5.79052
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7697066666666665,
+            0.7829602649006624,
+            0.7726225165562915
+          ],
+          "GT Power_0": [
+            0.19769333333333328,
+            0.212476821192053,
+            0.19581456953642387
+          ],
+          "IA Power_0": [
+            5.556433333333331,
+            5.856456953642388,
+            5.917344370860929
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.027053333333334,
+            6.432609271523179,
+            6.327668874172185
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7356887417218538,
+            0.719973333333333,
+            0.7187748344370859
+          ],
+          "GT Power_0": [
+            0.09466225165562915,
+            0.09484666666666663,
+            0.09354304635761591
+          ],
+          "IA Power_0": [
+            5.456788079470196,
+            5.557653333333331,
+            5.764986754966891
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.8814304635761605,
+            5.893906666666669,
+            6.094443708609271
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4585,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5792980132450326,
+            0.5737947019867548,
+            0.5900866666666666
+          ],
+          "GT Power_0": [
+            0.03574834437086091,
+            0.015165562913907287,
+            0.01641999999999999
+          ],
+          "IA Power_0": [
+            2.893562913907284,
+            2.717907284768213,
+            2.730799999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1544966887417223,
+            2.9557682119205286,
+            3.064519999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7168874172185424,
+            0.7317866666666658,
+            0.7125629139072843
+          ],
+          "GT Power_0": [
+            0.1266622516556291,
+            0.12723333333333334,
+            0.1260264900662252
+          ],
+          "IA Power_0": [
+            5.396920529801325,
+            5.893213333333333,
+            5.3529470198675515
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.80287417218543,
+            6.4193000000000024,
+            5.7190596026490095
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144900662251649,
+            0.7162199999999995,
+            0.7132185430463573
+          ],
+          "GT Power_0": [
+            0.12458278145695365,
+            0.12569333333333327,
+            0.12434437086092723
+          ],
+          "IA Power_0": [
+            5.293582781456949,
+            5.678786666666666,
+            5.294854304635762
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.6883642384105935,
+            6.038433333333335,
+            5.674933774834434
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708666666666671,
+            0.7745666666666668,
+            0.7709600000000001
+          ],
+          "GT Power_0": [
+            0.25703999999999994,
+            0.2591466666666668,
+            0.2561399999999998
+          ],
+          "IA Power_0": [
+            5.6288,
+            5.504266666666667,
+            5.49488
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.294586666666669,
+            6.047640000000001,
+            6.0491466666666645
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7195827814569536,
+            0.7192666666666666,
+            0.7213576158940392
+          ],
+          "GT Power_0": [
+            0.13019867549668876,
+            0.13172,
+            0.1371192052980133
+          ],
+          "IA Power_0": [
+            5.7100331125827815,
+            5.632293333333331,
+            5.680264900662255
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.122503311258278,
+            6.037793333333334,
+            6.040589403973509
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD144-A9",
+      "number": 4584,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5839668874172181,
+            0.575324503311258,
+            0.5757549668874166
+          ],
+          "GT Power_0": [
+            0.02994701986754966,
+            0.014377483443708608,
+            0.015013245033112577
+          ],
+          "IA Power_0": [
+            3.158284768211921,
+            3.364271523178808,
+            2.9770927152317883
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.462370860927152,
+            3.591615894039737,
+            3.2128278145695375
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145695364238404,
+            0.7138799999999996,
+            0.7126133333333329
+          ],
+          "GT Power_0": [
+            0.0993841059602649,
+            0.09790666666666668,
+            0.09994666666666666
+          ],
+          "IA Power_0": [
+            6.1054039735099375,
+            6.102039999999999,
+            6.1230466666666645
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.445953642384106,
+            6.450739999999998,
+            6.47756666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7142251655629138,
+            0.7129337748344365,
+            0.713397350993377
+          ],
+          "GT Power_0": [
+            0.09689403973509943,
+            0.09565562913907287,
+            0.09635761589403971
+          ],
+          "IA Power_0": [
+            6.447695364238408,
+            6.238986754966889,
+            6.095185430463574
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.790205298013245,
+            6.538801324503313,
+            6.484112582781457
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7724370860927157,
+            0.7716200000000003,
+            0.773099337748345
+          ],
+          "GT Power_0": [
+            0.2186622516556291,
+            0.21762666666666666,
+            0.2171986754966888
+          ],
+          "IA Power_0": [
+            6.691615894039734,
+            6.4191133333333354,
+            6.335814569536424
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.182039735099335,
+            6.844960000000001,
+            6.8595761589403965
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7198609271523175,
+            0.7188278145695361,
+            0.7188940397350988
+          ],
+          "GT Power_0": [
+            0.10691390728476825,
+            0.10378145695364238,
+            0.10638410596026493
+          ],
+          "IA Power_0": [
+            6.132218543046359,
+            6.21241059602649,
+            6.467993377483442
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.53323178807947,
+            6.552039735099339,
+            6.826668874172185
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4583,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5822251655629135,
+            0.5755827814569535,
+            0.5754733333333331
+          ],
+          "GT Power_0": [
+            0.04323178807947019,
+            0.0167682119205298,
+            0.016739999999999998
+          ],
+          "IA Power_0": [
+            3.126629139072847,
+            3.064761589403973,
+            3.0274266666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4634238410596034,
+            3.2792317880794712,
+            3.279293333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712331125827814,
+            0.7204133333333329,
+            0.7113866666666663
+          ],
+          "GT Power_0": [
+            0.11530463576158943,
+            0.11302,
+            0.11903333333333338
+          ],
+          "IA Power_0": [
+            5.841192052980131,
+            6.220326666666668,
+            5.787526666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.223774834437085,
+            6.603433333333334,
+            6.208300000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7167666666666661,
+            0.7168866666666663,
+            0.712556291390728
+          ],
+          "GT Power_0": [
+            0.11579333333333336,
+            0.12558666666666674,
+            0.11447682119205296
+          ],
+          "IA Power_0": [
+            6.048286666666666,
+            5.903686666666668,
+            5.905629139072849
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4180600000000005,
+            6.343626666666665,
+            6.294543046357618
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7681533333333337,
+            0.7707947019867553,
+            0.769926666666667
+          ],
+          "GT Power_0": [
+            0.27416666666666656,
+            0.2749867549668875,
+            0.2741266666666669
+          ],
+          "IA Power_0": [
+            6.228106666666667,
+            6.111278145695366,
+            5.983106666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.817826666666669,
+            6.6781655629139065,
+            6.52896
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.739953333333333,
+            0.7172582781456948,
+            0.7534105960264895
+          ],
+          "GT Power_0": [
+            0.12393333333333333,
+            0.12359602649006621,
+            0.13312582781456958
+          ],
+          "IA Power_0": [
+            6.249313333333333,
+            5.972867549668876,
+            6.064556291390726
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.002733333333333,
+            6.346986754966886,
+            6.923357615894041
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD176-A9",
+      "number": 4582,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5772649006622516,
+            0.5737400000000001,
+            0.5859337748344373
+          ],
+          "GT Power_0": [
+            0.015668874172185435,
+            0.014620000000000001,
+            0.015622516556291394
+          ],
+          "IA Power_0": [
+            2.82371523178808,
+            2.627919999999998,
+            2.594384105960263
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0654238410596033,
+            2.8774133333333336,
+            2.9334503311258278
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7174933333333328,
+            0.7140993377483441,
+            0.7276266666666661
+          ],
+          "GT Power_0": [
+            0.1041266666666667,
+            0.10378807947019864,
+            0.10280000000000006
+          ],
+          "IA Power_0": [
+            5.377233333333335,
+            5.103662251655628,
+            5.090066666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.795399999999999,
+            5.455900662251654,
+            5.531953333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7134933333333328,
+            0.7130399999999992,
+            0.7284333333333328
+          ],
+          "GT Power_0": [
+            0.10309333333333338,
+            0.10122000000000003,
+            0.10092666666666668
+          ],
+          "IA Power_0": [
+            5.12424,
+            5.091193333333335,
+            5.468460000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.482219999999999,
+            5.5051533333333325,
+            5.9524066666666675
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7704600000000007,
+            0.7897933333333339,
+            0.774766666666667
+          ],
+          "GT Power_0": [
+            0.2237599999999999,
+            0.22282666666666656,
+            0.21783333333333346
+          ],
+          "IA Power_0": [
+            5.46388666666667,
+            5.260986666666666,
+            5.8228199999999966
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.940900000000001,
+            5.867120000000001,
+            6.343073333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7192799999999996,
+            0.7166399999999999,
+            0.7175999999999996
+          ],
+          "GT Power_0": [
+            0.10773333333333336,
+            0.11069333333333338,
+            0.10715333333333336
+          ],
+          "IA Power_0": [
+            5.195879999999998,
+            5.188173333333333,
+            5.2467266666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.538713333333331,
+            5.570666666666669,
+            5.61436
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD179-A9",
+      "number": 4581,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5889072847682119,
+            0.6026423841059598,
+            0.5899933774834433
+          ],
+          "GT Power_0": [
+            0.04022516556291388,
+            0.017172185430463578,
+            0.017284768211920536
+          ],
+          "IA Power_0": [
+            4.2992251655629135,
+            4.771205298013244,
+            4.23685430463576
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.579933774834437,
+            5.293629139072853,
+            4.524562913907284
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150331125827817,
+            0.7170733333333332,
+            0.702298013245033
+          ],
+          "GT Power_0": [
+            0.1252119205298013,
+            0.1297866666666667,
+            0.12742384105960264
+          ],
+          "IA Power_0": [
+            7.53892715231788,
+            7.348679999999999,
+            8.532688741721856
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.956715231788078,
+            7.703946666666664,
+            8.963410596026488
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.699185430463576,
+            0.7310529801324501,
+            0.699503311258278
+          ],
+          "GT Power_0": [
+            0.12591390728476823,
+            0.12830463576158935,
+            0.12545695364238418
+          ],
+          "IA Power_0": [
+            8.985913907284768,
+            9.134668874172183,
+            8.916569536423841
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.413278145695369,
+            10.110596026490072,
+            9.305165562913903
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7648533333333334,
+            0.7652847682119204,
+            0.7629867549668878
+          ],
+          "GT Power_0": [
+            0.2795666666666666,
+            0.27911258278145706,
+            0.2790993377483442
+          ],
+          "IA Power_0": [
+            9.003686666666667,
+            8.665523178807947,
+            8.814211920529802
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.591813333333334,
+            9.327880794701988,
+            9.469947019867547
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7053466666666663,
+            0.704596026490066,
+            0.7060860927152313
+          ],
+          "GT Power_0": [
+            0.13254666666666665,
+            0.13530463576158938,
+            0.1363708609271523
+          ],
+          "IA Power_0": [
+            9.331533333333338,
+            8.655496688741723,
+            8.783807947019861
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.793380000000004,
+            9.130145695364234,
+            9.167708609271521
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4580,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760794701986751,
+            0.574953642384106,
+            0.587013245033113
+          ],
+          "GT Power_0": [
+            0.01428476821192053,
+            0.014311258278145693,
+            0.014172185430463575
+          ],
+          "IA Power_0": [
+            2.920145695364238,
+            2.994456953642383,
+            2.906437086092715
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1750198675496697,
+            3.2245496688741717,
+            3.260311258278146
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7206821192052975,
+            0.7190866666666662,
+            0.7135066666666661
+          ],
+          "GT Power_0": [
+            0.10648344370860922,
+            0.10535333333333333,
+            0.10381333333333337
+          ],
+          "IA Power_0": [
+            5.967291390728477,
+            6.53209333333333,
+            5.8903266666666685
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.293781456953644,
+            6.900313333333333,
+            6.2413066666666674
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713686666666666,
+            0.7275599999999997,
+            0.7143933333333333
+          ],
+          "GT Power_0": [
+            0.10856000000000002,
+            0.10403333333333335,
+            0.10611999999999999
+          ],
+          "IA Power_0": [
+            5.874513333333329,
+            5.886806666666668,
+            5.862399999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.233179999999998,
+            6.37792,
+            6.235900000000003
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7718211920529806,
+            0.789675496688742,
+            0.7732
+          ],
+          "GT Power_0": [
+            0.22654966887417224,
+            0.224748344370861,
+            0.22923999999999983
+          ],
+          "IA Power_0": [
+            6.5081523178807945,
+            6.155788079470197,
+            6.233366666666671
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.999311258278145,
+            6.8553642384105995,
+            6.731133333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7199533333333333,
+            0.735344370860927,
+            0.7180599999999995
+          ],
+          "GT Power_0": [
+            0.12584666666666663,
+            0.11029139072847675,
+            0.10840666666666668
+          ],
+          "IA Power_0": [
+            6.43883333333333,
+            6.000529801324504,
+            5.993660000000004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.790120000000001,
+            6.497920529801326,
+            6.372266666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD175-A9",
+      "number": 4579,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.57536,
+            0.5763533333333332,
+            0.5852913907284768
+          ],
+          "GT Power_0": [
+            0.014320000000000001,
+            0.014906666666666669,
+            0.014251655629139067
+          ],
+          "IA Power_0": [
+            3.3070933333333326,
+            2.9986666666666677,
+            3.3275430463576163
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5466333333333333,
+            3.24932,
+            3.68317880794702
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714426666666666,
+            0.7122199999999995,
+            0.7281799999999996
+          ],
+          "GT Power_0": [
+            0.10207333333333343,
+            0.10099333333333332,
+            0.10081333333333335
+          ],
+          "IA Power_0": [
+            5.844806666666668,
+            5.9197400000000036,
+            6.214453333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.249820000000004,
+            6.278646666666665,
+            6.711033333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7202533333333326,
+            0.732596026490066,
+            0.7146799999999996
+          ],
+          "GT Power_0": [
+            0.10062000000000006,
+            0.10228476821192059,
+            0.09936000000000002
+          ],
+          "IA Power_0": [
+            6.064886666666666,
+            5.905701986754966,
+            5.937646666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4442200000000005,
+            6.380437086092713,
+            6.308493333333335
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713600000000005,
+            0.7699600000000004,
+            0.7865933333333337
+          ],
+          "GT Power_0": [
+            0.23936666666666676,
+            0.22819333333333322,
+            0.2294133333333334
+          ],
+          "IA Power_0": [
+            6.265306666666666,
+            6.489153333333334,
+            6.1543866666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.744099999999998,
+            7.0025133333333365,
+            6.843493333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303599999999996,
+            0.7196026490066221,
+            0.7172799999999996
+          ],
+          "GT Power_0": [
+            0.10395999999999998,
+            0.10603311258278145,
+            0.10400000000000002
+          ],
+          "IA Power_0": [
+            6.1332866666666686,
+            6.366523178807947,
+            6.139546666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5852466666666665,
+            6.746158940397353,
+            6.4408999999999965
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD133-A9",
+      "number": 4578,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5769799999999998,
+            0.5751258278145698,
+            0.5805099337748344
+          ],
+          "GT Power_0": [
+            0.040826666666666664,
+            0.016086092715231783,
+            0.01617880794701987
+          ],
+          "IA Power_0": [
+            3.2239733333333325,
+            2.802576158940395,
+            2.8958278145695346
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6142,
+            3.08403973509934,
+            3.1488940397351
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7135599999999994,
+            0.7238133333333331,
+            0.7123774834437082
+          ],
+          "GT Power_0": [
+            0.11780000000000003,
+            0.11779333333333333,
+            0.1184834437086093
+          ],
+          "IA Power_0": [
+            5.736020000000002,
+            5.528626666666666,
+            5.474238410596024
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.123480000000002,
+            6.01616,
+            5.856880794701992
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713246666666666,
+            0.7153509933774826,
+            0.713073333333333
+          ],
+          "GT Power_0": [
+            0.11695333333333338,
+            0.11764238410596031,
+            0.11638000000000003
+          ],
+          "IA Power_0": [
+            5.531786666666665,
+            5.642701986754967,
+            5.834573333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.905819999999998,
+            6.012735099337748,
+            6.179919999999999
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7698133333333333,
+            0.784311258278146,
+            0.7707666666666668
+          ],
+          "GT Power_0": [
+            0.24194000000000002,
+            0.2472781456953642,
+            0.24690000000000012
+          ],
+          "IA Power_0": [
+            5.672500000000002,
+            5.738509933774839,
+            5.960306666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.233426666666669,
+            6.353291390728478,
+            6.490486666666664
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7347466666666665,
+            0.718543046357615,
+            0.7188211920529797
+          ],
+          "GT Power_0": [
+            0.12227999999999999,
+            0.1255827814569536,
+            0.13112582781456952
+          ],
+          "IA Power_0": [
+            5.661833333333333,
+            5.490900662251655,
+            5.598582781456954
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.0522333333333345,
+            5.887483443708608,
+            5.984562913907288
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4577,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58556,
+            0.5898410596026488,
+            0.5757350993377486
+          ],
+          "GT Power_0": [
+            0.03889333333333332,
+            0.012874172185430464,
+            0.013794701986754969
+          ],
+          "IA Power_0": [
+            3.1702733333333324,
+            2.7913178807947028,
+            2.744940397350995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.442206666666667,
+            3.1439205298013246,
+            3.019854304635764
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7147814569536421,
+            0.7284635761589394,
+            0.7140533333333327
+          ],
+          "GT Power_0": [
+            0.08825827814569538,
+            0.08742384105960267,
+            0.09180666666666669
+          ],
+          "IA Power_0": [
+            5.662900662251656,
+            5.40872847682119,
+            5.516153333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.999649006622515,
+            5.843900662251656,
+            5.885406666666672
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127814569536421,
+            0.7151456953642381,
+            0.7151333333333324
+          ],
+          "GT Power_0": [
+            0.09145033112582782,
+            0.08996688741721853,
+            0.0933866666666667
+          ],
+          "IA Power_0": [
+            5.394503311258276,
+            5.463450331125828,
+            5.730306666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.809880794701991,
+            5.8195099337748335,
+            6.116953333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7721192052980136,
+            0.770733333333334,
+            0.7740993377483447
+          ],
+          "GT Power_0": [
+            0.22090728476821206,
+            0.19551333333333334,
+            0.20435099337748347
+          ],
+          "IA Power_0": [
+            5.647781456953643,
+            5.636126666666664,
+            5.954437086092716
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.123231788079468,
+            6.100180000000002,
+            6.477807947019871
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187880794701982,
+            0.7455599999999993,
+            0.7185099337748345
+          ],
+          "GT Power_0": [
+            0.09407947019867555,
+            0.09291333333333335,
+            0.0936688741721854
+          ],
+          "IA Power_0": [
+            5.5352781456953615,
+            5.837526666666666,
+            5.525291390728474
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.868271523178809,
+            6.312840000000003,
+            5.866834437086093
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4576,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5896688741721859,
+            0.574185430463576,
+            0.5739337748344372
+          ],
+          "GT Power_0": [
+            0.016,
+            0.015304635761589407,
+            0.015754966887417215
+          ],
+          "IA Power_0": [
+            3.469748344370861,
+            3.100490066225165,
+            3.084735099337747
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8025033112582767,
+            3.333304635761589,
+            3.331225165562916
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127350993377481,
+            0.7116266666666661,
+            0.7308733333333329
+          ],
+          "GT Power_0": [
+            0.1190529801324503,
+            0.11952666666666663,
+            0.1206066666666667
+          ],
+          "IA Power_0": [
+            6.364092715231789,
+            6.093293333333336,
+            6.157773333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.729556291390726,
+            6.495080000000001,
+            6.644613333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7167133333333332,
+            0.7306333333333326,
+            0.7201733333333327
+          ],
+          "GT Power_0": [
+            0.11782000000000008,
+            0.11906666666666664,
+            0.1158600000000001
+          ],
+          "IA Power_0": [
+            6.223033333333335,
+            6.089920000000002,
+            7.043019999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.586619999999998,
+            6.58504,
+            7.390946666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7959466666666667,
+            0.7746622516556292,
+            0.7729533333333333
+          ],
+          "GT Power_0": [
+            0.25042666666666674,
+            0.2476423841059602,
+            0.25084666666666666
+          ],
+          "IA Power_0": [
+            6.378973333333335,
+            6.379251655629142,
+            6.5585466666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.03198,
+            6.918562913907285,
+            7.037466666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7204466666666661,
+            0.7206666666666662,
+            0.7335666666666665
+          ],
+          "GT Power_0": [
+            0.1323666666666666,
+            0.14950000000000002,
+            0.12821999999999995
+          ],
+          "IA Power_0": [
+            6.2787400000000035,
+            6.321833333333332,
+            6.291493333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.680360000000003,
+            6.659873333333334,
+            6.760820000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD118-A9",
+      "number": 4575,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5845960264900663,
+            0.5750198675496689,
+            0.575132450331126
+          ],
+          "GT Power_0": [
+            0.03764238410596026,
+            0.014695364238410596,
+            0.014629139072847682
+          ],
+          "IA Power_0": [
+            2.939397350993376,
+            2.799417218543046,
+            2.872536423841059
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2868609271523175,
+            3.0668741721854307,
+            3.113582781456954
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7163907284768207,
+            0.7121999999999997,
+            0.7114999999999992
+          ],
+          "GT Power_0": [
+            0.09629801324503309,
+            0.09775333333333337,
+            0.09523333333333336
+          ],
+          "IA Power_0": [
+            5.7984635761589445,
+            5.499246666666667,
+            5.466513333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.174410596026491,
+            5.831993333333334,
+            5.86472
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7130529801324501,
+            0.7140533333333328,
+            0.7138807947019862
+          ],
+          "GT Power_0": [
+            0.11860927152317888,
+            0.09832666666666662,
+            0.09903973509933778
+          ],
+          "IA Power_0": [
+            5.513377483443708,
+            5.517893333333336,
+            5.57535761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.848668874172185,
+            5.892073333333333,
+            5.940205298013244
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7714066666666669,
+            0.7716200000000001,
+            0.7715466666666666
+          ],
+          "GT Power_0": [
+            0.22738666666666668,
+            0.22246666666666676,
+            0.22416000000000003
+          ],
+          "IA Power_0": [
+            5.72322,
+            5.694519999999997,
+            5.901913333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.22018,
+            6.167146666666665,
+            6.47404
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179733333333328,
+            0.7431666666666669,
+            0.7234599999999994
+          ],
+          "GT Power_0": [
+            0.10665999999999999,
+            0.10136666666666669,
+            0.10717333333333336
+          ],
+          "IA Power_0": [
+            5.525126666666667,
+            5.55598,
+            5.791713333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.929253333333331,
+            6.388720000000003,
+            6.2930600000000005
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4574,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58117880794702,
+            0.573688741721854,
+            0.5744039735099337
+          ],
+          "GT Power_0": [
+            0.04354304635761589,
+            0.015880794701986754,
+            0.018172185430463575
+          ],
+          "IA Power_0": [
+            3.3605562913907288,
+            3.2923576158940393,
+            3.5903708609271527
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.65973509933775,
+            3.500417218543047,
+            3.845198675496688
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122384105960263,
+            0.7115466666666661,
+            0.7117466666666662
+          ],
+          "GT Power_0": [
+            0.12436423841059603,
+            0.1241933333333333,
+            0.12375333333333333
+          ],
+          "IA Power_0": [
+            6.45448344370861,
+            6.507326666666666,
+            6.914866666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.822430463576161,
+            6.895193333333335,
+            7.287679999999997
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7115799999999995,
+            0.7298266666666661,
+            0.7113333333333329
+          ],
+          "GT Power_0": [
+            0.11883333333333337,
+            0.12042666666666677,
+            0.12256666666666663
+          ],
+          "IA Power_0": [
+            6.536973333333333,
+            6.645406666666668,
+            6.52564
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.903513333333331,
+            7.131073333333335,
+            6.903046666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7683866666666673,
+            0.7702266666666675,
+            0.7687866666666673
+          ],
+          "GT Power_0": [
+            0.27230000000000015,
+            0.27237333333333325,
+            0.27210666666666666
+          ],
+          "IA Power_0": [
+            6.775426666666667,
+            7.217413333333332,
+            6.804633333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.309880000000003,
+            7.76370666666667,
+            7.334720000000002
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182133333333327,
+            0.7212599999999996,
+            0.718813333333333
+          ],
+          "GT Power_0": [
+            0.12834666666666672,
+            0.12929333333333343,
+            0.12801333333333334
+          ],
+          "IA Power_0": [
+            6.676986666666666,
+            7.36852,
+            6.6372800000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0429666666666675,
+            7.7498333333333385,
+            7.039340000000004
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4573,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5827417218543043,
+            0.5767599999999996,
+            0.5753066666666662
+          ],
+          "GT Power_0": [
+            0.05369536423841058,
+            0.019180000000000003,
+            0.020706666666666672
+          ],
+          "IA Power_0": [
+            2.9177086092715223,
+            2.9260066666666664,
+            2.8945200000000013
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2993443708609274,
+            3.206079999999998,
+            3.13914
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7108599999999993,
+            0.7100596026490059,
+            0.7084199999999996
+          ],
+          "GT Power_0": [
+            0.15162666666666672,
+            0.14582781456953647,
+            0.14331333333333335
+          ],
+          "IA Power_0": [
+            5.824519999999997,
+            5.420271523178809,
+            5.467806666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.211806666666668,
+            5.858006622516558,
+            5.916760000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.70764,
+            0.7090666666666663,
+            0.7094466666666664
+          ],
+          "GT Power_0": [
+            0.13622666666666672,
+            0.14073999999999998,
+            0.1417
+          ],
+          "IA Power_0": [
+            5.695413333333334,
+            5.576079999999999,
+            5.697526666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.099520000000001,
+            5.984659999999998,
+            6.110626666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7643066666666669,
+            0.7664635761589408,
+            0.8130264900662254
+          ],
+          "GT Power_0": [
+            0.3434533333333334,
+            0.3247549668874171,
+            0.3337284768211922
+          ],
+          "IA Power_0": [
+            5.692906666666667,
+            5.668139072847682,
+            5.961615894039735
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.335286666666664,
+            6.276225165562915,
+            7.076529801324506
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7137019867549663,
+            0.7480333333333329,
+            0.7178266666666663
+          ],
+          "GT Power_0": [
+            0.16758278145695357,
+            0.16252666666666665,
+            0.15017333333333335
+          ],
+          "IA Power_0": [
+            5.568046357615896,
+            7.368760000000001,
+            6.109340000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.943245033112583,
+            7.781666666666668,
+            6.49419333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD161-A9",
+      "number": 4572,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5924834437086098,
+            0.5739735099337745,
+            0.5734768211920528
+          ],
+          "GT Power_0": [
+            0.01593377483443708,
+            0.014688741721854304,
+            0.014894039735099333
+          ],
+          "IA Power_0": [
+            2.7458013245033115,
+            2.9105298013245022,
+            2.6369735099337737
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1132649006622537,
+            3.130543046357615,
+            2.8710264900662263
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132199999999994,
+            0.7261533333333329,
+            0.7118733333333328
+          ],
+          "GT Power_0": [
+            0.11075333333333333,
+            0.10962666666666668,
+            0.11042666666666669
+          ],
+          "IA Power_0": [
+            5.02240666666667,
+            5.256866666666666,
+            5.006033333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.442646666666667,
+            5.673286666666666,
+            5.433293333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7147666666666659,
+            0.7119599999999999,
+            0.7148066666666664
+          ],
+          "GT Power_0": [
+            0.11080000000000005,
+            0.10668666666666664,
+            0.11205333333333335
+          ],
+          "IA Power_0": [
+            5.024446666666666,
+            5.27984666666667,
+            5.0866999999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.433633333333332,
+            5.661613333333334,
+            5.448640000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7721133333333337,
+            0.7861589403973513,
+            0.7699266666666668
+          ],
+          "GT Power_0": [
+            0.2361666666666666,
+            0.2355033112582781,
+            0.23224000000000003
+          ],
+          "IA Power_0": [
+            5.237606666666668,
+            5.155721854304636,
+            5.1966800000000015
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.883986666666666,
+            5.742066225165563,
+            5.737793333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7205733333333332,
+            0.7314266666666662,
+            0.7192980132450326
+          ],
+          "GT Power_0": [
+            0.11745333333333335,
+            0.12109333333333339,
+            0.1169337748344371
+          ],
+          "IA Power_0": [
+            5.3473866666666705,
+            5.172440000000002,
+            5.111284768211919
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.719520000000003,
+            5.645039999999997,
+            5.461304635761589
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD142-A9",
+      "number": 4571,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5728456375838923,
+            0.5709194630872487,
+            0.5711476510067112
+          ],
+          "GT Power_0": [
+            0.013328859060402685,
+            0.01270469798657718,
+            0.012993288590604028
+          ],
+          "IA Power_0": [
+            0.8459798657718124,
+            0.921543624161074,
+            0.8452013422818795
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.172496644295302,
+            1.2462483221476508,
+            1.1707248322147652
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7268053691275166,
+            0.736718120805369,
+            0.7289866666666661
+          ],
+          "GT Power_0": [
+            0.10601342281879196,
+            0.10942953020134227,
+            0.10698
+          ],
+          "IA Power_0": [
+            1.3506577181208053,
+            2.177684563758387,
+            1.761493333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.801389261744966,
+            2.6318389261744963,
+            2.20112
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7255838926174492,
+            0.7296375838926173,
+            0.7274161073825497
+          ],
+          "GT Power_0": [
+            0.1035369127516779,
+            0.10606711409395979,
+            0.10566442953020133
+          ],
+          "IA Power_0": [
+            1.2928053691275163,
+            1.4156510067114088,
+            1.31303355704698
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            1.7324362416107382,
+            1.8689395973154366,
+            1.7582483221476506
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            149,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7939932885906043,
+            0.7931879194630873,
+            0.7924765100671143
+          ],
+          "GT Power_0": [
+            0.25136241610738275,
+            0.23930201342281868,
+            0.2378791946308724
+          ],
+          "IA Power_0": [
+            1.42338255033557,
+            1.4136040268456374,
+            1.3226308724832214
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.0355838926174497,
+            2.0253422818791935,
+            1.9339194630872492
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            149,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7299395973154356,
+            0.725953333333333,
+            0.7247315436241604
+          ],
+          "GT Power_0": [
+            0.11253020134228188,
+            0.1131466666666667,
+            0.11151006711409402
+          ],
+          "IA Power_0": [
+            1.659563758389262,
+            1.3337066666666662,
+            1.3058255033557045
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.114275167785235,
+            1.779753333333335,
+            1.7510067114093955
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            149,
+            150,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4570,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5849133333333337,
+            0.5749466666666667,
+            0.5766092715231785
+          ],
+          "GT Power_0": [
+            0.036246666666666656,
+            0.012993333333333329,
+            0.014556291390728476
+          ],
+          "IA Power_0": [
+            3.3297466666666655,
+            3.0856400000000006,
+            3.126039735099338
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.636873333333334,
+            3.3298333333333336,
+            3.3379006622516547
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7295199999999993,
+            0.7120599999999994,
+            0.7116333333333327
+          ],
+          "GT Power_0": [
+            0.09954666666666673,
+            0.09710666666666667,
+            0.09862666666666668
+          ],
+          "IA Power_0": [
+            6.093613333333339,
+            6.324860000000001,
+            6.077733333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5758333333333345,
+            6.626893333333336,
+            6.413086666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145733333333332,
+            0.7295666666666665,
+            0.7329867549668869
+          ],
+          "GT Power_0": [
+            0.0984866666666667,
+            0.09846000000000002,
+            0.10157615894039736
+          ],
+          "IA Power_0": [
+            6.065020000000002,
+            6.366493333333335,
+            6.064397350993377
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.387740000000002,
+            6.842760000000006,
+            6.639814569536425
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708741721854306,
+            0.7924800000000005,
+            0.7729735099337752
+          ],
+          "GT Power_0": [
+            0.2226887417218543,
+            0.22030000000000005,
+            0.22180132450331128
+          ],
+          "IA Power_0": [
+            6.22808609271523,
+            6.187119999999997,
+            6.338993377483447
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.734629139072848,
+            6.745219999999999,
+            6.827927152317883
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7253466666666665,
+            0.7203708609271517,
+            0.7273087248322144
+          ],
+          "GT Power_0": [
+            0.10362000000000002,
+            0.10356953642384105,
+            0.10637583892617455
+          ],
+          "IA Power_0": [
+            6.534640000000001,
+            6.161278145695365,
+            6.812181208053691
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8934733333333345,
+            6.515205298013243,
+            7.130966442953023
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4569,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5915364238410594,
+            0.570271523178808,
+            0.5762913907284768
+          ],
+          "GT Power_0": [
+            0.01652980132450331,
+            0.015125827814569538,
+            0.01734437086092715
+          ],
+          "IA Power_0": [
+            3.7501258278145695,
+            3.149748344370863,
+            3.7673311258278157
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.132125827814568,
+            3.3887218543046345,
+            4.003821192052978
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127933333333328,
+            0.7151066666666662,
+            0.7125933333333329
+          ],
+          "GT Power_0": [
+            0.11958000000000006,
+            0.1205266666666667,
+            0.11620666666666662
+          ],
+          "IA Power_0": [
+            6.613166666666667,
+            6.69998,
+            6.983920000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.984106666666665,
+            7.077826666666673,
+            7.376380000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712686666666666,
+            0.7135099337748338,
+            0.7147133333333331
+          ],
+          "GT Power_0": [
+            0.1180533333333334,
+            0.1189933774834438,
+            0.11883333333333333
+          ],
+          "IA Power_0": [
+            6.692173333333332,
+            6.731284768211919,
+            6.712613333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0572733333333355,
+            7.092218543046359,
+            7.0883266666666636
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7866622516556298,
+            0.7731059602649005,
+            0.7713443708609274
+          ],
+          "GT Power_0": [
+            0.2510596026490067,
+            0.25831788079470186,
+            0.2551125827814572
+          ],
+          "IA Power_0": [
+            6.981629139072847,
+            6.9727615894039765,
+            7.003410596026491
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.643357615894041,
+            7.50213907284768,
+            7.5425960264900676
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7335033112582776,
+            0.7187466666666658,
+            0.7193666666666666
+          ],
+          "GT Power_0": [
+            0.1246556291390729,
+            0.12384666666666673,
+            0.12582
+          ],
+          "IA Power_0": [
+            6.783662251655625,
+            7.231833333333337,
+            6.796013333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.313503311258278,
+            7.600053333333331,
+            7.15705333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD149-A9",
+      "number": 4568,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5850133333333329,
+            0.5762266666666669,
+            0.5740733333333333
+          ],
+          "GT Power_0": [
+            0.037853333333333315,
+            0.01577333333333334,
+            0.015586666666666667
+          ],
+          "IA Power_0": [
+            3.972573333333332,
+            3.428593333333333,
+            3.3436733333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.32912,
+            3.6635933333333304,
+            3.5876333333333332
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.727533333333333,
+            0.7231799999999995,
+            0.711693333333333
+          ],
+          "GT Power_0": [
+            0.11218666666666668,
+            0.11375333333333323,
+            0.11066000000000002
+          ],
+          "IA Power_0": [
+            6.747620000000001,
+            6.809260000000002,
+            7.12306666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.2512333333333325,
+            7.307573333333331,
+            7.457733333333335
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126199999999995,
+            0.7130866666666662,
+            0.7157666666666661
+          ],
+          "GT Power_0": [
+            0.11066000000000002,
+            0.1095266666666667,
+            0.11092
+          ],
+          "IA Power_0": [
+            6.710633333333331,
+            6.821513333333329,
+            7.6240066666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.095486666666669,
+            7.175846666666661,
+            7.965373333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7836000000000006,
+            0.7764466666666671,
+            0.7690533333333337
+          ],
+          "GT Power_0": [
+            0.2679333333333333,
+            0.2596866666666667,
+            0.29931333333333326
+          ],
+          "IA Power_0": [
+            7.129726666666667,
+            7.059973333333335,
+            7.116073333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.817413333333333,
+            7.6057533333333325,
+            7.605873333333337
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7286533333333328,
+            0.7166399999999998,
+            0.7176533333333331
+          ],
+          "GT Power_0": [
+            0.13017333333333328,
+            0.12049333333333333,
+            0.11906000000000004
+          ],
+          "IA Power_0": [
+            6.989306666666667,
+            7.270553333333336,
+            6.849739999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.496799999999997,
+            7.640559999999999,
+            7.2229933333333305
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD137-A9",
+      "number": 4567,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5763178807947016,
+            0.5749933774834435,
+            0.5746423841059601
+          ],
+          "GT Power_0": [
+            0.04358278145695364,
+            0.014615894039735096,
+            0.01478145695364238
+          ],
+          "IA Power_0": [
+            3.8540794701986725,
+            3.4186887417218528,
+            3.435688741721855
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.103059602649006,
+            3.6750132450331106,
+            3.665728476821194
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140397350993374,
+            0.6489000000000001,
+            0.6482933333333339
+          ],
+          "GT Power_0": [
+            0.10341059602649011,
+            0.10499333333333333,
+            0.10155333333333337
+          ],
+          "IA Power_0": [
+            7.237642384105962,
+            16.88030666666666,
+            17.005073333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.578397350993377,
+            17.213413333333328,
+            17.28997999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.731013245033112,
+            0.7121933333333329,
+            0.7134533333333329
+          ],
+          "GT Power_0": [
+            0.10562251655629144,
+            0.10472666666666668,
+            0.10092666666666666
+          ],
+          "IA Power_0": [
+            7.0882980132450335,
+            7.0122800000000005,
+            7.2507733333333375
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.634536423841063,
+            7.324066666666664,
+            7.619926666666663
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7691986754966891,
+            0.7808933333333334,
+            0.7976266666666666
+          ],
+          "GT Power_0": [
+            0.22834437086092718,
+            0.2507066666666667,
+            0.2539933333333334
+          ],
+          "IA Power_0": [
+            7.127602649006621,
+            7.165653333333333,
+            7.527513333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.629456953642381,
+            7.657639999999998,
+            7.996099999999995
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7355231788079464,
+            0.7363377483443704,
+            0.7174066666666659
+          ],
+          "GT Power_0": [
+            0.11421854304635763,
+            0.10837086092715233,
+            0.10578000000000003
+          ],
+          "IA Power_0": [
+            6.943496688741722,
+            7.01449006622517,
+            7.109506666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.42780794701987,
+            7.499112582781458,
+            7.4090666666666705
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD157-A9",
+      "number": 4566,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5835033112582777,
+            0.5747350993377484,
+            0.5869466666666665
+          ],
+          "GT Power_0": [
+            0.035456953642384076,
+            0.0156158940397351,
+            0.015813333333333335
+          ],
+          "IA Power_0": [
+            3.1463311258278144,
+            3.095874172185431,
+            3.711613333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5066622516556296,
+            3.328788079470199,
+            3.9468599999999983
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139536423841055,
+            0.7127466666666661,
+            0.7127666666666661
+          ],
+          "GT Power_0": [
+            0.11605298013245036,
+            0.11131333333333338,
+            0.11326000000000003
+          ],
+          "IA Power_0": [
+            6.061721854304637,
+            6.4154866666666654,
+            6.06018
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4188410596026495,
+            6.770893333333331,
+            6.551420000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7149867549668872,
+            0.7129470198675494,
+            0.7338933333333327
+          ],
+          "GT Power_0": [
+            0.11350993377483447,
+            0.11441721854304632,
+            0.11501333333333333
+          ],
+          "IA Power_0": [
+            6.092973509933774,
+            6.3390662251655625,
+            6.238713333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4652384105960214,
+            6.723562913907282,
+            6.674333333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7698666666666669,
+            0.7699933333333336,
+            0.773019867549669
+          ],
+          "GT Power_0": [
+            0.24152666666666667,
+            0.24067333333333332,
+            0.24706622516556304
+          ],
+          "IA Power_0": [
+            6.231046666666668,
+            6.240299999999999,
+            6.253523178807946
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.745706666666664,
+            6.742046666666668,
+            6.768682119205298
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7198211920529797,
+            0.7187086092715229,
+            0.7178266666666662
+          ],
+          "GT Power_0": [
+            0.1209403973509934,
+            0.1196357615894039,
+            0.11591333333333324
+          ],
+          "IA Power_0": [
+            6.508940397350991,
+            6.113960264900664,
+            6.191726666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.856397350993376,
+            6.463026490066224,
+            6.528986666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4565,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5766442953020133,
+            0.5991466666666662,
+            0.5747682119205297
+          ],
+          "GT Power_0": [
+            0.036033557046979865,
+            0.013666666666666669,
+            0.014933774834437082
+          ],
+          "IA Power_0": [
+            3.20463087248322,
+            3.7943666666666664,
+            3.047132450331125
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4555637583892627,
+            4.15572,
+            3.303013245033112
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7311986754966887,
+            0.7142333333333329,
+            0.7129205298013238
+          ],
+          "GT Power_0": [
+            0.1072185430463576,
+            0.10923333333333332,
+            0.10547682119205304
+          ],
+          "IA Power_0": [
+            6.330496688741722,
+            5.8485266666666655,
+            5.997324503311257
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.764125827814565,
+            6.278793333333338,
+            6.350536423841062
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131599999999993,
+            0.7117466666666663,
+            0.7119199999999994
+          ],
+          "GT Power_0": [
+            0.09950666666666667,
+            0.10254000000000005,
+            0.10229333333333335
+          ],
+          "IA Power_0": [
+            6.274420000000002,
+            5.971973333333336,
+            5.917659999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.597546666666665,
+            6.302066666666668,
+            6.280766666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7786158940397353,
+            0.8065866666666673,
+            0.7892733333333339
+          ],
+          "GT Power_0": [
+            0.2306887417218544,
+            0.22421999999999997,
+            0.22344666666666663
+          ],
+          "IA Power_0": [
+            6.454576158940397,
+            8.650733333333335,
+            7.374653333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.991006622516557,
+            9.208539999999992,
+            8.004079999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7243333333333325,
+            0.7283333333333333,
+            0.7444199999999994
+          ],
+          "GT Power_0": [
+            0.11372000000000007,
+            0.11302666666666669,
+            0.1089133333333333
+          ],
+          "IA Power_0": [
+            7.0921466666666655,
+            6.99896,
+            7.111206666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.555213333333339,
+            7.4531933333333305,
+            7.646699999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD176-A9",
+      "number": 4564,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5630264900662252,
+            0.5158543046357618,
+            0.5176622516556295
+          ],
+          "GT Power_0": [
+            0.054814569536423816,
+            0.01540397350993377,
+            0.014980132450331128
+          ],
+          "IA Power_0": [
+            5.853066225165563,
+            10.774986754966879,
+            10.775794701986763
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.321708609271525,
+            10.967913907284768,
+            10.99129139072848
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.6485733333333334,
+            0.6692600000000003,
+            0.6833200000000003
+          ],
+          "GT Power_0": [
+            0.10322000000000008,
+            0.10564000000000004,
+            0.10352000000000003
+          ],
+          "IA Power_0": [
+            12.112900000000003,
+            12.30283333333333,
+            11.399606666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            12.425,
+            12.967326666666667,
+            11.722666666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123199999999996,
+            0.7160866666666665,
+            0.7148066666666663
+          ],
+          "GT Power_0": [
+            0.09913333333333335,
+            0.10270000000000001,
+            0.10190000000000002
+          ],
+          "IA Power_0": [
+            5.084033333333333,
+            5.673193333333334,
+            5.0837
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.467326666666667,
+            6.037179999999999,
+            5.47361333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.770629139072848,
+            0.7701266666666665,
+            0.789264900662252
+          ],
+          "GT Power_0": [
+            0.2242847682119205,
+            0.22640666666666676,
+            0.22198013245033102
+          ],
+          "IA Power_0": [
+            5.295490066225164,
+            5.1478533333333285,
+            5.502927152317881
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.782437086092716,
+            5.725953333333334,
+            6.138788079470199
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7183178807947014,
+            0.7363199999999995,
+            0.7238733333333333
+          ],
+          "GT Power_0": [
+            0.10750993377483445,
+            0.10846666666666674,
+            0.11806666666666672
+          ],
+          "IA Power_0": [
+            5.409841059602648,
+            5.510840000000002,
+            5.306619999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.774370860927153,
+            5.9591666666666665,
+            5.6983733333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4563,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5753599999999999,
+            0.5730866666666667,
+            0.5732399999999997
+          ],
+          "GT Power_0": [
+            0.015333333333333332,
+            0.015273333333333333,
+            0.015086666666666667
+          ],
+          "IA Power_0": [
+            2.705593333333334,
+            2.5710866666666665,
+            2.6589733333333325
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.9535199999999997,
+            2.839406666666666,
+            2.904140000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124503311258273,
+            0.7357799999999994,
+            0.7273466666666658
+          ],
+          "GT Power_0": [
+            0.12356953642384103,
+            0.12404666666666678,
+            0.12401333333333338
+          ],
+          "IA Power_0": [
+            5.466370860927152,
+            5.5563733333333305,
+            5.218693333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.887437086092714,
+            6.0019199999999975,
+            5.7103399999999995
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7215799999999997,
+            0.7301258278145688,
+            0.7271133333333327
+          ],
+          "GT Power_0": [
+            0.13656,
+            0.12590728476821192,
+            0.12801999999999997
+          ],
+          "IA Power_0": [
+            5.28356,
+            5.417410596026491,
+            5.577540000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.743693333333332,
+            5.874086092715231,
+            6.05597333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7875666666666669,
+            0.7706466666666668,
+            0.7707666666666672
+          ],
+          "GT Power_0": [
+            0.25367333333333336,
+            0.25782000000000005,
+            0.25087333333333345
+          ],
+          "IA Power_0": [
+            5.48114,
+            5.428233333333335,
+            5.753893333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.039339999999997,
+            5.965839999999998,
+            6.263399999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7175133333333328,
+            0.7334199999999993,
+            0.7190133333333331
+          ],
+          "GT Power_0": [
+            0.13096666666666668,
+            0.13108666666666666,
+            0.1316866666666666
+          ],
+          "IA Power_0": [
+            5.340000000000001,
+            5.306166666666665,
+            5.386246666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.739659999999997,
+            5.756980000000001,
+            5.778900000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4562,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5843733333333331,
+            0.574788079470198,
+            0.5749337748344369
+          ],
+          "GT Power_0": [
+            0.03202666666666665,
+            0.013476821192052981,
+            0.013999999999999997
+          ],
+          "IA Power_0": [
+            2.9948266666666665,
+            2.579205298013245,
+            2.5917748344370874
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.367706666666667,
+            2.8421059602649006,
+            2.8434966887417237
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.714406666666666,
+            0.7134466666666666,
+            0.7181258278145694
+          ],
+          "GT Power_0": [
+            0.09608,
+            0.09448,
+            0.094112582781457
+          ],
+          "IA Power_0": [
+            5.367993333333332,
+            5.131466666666668,
+            5.7515695364238395
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.757473333333336,
+            5.499013333333335,
+            6.106748344370864
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7141986754966881,
+            0.714238410596026,
+            0.7290066666666662
+          ],
+          "GT Power_0": [
+            0.09361589403973512,
+            0.0942317880794702,
+            0.09210000000000002
+          ],
+          "IA Power_0": [
+            5.165629139072848,
+            5.154152317880795,
+            5.464333333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.534768211920531,
+            5.548450331125827,
+            5.934806666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717933333333334,
+            0.7728333333333339,
+            0.7810000000000007
+          ],
+          "GT Power_0": [
+            0.20348,
+            0.2026466666666667,
+            0.22146000000000002
+          ],
+          "IA Power_0": [
+            5.398819999999998,
+            5.430599999999999,
+            5.356846666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.896159999999998,
+            5.919413333333334,
+            5.912913333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7203799999999995,
+            0.7216866666666663,
+            0.7190999999999993
+          ],
+          "GT Power_0": [
+            0.09659999999999999,
+            0.09523333333333335,
+            0.09576000000000004
+          ],
+          "IA Power_0": [
+            5.300246666666664,
+            5.647706666666666,
+            5.293646666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.655206666666666,
+            5.990480000000001,
+            5.620933333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4561,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5751399999999999,
+            0.5742980132450329,
+            0.574609271523179
+          ],
+          "GT Power_0": [
+            0.04002666666666664,
+            0.016973509933774836,
+            0.016364238410596026
+          ],
+          "IA Power_0": [
+            3.3168333333333324,
+            3.264655629139071,
+            3.214582781456953
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.556780000000001,
+            3.4954437086092724,
+            3.4570463576158956
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7223599999999991,
+            0.7277880794701981,
+            0.7327880794701983
+          ],
+          "GT Power_0": [
+            0.11875333333333335,
+            0.12142384105960273,
+            0.11825165562913909
+          ],
+          "IA Power_0": [
+            6.399680000000003,
+            6.555139072847683,
+            6.39226490066225
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7816399999999994,
+            7.057397350993374,
+            7.2535894039735105
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123399999999992,
+            0.7372715231788073,
+            0.7112781456953637
+          ],
+          "GT Power_0": [
+            0.11856000000000001,
+            0.12196026490066222,
+            0.1271655629139073
+          ],
+          "IA Power_0": [
+            6.382213333333332,
+            7.475516556291394,
+            6.388225165562914
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.748386666666662,
+            7.966688741721853,
+            6.770615894039733
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7652980132450332,
+            0.7682450331125831,
+            0.7807800000000003
+          ],
+          "GT Power_0": [
+            0.2635430463576158,
+            0.2878079470198675,
+            0.26475333333333334
+          ],
+          "IA Power_0": [
+            6.635708609271523,
+            6.9085430463576145,
+            6.615199999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.158715231788076,
+            7.44576158940397,
+            7.2627199999999945
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7161199999999995,
+            0.7152582781456951,
+            0.7397533333333329
+          ],
+          "GT Power_0": [
+            0.13375333333333336,
+            0.13064238410596019,
+            0.1263933333333333
+          ],
+          "IA Power_0": [
+            6.488046666666666,
+            6.559847682119203,
+            6.57386
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.853959999999999,
+            6.895410596026494,
+            7.266486666666664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4560,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5846133333333331,
+            0.5761258278145692,
+            0.5757399999999997
+          ],
+          "GT Power_0": [
+            0.03640666666666667,
+            0.014609271523178808,
+            0.014480000000000002
+          ],
+          "IA Power_0": [
+            3.3592599999999986,
+            3.2886754966887404,
+            3.3191
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.691333333333336,
+            3.5266026490066222,
+            3.5290466666666664
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145066666666661,
+            0.7149470198675494,
+            0.7128599999999997
+          ],
+          "GT Power_0": [
+            0.09566000000000002,
+            0.09782781456953647,
+            0.09683333333333337
+          ],
+          "IA Power_0": [
+            6.217933333333332,
+            6.667092715231792,
+            6.305700000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.553499999999996,
+            6.970417218543043,
+            6.626106666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139271523178804,
+            0.7276754966887414,
+            0.711536423841059
+          ],
+          "GT Power_0": [
+            0.09864900662251655,
+            0.09922516556291393,
+            0.1000132450331126
+          ],
+          "IA Power_0": [
+            6.324913907284764,
+            6.612847682119209,
+            6.4020927152317855
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.667238410596029,
+            7.006966887417219,
+            6.6863112582781445
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7742200000000004,
+            0.7735333333333339,
+            0.7710333333333339
+          ],
+          "GT Power_0": [
+            0.22743999999999995,
+            0.22462000000000007,
+            0.22228666666666677
+          ],
+          "IA Power_0": [
+            6.539306666666665,
+            6.713613333333334,
+            6.450566666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.022319999999997,
+            7.155606666666666,
+            6.933926666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172266666666665,
+            0.7335799999999991,
+            0.7182599999999996
+          ],
+          "GT Power_0": [
+            0.10020000000000003,
+            0.10497333333333334,
+            0.10469333333333335
+          ],
+          "IA Power_0": [
+            6.832859999999999,
+            6.404020000000003,
+            6.41124
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.124460000000001,
+            6.848086666666668,
+            6.751846666666665
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD164-A9",
+      "number": 4559,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5747466666666667,
+            0.5915099337748345,
+            0.5741799999999995
+          ],
+          "GT Power_0": [
+            0.03657333333333331,
+            0.015589403973509934,
+            0.014946666666666667
+          ],
+          "IA Power_0": [
+            3.0490399999999998,
+            3.04328476821192,
+            3.313326666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.295986666666667,
+            3.5038807947019874,
+            3.583966666666665
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136133333333328,
+            0.7331066666666662,
+            0.7286666666666666
+          ],
+          "GT Power_0": [
+            0.11610000000000006,
+            0.11463333333333334,
+            0.11830666666666668
+          ],
+          "IA Power_0": [
+            5.984933333333338,
+            5.903853333333335,
+            6.670099999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.325919999999998,
+            6.565213333333334,
+            7.195593333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7147533333333328,
+            0.7119533333333327,
+            0.7137999999999995
+          ],
+          "GT Power_0": [
+            0.11556666666666669,
+            0.11371333333333335,
+            0.11664666666666672
+          ],
+          "IA Power_0": [
+            5.963380000000001,
+            5.952526666666664,
+            5.862513333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.335819999999997,
+            6.294993333333338,
+            6.260413333333336
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7692913907284771,
+            0.7806953642384115,
+            0.7711733333333335
+          ],
+          "GT Power_0": [
+            0.27853642384105975,
+            0.24641059602649024,
+            0.24748000000000003
+          ],
+          "IA Power_0": [
+            6.12544370860927,
+            6.455059602649004,
+            6.129173333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.669596026490068,
+            7.033523178807946,
+            6.686033333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191199999999995,
+            0.716807947019867,
+            0.7174466666666661
+          ],
+          "GT Power_0": [
+            0.12616000000000005,
+            0.12043046357615893,
+            0.12680666666666668
+          ],
+          "IA Power_0": [
+            6.044020000000001,
+            6.301450331125827,
+            6.112139999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4144799999999975,
+            6.681894039735099,
+            6.39382
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD162-A9",
+      "number": 4558,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5765333333333331,
+            0.5760799999999999,
+            0.5903
+          ],
+          "GT Power_0": [
+            0.04070666666666667,
+            0.015566666666666663,
+            0.014673333333333333
+          ],
+          "IA Power_0": [
+            3.0035200000000017,
+            2.714453333333332,
+            2.8290466666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2672400000000006,
+            2.9633799999999995,
+            3.1492333333333327
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7219333333333325,
+            0.7152066666666667,
+            0.7152199999999996
+          ],
+          "GT Power_0": [
+            0.11679999999999997,
+            0.11754,
+            0.1137133333333333
+          ],
+          "IA Power_0": [
+            5.320146666666668,
+            5.252613333333333,
+            5.519093333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.779093333333335,
+            5.63904,
+            5.903086666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7144533333333324,
+            0.7292199999999995,
+            0.7157086092715228
+          ],
+          "GT Power_0": [
+            0.11892666666666664,
+            0.11890666666666667,
+            0.12193377483443708
+          ],
+          "IA Power_0": [
+            5.376206666666666,
+            5.253586666666672,
+            5.615635761589405
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.712893333333333,
+            5.754213333333331,
+            5.962258278145699
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7896688741721859,
+            0.7867000000000001,
+            0.7777284768211921
+          ],
+          "GT Power_0": [
+            0.24807947019867546,
+            0.25073333333333336,
+            0.25118543046357605
+          ],
+          "IA Power_0": [
+            5.4758874172185426,
+            6.910606666666666,
+            5.602960264900662
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.130966887417217,
+            7.483826666666669,
+            6.162139072847683
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.733781456953642,
+            0.7198133333333325,
+            0.7194304635761588
+          ],
+          "GT Power_0": [
+            0.12506622516556293,
+            0.12223999999999999,
+            0.12213907284768218
+          ],
+          "IA Power_0": [
+            5.399827814569535,
+            5.544533333333336,
+            5.286503311258279
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9172715231788064,
+            5.92678,
+            5.68746357615894
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD159-A9",
+      "number": 4557,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5848599999999996,
+            0.5861721854304633,
+            0.5750596026490065
+          ],
+          "GT Power_0": [
+            0.03805333333333332,
+            0.014410596026490065,
+            0.01532450331125828
+          ],
+          "IA Power_0": [
+            3.2011600000000016,
+            2.526880794701985,
+            2.673331125827814
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.561253333333334,
+            2.8689668874172183,
+            2.9558344370860907
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191933333333328,
+            0.7137199999999995,
+            0.7127284768211919
+          ],
+          "GT Power_0": [
+            0.11943333333333347,
+            0.1174266666666667,
+            0.12066887417218548
+          ],
+          "IA Power_0": [
+            5.706840000000001,
+            5.174366666666668,
+            5.1301456953642415
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.062440000000004,
+            5.539840000000001,
+            5.544331125827815
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124172185430457,
+            0.7347666666666665,
+            0.7205695364238406
+          ],
+          "GT Power_0": [
+            0.11819867549668878,
+            0.12686666666666677,
+            0.11392715231788081
+          ],
+          "IA Power_0": [
+            5.092496688741722,
+            5.279153333333333,
+            5.410105960264899
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.504178807947019,
+            5.995940000000001,
+            5.847860927152318
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7701266666666675,
+            0.7975894039735102,
+            0.7895800000000005
+          ],
+          "GT Power_0": [
+            0.2375933333333333,
+            0.24301324503311253,
+            0.27590666666666674
+          ],
+          "IA Power_0": [
+            5.331080000000001,
+            5.374317880794702,
+            5.705720000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.890880000000001,
+            6.234225165562915,
+            6.292446666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7194900662251652,
+            0.718893333333333,
+            0.7372266666666664
+          ],
+          "GT Power_0": [
+            0.12893377483443713,
+            0.13014,
+            0.1272066666666666
+          ],
+          "IA Power_0": [
+            5.227026490066226,
+            5.291146666666667,
+            5.1862866666666685
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.611940397350994,
+            5.623693333333331,
+            5.709659999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD174-A9",
+      "number": 4556,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5753443708609269,
+            0.5754503311258278,
+            0.595596026490066
+          ],
+          "GT Power_0": [
+            0.05068211920529799,
+            0.016516556291390726,
+            0.01624503311258278
+          ],
+          "IA Power_0": [
+            3.2267880794701993,
+            3.2729470198675497,
+            3.5451258278145694
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.49158940397351,
+            3.515245033112583,
+            3.984264900662252
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7286666666666661,
+            0.7216133333333324,
+            0.711573333333333
+          ],
+          "GT Power_0": [
+            0.11556,
+            0.1189733333333333,
+            0.11563999999999998
+          ],
+          "IA Power_0": [
+            6.329946666666664,
+            6.378606666666665,
+            6.710213333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.780826666666666,
+            6.809320000000001,
+            7.0176933333333364
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131599999999998,
+            0.7101666666666661,
+            0.7194370860927147
+          ],
+          "GT Power_0": [
+            0.11633999999999999,
+            0.11230000000000004,
+            0.11203311258278154
+          ],
+          "IA Power_0": [
+            6.3994800000000005,
+            6.39988,
+            6.979483443708611
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.728113333333329,
+            6.733146666666666,
+            7.379536423841063
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7724600000000007,
+            0.7713333333333338,
+            0.7866953642384106
+          ],
+          "GT Power_0": [
+            0.2564,
+            0.25734,
+            0.25603973509933786
+          ],
+          "IA Power_0": [
+            6.744800000000006,
+            6.6511599999999955,
+            6.594860927152316
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.272099999999999,
+            7.1651866666666635,
+            7.273629139072847
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7321390728476818,
+            0.727218543046357,
+            0.734980132450331
+          ],
+          "GT Power_0": [
+            0.12360264900662254,
+            0.12279470198675503,
+            0.12520529801324504
+          ],
+          "IA Power_0": [
+            6.3947483443708615,
+            6.848794701986754,
+            6.529582781456956
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.887172185430466,
+            7.289715231788083,
+            7.2287748344370835
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4555,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5752533333333333,
+            0.5892781456953642,
+            0.5868675496688742
+          ],
+          "GT Power_0": [
+            0.04172666666666665,
+            0.01458278145695364,
+            0.014403973509933774
+          ],
+          "IA Power_0": [
+            3.6782200000000014,
+            3.2395298013245033,
+            3.2458940397351004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9113666666666655,
+            3.599900662251656,
+            3.5323443708609275
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7110133333333328,
+            0.7114238410596022,
+            0.7293533333333327
+          ],
+          "GT Power_0": [
+            0.10705333333333338,
+            0.10744370860927148,
+            0.1069066666666667
+          ],
+          "IA Power_0": [
+            6.840933333333332,
+            6.49513245033113,
+            6.522133333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.199846666666666,
+            6.840993377483442,
+            6.990993333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7272715231788076,
+            0.7113199999999992,
+            0.7126357615894032
+          ],
+          "GT Power_0": [
+            0.10663576158940402,
+            0.10718000000000011,
+            0.10970198675496692
+          ],
+          "IA Power_0": [
+            6.542668874172188,
+            6.555606666666668,
+            6.834397350993376
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.964198675496688,
+            6.862486666666668,
+            7.183205298013242
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713466666666672,
+            0.7739668874172188,
+            0.7825562913907282
+          ],
+          "GT Power_0": [
+            0.23332000000000003,
+            0.22891390728476832,
+            0.22935099337748346
+          ],
+          "IA Power_0": [
+            6.790280000000004,
+            6.83456953642384,
+            7.073867549668871
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.2600066666666665,
+            7.366940397350993,
+            7.647993377483443
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7178874172185428,
+            0.7179199999999998,
+            0.7182185430463576
+          ],
+          "GT Power_0": [
+            0.1264635761589404,
+            0.11515333333333329,
+            0.11621854304635763
+          ],
+          "IA Power_0": [
+            6.61370860927152,
+            6.631786666666666,
+            6.616907284768209
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.989913907284773,
+            6.974306666666664,
+            7.025655629139073
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD21-B1",
+      "number": 4554,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5842133333333329,
+            0.5864333333333333,
+            0.5742400000000002
+          ],
+          "GT Power_0": [
+            0.04624666666666664,
+            0.014813333333333328,
+            0.01392
+          ],
+          "IA Power_0": [
+            2.9821066666666654,
+            2.855806666666667,
+            3.1578666666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.562593333333334,
+            4.391206666666668,
+            4.621513333333336
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123333333333325,
+            0.7231199999999998,
+            0.7149668874172179
+          ],
+          "GT Power_0": [
+            0.10895999999999999,
+            0.10633333333333339,
+            0.11043046357615895
+          ],
+          "IA Power_0": [
+            5.568133333333334,
+            6.018320000000001,
+            5.87141059602649
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.109620000000001,
+            7.56314,
+            7.4303046357615905
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7207533333333326,
+            0.7359333333333329,
+            0.7143999999999995
+          ],
+          "GT Power_0": [
+            0.10805333333333329,
+            0.12569333333333335,
+            0.1107266666666667
+          ],
+          "IA Power_0": [
+            5.868659999999998,
+            5.669326666666668,
+            5.534233333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.385420000000001,
+            7.578239999999999,
+            7.1079466666666695
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717533333333336,
+            0.7710866666666667,
+            0.7718200000000004
+          ],
+          "GT Power_0": [
+            0.23957999999999993,
+            0.23801333333333333,
+            0.2391800000000002
+          ],
+          "IA Power_0": [
+            5.773566666666667,
+            6.085346666666667,
+            5.827846666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.477066666666669,
+            7.766179999999998,
+            7.513580000000002
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7205933333333329,
+            0.7631399999999998,
+            0.7343599999999992
+          ],
+          "GT Power_0": [
+            0.11870666666666663,
+            0.12491333333333339,
+            0.11640000000000003
+          ],
+          "IA Power_0": [
+            5.662226666666664,
+            6.093480000000001,
+            5.674533333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.218079999999999,
+            7.840573333333331,
+            7.376753333333328
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4553,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5829470198675497,
+            0.5747615894039737,
+            0.5749139072847678
+          ],
+          "GT Power_0": [
+            0.04031125827814567,
+            0.01643046357615894,
+            0.017986754966887415
+          ],
+          "IA Power_0": [
+            3.0593774834437104,
+            2.9351258278145687,
+            3.329529801324504
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.390476821192053,
+            3.1885827814569505,
+            3.5596953642384106
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7101589403973503,
+            0.7096066666666666,
+            0.7294533333333327
+          ],
+          "GT Power_0": [
+            0.11725165562913915,
+            0.11739999999999999,
+            0.11598000000000001
+          ],
+          "IA Power_0": [
+            5.741238410596024,
+            5.806173333333335,
+            5.944906666666661
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.1240662251655635,
+            6.187046666666666,
+            6.356426666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7260333333333325,
+            0.7320133333333326,
+            0.7114999999999996
+          ],
+          "GT Power_0": [
+            0.11611333333333339,
+            0.1131933333333333,
+            0.11710666666666668
+          ],
+          "IA Power_0": [
+            5.777446666666666,
+            6.107886666666665,
+            5.855073333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2248866666666665,
+            6.780926666666664,
+            6.230879999999996
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7697733333333343,
+            0.7730600000000004,
+            0.7834466666666672
+          ],
+          "GT Power_0": [
+            0.27485333333333334,
+            0.27242,
+            0.2721466666666667
+          ],
+          "IA Power_0": [
+            6.09960666666667,
+            6.707206666666669,
+            6.086593333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.639253333333336,
+            7.236626666666664,
+            6.773600000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7351456953642382,
+            0.7176933333333331,
+            0.7187549668874172
+          ],
+          "GT Power_0": [
+            0.12413907284768215,
+            0.12077333333333333,
+            0.12490728476821185
+          ],
+          "IA Power_0": [
+            5.894973509933777,
+            6.27671333333333,
+            5.970417218543045
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.540516556291392,
+            6.617773333333332,
+            6.348218543046358
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD120-A9",
+      "number": 4552,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5838399999999999,
+            0.5749271523178809,
+            0.5896953642384106
+          ],
+          "GT Power_0": [
+            0.033586666666666654,
+            0.015562913907284766,
+            0.015841059602649008
+          ],
+          "IA Power_0": [
+            3.15414,
+            3.13223178807947,
+            3.0614701986754973
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5158866666666664,
+            3.3439602649006632,
+            3.394245033112584
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.715602649006622,
+            0.7132999999999998,
+            0.7135165562913905
+          ],
+          "GT Power_0": [
+            0.11604635761589416,
+            0.11819333333333336,
+            0.11307284768211921
+          ],
+          "IA Power_0": [
+            6.070582781456955,
+            5.952559999999998,
+            5.982417218543047
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.43923841059603,
+            6.368439999999999,
+            6.363834437086091
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128066666666661,
+            0.7131599999999998,
+            0.714433333333333
+          ],
+          "GT Power_0": [
+            0.1119666666666667,
+            0.11149333333333339,
+            0.1143666666666667
+          ],
+          "IA Power_0": [
+            5.932773333333331,
+            6.278046666666667,
+            5.932386666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.279253333333334,
+            6.615293333333334,
+            6.3171599999999986
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7696933333333336,
+            0.7882715231788082,
+            0.7721800000000005
+          ],
+          "GT Power_0": [
+            0.2445466666666667,
+            0.24628476821192052,
+            0.2630999999999999
+          ],
+          "IA Power_0": [
+            6.193273333333336,
+            6.3642649006622545,
+            6.206100000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.698680000000001,
+            7.017258278145695,
+            6.751233333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352799999999994,
+            0.7185199999999995,
+            0.7288344370860923
+          ],
+          "GT Power_0": [
+            0.12275333333333338,
+            0.12085333333333334,
+            0.1363311258278146
+          ],
+          "IA Power_0": [
+            6.065186666666664,
+            6.100060000000003,
+            6.068602649006623
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.474859999999999,
+            6.402473333333333,
+            6.511794701986755
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD164-A9",
+      "number": 4551,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5840666666666661,
+            0.5893774834437087,
+            0.5862251655629137
+          ],
+          "GT Power_0": [
+            0.030719999999999987,
+            0.016072847682119203,
+            0.015245033112582778
+          ],
+          "IA Power_0": [
+            3.0632666666666677,
+            3.0142582781456957,
+            3.923052980132452
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4338733333333327,
+            3.3618741721854306,
+            4.191999999999998
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7118322147651001,
+            0.714602649006622,
+            0.7176999999999997
+          ],
+          "GT Power_0": [
+            0.1149328859060403,
+            0.11476158940397356,
+            0.11763333333333328
+          ],
+          "IA Power_0": [
+            5.8609932885906035,
+            5.947662251655631,
+            5.942173333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2252416107382516,
+            6.30834437086093,
+            6.463879999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7156399999999995,
+            0.7118199999999995,
+            0.7137266666666663
+          ],
+          "GT Power_0": [
+            0.1180333333333333,
+            0.1175,
+            0.12270666666666673
+          ],
+          "IA Power_0": [
+            6.051733333333334,
+            5.912913333333332,
+            5.9661666666666635
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.377,
+            6.227593333333333,
+            6.320493333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7710200000000007,
+            0.7746733333333335,
+            0.7721533333333338
+          ],
+          "GT Power_0": [
+            0.25254000000000015,
+            0.2558133333333333,
+            0.2751866666666667
+          ],
+          "IA Power_0": [
+            6.075326666666665,
+            6.830653333333334,
+            6.101773333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.596373333333331,
+            7.404273333333331,
+            6.619273333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179800000000002,
+            0.71774,
+            0.734919999999999
+          ],
+          "GT Power_0": [
+            0.1282066666666667,
+            0.12701333333333334,
+            0.12572000000000003
+          ],
+          "IA Power_0": [
+            5.914893333333333,
+            6.302566666666665,
+            5.982013333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3290733333333336,
+            6.708640000000001,
+            6.464920000000002
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4550,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5825666666666663,
+            0.5769271523178808,
+            0.5698410596026486
+          ],
+          "GT Power_0": [
+            0.040919999999999984,
+            0.014490066225165557,
+            0.013682119205298016
+          ],
+          "IA Power_0": [
+            3.145633333333333,
+            3.1664304635761584,
+            2.912476821192052
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5109333333333335,
+            3.389238410596029,
+            3.124655629139072
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129400000000004,
+            0.7201999999999995,
+            0.729453333333333
+          ],
+          "GT Power_0": [
+            0.10314000000000004,
+            0.10402666666666666,
+            0.10436000000000002
+          ],
+          "IA Power_0": [
+            6.331039999999996,
+            6.341953333333333,
+            6.105553333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.659966666666669,
+            6.680419999999996,
+            6.710573333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172333333333325,
+            0.7147799999999994,
+            0.7206599999999994
+          ],
+          "GT Power_0": [
+            0.09972666666666674,
+            0.10008666666666666,
+            0.10478666666666671
+          ],
+          "IA Power_0": [
+            6.692979999999998,
+            5.9663866666666685,
+            6.024893333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.964426666666665,
+            6.311560000000001,
+            6.485433333333329
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7715,
+            0.7860466666666669,
+            0.7920600000000003
+          ],
+          "GT Power_0": [
+            0.21828666666666663,
+            0.2209066666666667,
+            0.23220000000000007
+          ],
+          "IA Power_0": [
+            6.226479999999998,
+            6.201146666666668,
+            6.654853333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7154000000000025,
+            6.766573333333334,
+            7.316013333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187666666666668,
+            0.7189799999999998,
+            0.7194933333333331
+          ],
+          "GT Power_0": [
+            0.10827999999999999,
+            0.11089999999999998,
+            0.1094333333333333
+          ],
+          "IA Power_0": [
+            5.994726666666668,
+            6.05462,
+            6.440166666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.364473333333334,
+            6.439966666666667,
+            6.7285466666666665
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD162-A9",
+      "number": 4549,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5834666666666667,
+            0.5745666666666667,
+            0.5757799999999998
+          ],
+          "GT Power_0": [
+            0.04193999999999999,
+            0.014586666666666664,
+            0.015880000000000002
+          ],
+          "IA Power_0": [
+            2.789346666666667,
+            2.615266666666665,
+            2.6092066666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.104293333333333,
+            2.867193333333335,
+            2.877073333333333
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.728906666666666,
+            0.7264399999999995,
+            0.7146199999999994
+          ],
+          "GT Power_0": [
+            0.11408666666666668,
+            0.11270000000000001,
+            0.11460000000000001
+          ],
+          "IA Power_0": [
+            5.219406666666665,
+            5.531666666666666,
+            5.1978266666666695
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.636726666666665,
+            5.931173333333331,
+            5.586320000000003
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150799999999997,
+            0.7300400000000001,
+            0.713893333333333
+          ],
+          "GT Power_0": [
+            0.11027333333333336,
+            0.11327999999999994,
+            0.11166666666666666
+          ],
+          "IA Power_0": [
+            5.246293333333336,
+            5.47473333333333,
+            5.238320000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.613693333333333,
+            6.0138733333333345,
+            5.64559333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7918800000000006,
+            0.772079470198676,
+            0.7800733333333335
+          ],
+          "GT Power_0": [
+            0.24003333333333335,
+            0.23925165562913908,
+            0.24715999999999994
+          ],
+          "IA Power_0": [
+            5.479559999999998,
+            5.424708609271519,
+            5.416493333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.229886666666669,
+            5.9497350993377465,
+            6.035513333333331
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.718766666666666,
+            0.7181799999999995,
+            0.7401986754966884
+          ],
+          "GT Power_0": [
+            0.11934666666666666,
+            0.12024666666666678,
+            0.12083443708609273
+          ],
+          "IA Power_0": [
+            5.528986666666668,
+            5.205866666666664,
+            5.289940397350994
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.92212,
+            5.590459999999999,
+            5.9062251655629145
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD146-A9",
+      "number": 4548,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5930469798657716,
+            0.5979866666666661,
+            0.6284635761589402
+          ],
+          "GT Power_0": [
+            0.03206040268456375,
+            0.013906666666666666,
+            0.015192052980132448
+          ],
+          "IA Power_0": [
+            3.8863355704697984,
+            3.971086666666667,
+            4.118807947019869
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.1718187919463094,
+            4.293966666666668,
+            4.519543046357617
+          ],
+          "name": "Basic",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7404304635761584,
+            0.7967199999999994,
+            0.7308940397350989
+          ],
+          "GT Power_0": [
+            0.11701986754966891,
+            0.11741333333333333,
+            0.11913245033112585
+          ],
+          "IA Power_0": [
+            6.5669801324503325,
+            7.534353333333332,
+            6.972238410596029
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.083344370860926,
+            7.956840000000001,
+            7.412609271523181
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7633443708609269,
+            0.8723066666666665,
+            0.739353333333333
+          ],
+          "GT Power_0": [
+            0.11726490066225162,
+            0.11543333333333336,
+            0.12471333333333338
+          ],
+          "IA Power_0": [
+            7.265125827814569,
+            8.841473333333331,
+            8.409586666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.675443708609274,
+            9.328946666666674,
+            8.814966666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7757933333333341,
+            0.7962516556291388,
+            0.7392582781456949
+          ],
+          "GT Power_0": [
+            0.2454733333333334,
+            0.2528344370860927,
+            0.2542052980132449
+          ],
+          "IA Power_0": [
+            7.101633333333333,
+            13.36273509933775,
+            14.952529801324506
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.65236666666667,
+            14.047470198675503,
+            15.515112582781452
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7387266666666664,
+            0.7397533333333332,
+            0.717346666666666
+          ],
+          "GT Power_0": [
+            0.12902666666666665,
+            0.12416666666666662,
+            0.12609999999999993
+          ],
+          "IA Power_0": [
+            5.72664,
+            5.7658999999999985,
+            5.946226666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.268306666666667,
+            6.47292666666667,
+            6.306126666666665
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD121-A9",
+      "number": 4547,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5877000000000001,
+            0.597019867549669,
+            0.5941390728476821
+          ],
+          "GT Power_0": [
+            0.015286666666666667,
+            0.016390728476821194,
+            0.016033112582781457
+          ],
+          "IA Power_0": [
+            3.2288866666666673,
+            3.6029735099337756,
+            3.295112582781459
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.453866666666666,
+            3.987158940397349,
+            3.667430463576158
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7137999999999994,
+            0.713258278145695,
+            0.7307199999999995
+          ],
+          "GT Power_0": [
+            0.10700000000000005,
+            0.10443708609271524,
+            0.10126000000000004
+          ],
+          "IA Power_0": [
+            6.708066666666669,
+            6.274357615894039,
+            6.284433333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.035446666666668,
+            6.6079602649006635,
+            6.982553333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124999999999996,
+            0.7128866666666664,
+            0.7135533333333333
+          ],
+          "GT Power_0": [
+            0.10417333333333334,
+            0.10157333333333336,
+            0.10550666666666672
+          ],
+          "IA Power_0": [
+            6.562046666666666,
+            6.3724666666666705,
+            6.421726666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.947493333333332,
+            6.694800000000002,
+            6.753293333333331
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7723200000000007,
+            0.7682933333333334,
+            0.7853666666666671
+          ],
+          "GT Power_0": [
+            0.24091333333333334,
+            0.23687333333333327,
+            0.23850666666666664
+          ],
+          "IA Power_0": [
+            6.563859999999999,
+            6.4883333333333315,
+            6.871166666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.083940000000002,
+            7.008506666666667,
+            7.555979999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7170199999999995,
+            0.7318666666666666,
+            0.7171655629139071
+          ],
+          "GT Power_0": [
+            0.11146666666666676,
+            0.11166000000000001,
+            0.11192715231788083
+          ],
+          "IA Power_0": [
+            6.415973333333335,
+            6.397713333333331,
+            6.667973509933773
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.760126666666661,
+            6.903166666666671,
+            7.1811390728476825
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4546,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.576688741721854,
+            0.5926933333333334,
+            0.5745562913907285
+          ],
+          "GT Power_0": [
+            0.03474834437086091,
+            0.014186666666666665,
+            0.013947019867549667
+          ],
+          "IA Power_0": [
+            3.2589205298013257,
+            3.2563133333333343,
+            3.492748344370861
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5163046357615886,
+            3.663300000000001,
+            3.7405761589403967
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7121866666666661,
+            0.7118543046357606,
+            0.7302317880794695
+          ],
+          "GT Power_0": [
+            0.09843333333333333,
+            0.09862251655629144,
+            0.0958278145695364
+          ],
+          "IA Power_0": [
+            6.18300666666667,
+            6.175403973509934,
+            6.383456953642386
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.527819999999997,
+            6.494642384105962,
+            6.795112582781459
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7119266666666662,
+            0.7262980132450328,
+            0.7125761589403972
+          ],
+          "GT Power_0": [
+            0.0971533333333333,
+            0.09768874172185434,
+            0.09454304635761589
+          ],
+          "IA Power_0": [
+            6.2326999999999995,
+            6.564960264900659,
+            6.206602649006624
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.490239999999998,
+            6.987271523178806,
+            6.554185430463574
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7823642384105961,
+            0.7838200000000004,
+            0.7700662251655634
+          ],
+          "GT Power_0": [
+            0.21870860927152316,
+            0.22094,
+            0.21917218543046366
+          ],
+          "IA Power_0": [
+            6.478847682119206,
+            6.827480000000002,
+            6.429887417218543
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9762450331125825,
+            7.430453333333335,
+            6.937377483443708
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7323311258278139,
+            0.7219666666666665,
+            0.7257266666666664
+          ],
+          "GT Power_0": [
+            0.1058675496688742,
+            0.10370666666666668,
+            0.10617333333333334
+          ],
+          "IA Power_0": [
+            6.314642384105964,
+            6.731460000000001,
+            6.708306666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.847205298013243,
+            7.063353333333333,
+            7.073633333333337
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4545,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5864399999999999,
+            0.574298013245033,
+            0.5876066666666666
+          ],
+          "GT Power_0": [
+            0.03203333333333331,
+            0.013668874172185428,
+            0.012846666666666666
+          ],
+          "IA Power_0": [
+            2.7827266666666657,
+            2.6164039735099336,
+            2.565466666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1022533333333344,
+            2.8612913907284763,
+            2.8955533333333325
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7386733333333327,
+            0.7200533333333331,
+            0.7142516556291387
+          ],
+          "GT Power_0": [
+            0.09202666666666669,
+            0.08925333333333334,
+            0.08975496688741728
+          ],
+          "IA Power_0": [
+            5.263833333333332,
+            5.796806666666668,
+            5.192807947019869
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.904413333333333,
+            6.069086666666666,
+            5.5644437086092715
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7149139072847677,
+            0.716853333333333,
+            0.7221854304635756
+          ],
+          "GT Power_0": [
+            0.09052980132450338,
+            0.09151333333333335,
+            0.09111920529801325
+          ],
+          "IA Power_0": [
+            5.228781456953642,
+            5.832933333333333,
+            5.3435231788079465
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.611913907284768,
+            6.193133333333333,
+            5.787887417218545
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7732333333333337,
+            0.7860666666666672,
+            0.7715066666666669
+          ],
+          "GT Power_0": [
+            0.19593999999999992,
+            0.19640000000000005,
+            0.19843333333333324
+          ],
+          "IA Power_0": [
+            5.470006666666664,
+            5.412179999999999,
+            5.354679999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.968566666666667,
+            5.92472,
+            5.909473333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191986754966881,
+            0.7170733333333328,
+            0.7192847682119198
+          ],
+          "GT Power_0": [
+            0.09249006622516556,
+            0.09284000000000002,
+            0.09592715231788079
+          ],
+          "IA Power_0": [
+            5.611099337748345,
+            5.244033333333333,
+            5.25185430463576
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.923019867549671,
+            5.604019999999998,
+            5.64087417218543
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4544,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5858333333333333,
+            0.573185430463576,
+            0.5880397350993376
+          ],
+          "GT Power_0": [
+            0.04394666666666663,
+            0.016185430463576147,
+            0.01713245033112583
+          ],
+          "IA Power_0": [
+            3.4505266666666663,
+            3.5479470198675482,
+            3.2798807947019863
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8198066666666652,
+            3.777119205298014,
+            3.589172185430463
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7396887417218537,
+            0.710953333333333,
+            0.7116622516556287
+          ],
+          "GT Power_0": [
+            0.12094039735099338,
+            0.11874000000000007,
+            0.12077483443708602
+          ],
+          "IA Power_0": [
+            6.769350993377484,
+            6.508573333333332,
+            6.5293443708609225
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.182841059602649,
+            6.883346666666666,
+            6.871437086092718
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133999999999997,
+            0.7120066225165559,
+            0.7116754966887416
+          ],
+          "GT Power_0": [
+            0.1299933333333334,
+            0.11848344370860929,
+            0.12169536423841056
+          ],
+          "IA Power_0": [
+            6.984440000000001,
+            6.536615894039738,
+            6.557476821192051
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.286533333333335,
+            6.911960264900663,
+            6.920443708609269
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7690794701986763,
+            0.7690666666666665,
+            0.7838000000000004
+          ],
+          "GT Power_0": [
+            0.255384105960265,
+            0.25437333333333345,
+            0.25428000000000006
+          ],
+          "IA Power_0": [
+            7.143470198675494,
+            6.750093333333333,
+            6.777553333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.663298013245028,
+            7.279019999999997,
+            7.391819999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7162980132450328,
+            0.7161721854304636,
+            0.717853333333333
+          ],
+          "GT Power_0": [
+            0.12442384105960265,
+            0.12321192052980133,
+            0.12391333333333326
+          ],
+          "IA Power_0": [
+            6.941390728476819,
+            6.6539139072847675,
+            6.759566666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.326754966887417,
+            7.035139072847683,
+            7.066579999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4543,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5795733333333333,
+            0.5740999999999997,
+            0.587026490066225
+          ],
+          "GT Power_0": [
+            0.030519999999999985,
+            0.013246666666666664,
+            0.014225165562913904
+          ],
+          "IA Power_0": [
+            3.347000000000001,
+            2.941966666666666,
+            3.3292847682119198
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7089133333333324,
+            3.182133333333332,
+            3.656821192052979
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713293333333333,
+            0.719093333333333,
+            0.7361733333333329
+          ],
+          "GT Power_0": [
+            0.10399333333333335,
+            0.11366666666666667,
+            0.10512000000000007
+          ],
+          "IA Power_0": [
+            5.865526666666667,
+            5.811260000000001,
+            6.193746666666662
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.168673333333335,
+            6.207286666666666,
+            6.841406666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143377483443704,
+            0.7132533333333324,
+            0.7300866666666666
+          ],
+          "GT Power_0": [
+            0.1067350993377483,
+            0.10314666666666673,
+            0.10123999999999994
+          ],
+          "IA Power_0": [
+            5.850033112582781,
+            5.943579999999998,
+            5.927973333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.215258278145694,
+            6.281920000000001,
+            6.349613333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7709666666666669,
+            0.7710466666666677,
+            0.7808866666666667
+          ],
+          "GT Power_0": [
+            0.22436666666666683,
+            0.22500000000000006,
+            0.24654666666666653
+          ],
+          "IA Power_0": [
+            6.103633333333332,
+            6.088386666666664,
+            6.1191200000000014
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.618493333333336,
+            6.604660000000001,
+            6.66154
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7198999999999995,
+            0.7197218543046355,
+            0.7200933333333333
+          ],
+          "GT Power_0": [
+            0.10666666666666669,
+            0.10676158940397353,
+            0.10504000000000001
+          ],
+          "IA Power_0": [
+            5.949786666666665,
+            6.337509933774838,
+            6.016446666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.322766666666667,
+            6.7082582781456965,
+            6.391693333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD21-B1",
+      "number": 4542,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5838533333333331,
+            0.5866399999999997,
+            0.5914399999999999
+          ],
+          "GT Power_0": [
+            0.03229999999999998,
+            0.014806666666666664,
+            0.014866666666666667
+          ],
+          "IA Power_0": [
+            3.038726666666666,
+            2.9010933333333337,
+            2.9352799999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.553153333333333,
+            4.321693333333332,
+            4.518660000000002
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145400000000001,
+            0.7361933333333328,
+            0.7472133333333325
+          ],
+          "GT Power_0": [
+            0.10774666666666671,
+            0.10823999999999996,
+            0.11248666666666675
+          ],
+          "IA Power_0": [
+            5.570993333333332,
+            5.915900000000002,
+            6.118473333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.128893333333332,
+            7.7677466666666595,
+            7.85429333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7284933333333332,
+            0.7300397350993373,
+            0.7289599999999994
+          ],
+          "GT Power_0": [
+            0.10969333333333343,
+            0.11056953642384104,
+            0.11118666666666667
+          ],
+          "IA Power_0": [
+            5.596793333333333,
+            5.8604701986754995,
+            5.638539999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.252719999999999,
+            7.527847682119205,
+            7.313453333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.79098,
+            0.7727333333333336,
+            0.7788476821192054
+          ],
+          "GT Power_0": [
+            0.2363933333333334,
+            0.23492,
+            0.2382649006622517
+          ],
+          "IA Power_0": [
+            5.8112266666666645,
+            5.85089333333333,
+            5.901576158940398
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.681620000000002,
+            7.539346666666669,
+            7.614456953642386
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.725993333333333,
+            0.7299999999999998,
+            0.718946666666666
+          ],
+          "GT Power_0": [
+            0.11659333333333337,
+            0.12423178807947022,
+            0.11717333333333341
+          ],
+          "IA Power_0": [
+            5.923886666666665,
+            5.718284768211924,
+            5.676779999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.6350799999999985,
+            7.376986754966886,
+            7.222686666666672
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4541,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.583344370860927,
+            0.5736733333333335,
+            0.588933774834437
+          ],
+          "GT Power_0": [
+            0.035543046357615876,
+            0.01386,
+            0.014185430463576152
+          ],
+          "IA Power_0": [
+            2.7437947019867543,
+            2.869106666666665,
+            2.6303311258278153
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0462913907284785,
+            3.12802,
+            2.9938609271523164
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128133333333329,
+            0.7340066225165556,
+            0.7123066666666665
+          ],
+          "GT Power_0": [
+            0.0957666666666667,
+            0.09405960264900663,
+            0.09507333333333338
+          ],
+          "IA Power_0": [
+            5.150833333333334,
+            5.173754966887417,
+            5.104386666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.506213333333334,
+            5.782033112582783,
+            5.452079999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7114370860927147,
+            0.728562913907284,
+            0.7123133333333329
+          ],
+          "GT Power_0": [
+            0.09474834437086092,
+            0.09437748344370868,
+            0.09292000000000002
+          ],
+          "IA Power_0": [
+            5.331092715231786,
+            5.102019867549668,
+            5.111993333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.696390728476822,
+            5.525218543046357,
+            5.463553333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7701800000000003,
+            0.7715333333333338,
+            0.7816666666666673
+          ],
+          "GT Power_0": [
+            0.20568666666666655,
+            0.21322666666666668,
+            0.20895333333333327
+          ],
+          "IA Power_0": [
+            5.555126666666667,
+            5.286579999999997,
+            5.307866666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.042700000000001,
+            5.802453333333333,
+            5.915533333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7164999999999995,
+            0.7406622516556295,
+            0.720092715231788
+          ],
+          "GT Power_0": [
+            0.10146000000000006,
+            0.10380132450331132,
+            0.10486092715231794
+          ],
+          "IA Power_0": [
+            5.193119999999999,
+            5.191543046357616,
+            5.384629139072851
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.518399999999999,
+            5.656622516556289,
+            5.759655629139075
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4540,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5753066666666663,
+            0.5908675496688743,
+            0.5739403973509931
+          ],
+          "GT Power_0": [
+            0.030833333333333327,
+            0.014172185430463575,
+            0.014629139072847689
+          ],
+          "IA Power_0": [
+            3.1538133333333325,
+            3.0874966887417217,
+            3.025562913907285
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4094733333333336,
+            3.465635761589405,
+            3.27669536423841
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713933333333333,
+            0.7130066666666663,
+            0.7128666666666664
+          ],
+          "GT Power_0": [
+            0.11147333333333335,
+            0.10678666666666667,
+            0.11492000000000002
+          ],
+          "IA Power_0": [
+            6.023653333333335,
+            6.375459999999996,
+            6.155906666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.403000000000002,
+            6.736273333333335,
+            6.512926666666663
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7146933333333331,
+            0.7137748344370858,
+            0.7152933333333331
+          ],
+          "GT Power_0": [
+            0.10982000000000004,
+            0.10921192052980132,
+            0.10985333333333332
+          ],
+          "IA Power_0": [
+            6.012266666666668,
+            6.35930463576159,
+            6.069159999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.35982,
+            6.702953642384102,
+            6.448880000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7716266666666667,
+            0.7810400000000002,
+            0.7705933333333332
+          ],
+          "GT Power_0": [
+            0.23091333333333333,
+            0.22756000000000004,
+            0.22940000000000002
+          ],
+          "IA Power_0": [
+            6.322593333333329,
+            6.616726666666665,
+            6.27551333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.775486666666666,
+            7.116786666666665,
+            6.773393333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7213999999999996,
+            0.7194238410596023,
+            0.7257266666666663
+          ],
+          "GT Power_0": [
+            0.12008666666666667,
+            0.11367549668874172,
+            0.11147333333333333
+          ],
+          "IA Power_0": [
+            6.563199999999999,
+            6.123801324503309,
+            6.206913333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.835813333333335,
+            6.49411258278146,
+            6.665713333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4539,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5820466666666665,
+            0.5741800000000004,
+            0.5740666666666667
+          ],
+          "GT Power_0": [
+            0.04354666666666664,
+            0.016160000000000004,
+            0.014920000000000003
+          ],
+          "IA Power_0": [
+            3.5968466666666656,
+            3.2780466666666683,
+            3.6262799999999986
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.94518,
+            3.4947733333333364,
+            3.8101400000000005
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.712106666666666,
+            0.7108533333333328,
+            0.7311788079470197
+          ],
+          "GT Power_0": [
+            0.11875333333333335,
+            0.11673333333333331,
+            0.12327152317880795
+          ],
+          "IA Power_0": [
+            6.442313333333332,
+            6.375793333333333,
+            6.965384105960266
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.789273333333335,
+            6.7428333333333335,
+            7.49116556291391
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7211399999999991,
+            0.7126533333333327,
+            0.7128741721854297
+          ],
+          "GT Power_0": [
+            0.13507333333333332,
+            0.11816666666666663,
+            0.11784768211920531
+          ],
+          "IA Power_0": [
+            6.514646666666663,
+            6.6210200000000015,
+            6.843986754966887
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8930733333333345,
+            6.959833333333334,
+            7.186278145695366
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7691400000000005,
+            0.7718807947019873,
+            0.769746666666667
+          ],
+          "GT Power_0": [
+            0.25428,
+            0.257066225165563,
+            0.2550266666666667
+          ],
+          "IA Power_0": [
+            6.793513333333338,
+            6.834576158940399,
+            6.831006666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.280473333333336,
+            7.324158940397352,
+            7.367699999999997
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172847682119201,
+            0.7156933333333328,
+            0.7168741721854297
+          ],
+          "GT Power_0": [
+            0.1274370860927153,
+            0.12484666666666668,
+            0.12452317880794697
+          ],
+          "IA Power_0": [
+            6.573039735099338,
+            6.657500000000002,
+            6.605205298013245
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.941377483443711,
+            7.01947333333333,
+            6.978278145695361
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4538,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5747549668874168,
+            0.5805364238410595,
+            0.5870266666666669
+          ],
+          "GT Power_0": [
+            0.0183046357615894,
+            0.017735099337748347,
+            0.016579999999999998
+          ],
+          "IA Power_0": [
+            3.017900662251656,
+            3.4325960264900663,
+            2.9205933333333327
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2529139072847686,
+            3.6467350993377488,
+            3.232593333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7369733333333325,
+            0.7135099337748342,
+            0.7108278145695358
+          ],
+          "GT Power_0": [
+            0.12758,
+            0.1291390728476821,
+            0.13054966887417224
+          ],
+          "IA Power_0": [
+            5.831633333333334,
+            6.043192052980136,
+            5.77935099337748
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.744399999999996,
+            6.399721854304635,
+            6.158880794701986
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133841059602647,
+            0.7154199999999996,
+            0.7117483443708605
+          ],
+          "GT Power_0": [
+            0.1295496688741723,
+            0.12806666666666666,
+            0.12600000000000006
+          ],
+          "IA Power_0": [
+            5.863013245033116,
+            6.500059999999999,
+            5.8131986754966825
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.28627152317881,
+            6.915893333333332,
+            6.224410596026491
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708079470198677,
+            0.7704800000000004,
+            0.7696400000000003
+          ],
+          "GT Power_0": [
+            0.2741986754966888,
+            0.2772533333333334,
+            0.27609333333333347
+          ],
+          "IA Power_0": [
+            6.064271523178805,
+            6.0684800000000045,
+            6.135306666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.613125827814572,
+            6.604153333333334,
+            6.6449
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7176133333333329,
+            0.7354105960264895,
+            0.7178066666666663
+          ],
+          "GT Power_0": [
+            0.14292666666666667,
+            0.1362649006622517,
+            0.14319333333333334
+          ],
+          "IA Power_0": [
+            5.906146666666669,
+            5.950920529801328,
+            5.969273333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3021199999999995,
+            6.475562913907284,
+            6.325066666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4537,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5812999999999998,
+            0.5725733333333334,
+            0.57664238410596
+          ],
+          "GT Power_0": [
+            0.039966666666666664,
+            0.012773333333333331,
+            0.014125827814569536
+          ],
+          "IA Power_0": [
+            2.7696800000000006,
+            2.723446666666665,
+            3.0599072847682116
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.101073333333334,
+            2.9634066666666654,
+            3.3326291390728477
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7252866666666662,
+            0.7153841059602644,
+            0.7259403973509928
+          ],
+          "GT Power_0": [
+            0.09378000000000007,
+            0.09149668874172187,
+            0.08983443708609277
+          ],
+          "IA Power_0": [
+            5.357979999999999,
+            5.3405496688741705,
+            5.387437086092715
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7661,
+            5.738735099337749,
+            5.792655629139071
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8391006711409393,
+            0.7133333333333328,
+            0.7360529801324505
+          ],
+          "GT Power_0": [
+            0.09480536912751679,
+            0.08960666666666665,
+            0.08750993377483444
+          ],
+          "IA Power_0": [
+            9.374476510067112,
+            5.610799999999999,
+            5.635105960264898
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.77869798657718,
+            5.99272,
+            6.11307284768212
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            149,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7727000000000007,
+            0.7913509933774836,
+            0.77034
+          ],
+          "GT Power_0": [
+            0.20551333333333335,
+            0.20212582781456964,
+            0.20495333333333332
+          ],
+          "IA Power_0": [
+            5.591220000000001,
+            5.817298013245034,
+            5.558586666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.056173333333328,
+            6.389463576158941,
+            6.045159999999997
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7342666666666663,
+            0.7202317880794699,
+            0.7343866666666661
+          ],
+          "GT Power_0": [
+            0.09733333333333331,
+            0.09764900662251656,
+            0.09664666666666666
+          ],
+          "IA Power_0": [
+            5.499313333333332,
+            5.600324503311259,
+            5.390526666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.908619999999998,
+            5.942086092715228,
+            5.888359999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD183-A9",
+      "number": 4536,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.58892,
+            0.5946866666666666,
+            0.5737599999999997
+          ],
+          "GT Power_0": [
+            0.04607333333333332,
+            0.016066666666666663,
+            0.015506666666666663
+          ],
+          "IA Power_0": [
+            3.6918266666666657,
+            3.2317599999999986,
+            2.960393333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.067546666666664,
+            3.6253333333333346,
+            3.216046666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7121059602649005,
+            0.713126666666666,
+            0.7311799999999996
+          ],
+          "GT Power_0": [
+            0.11529139072847679,
+            0.11312,
+            0.11550666666666667
+          ],
+          "IA Power_0": [
+            6.2117947019867605,
+            5.938106666666669,
+            5.869580000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.567933774834438,
+            6.3103,
+            6.487793333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7120927152317876,
+            0.7118333333333329,
+            0.7179399999999997
+          ],
+          "GT Power_0": [
+            0.11468874172185431,
+            0.11880666666666666,
+            0.1238133333333333
+          ],
+          "IA Power_0": [
+            5.939933774834437,
+            5.94596,
+            6.0080800000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.302721854304633,
+            6.317346666666669,
+            6.41666666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7849006622516561,
+            0.7794066666666674,
+            0.7833066666666668
+          ],
+          "GT Power_0": [
+            0.2566556291390728,
+            0.27488000000000024,
+            0.25486666666666663
+          ],
+          "IA Power_0": [
+            6.108172185430464,
+            6.159039999999997,
+            6.50700666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.750794701986755,
+            6.749700000000001,
+            7.115419999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7298066666666667,
+            0.7159999999999999,
+            0.716966666666666
+          ],
+          "GT Power_0": [
+            0.12358666666666665,
+            0.1251986754966888,
+            0.13179333333333332
+          ],
+          "IA Power_0": [
+            6.015486666666667,
+            5.98035761589404,
+            6.351713333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.507506666666665,
+            6.367165562913905,
+            6.713266666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD146-A9",
+      "number": 4535,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5947133333333335,
+            0.5770397350993375,
+            0.5942399999999995
+          ],
+          "GT Power_0": [
+            0.01463333333333333,
+            0.016092715231788082,
+            0.014646666666666667
+          ],
+          "IA Power_0": [
+            3.3196733333333315,
+            2.9223443708609262,
+            2.9828999999999994
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6870866666666675,
+            3.170887417218542,
+            3.4316933333333326
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.73252,
+            0.7142933333333323,
+            0.7293799999999994
+          ],
+          "GT Power_0": [
+            0.11872666666666667,
+            0.11808000000000007,
+            0.11737333333333337
+          ],
+          "IA Power_0": [
+            5.675913333333328,
+            5.585073333333333,
+            5.895573333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.169153333333333,
+            6.013900000000001,
+            6.396933333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7379006622516557,
+            0.7221866666666659,
+            0.7243333333333326
+          ],
+          "GT Power_0": [
+            0.1225430463576159,
+            0.11528000000000004,
+            0.1329
+          ],
+          "IA Power_0": [
+            5.616291390728479,
+            5.689733333333334,
+            6.0690333333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.174668874172186,
+            6.133006666666666,
+            6.567060000000003
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7727333333333333,
+            0.772533333333334,
+            0.7712466666666672
+          ],
+          "GT Power_0": [
+            0.2703733333333333,
+            0.24141333333333337,
+            0.24267999999999995
+          ],
+          "IA Power_0": [
+            5.905606666666665,
+            5.871106666666664,
+            5.875953333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.417373333333333,
+            6.412953333333336,
+            6.35918
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7199999999999994,
+            0.7215599999999994,
+            0.7410466666666663
+          ],
+          "GT Power_0": [
+            0.12265333333333334,
+            0.12646666666666667,
+            0.12574
+          ],
+          "IA Power_0": [
+            5.697126666666668,
+            6.099726666666671,
+            5.683813333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.100706666666665,
+            6.433326666666666,
+            6.428299999999996
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4534,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5873799999999998,
+            0.5814900662251654,
+            0.5750927152317881
+          ],
+          "GT Power_0": [
+            0.013106666666666666,
+            0.014178807947019867,
+            0.014364238410596033
+          ],
+          "IA Power_0": [
+            3.0187266666666686,
+            3.940913907284768,
+            3.0262450331125827
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.469900000000001,
+            4.1659933774834474,
+            3.297649006622516
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124599999999994,
+            0.729346666666666,
+            0.7104133333333327
+          ],
+          "GT Power_0": [
+            0.10193333333333342,
+            0.10353333333333331,
+            0.10105333333333336
+          ],
+          "IA Power_0": [
+            5.999566666666667,
+            6.4047399999999985,
+            6.09665333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.38538,
+            6.884446666666667,
+            6.4442066666666635
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7270266666666664,
+            0.7128874172185427,
+            0.712673333333333
+          ],
+          "GT Power_0": [
+            0.09718666666666671,
+            0.09873509933774839,
+            0.10048
+          ],
+          "IA Power_0": [
+            6.060973333333331,
+            6.062298013245029,
+            6.1203666666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.5137,
+            6.397947019867549,
+            6.4622800000000025
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7836953642384115,
+            0.7706466666666668,
+            0.7873642384105964
+          ],
+          "GT Power_0": [
+            0.2349735099337748,
+            0.21937333333333342,
+            0.22030463576158948
+          ],
+          "IA Power_0": [
+            6.687596026490066,
+            6.226900000000002,
+            6.265993377483444
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.226874172185427,
+            6.672626666666668,
+            6.87430463576159
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7181333333333332,
+            0.7347333333333328,
+            0.7186666666666661
+          ],
+          "GT Power_0": [
+            0.10588666666666671,
+            0.10928666666666674,
+            0.10945333333333335
+          ],
+          "IA Power_0": [
+            6.364139999999997,
+            6.246120000000001,
+            6.0315
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.723366666666665,
+            6.710680000000001,
+            6.418680000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD176-A9",
+      "number": 4533,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5837417218543046,
+            0.5902582781456951,
+            0.5759867549668869
+          ],
+          "GT Power_0": [
+            0.04741059602649006,
+            0.015900662251655626,
+            0.015099337748344375
+          ],
+          "IA Power_0": [
+            2.687562913907284,
+            2.933721854304635,
+            2.708245033112582
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0685562913907263,
+            3.342152317880795,
+            2.948999999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7357533333333327,
+            0.7159466666666665,
+            0.7121390728476814
+          ],
+          "GT Power_0": [
+            0.10140666666666669,
+            0.10092000000000005,
+            0.10452317880794701
+          ],
+          "IA Power_0": [
+            5.217840000000002,
+            5.749339999999999,
+            5.126264900662252
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.767573333333332,
+            6.030513333333334,
+            5.5048476821192045
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7130866666666662,
+            0.7296066666666664,
+            0.7311533333333327
+          ],
+          "GT Power_0": [
+            0.09971999999999996,
+            0.10143333333333338,
+            0.10524000000000006
+          ],
+          "IA Power_0": [
+            5.359726666666666,
+            5.104799999999998,
+            5.149620000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.719913333333335,
+            5.587266666666666,
+            5.57522
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7777399999999998,
+            0.7747152317880798,
+            0.7722649006622524
+          ],
+          "GT Power_0": [
+            0.23781333333333332,
+            0.2238741721854304,
+            0.22746357615894042
+          ],
+          "IA Power_0": [
+            5.554046666666666,
+            5.336788079470197,
+            5.256331125827814
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.092953333333332,
+            5.910847682119208,
+            5.824165562913908
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177682119205292,
+            0.7197483443708605,
+            0.7167000000000001
+          ],
+          "GT Power_0": [
+            0.10696026490066225,
+            0.11140397350993379,
+            0.10657999999999995
+          ],
+          "IA Power_0": [
+            5.2861986754966885,
+            5.088602649006623,
+            5.151093333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.64730463576159,
+            5.494807947019866,
+            5.546906666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4532,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5874533333333329,
+            0.5797019867549665,
+            0.5787666666666662
+          ],
+          "GT Power_0": [
+            0.02869333333333331,
+            0.01460264900662252,
+            0.014
+          ],
+          "IA Power_0": [
+            3.7590266666666685,
+            3.328490066225167,
+            3.3678333333333326
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.0344000000000015,
+            3.541980132450331,
+            3.588993333333333
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7354999999999996,
+            0.7165399999999996,
+            0.7171866666666662
+          ],
+          "GT Power_0": [
+            0.09694666666666674,
+            0.09707333333333334,
+            0.10090666666666671
+          ],
+          "IA Power_0": [
+            7.106273333333335,
+            6.352633333333331,
+            6.381786666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.496580000000001,
+            6.733633333333331,
+            6.7332800000000015
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7159199999999996,
+            0.7278874172185427,
+            0.7146490066225161
+          ],
+          "GT Power_0": [
+            0.09758000000000003,
+            0.09749006622516564,
+            0.0958543046357616
+          ],
+          "IA Power_0": [
+            6.385813333333335,
+            6.4357086092715186,
+            6.711768211920529
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.742813333333332,
+            6.814145695364238,
+            7.047688741721853
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7747000000000002,
+            0.7823066666666671,
+            0.774706666666667
+          ],
+          "GT Power_0": [
+            0.22132666666666675,
+            0.22280000000000005,
+            0.22214666666666663
+          ],
+          "IA Power_0": [
+            6.71646,
+            6.850419999999999,
+            6.908460000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.13406666666667,
+            7.299173333333335,
+            7.408686666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7222199999999993,
+            0.722493333333333,
+            0.7222866666666663
+          ],
+          "GT Power_0": [
+            0.10147333333333336,
+            0.10051333333333332,
+            0.10059333333333334
+          ],
+          "IA Power_0": [
+            6.556626666666667,
+            6.497039999999998,
+            6.7544466666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.867919999999996,
+            6.835713333333332,
+            7.097873333333331
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD165-A9",
+      "number": 4531,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5837483443708607,
+            0.5865960264900663,
+            0.5890860927152317
+          ],
+          "GT Power_0": [
+            0.04242384105960263,
+            0.013913907284768212,
+            0.014728476821192054
+          ],
+          "IA Power_0": [
+            3.430549668874173,
+            3.2295430463576156,
+            3.1750264900662244
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.743847682119206,
+            3.54469536423841,
+            3.508013245033112
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7282333333333325,
+            0.7269867549668872,
+            0.727093333333333
+          ],
+          "GT Power_0": [
+            0.09879333333333334,
+            0.10180132450331128,
+            0.10651333333333332
+          ],
+          "IA Power_0": [
+            6.280593333333331,
+            6.53512582781457,
+            6.378233333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.784093333333333,
+            6.98582781456954,
+            6.923626666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7120533333333332,
+            0.7120266666666666,
+            0.7113311258278139
+          ],
+          "GT Power_0": [
+            0.10116666666666672,
+            0.09927333333333337,
+            0.09954304635761593
+          ],
+          "IA Power_0": [
+            6.410313333333331,
+            6.827726666666667,
+            6.3546688741721855
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.766073333333336,
+            7.152126666666668,
+            6.728947019867548
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.771225165562914,
+            0.7846333333333331,
+            0.7696133333333338
+          ],
+          "GT Power_0": [
+            0.23282119205298016,
+            0.23394666666666666,
+            0.23416666666666677
+          ],
+          "IA Power_0": [
+            6.6716357615894015,
+            6.93,
+            6.541493333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.186112582781459,
+            7.598860000000001,
+            7.052079999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7321854304635758,
+            0.7166754966887412,
+            0.7173533333333328
+          ],
+          "GT Power_0": [
+            0.1056092715231788,
+            0.10531125827814573,
+            0.1061866666666667
+          ],
+          "IA Power_0": [
+            6.4801324503311255,
+            6.390887417218544,
+            6.470353333333329
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.896225165562912,
+            6.735847682119209,
+            6.80434
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD126-A9",
+      "number": 4530,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5997417218543044,
+            0.5971721854304635,
+            0.5918066666666667
+          ],
+          "GT Power_0": [
+            0.034682119205298,
+            0.014741721854304635,
+            0.019973333333333336
+          ],
+          "IA Power_0": [
+            4.299582781456952,
+            3.712715231788078,
+            3.5897266666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.621105960264903,
+            3.9747947019867533,
+            3.868993333333332
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7167880794701981,
+            0.715093333333333,
+            0.7144999999999994
+          ],
+          "GT Power_0": [
+            0.10864238410596028,
+            0.10686666666666665,
+            0.10486000000000004
+          ],
+          "IA Power_0": [
+            5.827251655629136,
+            5.791593333333338,
+            6.155020000000004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.170357615894041,
+            6.12644,
+            6.524693333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7289666666666662,
+            0.7142119205298012,
+            0.7152133333333331
+          ],
+          "GT Power_0": [
+            0.1053666666666667,
+            0.10676821192052988,
+            0.1047133333333333
+          ],
+          "IA Power_0": [
+            5.825380000000002,
+            5.880231788079469,
+            6.115586666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2509066666666655,
+            6.227052980132452,
+            6.461673333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7904200000000005,
+            0.7729466666666667,
+            0.7731333333333339
+          ],
+          "GT Power_0": [
+            0.23130666666666655,
+            0.2332866666666665,
+            0.2297466666666668
+          ],
+          "IA Power_0": [
+            6.197159999999999,
+            6.068693333333337,
+            6.337459999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.811159999999998,
+            6.5922333333333345,
+            6.869493333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.721788079470198,
+            0.7179999999999999,
+            0.7186599999999997
+          ],
+          "GT Power_0": [
+            0.11441721854304641,
+            0.11089333333333333,
+            0.10981333333333336
+          ],
+          "IA Power_0": [
+            5.922211920529799,
+            5.889593333333331,
+            5.892786666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.245847682119205,
+            6.260113333333331,
+            6.242380000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD145-A9",
+      "number": 4529,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5870799999999999,
+            0.574701986754967,
+            0.5828000000000001
+          ],
+          "GT Power_0": [
+            0.030379999999999983,
+            0.013913907284768214,
+            0.01481333333333333
+          ],
+          "IA Power_0": [
+            2.90076,
+            2.7676291390728482,
+            2.731486666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.261413333333334,
+            2.997192052980133,
+            3.0009399999999986
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7301466666666664,
+            0.7196599999999995,
+            0.713473333333333
+          ],
+          "GT Power_0": [
+            0.09549333333333335,
+            0.0923466666666667,
+            0.09456666666666667
+          ],
+          "IA Power_0": [
+            5.369073333333332,
+            5.4186799999999975,
+            5.330333333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.85673333333333,
+            5.7722533333333335,
+            5.673233333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7133245033112576,
+            0.7148410596026488,
+            0.7368333333333332
+          ],
+          "GT Power_0": [
+            0.09302649006622515,
+            0.09285430463576165,
+            0.09560666666666659
+          ],
+          "IA Power_0": [
+            5.278258278145694,
+            5.350821192052979,
+            5.335813333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.60311920529801,
+            5.702821192052978,
+            5.819226666666669
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7713133333333335,
+            0.7722119205298011,
+            0.7726266666666675
+          ],
+          "GT Power_0": [
+            0.20839333333333337,
+            0.2084238410596027,
+            0.20682000000000006
+          ],
+          "IA Power_0": [
+            5.467626666666668,
+            5.4593973509933775,
+            5.558793333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.952866666666669,
+            5.944304635761589,
+            5.970113333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191266666666659,
+            0.7513800000000002,
+            0.7713266666666663
+          ],
+          "GT Power_0": [
+            0.09416000000000002,
+            0.09602666666666666,
+            0.0958666666666667
+          ],
+          "IA Power_0": [
+            5.368319999999996,
+            6.230699999999999,
+            6.658780000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7191133333333335,
+            6.619653333333332,
+            7.110533333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD118-A9",
+      "number": 4528,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5854266666666663,
+            0.5809735099337748,
+            0.576443708609271
+          ],
+          "GT Power_0": [
+            0.03962666666666665,
+            0.014635761589403972,
+            0.01470860927152318
+          ],
+          "IA Power_0": [
+            2.951653333333333,
+            3.579026490066225,
+            2.9179470198675475
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3120733333333336,
+            3.8218807947019826,
+            3.148516556291392
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139799999999992,
+            0.7142317880794696,
+            0.7283708609271512
+          ],
+          "GT Power_0": [
+            0.09965333333333329,
+            0.09964900662251659,
+            0.10314569536423845
+          ],
+          "IA Power_0": [
+            5.580093333333333,
+            5.808066225165562,
+            5.527158940397352
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.942806666666667,
+            6.1471059602649,
+            6.018927152317881
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7153311258278142,
+            0.7184569536423833,
+            0.7244999999999995
+          ],
+          "GT Power_0": [
+            0.09920529801324501,
+            0.10141059602649012,
+            0.09806000000000002
+          ],
+          "IA Power_0": [
+            5.571079470198678,
+            5.722615894039737,
+            5.5823066666666685
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.915596026490069,
+            6.072324503311259,
+            6.04460666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7739470198675502,
+            0.7743642384105965,
+            0.7724437086092716
+          ],
+          "GT Power_0": [
+            0.22727152317880803,
+            0.2274105960264901,
+            0.22707947019867541
+          ],
+          "IA Power_0": [
+            6.134245033112583,
+            5.848437086092717,
+            5.733721854304635
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.649615894039735,
+            6.3396490066225155,
+            6.271940397350993
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7178933333333332,
+            0.7181854304635754,
+            0.7183999999999997
+          ],
+          "GT Power_0": [
+            0.10135333333333335,
+            0.1032516556291391,
+            0.10188666666666671
+          ],
+          "IA Power_0": [
+            5.86295333333333,
+            5.593476821192051,
+            5.6761066666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.20036,
+            5.977258278145695,
+            6.007193333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4527,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5752533333333333,
+            0.5741599999999997,
+            0.5827066666666665
+          ],
+          "GT Power_0": [
+            0.014919999999999998,
+            0.013613333333333331,
+            0.0264
+          ],
+          "IA Power_0": [
+            3.67464,
+            3.3128199999999994,
+            3.647393333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8656266666666657,
+            3.533093333333332,
+            4.0085133333333305
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7305231788079465,
+            0.7334533333333332,
+            0.7172399999999994
+          ],
+          "GT Power_0": [
+            0.11399999999999999,
+            0.1118866666666667,
+            0.11152666666666669
+          ],
+          "IA Power_0": [
+            6.64330463576159,
+            6.589693333333336,
+            7.312746666666662
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.071867549668876,
+            7.09992,
+            7.680679999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7158266666666664,
+            0.7224333333333327,
+            0.7166556291390723
+          ],
+          "GT Power_0": [
+            0.11919999999999999,
+            0.1157,
+            0.11103973509933779
+          ],
+          "IA Power_0": [
+            6.611546666666664,
+            6.720866666666669,
+            6.988198675496691
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.970026666666665,
+            7.135773333333333,
+            7.32435761589404
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8108278145695367,
+            0.7871788079470203,
+            0.7889333333333333
+          ],
+          "GT Power_0": [
+            0.26302649006622536,
+            0.2312119205298013,
+            0.23401999999999995
+          ],
+          "IA Power_0": [
+            6.843119205298013,
+            6.824317880794704,
+            6.923613333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.534867549668878,
+            7.457417218543049,
+            7.505746666666671
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7208609271523179,
+            0.7186490066225163,
+            0.718873333333333
+          ],
+          "GT Power_0": [
+            0.11768211920529802,
+            0.11669536423841054,
+            0.11810666666666668
+          ],
+          "IA Power_0": [
+            6.7209205298013215,
+            6.983781456953639,
+            6.7072866666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.074066225165563,
+            7.340172185430462,
+            7.067780000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD124-A9",
+      "number": 4526,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5769866666666668,
+            0.5779533333333331,
+            0.57705298013245
+          ],
+          "GT Power_0": [
+            0.037473333333333324,
+            0.01594,
+            0.01850331125827815
+          ],
+          "IA Power_0": [
+            3.45804,
+            3.173760000000001,
+            3.17186092715232
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.717686666666666,
+            3.4346600000000005,
+            3.413152317880794
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7261933333333329,
+            0.7263666666666662,
+            0.7119536423841056
+          ],
+          "GT Power_0": [
+            0.12141999999999999,
+            0.12653999999999999,
+            0.12535761589403974
+          ],
+          "IA Power_0": [
+            5.928880000000001,
+            5.912353333333334,
+            6.262682119205298
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.444406666666666,
+            6.410906666666665,
+            6.6733774834437085
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7166533333333327,
+            0.7117350993377477,
+            0.7119006622516555
+          ],
+          "GT Power_0": [
+            0.12436666666666663,
+            0.12088741721854303,
+            0.12653642384105956
+          ],
+          "IA Power_0": [
+            6.014853333333334,
+            5.96867549668874,
+            6.255384105960262
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.414953333333333,
+            6.338086092715231,
+            6.638370860927152
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7676158940397354,
+            0.7876933333333337,
+            0.7678733333333332
+          ],
+          "GT Power_0": [
+            0.2793509933774834,
+            0.27702666666666675,
+            0.2778066666666666
+          ],
+          "IA Power_0": [
+            6.230761589403972,
+            6.432813333333333,
+            6.2084
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.94827152317881,
+            7.070773333333335,
+            6.765580000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.767866666666666,
+            0.7149333333333334,
+            0.7300933333333327
+          ],
+          "GT Power_0": [
+            0.1326333333333334,
+            0.13372,
+            0.13107999999999997
+          ],
+          "IA Power_0": [
+            7.86866666666667,
+            6.330333333333332,
+            5.979253333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.241420000000005,
+            6.7039933333333295,
+            6.435819999999998
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD137-A9",
+      "number": 4525,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5755231788079469,
+            0.5821533333333335,
+            0.5747019867549674
+          ],
+          "GT Power_0": [
+            0.03739072847682119,
+            0.015793333333333336,
+            0.014622516556291388
+          ],
+          "IA Power_0": [
+            3.5371721854304634,
+            3.944686666666666,
+            3.413311258278145
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.914456953642384,
+            4.19408,
+            3.6641390728476817
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.726059602649006,
+            0.7119199999999992,
+            0.7115533333333329
+          ],
+          "GT Power_0": [
+            0.10335099337748352,
+            0.10301333333333336,
+            0.10111333333333337
+          ],
+          "IA Power_0": [
+            6.925430463576157,
+            7.183880000000002,
+            6.795226666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.390344370860924,
+            7.5027333333333335,
+            7.138300000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.728059602649006,
+            0.7301266666666664,
+            0.7126821192052973
+          ],
+          "GT Power_0": [
+            0.11623841059602653,
+            0.10364666666666664,
+            0.10031788079470196
+          ],
+          "IA Power_0": [
+            6.8274172185430455,
+            7.189266666666663,
+            6.822529801324507
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.372264900662252,
+            7.73232,
+            7.174172185430465
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7838133333333336,
+            0.7809733333333334,
+            0.7695266666666671
+          ],
+          "GT Power_0": [
+            0.2261133333333333,
+            0.22974,
+            0.22606666666666664
+          ],
+          "IA Power_0": [
+            7.045086666666666,
+            7.117546666666667,
+            7.07704
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.6427599999999964,
+            7.774773333333332,
+            7.527059999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7310933333333328,
+            0.7198410596026484,
+            0.7193774834437081
+          ],
+          "GT Power_0": [
+            0.10659999999999996,
+            0.10675496688741724,
+            0.1070066225165563
+          ],
+          "IA Power_0": [
+            7.290393333333333,
+            6.935119205298012,
+            7.0114105960264865
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.719379999999993,
+            7.269158940397354,
+            7.309768211920526
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD155-A9",
+      "number": 4524,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5905199999999996,
+            0.6048344370860925,
+            0.5849735099337746
+          ],
+          "GT Power_0": [
+            0.04021333333333332,
+            0.014033112582781455,
+            0.013291390728476819
+          ],
+          "IA Power_0": [
+            4.458033333333332,
+            4.083728476821192,
+            4.755298013245034
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.781926666666666,
+            4.486364238410595,
+            5.013231788079474
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7112799999999997,
+            0.7194238410596021,
+            0.7165133333333329
+          ],
+          "GT Power_0": [
+            0.10386666666666668,
+            0.10713245033112583,
+            0.10230666666666673
+          ],
+          "IA Power_0": [
+            7.430053333333331,
+            7.395576158940397,
+            7.074593333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.843193333333334,
+            7.8016026490066235,
+            7.465473333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7394533333333332,
+            0.7118543046357613,
+            0.7202251655629136
+          ],
+          "GT Power_0": [
+            0.10176666666666666,
+            0.1039403973509934,
+            0.10560264900662257
+          ],
+          "IA Power_0": [
+            7.087553333333335,
+            8.150814569536426,
+            6.954602649006622
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.813106666666672,
+            8.535298013245033,
+            7.313423841059604
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7788000000000004,
+            0.78144,
+            0.7800266666666666
+          ],
+          "GT Power_0": [
+            0.22604000000000005,
+            0.2290400000000001,
+            0.23207333333333324
+          ],
+          "IA Power_0": [
+            6.974006666666669,
+            7.417526666666665,
+            7.214479999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4906866666666705,
+            7.972753333333336,
+            7.792926666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7258533333333326,
+            0.7236821192052973,
+            0.7169735099337747
+          ],
+          "GT Power_0": [
+            0.11383333333333333,
+            0.11198013245033117,
+            0.11242384105960267
+          ],
+          "IA Power_0": [
+            6.882993333333332,
+            7.027324503311257,
+            7.505258278145692
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.293380000000002,
+            7.437470198675495,
+            7.904132450331125
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4523,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5892649006622515,
+            0.5745165562913906,
+            0.5750000000000001
+          ],
+          "GT Power_0": [
+            0.014841059602649007,
+            0.014569536423841057,
+            0.01499337748344371
+          ],
+          "IA Power_0": [
+            3.022337748344373,
+            3.0900728476821198,
+            3.4304039735099336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.370331125827814,
+            3.3100860927152325,
+            3.630536423841063
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7125231788079465,
+            0.7295599999999997,
+            0.7120927152317874
+          ],
+          "GT Power_0": [
+            0.11033112582781457,
+            0.10732666666666674,
+            0.10250993377483443
+          ],
+          "IA Power_0": [
+            6.028132450331123,
+            6.033839999999996,
+            6.04270860927152
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.372331125827814,
+            6.540693333333337,
+            6.382635761589405
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7216266666666659,
+            0.7209266666666664,
+            0.713466666666666
+          ],
+          "GT Power_0": [
+            0.10015333333333333,
+            0.1028533333333333,
+            0.10415333333333338
+          ],
+          "IA Power_0": [
+            6.234999999999998,
+            6.739059999999999,
+            6.02507333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.527533333333332,
+            7.063639999999998,
+            6.366606666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708266666666671,
+            0.7708807947019871,
+            0.7845866666666672
+          ],
+          "GT Power_0": [
+            0.2313266666666666,
+            0.23144370860927152,
+            0.2302666666666667
+          ],
+          "IA Power_0": [
+            6.31928,
+            6.5777615894039725,
+            6.29358
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7741999999999996,
+            7.087814569536424,
+            6.841746666666666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7188066666666664,
+            0.7178145695364233,
+            0.7177466666666663
+          ],
+          "GT Power_0": [
+            0.11309333333333328,
+            0.11202649006622514,
+            0.11317333333333333
+          ],
+          "IA Power_0": [
+            6.037193333333334,
+            6.036377483443706,
+            6.096573333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.445286666666667,
+            6.439357615894039,
+            6.48238
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4522,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5808466666666668,
+            0.5899801324503311,
+            0.5749470198675495
+          ],
+          "GT Power_0": [
+            0.029119999999999983,
+            0.015569536423841063,
+            0.01549006622516556
+          ],
+          "IA Power_0": [
+            2.9813199999999993,
+            2.7160860927152326,
+            2.6571655629139066
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3089199999999996,
+            3.017125827814567,
+            2.90998013245033
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7131920529801322,
+            0.7135894039735095,
+            0.7118344370860923
+          ],
+          "GT Power_0": [
+            0.11128476821192057,
+            0.11515894039735096,
+            0.11542384105960267
+          ],
+          "IA Power_0": [
+            5.442218543046358,
+            5.1692119205298,
+            5.1964635761589415
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.82187417218543,
+            5.584523178807947,
+            5.5822980132450315
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7146399999999996,
+            0.7139536423841053,
+            0.7140399999999996
+          ],
+          "GT Power_0": [
+            0.1199466666666667,
+            0.11074172185430467,
+            0.11758666666666673
+          ],
+          "IA Power_0": [
+            5.189406666666666,
+            5.257298013245034,
+            5.48316
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.577006666666663,
+            5.620622516556294,
+            5.863506666666671
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.773553333333334,
+            0.7785033112582785,
+            0.7890000000000006
+          ],
+          "GT Power_0": [
+            0.26478,
+            0.23563576158940394,
+            0.23288
+          ],
+          "IA Power_0": [
+            5.45652,
+            5.478,
+            5.873039999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.990986666666664,
+            5.997271523178809,
+            6.574146666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7365430463576155,
+            0.7191655629139065,
+            0.719370860927152
+          ],
+          "GT Power_0": [
+            0.12301324503311258,
+            0.12119867549668871,
+            0.12096688741721856
+          ],
+          "IA Power_0": [
+            5.200364238410595,
+            5.325887417218541,
+            5.263258278145696
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.736781456953644,
+            5.718198675496691,
+            5.655152317880792
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD120-A9",
+      "number": 4521,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5749933774834438,
+            0.5926423841059604,
+            0.5893509933774832
+          ],
+          "GT Power_0": [
+            0.042682119205298005,
+            0.01570198675496689,
+            0.015953642384105956
+          ],
+          "IA Power_0": [
+            3.402794701986756,
+            3.089264900662253,
+            3.377662251655628
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.673907284768211,
+            3.4303443708609285,
+            3.711417218543047
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7124266666666659,
+            0.7126799999999998,
+            0.7113112582781453
+          ],
+          "GT Power_0": [
+            0.11629333333333337,
+            0.11526000000000003,
+            0.11452980132450327
+          ],
+          "IA Power_0": [
+            5.908913333333334,
+            5.950233333333333,
+            6.327668874172185
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.298099999999997,
+            6.302133333333336,
+            6.653086092715231
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143733333333324,
+            0.7132251655629137,
+            0.7306953642384104
+          ],
+          "GT Power_0": [
+            0.11219333333333341,
+            0.11360264900662252,
+            0.11539072847682119
+          ],
+          "IA Power_0": [
+            5.964453333333332,
+            5.982589403973512,
+            6.2218807947019865
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.33144,
+            6.343019867549669,
+            6.721596026490064
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7718666666666674,
+            0.7717350993377484,
+            0.7724370860927158
+          ],
+          "GT Power_0": [
+            0.24811999999999998,
+            0.24941059602649002,
+            0.25084105960264896
+          ],
+          "IA Power_0": [
+            6.181020000000002,
+            6.181384105960265,
+            6.163331125827814
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.713293333333335,
+            6.694198675496688,
+            6.707847682119202
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7189666666666665,
+            0.7379133333333326,
+            0.7202980132450327
+          ],
+          "GT Power_0": [
+            0.12440666666666668,
+            0.14014666666666667,
+            0.1201192052980133
+          ],
+          "IA Power_0": [
+            6.022493333333332,
+            6.448039999999999,
+            6.0356423841059605
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.398733333333332,
+            6.930720000000003,
+            6.384688741721855
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4520,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6096866666666663,
+            0.6019999999999999,
+            0.5769400000000001
+          ],
+          "GT Power_0": [
+            0.04721999999999999,
+            0.017145695364238416,
+            0.016313333333333332
+          ],
+          "IA Power_0": [
+            5.522026666666668,
+            5.307602649006624,
+            3.6720333333333346
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7836799999999995,
+            5.544629139072846,
+            3.945473333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7182666666666665,
+            0.7308410596026488,
+            0.7128733333333329
+          ],
+          "GT Power_0": [
+            0.1068133333333333,
+            0.1087152317880795,
+            0.10761333333333332
+          ],
+          "IA Power_0": [
+            7.20154,
+            7.499092715231787,
+            7.04249333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.515546666666667,
+            7.926708609271522,
+            7.355973333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126688741721845,
+            0.7150333333333331,
+            0.7290333333333326
+          ],
+          "GT Power_0": [
+            0.10947019867549662,
+            0.10794000000000009,
+            0.10914666666666671
+          ],
+          "IA Power_0": [
+            7.090834437086095,
+            7.103366666666669,
+            7.0876199999999985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.432000000000003,
+            7.449306666666667,
+            7.500479999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7717066666666672,
+            0.9003892617449664,
+            0.790326666666667
+          ],
+          "GT Power_0": [
+            0.23949999999999988,
+            0.2433020134228187,
+            0.23613333333333333
+          ],
+          "IA Power_0": [
+            7.68930666666667,
+            12.775194630872486,
+            7.263053333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.229673333333338,
+            13.243322147651005,
+            8.1481
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7195199999999996,
+            0.7181799999999998,
+            0.7179999999999997
+          ],
+          "GT Power_0": [
+            0.11317333333333333,
+            0.11255333333333335,
+            0.11376158940397356
+          ],
+          "IA Power_0": [
+            7.603913333333328,
+            7.165133333333333,
+            7.23816556291391
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.950353333333337,
+            7.467740000000004,
+            7.539854304635765
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4519,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5832185430463575,
+            0.5738874172185425,
+            0.5743733333333335
+          ],
+          "GT Power_0": [
+            0.04840397350993376,
+            0.01643046357615894,
+            0.015999999999999997
+          ],
+          "IA Power_0": [
+            3.400920529801322,
+            3.31328476821192,
+            3.395966666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6924966887417225,
+            3.5537814569536414,
+            3.5823466666666657
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7123599999999999,
+            0.7127866666666663,
+            0.7121199999999996
+          ],
+          "GT Power_0": [
+            0.12540666666666675,
+            0.12314000000000007,
+            0.1237466666666667
+          ],
+          "IA Power_0": [
+            6.960539999999994,
+            6.521799999999995,
+            6.609653333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.334013333333334,
+            6.915406666666665,
+            6.938653333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145199999999995,
+            0.712493333333333,
+            0.711773333333333
+          ],
+          "GT Power_0": [
+            0.12510000000000002,
+            0.12682000000000004,
+            0.12606666666666672
+          ],
+          "IA Power_0": [
+            7.096406666666664,
+            6.66078,
+            6.596653333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.404086666666665,
+            6.999019999999997,
+            6.98238
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7683400000000004,
+            0.7811466666666675,
+            0.7701800000000006
+          ],
+          "GT Power_0": [
+            0.26691333333333334,
+            0.29943333333333344,
+            0.26842666666666654
+          ],
+          "IA Power_0": [
+            7.320079999999998,
+            6.859806666666668,
+            6.927853333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.868739999999998,
+            7.453919999999998,
+            7.473746666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7177549668874169,
+            0.7182185430463575,
+            0.7398066666666662
+          ],
+          "GT Power_0": [
+            0.131523178807947,
+            0.12870198675496694,
+            0.15358666666666673
+          ],
+          "IA Power_0": [
+            6.6091192052980166,
+            6.682456953642384,
+            7.2275800000000014
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.028397350993376,
+            7.08381456953642,
+            7.787253333333336
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD170-A9",
+      "number": 4518,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5830599999999999,
+            0.5739337748344369,
+            0.5848000000000001
+          ],
+          "GT Power_0": [
+            0.03788666666666665,
+            0.014152317880794702,
+            0.013053333333333333
+          ],
+          "IA Power_0": [
+            2.9849800000000006,
+            2.6220463576158948,
+            2.815539999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3642733333333337,
+            2.894688741721854,
+            3.144546666666667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.713079470198675,
+            0.709693333333333,
+            0.7175562913907282
+          ],
+          "GT Power_0": [
+            0.09727814569536425,
+            0.10014666666666663,
+            0.09992715231788081
+          ],
+          "IA Power_0": [
+            5.2589072847682115,
+            5.205513333333333,
+            5.489470198675502
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.583198675496694,
+            5.567520000000001,
+            5.873483443708609
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7119133333333325,
+            0.7269999999999996,
+            0.7124533333333325
+          ],
+          "GT Power_0": [
+            0.0942066666666667,
+            0.09497333333333341,
+            0.0957466666666667
+          ],
+          "IA Power_0": [
+            5.208613333333333,
+            5.2008333333333345,
+            5.45937333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.570333333333333,
+            5.661253333333335,
+            5.831540000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7699403973509937,
+            0.7694133333333335,
+            0.7884701986754974
+          ],
+          "GT Power_0": [
+            0.21860264900662243,
+            0.22210666666666679,
+            0.2221192052980133
+          ],
+          "IA Power_0": [
+            5.337139072847683,
+            5.3920933333333325,
+            5.368390728476823
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.855099337748348,
+            5.896233333333334,
+            5.935854304635764
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7323311258278143,
+            0.7342317880794695,
+            0.723653333333333
+          ],
+          "GT Power_0": [
+            0.10463576158940399,
+            0.09929801324503315,
+            0.09803999999999999
+          ],
+          "IA Power_0": [
+            5.308456953642386,
+            5.568357615894039,
+            5.608966666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.862119205298014,
+            6.047026490066223,
+            5.9938600000000015
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD145-A9",
+      "number": 4517,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5758400000000005,
+            0.5750132450331122,
+            0.5771258278145698
+          ],
+          "GT Power_0": [
+            0.013946666666666661,
+            0.013662251655629138,
+            0.014814569536423839
+          ],
+          "IA Power_0": [
+            2.694706666666666,
+            2.684907284768212,
+            2.785973509933776
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.94352,
+            2.9435960264900656,
+            3.0180662251655628
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7299533333333332,
+            0.7241733333333328,
+            0.7155799999999999
+          ],
+          "GT Power_0": [
+            0.09369333333333331,
+            0.10927333333333335,
+            0.09432666666666673
+          ],
+          "IA Power_0": [
+            5.171033333333332,
+            5.225013333333333,
+            5.233753333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.5564733333333365,
+            5.709973333333334,
+            5.597160000000002
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7139799999999995,
+            0.7122582781456952,
+            0.7272666666666658
+          ],
+          "GT Power_0": [
+            0.09442000000000003,
+            0.0879072847682119,
+            0.09448666666666669
+          ],
+          "IA Power_0": [
+            5.218593333333334,
+            5.190774834437086,
+            5.229666666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.576166666666667,
+            5.505635761589403,
+            5.692353333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7870000000000001,
+            0.7718733333333335,
+            0.7856333333333336
+          ],
+          "GT Power_0": [
+            0.20570000000000013,
+            0.2050266666666667,
+            0.2054
+          ],
+          "IA Power_0": [
+            5.342053333333336,
+            5.362366666666667,
+            5.420919999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.960206666666665,
+            5.861606666666667,
+            6.075533333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7193133333333327,
+            0.7185399999999997,
+            0.719273333333333
+          ],
+          "GT Power_0": [
+            0.09532666666666667,
+            0.09664666666666674,
+            0.09619333333333334
+          ],
+          "IA Power_0": [
+            5.2959666666666685,
+            5.270200000000003,
+            5.336166666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.638840000000003,
+            5.649353333333333,
+            5.659446666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4516,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5763799999999998,
+            0.5736423841059602,
+            0.574543046357616
+          ],
+          "GT Power_0": [
+            0.03277999999999999,
+            0.01519205298013245,
+            0.023079470198675497
+          ],
+          "IA Power_0": [
+            2.990100000000001,
+            2.83458940397351,
+            3.0229735099337747
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.246060000000001,
+            3.0601788079470196,
+            3.25928476821192
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7151655629139065,
+            0.7229801324503311,
+            0.7138476821192046
+          ],
+          "GT Power_0": [
+            0.11261589403973514,
+            0.11341059602649012,
+            0.1115562913907285
+          ],
+          "IA Power_0": [
+            5.4741059602648985,
+            5.996993377483446,
+            5.478357615894037
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.8270066225165555,
+            6.3813907284768225,
+            5.845675496688742
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7125827814569531,
+            0.7124701986754963,
+            0.7132266666666663
+          ],
+          "GT Power_0": [
+            0.11221854304635764,
+            0.11470860927152321,
+            0.11206
+          ],
+          "IA Power_0": [
+            5.379211920529801,
+            5.619927152317883,
+            5.38427333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7626688741721885,
+            5.996317880794704,
+            5.755133333333336
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7701533333333332,
+            0.7703600000000007,
+            0.7719666666666666
+          ],
+          "GT Power_0": [
+            0.23202666666666671,
+            0.23716666666666658,
+            0.23604666666666654
+          ],
+          "IA Power_0": [
+            5.559286666666664,
+            5.8705333333333325,
+            5.5081933333333355
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.084040000000001,
+            6.404873333333334,
+            6.0670399999999995
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7191589403973508,
+            0.7189072847682113,
+            0.7372199999999993
+          ],
+          "GT Power_0": [
+            0.11907284768211923,
+            0.11978145695364245,
+            0.11860666666666679
+          ],
+          "IA Power_0": [
+            5.4195827814569535,
+            5.473953642384105,
+            5.416413333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.866609271523178,
+            5.829119205298011,
+            5.925966666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4515,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5744105960264901,
+            0.592615894039735,
+            0.5878266666666665
+          ],
+          "GT Power_0": [
+            0.014556291390728476,
+            0.014735099337748345,
+            0.014453333333333337
+          ],
+          "IA Power_0": [
+            3.242258278145695,
+            4.024026490066229,
+            3.5496466666666673
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4451059602648995,
+            4.20272185430464,
+            3.9250466666666672
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132799999999991,
+            0.7120333333333325,
+            0.713609271523178
+          ],
+          "GT Power_0": [
+            0.10074666666666668,
+            0.1001666666666666,
+            0.12490728476821197
+          ],
+          "IA Power_0": [
+            6.395686666666664,
+            6.401353333333334,
+            6.827165562913911
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.727119999999999,
+            6.741393333333336,
+            7.070503311258279
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126733333333327,
+            0.7339266666666663,
+            0.7119599999999994
+          ],
+          "GT Power_0": [
+            0.10266000000000003,
+            0.11794000000000002,
+            0.09831333333333335
+          ],
+          "IA Power_0": [
+            6.472246666666667,
+            6.5362066666666685,
+            6.40446
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7996,
+            7.051380000000001,
+            6.75792666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7958133333333338,
+            0.7814200000000007,
+            0.7959400000000004
+          ],
+          "GT Power_0": [
+            0.24119333333333348,
+            0.24864666666666665,
+            0.24926000000000012
+          ],
+          "IA Power_0": [
+            6.649066666666666,
+            6.976326666666665,
+            6.700486666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.299259999999999,
+            7.518373333333334,
+            7.366013333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.718186666666666,
+            0.7173758389261733,
+            0.7182847682119203
+          ],
+          "GT Power_0": [
+            0.10835333333333333,
+            0.10850335570469798,
+            0.10752317880794705
+          ],
+          "IA Power_0": [
+            6.534406666666669,
+            6.850879194630873,
+            6.499761589403976
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.871506666666668,
+            7.152590604026844,
+            6.847059602649008
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            149,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD181-A9",
+      "number": 4514,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760133333333335,
+            0.5749933774834439,
+            0.5749133333333333
+          ],
+          "GT Power_0": [
+            0.026886666666666652,
+            0.01473509933774834,
+            0.014086666666666664
+          ],
+          "IA Power_0": [
+            3.5804133333333326,
+            3.078609271523179,
+            3.113046666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.819853333333334,
+            3.3511920529801325,
+            3.3422
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7281866666666661,
+            0.7135199999999997,
+            0.7283311258278143
+          ],
+          "GT Power_0": [
+            0.10284666666666666,
+            0.10312000000000004,
+            0.10247682119205304
+          ],
+          "IA Power_0": [
+            6.467620000000001,
+            6.1039933333333325,
+            6.227006622516557
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.899493333333333,
+            6.458186666666665,
+            6.6639470198675514
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7152384105960259,
+            0.712726666666666,
+            0.7144999999999994
+          ],
+          "GT Power_0": [
+            0.10319867549668875,
+            0.10201333333333343,
+            0.10355333333333337
+          ],
+          "IA Power_0": [
+            6.263834437086094,
+            6.126266666666665,
+            6.5516066666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.555152317880795,
+            6.469319999999998,
+            6.8715600000000014
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7816666666666667,
+            0.7851466666666671,
+            0.7708800000000001
+          ],
+          "GT Power_0": [
+            0.2245266666666666,
+            0.22541333333333322,
+            0.22382000000000016
+          ],
+          "IA Power_0": [
+            6.438546666666664,
+            6.328340000000003,
+            6.721906666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.05085333333333,
+            6.937746666666668,
+            7.1961266666666655
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7193399999999998,
+            0.7199399999999995,
+            0.722326666666666
+          ],
+          "GT Power_0": [
+            0.10497333333333338,
+            0.10640666666666673,
+            0.10702
+          ],
+          "IA Power_0": [
+            6.14876666666667,
+            6.141373333333333,
+            7.026426666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.524653333333336,
+            6.519433333333331,
+            7.376693333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD179-A9",
+      "number": 4513,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5768940397350995,
+            0.5770794701986749,
+            0.5754105960264901
+          ],
+          "GT Power_0": [
+            0.01831125827814569,
+            0.01808609271523178,
+            0.01686754966887417
+          ],
+          "IA Power_0": [
+            3.2720264900662235,
+            3.5490463576158953,
+            3.1894238410596016
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.501311258278147,
+            3.8087748344370844,
+            3.452417218543045
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7301933333333327,
+            0.7139271523178807,
+            0.7304768211920531
+          ],
+          "GT Power_0": [
+            0.13136,
+            0.12970198675496686,
+            0.12950993377483452
+          ],
+          "IA Power_0": [
+            6.351880000000004,
+            6.565788079470197,
+            6.300066225165562
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.767626666666668,
+            6.948304635761592,
+            6.78954966887417
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7138476821192049,
+            0.7140866666666662,
+            0.7363489932885906
+          ],
+          "GT Power_0": [
+            0.1318278145695364,
+            0.13218666666666667,
+            0.12691946308724833
+          ],
+          "IA Power_0": [
+            6.311635761589405,
+            6.429779999999996,
+            8.655610738255035
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.673377483443709,
+            6.761386666666662,
+            9.070087248322151
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8111849315068496,
+            0.7722200000000001,
+            0.7861666666666668
+          ],
+          "GT Power_0": [
+            0.27878767123287673,
+            0.2750066666666667,
+            0.2728066666666667
+          ],
+          "IA Power_0": [
+            8.993047945205479,
+            6.460386666666665,
+            6.516606666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.545034246575346,
+            7.0207000000000015,
+            7.277579999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            146,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7210066666666661,
+            0.7211986754966886,
+            0.7193599999999996
+          ],
+          "GT Power_0": [
+            0.14309333333333327,
+            0.13621192052980133,
+            0.13681999999999991
+          ],
+          "IA Power_0": [
+            6.584626666666668,
+            6.35469536423841,
+            6.776213333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.913613333333331,
+            6.8182251655629145,
+            7.136566666666664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD121-A9",
+      "number": 4512,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5617947019867553,
+            0.69189932885906,
+            0.5773221476510066
+          ],
+          "GT Power_0": [
+            0.015450331125827816,
+            0.016624161073825503,
+            0.01526845637583893
+          ],
+          "IA Power_0": [
+            4.00683443708609,
+            8.720181208053692,
+            4.5866577181208035
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.221463576158941,
+            8.969872483221474,
+            4.938013422818792
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            149,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.6936133333333335,
+            0.6864533333333337,
+            0.6857533333333332
+          ],
+          "GT Power_0": [
+            0.12404000000000001,
+            0.10712000000000006,
+            0.10611333333333339
+          ],
+          "IA Power_0": [
+            7.039106666666666,
+            7.026766666666666,
+            7.342593333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.516380000000005,
+            7.366226666666665,
+            7.670273333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.6894466666666669,
+            0.6812119205298014,
+            0.7065066666666665
+          ],
+          "GT Power_0": [
+            0.10453333333333335,
+            0.10537748344370859,
+            0.10563333333333334
+          ],
+          "IA Power_0": [
+            6.913133333333335,
+            7.1266821192052925,
+            7.285973333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.261266666666666,
+            7.445536423841059,
+            7.731253333333336
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7451466666666662,
+            0.7446533333333331,
+            0.7523600000000001
+          ],
+          "GT Power_0": [
+            0.24102666666666675,
+            0.24164666666666657,
+            0.2403133333333334
+          ],
+          "IA Power_0": [
+            7.215146666666663,
+            7.341906666666668,
+            7.4346466666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.719806666666668,
+            7.852219999999997,
+            7.988246666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.6909133333333334,
+            0.6883,
+            0.704066666666667
+          ],
+          "GT Power_0": [
+            0.11138666666666666,
+            0.10633333333333335,
+            0.11110000000000005
+          ],
+          "IA Power_0": [
+            7.152613333333337,
+            7.50684,
+            7.168166666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5193733333333315,
+            7.874926666666667,
+            7.548273333333336
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4511,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5827533333333331,
+            0.5751066666666669,
+            0.5884799999999997
+          ],
+          "GT Power_0": [
+            0.03352666666666665,
+            0.014620000000000003,
+            0.014646666666666667
+          ],
+          "IA Power_0": [
+            2.7135333333333334,
+            2.6282733333333326,
+            2.541553333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0520600000000004,
+            2.854166666666668,
+            2.9017
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7322599999999998,
+            0.7336158940397343,
+            0.7307152317880792
+          ],
+          "GT Power_0": [
+            0.10122666666666671,
+            0.1030066225165563,
+            0.10407947019867551
+          ],
+          "IA Power_0": [
+            5.2267399999999995,
+            5.079105960264899,
+            4.977523178807948
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.652606666666666,
+            5.58315894039735,
+            5.445523178807947
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7140399999999996,
+            0.7231266666666664,
+            0.7310133333333326
+          ],
+          "GT Power_0": [
+            0.10302666666666675,
+            0.10284666666666663,
+            0.11764000000000001
+          ],
+          "IA Power_0": [
+            4.982299999999995,
+            5.335106666666663,
+            5.260573333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.379739999999996,
+            5.712966666666667,
+            5.757346666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7728133333333336,
+            0.7739735099337747,
+            0.7721533333333338
+          ],
+          "GT Power_0": [
+            0.2152466666666668,
+            0.2397682119205298,
+            0.22090666666666672
+          ],
+          "IA Power_0": [
+            5.185973333333332,
+            5.201026490066227,
+            5.406013333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.706506666666669,
+            5.715198675496689,
+            5.915586666666666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352052980132445,
+            0.72024,
+            0.7192715231788076
+          ],
+          "GT Power_0": [
+            0.10485430463576159,
+            0.10350666666666669,
+            0.10309933774834439
+          ],
+          "IA Power_0": [
+            5.096947019867549,
+            5.1158133333333335,
+            5.073721854304636
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.620105960264901,
+            5.498833333333333,
+            5.465231788079472
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4510,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5733666666666667,
+            0.5741721854304634,
+            0.5759266666666666
+          ],
+          "GT Power_0": [
+            0.03281333333333332,
+            0.016251655629139067,
+            0.01624
+          ],
+          "IA Power_0": [
+            3.3164866666666675,
+            3.5917086092715227,
+            3.4585866666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5567599999999993,
+            3.8330728476821174,
+            3.6764733333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711258278145695,
+            0.7257399999999995,
+            0.7097399999999996
+          ],
+          "GT Power_0": [
+            0.1213377483443708,
+            0.12143333333333335,
+            0.12036000000000001
+          ],
+          "IA Power_0": [
+            6.451721854304638,
+            6.515086666666669,
+            6.47506
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.815841059602649,
+            6.9415733333333325,
+            6.803279999999997
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.710606666666666,
+            0.7284799999999997,
+            0.7241721854304636
+          ],
+          "GT Power_0": [
+            0.11626666666666667,
+            0.11648666666666664,
+            0.11906622516556294
+          ],
+          "IA Power_0": [
+            6.841133333333329,
+            6.597593333333334,
+            7.082847682119207
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.230033333333332,
+            7.018066666666667,
+            7.496450331125829
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7688344370860932,
+            0.7853708609271527,
+            0.7858079470198678
+          ],
+          "GT Power_0": [
+            0.26315231788079474,
+            0.2634172185430464,
+            0.25897350993377477
+          ],
+          "IA Power_0": [
+            7.120284768211919,
+            6.797649006622519,
+            6.699827814569537
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.599470198675495,
+            7.466172185430465,
+            7.389629139072845
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143066666666661,
+            0.7167133333333331,
+            0.7148543046357613
+          ],
+          "GT Power_0": [
+            0.1252533333333334,
+            0.12569999999999998,
+            0.1229470198675497
+          ],
+          "IA Power_0": [
+            6.638093333333333,
+            6.651106666666669,
+            6.594119205298014
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.989019999999997,
+            7.009600000000001,
+            6.966172185430465
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4509,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760728476821193,
+            0.5758666666666664,
+            0.5759933774834436
+          ],
+          "GT Power_0": [
+            0.03487417218543044,
+            0.015400000000000004,
+            0.015761589403973514
+          ],
+          "IA Power_0": [
+            2.7948145695364257,
+            2.81044,
+            2.9433642384105956
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.165132450331126,
+            3.0457533333333333,
+            3.198046357615895
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7297880794701982,
+            0.7157748344370854,
+            0.7140066225165557
+          ],
+          "GT Power_0": [
+            0.1250132450331126,
+            0.1323576158940397,
+            0.12820529801324504
+          ],
+          "IA Power_0": [
+            5.337682119205296,
+            5.479006622516554,
+            5.606258278145696
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.770920529801324,
+            5.825529801324504,
+            5.976609271523181
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.715406666666666,
+            0.7251399999999996,
+            0.713933333333333
+          ],
+          "GT Power_0": [
+            0.12557333333333337,
+            0.13411333333333342,
+            0.12426
+          ],
+          "IA Power_0": [
+            5.429880000000001,
+            5.557546666666665,
+            5.36762
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.805833333333334,
+            6.0180599999999975,
+            5.74544
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7985066666666667,
+            0.7718741721854311,
+            0.7722933333333335
+          ],
+          "GT Power_0": [
+            0.2595533333333332,
+            0.2572251655629138,
+            0.26100666666666644
+          ],
+          "IA Power_0": [
+            5.529713333333334,
+            5.784211920529803,
+            5.539899999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.576986666666665,
+            6.351417218543052,
+            6.090786666666666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7244999999999998,
+            0.7376092715231785,
+            0.72051655629139
+          ],
+          "GT Power_0": [
+            0.13226666666666667,
+            0.13434437086092718,
+            0.13462251655629137
+          ],
+          "IA Power_0": [
+            5.6606000000000005,
+            5.75335761589404,
+            5.458543046357616
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.058659999999998,
+            6.268503311258277,
+            5.8513642384106
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD126-A9",
+      "number": 4508,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5820533333333332,
+            0.5884238410596029,
+            0.5800331125827813
+          ],
+          "GT Power_0": [
+            0.03238666666666665,
+            0.016039735099337746,
+            0.01480794701986755
+          ],
+          "IA Power_0": [
+            3.0471199999999996,
+            2.902066225165563,
+            3.232947019867551
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.37598,
+            3.2960993377483434,
+            3.507364238410595
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.715397350993377,
+            0.7141733333333329,
+            0.7321133333333331
+          ],
+          "GT Power_0": [
+            0.10313907284768209,
+            0.10642666666666664,
+            0.10620666666666673
+          ],
+          "IA Power_0": [
+            5.744708609271521,
+            5.683213333333329,
+            6.011319999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.131397350993378,
+            6.031553333333333,
+            6.483073333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7498399999999993,
+            0.7132799999999997,
+            0.7152199999999993
+          ],
+          "GT Power_0": [
+            0.11045333333333332,
+            0.10407999999999995,
+            0.1029866666666667
+          ],
+          "IA Power_0": [
+            6.408506666666667,
+            5.872373333333334,
+            5.820499999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.020173333333335,
+            6.169606666666665,
+            6.160060000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7715960264900665,
+            0.778833333333334,
+            0.7907466666666664
+          ],
+          "GT Power_0": [
+            0.229476821192053,
+            0.22952666666666674,
+            0.22529333333333337
+          ],
+          "IA Power_0": [
+            5.913642384105962,
+            6.643279999999998,
+            5.989753333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.42584105960265,
+            7.1726666666666645,
+            6.588446666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7416199999999997,
+            0.7190066666666668,
+            0.7184999999999997
+          ],
+          "GT Power_0": [
+            0.10856000000000005,
+            0.10798666666666668,
+            0.11022666666666664
+          ],
+          "IA Power_0": [
+            5.8384333333333345,
+            6.112646666666667,
+            5.799299999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4913733333333274,
+            6.475539999999999,
+            6.190360000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4507,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5845733333333331,
+            0.5757350993377482,
+            0.5756599999999998
+          ],
+          "GT Power_0": [
+            0.013399999999999999,
+            0.01373509933774834,
+            0.01287333333333333
+          ],
+          "IA Power_0": [
+            3.151333333333332,
+            2.851158940397351,
+            2.8168466666666676
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4052133333333345,
+            3.061059602649006,
+            3.0631266666666677
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7252133333333332,
+            0.7141399999999994,
+            0.7141799999999994
+          ],
+          "GT Power_0": [
+            0.09709333333333335,
+            0.08876666666666663,
+            0.08525999999999997
+          ],
+          "IA Power_0": [
+            5.928340000000005,
+            5.556140000000002,
+            5.613453333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.373899999999999,
+            5.890506666666665,
+            5.971466666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7408476821192052,
+            0.7167152317880792,
+            0.7128333333333332
+          ],
+          "GT Power_0": [
+            0.08538410596026491,
+            0.08572185430463576,
+            0.08357999999999996
+          ],
+          "IA Power_0": [
+            6.351735099337749,
+            5.705496688741725,
+            5.591786666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8077417218543035,
+            6.0662450331125815,
+            5.950399999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7719466666666671,
+            0.7713800000000007,
+            0.7911266666666675
+          ],
+          "GT Power_0": [
+            0.19866666666666666,
+            0.19969333333333333,
+            0.1963000000000001
+          ],
+          "IA Power_0": [
+            5.848379999999997,
+            5.706333333333331,
+            6.385166666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.305853333333338,
+            6.193233333333336,
+            6.990386666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7178476821192049,
+            0.7234304635761584,
+            0.7189470198675493
+          ],
+          "GT Power_0": [
+            0.08885430463576158,
+            0.08958278145695366,
+            0.08989403973509934
+          ],
+          "IA Power_0": [
+            5.597476821192053,
+            5.760589403973513,
+            5.8632516556291385
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.932642384105962,
+            6.100569536423842,
+            6.214437086092715
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD163-A9",
+      "number": 4506,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5861390728476822,
+            0.5741523178807946,
+            0.5745894039735097
+          ],
+          "GT Power_0": [
+            0.038211920529801324,
+            0.013801324503311261,
+            0.015172185430463576
+          ],
+          "IA Power_0": [
+            3.3283973509933777,
+            2.899225165562913,
+            2.889225165562916
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6767615894039745,
+            3.1129801324503314,
+            3.125695364238411
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7134569536423838,
+            0.7286333333333325,
+            0.7164039735099331
+          ],
+          "GT Power_0": [
+            0.09260927152317881,
+            0.09078666666666674,
+            0.09052980132450333
+          ],
+          "IA Power_0": [
+            5.704264900662247,
+            5.769106666666669,
+            6.181317880794705
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.04401986754967,
+            6.244619999999999,
+            6.534980132450334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7238079470198673,
+            0.7136887417218539,
+            0.713273333333333
+          ],
+          "GT Power_0": [
+            0.09394039735099334,
+            0.08731125827814573,
+            0.08537333333333338
+          ],
+          "IA Power_0": [
+            5.821754966887416,
+            5.793324503311252,
+            6.121306666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.28823178807947,
+            6.137443708609272,
+            6.443760000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7710800000000003,
+            0.7703600000000008,
+            0.773133333333334
+          ],
+          "GT Power_0": [
+            0.21270666666666677,
+            0.21290666666666672,
+            0.2120333333333335
+          ],
+          "IA Power_0": [
+            5.960360000000001,
+            6.011273333333333,
+            6.1139399999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.483039999999999,
+            6.460346666666666,
+            6.59562
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7199799999999993,
+            0.7187682119205292,
+            0.7184834437086085
+          ],
+          "GT Power_0": [
+            0.09552666666666673,
+            0.09510596026490067,
+            0.09766225165562914
+          ],
+          "IA Power_0": [
+            5.953393333333332,
+            6.1481390728476795,
+            5.810635761589402
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2836599999999985,
+            6.4917218543046324,
+            6.177238410596027
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD164-A9",
+      "number": 4505,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5780596026490062,
+            0.5751059602649001,
+            0.5744666666666666
+          ],
+          "GT Power_0": [
+            0.041543046357615875,
+            0.015947019867549667,
+            0.014240000000000001
+          ],
+          "IA Power_0": [
+            3.147311258278145,
+            3.2700132450331116,
+            2.918226666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.402635761589405,
+            3.520867549668875,
+            3.1646666666666663
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7108476821192049,
+            0.7283841059602646,
+            0.7139666666666664
+          ],
+          "GT Power_0": [
+            0.11360264900662259,
+            0.1157350993377484,
+            0.11465333333333336
+          ],
+          "IA Power_0": [
+            5.79303311258278,
+            6.1026821192053005,
+            5.853933333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.155483443708611,
+            6.672112582781456,
+            6.226133333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7127880794701982,
+            0.7123199999999995,
+            0.7140133333333326
+          ],
+          "GT Power_0": [
+            0.11226490066225168,
+            0.11202000000000005,
+            0.1180066666666666
+          ],
+          "IA Power_0": [
+            5.813794701986754,
+            5.755380000000004,
+            5.869439999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.192675496688743,
+            6.166499999999998,
+            6.212046666666663
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7702066666666672,
+            0.7877333333333338,
+            0.7712400000000004
+          ],
+          "GT Power_0": [
+            0.24934666666666666,
+            0.2528866666666665,
+            0.25007999999999997
+          ],
+          "IA Power_0": [
+            6.36768666666667,
+            6.014206666666667,
+            6.085940000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.908020000000004,
+            6.67498,
+            6.602846666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.842878378378378,
+            0.7186133333333327,
+            0.7312582781456952
+          ],
+          "GT Power_0": [
+            0.12570270270270276,
+            0.12392,
+            0.12413245033112587
+          ],
+          "IA Power_0": [
+            10.852000000000002,
+            5.992646666666669,
+            5.971708609271521
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            11.277101351351346,
+            6.321953333333332,
+            6.431821192052976
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            148,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD118-A9",
+      "number": 4504,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5758741721854301,
+            0.5740728476821191,
+            0.573573333333333
+          ],
+          "GT Power_0": [
+            0.0354437086092715,
+            0.014529801324503312,
+            0.014226666666666669
+          ],
+          "IA Power_0": [
+            3.159841059602648,
+            2.8359139072847688,
+            2.7761466666666683
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.428370860927153,
+            3.0905827814569546,
+            3.040146666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7271266666666663,
+            0.7109933774834433,
+            0.7307066666666664
+          ],
+          "GT Power_0": [
+            0.09694666666666675,
+            0.09631125827814571,
+            0.09820000000000004
+          ],
+          "IA Power_0": [
+            5.745539999999999,
+            5.48543046357616,
+            5.653446666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.2204933333333345,
+            5.8078940397351,
+            6.056013333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7108543046357612,
+            0.7113799999999999,
+            0.7121266666666658
+          ],
+          "GT Power_0": [
+            0.09518543046357616,
+            0.09782666666666665,
+            0.10372666666666666
+          ],
+          "IA Power_0": [
+            5.408688741721855,
+            5.56096,
+            5.709453333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.761317880794701,
+            5.87872,
+            6.088840000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7779133333333338,
+            0.77834,
+            0.8158400000000001
+          ],
+          "GT Power_0": [
+            0.24420000000000003,
+            0.2523,
+            0.24687333333333333
+          ],
+          "IA Power_0": [
+            5.641526666666667,
+            5.6491199999999955,
+            6.68396
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.173466666666668,
+            6.191166666666667,
+            7.351593333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7337466666666663,
+            0.7171854304635757,
+            0.7184503311258275
+          ],
+          "GT Power_0": [
+            0.10826666666666665,
+            0.10749006622516565,
+            0.108430463576159
+          ],
+          "IA Power_0": [
+            5.538226666666668,
+            5.511807947019868,
+            5.835185430463578
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.008553333333332,
+            5.89292052980132,
+            6.2050596026490075
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4503,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5876999999999994,
+            0.5759999999999996,
+            0.5884635761589398
+          ],
+          "GT Power_0": [
+            0.03283999999999998,
+            0.014649006622516555,
+            0.014668874172185426
+          ],
+          "IA Power_0": [
+            3.2794266666666667,
+            3.4245099337748353,
+            3.088867549668873
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.633393333333332,
+            3.680900662251655,
+            3.3852317880794707
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7168013245033108,
+            0.7342399999999994,
+            0.7130799999999994
+          ],
+          "GT Power_0": [
+            0.09878807947019869,
+            0.10114666666666669,
+            0.10179333333333335
+          ],
+          "IA Power_0": [
+            6.175099337748344,
+            6.962793333333334,
+            6.116
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.557364238410596,
+            7.312693333333332,
+            6.480773333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7226333333333327,
+            0.7130662251655624,
+            0.7339266666666666
+          ],
+          "GT Power_0": [
+            0.10348666666666669,
+            0.10376158940397344,
+            0.10348000000000004
+          ],
+          "IA Power_0": [
+            7.171926666666663,
+            6.097205298013243,
+            6.277940000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5151800000000035,
+            6.443125827814572,
+            6.735720000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7729266666666668,
+            0.7988410596026496,
+            0.7701324503311262
+          ],
+          "GT Power_0": [
+            0.2220866666666666,
+            0.2246887417218543,
+            0.22811258278145696
+          ],
+          "IA Power_0": [
+            6.614026666666667,
+            6.266940397350991,
+            6.250019867549668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.114146666666666,
+            7.192238410596028,
+            6.775609271523178
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7360533333333331,
+            0.7163642384105959,
+            0.7187682119205294
+          ],
+          "GT Power_0": [
+            0.10637999999999999,
+            0.1069602649006623,
+            0.10619867549668875
+          ],
+          "IA Power_0": [
+            6.169993333333335,
+            6.154509933774835,
+            6.491079470198674
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6079066666666675,
+            6.503139072847685,
+            6.848158940397352
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4502,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.580273333333333,
+            0.5738999999999997,
+            0.5736158940397347
+          ],
+          "GT Power_0": [
+            0.04265333333333332,
+            0.016453333333333334,
+            0.016576158940397347
+          ],
+          "IA Power_0": [
+            3.3088533333333348,
+            3.2795066666666672,
+            3.2987615894039726
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.617666666666665,
+            3.537260000000001,
+            3.542298013245033
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7122533333333331,
+            0.7350927152317874,
+            0.71123178807947
+          ],
+          "GT Power_0": [
+            0.12334666666666669,
+            0.1262384105960265,
+            0.1220596026490066
+          ],
+          "IA Power_0": [
+            6.5640333333333345,
+            6.856099337748345,
+            6.591655629139073
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.92906,
+            7.468271523178807,
+            6.977205298013247
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7134199999999994,
+            0.7274503311258276,
+            0.7276133333333321
+          ],
+          "GT Power_0": [
+            0.11987333333333342,
+            0.12335099337748345,
+            0.12260666666666675
+          ],
+          "IA Power_0": [
+            6.725033333333331,
+            7.044172185430467,
+            6.51143333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.015593333333334,
+            7.535821192052979,
+            7.046399999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7700133333333337,
+            0.7707333333333339,
+            0.7717615894039738
+          ],
+          "GT Power_0": [
+            0.26764000000000016,
+            0.2665466666666669,
+            0.26968874172185436
+          ],
+          "IA Power_0": [
+            6.844293333333335,
+            6.779446666666666,
+            6.835490066225168
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.3866200000000015,
+            7.298606666666668,
+            7.376072847682118
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7212980132450325,
+            0.7185231788079467,
+            0.7196466666666658
+          ],
+          "GT Power_0": [
+            0.1305960264900663,
+            0.13003973509933775,
+            0.1313933333333333
+          ],
+          "IA Power_0": [
+            7.260834437086093,
+            6.669993377483447,
+            6.795113333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.61943708609272,
+            7.012509933774834,
+            7.14442
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4501,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5756291390728476,
+            0.5842913907284768,
+            0.5747814569536424
+          ],
+          "GT Power_0": [
+            0.020370860927152318,
+            0.018357615894039732,
+            0.019496688741721856
+          ],
+          "IA Power_0": [
+            2.9422185430463577,
+            2.701013245033113,
+            3.152523178807946
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.1926291390728485,
+            3.0898940397351007,
+            3.4180860927152326
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7081999999999997,
+            0.7287199999999997,
+            0.7090132450331122
+          ],
+          "GT Power_0": [
+            0.14016000000000006,
+            0.1442466666666666,
+            0.13986754966887419
+          ],
+          "IA Power_0": [
+            5.41468666666667,
+            5.485160000000005,
+            5.481549668874175
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.82533333333333,
+            6.037133333333337,
+            5.908900662251651
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7088874172185425,
+            0.7421390728476814,
+            0.7325466666666665
+          ],
+          "GT Power_0": [
+            0.14012582781456953,
+            0.13922516556291387,
+            0.14310000000000003
+          ],
+          "IA Power_0": [
+            5.454344370860927,
+            6.455039735099338,
+            5.566366666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.86039072847682,
+            6.958298013245033,
+            6.338206666666671
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7710333333333338,
+            0.7737266666666669,
+            0.7623600000000004
+          ],
+          "GT Power_0": [
+            0.35899333333333333,
+            0.36776000000000003,
+            0.32636
+          ],
+          "IA Power_0": [
+            5.692346666666669,
+            5.982259999999999,
+            5.748579999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.349166666666671,
+            6.639373333333332,
+            6.324019999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129799999999995,
+            0.7173533333333334,
+            0.7158799999999996
+          ],
+          "GT Power_0": [
+            0.14945999999999998,
+            0.15250666666666657,
+            0.15366666666666667
+          ],
+          "IA Power_0": [
+            5.543213333333332,
+            6.098546666666667,
+            5.594466666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9186933333333345,
+            6.546626666666664,
+            6.053899999999998
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4500,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5620927152317882,
+            0.5734370860927148,
+            0.5772666666666668
+          ],
+          "GT Power_0": [
+            0.01876158940397351,
+            0.01649668874172185,
+            0.016026666666666665
+          ],
+          "IA Power_0": [
+            6.7415562913907285,
+            2.6552450331125828,
+            3.0505200000000015
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.992192052980135,
+            2.9009470198675498,
+            3.2957466666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145599999999998,
+            0.7160133333333328,
+            0.7267599999999996
+          ],
+          "GT Power_0": [
+            0.12874000000000002,
+            0.12605333333333338,
+            0.12631333333333328
+          ],
+          "IA Power_0": [
+            5.382899999999998,
+            6.13444666666667,
+            5.20050666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.71968,
+            6.56557333333333,
+            5.705246666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7273666666666663,
+            0.7141986754966877,
+            0.7120466666666662
+          ],
+          "GT Power_0": [
+            0.12925333333333341,
+            0.12742384105960264,
+            0.12954666666666667
+          ],
+          "IA Power_0": [
+            5.279240000000001,
+            5.504450331125825,
+            5.211879999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.792460000000003,
+            5.907827814569535,
+            5.648580000000003
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8269333333333335,
+            0.7938145695364242,
+            0.770313333333334
+          ],
+          "GT Power_0": [
+            0.2793933333333333,
+            0.2805761589403972,
+            0.27389333333333343
+          ],
+          "IA Power_0": [
+            6.933226666666666,
+            5.691496688741721,
+            5.4626800000000015
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.587306666666665,
+            6.331596026490064,
+            6.009999999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172251655629139,
+            0.7412516556291388,
+            0.7188079470198672
+          ],
+          "GT Power_0": [
+            0.13493377483443705,
+            0.13504635761589412,
+            0.13219205298013242
+          ],
+          "IA Power_0": [
+            5.3535496688741695,
+            6.047099337748347,
+            5.352192052980131
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.755993377483443,
+            6.5846754966887415,
+            5.781662251655623
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD142-A9",
+      "number": 4499,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.573549668874172,
+            0.5736466666666664,
+            0.5749933774834434
+          ],
+          "GT Power_0": [
+            0.016582781456953643,
+            0.016046666666666667,
+            0.016397350993377482
+          ],
+          "IA Power_0": [
+            2.989668874172185,
+            3.059786666666666,
+            3.4055894039735093
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.226403973509934,
+            3.2979133333333333,
+            3.637317880794702
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7235866666666664,
+            0.7138675496688741,
+            0.711433333333333
+          ],
+          "GT Power_0": [
+            0.11763999999999995,
+            0.12064900662251658,
+            0.1214733333333334
+          ],
+          "IA Power_0": [
+            6.044466666666666,
+            5.995596026490069,
+            6.08732666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.522753333333333,
+            6.378642384105956,
+            6.444560000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7121399999999992,
+            0.7155369127516777,
+            0.71304
+          ],
+          "GT Power_0": [
+            0.1175266666666666,
+            0.1168120805369128,
+            0.1175
+          ],
+          "IA Power_0": [
+            6.038933333333336,
+            6.814449664429532,
+            6.056333333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.401300000000001,
+            7.133677852348995,
+            6.416906666666668
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7948266666666671,
+            0.7707133333333337,
+            0.7879666666666668
+          ],
+          "GT Power_0": [
+            0.25854666666666676,
+            0.26298666666666676,
+            0.26258666666666663
+          ],
+          "IA Power_0": [
+            6.910833333333336,
+            6.626073333333332,
+            6.226179999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.529780000000002,
+            7.163499999999999,
+            6.8944533333333355
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7366266666666664,
+            0.7178399999999996,
+            0.736264900662251
+          ],
+          "GT Power_0": [
+            0.14311333333333331,
+            0.1200866666666667,
+            0.12769536423841063
+          ],
+          "IA Power_0": [
+            6.1484733333333335,
+            6.462166666666669,
+            6.1341788079470225
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.705073333333331,
+            6.844246666666665,
+            6.631251655629138
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD183-A9",
+      "number": 4498,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5740933333333331,
+            0.5871192052980131,
+            0.5694900662251653
+          ],
+          "GT Power_0": [
+            0.04265999999999998,
+            0.015377483443708607,
+            0.015145695364238413
+          ],
+          "IA Power_0": [
+            3.3425400000000005,
+            2.937701986754967,
+            2.833682119205298
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6105200000000006,
+            3.28817880794702,
+            3.0668807947019876
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7143178807947016,
+            0.711966666666666,
+            0.7139533333333326
+          ],
+          "GT Power_0": [
+            0.11626490066225162,
+            0.12051999999999997,
+            0.11998666666666667
+          ],
+          "IA Power_0": [
+            6.401701986754969,
+            5.955126666666667,
+            6.211560000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.761635761589403,
+            6.331286666666665,
+            6.504360000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7315666666666659,
+            0.7111333333333327,
+            0.7124599999999999
+          ],
+          "GT Power_0": [
+            0.11956666666666668,
+            0.11668666666666672,
+            0.1199733333333333
+          ],
+          "IA Power_0": [
+            5.959186666666667,
+            5.966173333333333,
+            6.276080000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.466613333333333,
+            6.336493333333331,
+            6.64748666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7687549668874176,
+            0.7848933333333337,
+            0.774626666666667
+          ],
+          "GT Power_0": [
+            0.2557748344370862,
+            0.2563333333333334,
+            0.25952666666666663
+          ],
+          "IA Power_0": [
+            6.123860927152318,
+            6.1601066666666675,
+            6.494466666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6597682119205315,
+            6.752480000000001,
+            7.02924
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7173599999999996,
+            0.7161799999999999,
+            0.7163576158940398
+          ],
+          "GT Power_0": [
+            0.12394666666666668,
+            0.12444666666666665,
+            0.1236622516556292
+          ],
+          "IA Power_0": [
+            6.030906666666666,
+            5.996326666666669,
+            6.322430463576161
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.393393333333328,
+            6.428059999999998,
+            6.687377483443707
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4497,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5754933333333336,
+            0.5870000000000001,
+            0.5736333333333336
+          ],
+          "GT Power_0": [
+            0.017106666666666662,
+            0.017331125827814566,
+            0.016860000000000003
+          ],
+          "IA Power_0": [
+            3.076986666666666,
+            3.082609271523179,
+            3.004986666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3158999999999996,
+            3.355278145695364,
+            3.2498199999999997
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7326666666666661,
+            0.7244466666666664,
+            0.7109933333333328
+          ],
+          "GT Power_0": [
+            0.12724666666666673,
+            0.15016000000000004,
+            0.12748666666666664
+          ],
+          "IA Power_0": [
+            6.78750666666667,
+            6.003893333333332,
+            5.993839999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.227480000000002,
+            6.540473333333336,
+            6.329953333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7338466666666664,
+            0.710893333333333,
+            0.7245999999999999
+          ],
+          "GT Power_0": [
+            0.12976666666666667,
+            0.12608666666666662,
+            0.12643333333333337
+          ],
+          "IA Power_0": [
+            6.983100000000002,
+            5.982373333333336,
+            6.599346666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.465686666666661,
+            6.373100000000002,
+            6.926193333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7673133333333336,
+            0.7685496688741724,
+            0.7711800000000001
+          ],
+          "GT Power_0": [
+            0.2739,
+            0.27357615894039744,
+            0.27922
+          ],
+          "IA Power_0": [
+            6.204139999999999,
+            6.110205298013242,
+            6.523673333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.755613333333332,
+            6.683099337748347,
+            7.077280000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7350266666666662,
+            0.7159199999999997,
+            0.7225199999999997
+          ],
+          "GT Power_0": [
+            0.13545333333333343,
+            0.1361533333333333,
+            0.14835333333333325
+          ],
+          "IA Power_0": [
+            6.024646666666666,
+            6.104940000000003,
+            6.468186666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.565739999999997,
+            6.474973333333334,
+            6.912886666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD176-A9",
+      "number": 4496,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5822066666666672,
+            0.5883576158940396,
+            0.574298013245033
+          ],
+          "GT Power_0": [
+            0.04695333333333332,
+            0.015900662251655626,
+            0.015927152317880798
+          ],
+          "IA Power_0": [
+            2.668146666666667,
+            2.6448211920529805,
+            2.9130860927152322
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0484399999999994,
+            3.0384370860927152,
+            3.149165562913907
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7132516556291388,
+            0.7119470198675494,
+            0.7136466666666665
+          ],
+          "GT Power_0": [
+            0.1074834437086093,
+            0.10405298013245036,
+            0.09972666666666666
+          ],
+          "IA Power_0": [
+            5.1402781456953655,
+            5.123145695364241,
+            5.426760000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.502099337748345,
+            5.485582781456955,
+            5.770273333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7255033112582778,
+            0.7121666666666662,
+            0.7131125827814564
+          ],
+          "GT Power_0": [
+            0.10174834437086096,
+            0.10684000000000005,
+            0.1030860927152318
+          ],
+          "IA Power_0": [
+            5.209728476821193,
+            5.204060000000002,
+            5.192688741721852
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.682390728476824,
+            5.538826666666668,
+            5.535430463576159
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708609271523188,
+            0.7923800000000005,
+            0.7721854304635763
+          ],
+          "GT Power_0": [
+            0.22414569536423842,
+            0.22788666666666663,
+            0.22669536423841075
+          ],
+          "IA Power_0": [
+            5.3236158940397384,
+            5.715326666666665,
+            5.330675496688739
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.070834437086089,
+            6.426493333333331,
+            5.840145695364237
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7329999999999999,
+            0.7286225165562911,
+            0.7177066666666659
+          ],
+          "GT Power_0": [
+            0.1104172185430464,
+            0.11147019867549665,
+            0.10810000000000003
+          ],
+          "IA Power_0": [
+            5.27037748344371,
+            5.811953642384106,
+            5.226193333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.759980132450335,
+            6.184894039735102,
+            5.553873333333336
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4495,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5731666666666668,
+            0.5741266666666665,
+            0.5733245033112581
+          ],
+          "GT Power_0": [
+            0.044786666666666634,
+            0.015653333333333335,
+            0.017357615894039745
+          ],
+          "IA Power_0": [
+            3.3167466666666674,
+            3.7572,
+            3.332344370860928
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5717333333333334,
+            3.980786666666668,
+            3.5356026490066217
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7116133333333328,
+            0.7097399999999995,
+            0.717433333333333
+          ],
+          "GT Power_0": [
+            0.12218000000000005,
+            0.11859333333333341,
+            0.12415333333333337
+          ],
+          "IA Power_0": [
+            6.503446666666664,
+            6.454873333333334,
+            6.777733333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.868733333333335,
+            6.849333333333332,
+            7.136686666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7109536423841055,
+            0.7272933333333336,
+            0.7125733333333333
+          ],
+          "GT Power_0": [
+            0.11962251655629148,
+            0.12087333333333333,
+            0.12158
+          ],
+          "IA Power_0": [
+            6.895748344370861,
+            6.524746666666665,
+            6.564693333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.262192052980133,
+            6.964106666666667,
+            6.917600000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7689600000000003,
+            0.7702200000000005,
+            0.7702866666666666
+          ],
+          "GT Power_0": [
+            0.2641199999999998,
+            0.2651733333333333,
+            0.2670133333333333
+          ],
+          "IA Power_0": [
+            7.120746666666667,
+            6.8359733333333335,
+            6.7006066666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.689546666666671,
+            7.35062,
+            7.235300000000003
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7342266666666658,
+            0.7178807947019862,
+            0.7206466666666663
+          ],
+          "GT Power_0": [
+            0.1279333333333334,
+            0.12862913907284773,
+            0.12858000000000006
+          ],
+          "IA Power_0": [
+            6.618280000000004,
+            6.575225165562914,
+            7.36524
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.122806666666668,
+            6.973410596026488,
+            7.7682866666666675
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD142-A9",
+      "number": 4494,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5823245033112584,
+            0.5873533333333335,
+            0.5739801324503312
+          ],
+          "GT Power_0": [
+            0.0359801324503311,
+            0.015659999999999997,
+            0.015629139072847686
+          ],
+          "IA Power_0": [
+            3.09887417218543,
+            3.0377199999999998,
+            3.05330463576159
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4284900662251663,
+            3.4116799999999987,
+            3.2948145695364217
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7237066666666665,
+            0.7124933333333331,
+            0.7261920529801322
+          ],
+          "GT Power_0": [
+            0.11567333333333338,
+            0.11625333333333325,
+            0.1173509933774834
+          ],
+          "IA Power_0": [
+            6.391406666666667,
+            6.032226666666669,
+            6.021847682119205
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7773666666666665,
+            6.370893333333338,
+            6.508039735099336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7120733333333328,
+            0.7249933333333327,
+            0.7125733333333328
+          ],
+          "GT Power_0": [
+            0.11338666666666666,
+            0.12776000000000007,
+            0.11578666666666668
+          ],
+          "IA Power_0": [
+            6.346886666666666,
+            6.0936666666666675,
+            6.030566666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.720626666666666,
+            6.581440000000002,
+            6.3717999999999995
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.76948,
+            0.7719666666666667,
+            0.7759466666666666
+          ],
+          "GT Power_0": [
+            0.2605866666666666,
+            0.26061333333333314,
+            0.2587000000000001
+          ],
+          "IA Power_0": [
+            6.215440000000001,
+            6.1937066666666665,
+            6.604846666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.7672,
+            6.793006666666664,
+            7.222073333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7179333333333335,
+            0.7294933333333335,
+            0.7176933333333329
+          ],
+          "GT Power_0": [
+            0.12335333333333329,
+            0.12239333333333334,
+            0.12272000000000001
+          ],
+          "IA Power_0": [
+            6.075293333333334,
+            6.139239999999999,
+            6.343753333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4533933333333335,
+            6.664813333333337,
+            6.728346666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4493,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.56984,
+            0.5806490066225164,
+            0.5744966887417222
+          ],
+          "GT Power_0": [
+            0.039606666666666665,
+            0.016066225165562914,
+            0.017483443708609277
+          ],
+          "IA Power_0": [
+            2.9931866666666656,
+            2.866609271523178,
+            2.983238410596026
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.2276000000000016,
+            3.228900662251657,
+            3.237205298013244
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7126466666666661,
+            0.7189801324503307,
+            0.724622516556291
+          ],
+          "GT Power_0": [
+            0.12625333333333338,
+            0.1278344370860928,
+            0.12502649006622524
+          ],
+          "IA Power_0": [
+            6.1403799999999995,
+            6.265887417218544,
+            5.991046357615894
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.51796,
+            6.742754966887418,
+            6.5141986754966865
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7210397350993373,
+            0.7232933333333331,
+            0.7286423841059595
+          ],
+          "GT Power_0": [
+            0.12762251655629137,
+            0.12567333333333328,
+            0.12389403973509933
+          ],
+          "IA Power_0": [
+            6.005635761589402,
+            6.296193333333335,
+            5.959754966887418
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.502807947019867,
+            6.79403333333333,
+            6.520821192052981
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7790993377483449,
+            0.7701400000000003,
+            0.7687800000000002
+          ],
+          "GT Power_0": [
+            0.3020596026490068,
+            0.2819400000000001,
+            0.27164
+          ],
+          "IA Power_0": [
+            6.202370860927152,
+            6.180080000000001,
+            6.309653333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.772132450331125,
+            6.748973333333334,
+            6.789513333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7306556291390724,
+            0.7157483443708605,
+            0.7305562913907282
+          ],
+          "GT Power_0": [
+            0.13269536423841058,
+            0.1322847682119205,
+            0.13345033112582794
+          ],
+          "IA Power_0": [
+            5.990013245033112,
+            6.080635761589403,
+            6.025410596026489
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.427483443708612,
+            6.459900662251656,
+            6.45603311258278
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD135-A9",
+      "number": 4492,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5824437086092714,
+            0.5748410596026489,
+            0.5766357615894038
+          ],
+          "GT Power_0": [
+            0.05092715231788078,
+            0.020086092715231783,
+            0.020324503311258273
+          ],
+          "IA Power_0": [
+            3.609907284768212,
+            3.531132450331126,
+            3.5492052980132454
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.999761589403973,
+            3.7920529801324476,
+            3.7743973509933775
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7112199999999995,
+            0.7113509933774833,
+            0.7283533333333329
+          ],
+          "GT Power_0": [
+            0.14350666666666667,
+            0.14782119205298017,
+            0.14624666666666664
+          ],
+          "IA Power_0": [
+            7.488060000000001,
+            7.132231788079474,
+            7.169180000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.8964399999999975,
+            7.5213377483443695,
+            7.730053333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711026666666666,
+            0.727253333333333,
+            0.7118399999999999
+          ],
+          "GT Power_0": [
+            0.14281333333333335,
+            0.14584666666666676,
+            0.1478733333333333
+          ],
+          "IA Power_0": [
+            7.530306666666664,
+            7.214746666666669,
+            7.163893333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.94717333333333,
+            7.649286666666667,
+            7.526213333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7677133333333338,
+            0.771825503355705,
+            0.7882933333333336
+          ],
+          "GT Power_0": [
+            0.32554666666666665,
+            0.32928187919463126,
+            0.34746
+          ],
+          "IA Power_0": [
+            7.465226666666671,
+            7.9061744966442955,
+            7.863880000000007
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.093013333333332,
+            8.514711409395975,
+            8.659473333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7338866666666659,
+            0.727013333333333,
+            0.7157615894039732
+          ],
+          "GT Power_0": [
+            0.1528133333333333,
+            0.15527999999999995,
+            0.1539801324503311
+          ],
+          "IA Power_0": [
+            7.200893333333332,
+            7.279726666666665,
+            7.674125827814565
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.7257466666666685,
+            7.8951599999999935,
+            8.052304635761589
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4491,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5760733333333331,
+            0.5747880794701989,
+            0.5705496688741721
+          ],
+          "GT Power_0": [
+            0.04551999999999999,
+            0.015708609271523174,
+            0.014986754966887417
+          ],
+          "IA Power_0": [
+            2.740286666666667,
+            2.7505960264900673,
+            2.5432847682119197
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.0096399999999996,
+            2.991741721854305,
+            2.7976887417218554
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7246533333333329,
+            0.7153509933774826,
+            0.712033112582781
+          ],
+          "GT Power_0": [
+            0.12576000000000007,
+            0.12454304635761593,
+            0.12621854304635766
+          ],
+          "IA Power_0": [
+            5.808833333333334,
+            5.372768211920528,
+            5.368019867549668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.179226666666666,
+            5.756794701986758,
+            5.74783443708609
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7136688741721849,
+            0.7129139072847676,
+            0.7139139072847677
+          ],
+          "GT Power_0": [
+            0.12531788079470196,
+            0.12353642384105964,
+            0.12619867549668884
+          ],
+          "IA Power_0": [
+            5.585582781456954,
+            5.377006622516555,
+            5.375086092715232
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.967072847682119,
+            5.754410596026491,
+            5.752920529801324
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7817400000000003,
+            0.7692052980132452,
+            0.786761589403974
+          ],
+          "GT Power_0": [
+            0.2664399999999999,
+            0.25386754966887404,
+            0.2543973509933776
+          ],
+          "IA Power_0": [
+            5.58254,
+            5.5191920529801335,
+            5.787794701986753
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.311039999999999,
+            6.045026490066224,
+            6.427635761589407
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7279867549668873,
+            0.7170399999999996,
+            0.7336622516556289
+          ],
+          "GT Power_0": [
+            0.1288410596026491,
+            0.13710000000000008,
+            0.13903973509933776
+          ],
+          "IA Power_0": [
+            5.866629139072848,
+            5.410133333333335,
+            5.642801324503309
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.247993377483444,
+            5.81910666666667,
+            6.134880794701988
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD175-A9",
+      "number": 4490,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5870397350993377,
+            0.5740331125827816,
+            0.5737666666666665
+          ],
+          "GT Power_0": [
+            0.01505960264900662,
+            0.014490066225165566,
+            0.014319999999999998
+          ],
+          "IA Power_0": [
+            3.0059801324503304,
+            2.963483443708608,
+            3.3164999999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.273708609271523,
+            3.2245496688741726,
+            3.5654399999999993
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7150266666666664,
+            0.7128799999999995,
+            0.7342599999999999
+          ],
+          "GT Power_0": [
+            0.10265333333333342,
+            0.10398000000000006,
+            0.10280000000000004
+          ],
+          "IA Power_0": [
+            6.158326666666666,
+            5.866499999999999,
+            5.901653333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.533853333333334,
+            6.2320466666666725,
+            6.42144666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7129735099337742,
+            0.7124599999999994,
+            0.713426666666666
+          ],
+          "GT Power_0": [
+            0.09927814569536424,
+            0.1015266666666667,
+            0.10386000000000002
+          ],
+          "IA Power_0": [
+            5.890569536423841,
+            6.193913333333334,
+            5.8696066666666695
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.249721854304636,
+            6.563399999999999,
+            6.2404600000000015
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7854000000000001,
+            0.770766666666667,
+            0.7855466666666668
+          ],
+          "GT Power_0": [
+            0.2316066666666667,
+            0.24515333333333317,
+            0.23296000000000003
+          ],
+          "IA Power_0": [
+            6.10684,
+            6.439513333333338,
+            6.0715866666666685
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.683106666666666,
+            6.966853333333334,
+            6.767759999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7175399999999997,
+            0.7387399999999995,
+            0.7182119205298011
+          ],
+          "GT Power_0": [
+            0.11302666666666666,
+            0.1042666666666667,
+            0.10684768211920535
+          ],
+          "IA Power_0": [
+            6.0405599999999975,
+            6.042186666666668,
+            6.055801324503313
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3616600000000005,
+            6.716073333333334,
+            6.427960264900661
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4489,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5847333333333334,
+            0.5897682119205295,
+            0.5742933333333332
+          ],
+          "GT Power_0": [
+            0.05276666666666665,
+            0.020615894039735107,
+            0.02019333333333333
+          ],
+          "IA Power_0": [
+            2.9919066666666674,
+            3.039264900662253,
+            2.7505800000000007
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3203466666666666,
+            3.373384105960264,
+            3.0094533333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.724986754966887,
+            0.7082599999999997,
+            0.7060533333333328
+          ],
+          "GT Power_0": [
+            0.13918543046357615,
+            0.1358933333333334,
+            0.13808
+          ],
+          "IA Power_0": [
+            5.474364238410596,
+            5.377280000000002,
+            5.52254
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.979291390728474,
+            5.7822466666666665,
+            5.864913333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7092399999999996,
+            0.7128874172185429,
+            0.7332516556291384
+          ],
+          "GT Power_0": [
+            0.13582666666666665,
+            0.14349006622516555,
+            0.14647019867549665
+          ],
+          "IA Power_0": [
+            5.6827733333333335,
+            5.516450331125828,
+            5.476920529801323
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.071726666666666,
+            5.910854304635765,
+            6.230291390728477
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7642466666666671,
+            0.7717333333333334,
+            0.7632000000000004
+          ],
+          "GT Power_0": [
+            0.32714666666666664,
+            0.3254266666666668,
+            0.3263399999999998
+          ],
+          "IA Power_0": [
+            5.961246666666669,
+            5.710160000000003,
+            5.705220000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.580486666666665,
+            6.429533333333334,
+            6.3317
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7128399999999997,
+            0.7119599999999998,
+            0.7130866666666665
+          ],
+          "GT Power_0": [
+            0.15400666666666657,
+            0.14755333333333331,
+            0.1505533333333333
+          ],
+          "IA Power_0": [
+            5.507386666666668,
+            5.653233333333335,
+            5.88041333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.9457466666666665,
+            6.047346666666668,
+            6.260506666666663
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4488,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5748410596026489,
+            0.5737152317880794,
+            0.5882649006622515
+          ],
+          "GT Power_0": [
+            0.03784105960264899,
+            0.014046357615894036,
+            0.014900662251655625
+          ],
+          "IA Power_0": [
+            2.624132450331126,
+            2.811549668874172,
+            2.517390728476822
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            2.899278145695366,
+            3.06758940397351,
+            2.813456953642384
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7293199999999995,
+            0.7116333333333332,
+            0.7303266666666659
+          ],
+          "GT Power_0": [
+            0.09778666666666663,
+            0.09712666666666663,
+            0.09711999999999997
+          ],
+          "IA Power_0": [
+            4.986773333333332,
+            5.247660000000002,
+            5.123773333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.462233333333335,
+            5.6017866666666665,
+            5.602213333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7110399999999996,
+            0.7130728476821183,
+            0.7128666666666663
+          ],
+          "GT Power_0": [
+            0.09444666666666665,
+            0.09739072847682122,
+            0.09378000000000006
+          ],
+          "IA Power_0": [
+            5.0239400000000005,
+            5.045496688741721,
+            5.074560000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.3966866666666675,
+            5.386278145695365,
+            5.395280000000003
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7708476821192055,
+            0.7788266666666671,
+            0.7714733333333338
+          ],
+          "GT Power_0": [
+            0.2117350993377484,
+            0.21849999999999994,
+            0.21350000000000008
+          ],
+          "IA Power_0": [
+            5.464907284768211,
+            5.217613333333328,
+            5.167700000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.951350993377483,
+            5.849793333333331,
+            5.698440000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7172847682119201,
+            0.7303799999999999,
+            0.7188599999999993
+          ],
+          "GT Power_0": [
+            0.10359602649006623,
+            0.10727333333333332,
+            0.10492666666666671
+          ],
+          "IA Power_0": [
+            5.3547880794702,
+            5.0981266666666665,
+            5.163246666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.722251655629138,
+            5.501993333333331,
+            5.513126666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4487,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5903245033112581,
+            0.5897284768211916,
+            0.5919999999999996
+          ],
+          "GT Power_0": [
+            0.01443046357615894,
+            0.015013245033112578,
+            0.015139072847682126
+          ],
+          "IA Power_0": [
+            3.1753112582781458,
+            3.5078079470198666,
+            4.092324503311259
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.489549668874174,
+            3.815708609271524,
+            4.368966887417219
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.727193333333333,
+            0.7054635761589402,
+            0.7191409395973153
+          ],
+          "GT Power_0": [
+            0.09454000000000001,
+            0.09602649006622521,
+            0.09606040268456376
+          ],
+          "IA Power_0": [
+            6.417213333333334,
+            6.379218543046357,
+            6.263100671140936
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.849899999999999,
+            6.80007284768212,
+            6.6709798657718125
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.730715231788079,
+            0.728026666666666,
+            0.7391689189189186
+          ],
+          "GT Power_0": [
+            0.10024503311258283,
+            0.09457333333333338,
+            0.09416216216216221
+          ],
+          "IA Power_0": [
+            6.113701986754965,
+            5.863939999999999,
+            6.3515675675675665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.582814569536423,
+            6.279706666666667,
+            6.733858108108107
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            148
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7766158940397355,
+            0.7776490066225171,
+            0.7744066666666669
+          ],
+          "GT Power_0": [
+            0.21236423841059612,
+            0.21368211920529792,
+            0.2119933333333334
+          ],
+          "IA Power_0": [
+            6.093476821192054,
+            5.88419205298013,
+            6.201699999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.639112582781454,
+            6.443503311258277,
+            6.754073333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7180596026490063,
+            0.7087333333333334,
+            0.7167866666666661
+          ],
+          "GT Power_0": [
+            0.10079470198675497,
+            0.09989333333333335,
+            0.10018666666666665
+          ],
+          "IA Power_0": [
+            5.9471390728476825,
+            6.468299999999999,
+            6.794800000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.369920529801327,
+            6.889626666666669,
+            7.222866666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD121-A9",
+      "number": 4486,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5767066666666668,
+            0.5918145695364234,
+            0.59023178807947
+          ],
+          "GT Power_0": [
+            0.01535333333333333,
+            0.016033112582781454,
+            0.017357615894039738
+          ],
+          "IA Power_0": [
+            3.5522066666666685,
+            3.1750000000000003,
+            3.155264900662252
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.826833333333333,
+            3.522907284768211,
+            3.518066225165563
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303533333333325,
+            0.7141533333333326,
+            0.7176466666666663
+          ],
+          "GT Power_0": [
+            0.11123333333333332,
+            0.10756666666666667,
+            0.11020666666666663
+          ],
+          "IA Power_0": [
+            6.241686666666668,
+            6.3015733333333355,
+            7.139433333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.684346666666666,
+            6.672359999999998,
+            7.484653333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7145333333333329,
+            0.7155827814569534,
+            0.7300066666666664
+          ],
+          "GT Power_0": [
+            0.10908666666666669,
+            0.11038410596026502,
+            0.10926666666666669
+          ],
+          "IA Power_0": [
+            6.252353333333332,
+            6.4056026490066245,
+            6.77768
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.651886666666665,
+            6.72319205298013,
+            7.212346666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7723933333333333,
+            0.7695466666666669,
+            0.7741133333333337
+          ],
+          "GT Power_0": [
+            0.2483733333333334,
+            0.2451800000000001,
+            0.2451533333333333
+          ],
+          "IA Power_0": [
+            6.606186666666664,
+            6.541553333333332,
+            6.991746666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.117393333333336,
+            7.076493333333333,
+            7.504953333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7197666666666666,
+            0.7311666666666664,
+            0.7199999999999995
+          ],
+          "GT Power_0": [
+            0.11477333333333341,
+            0.1137866666666667,
+            0.11294000000000001
+          ],
+          "IA Power_0": [
+            6.407673333333336,
+            6.441479999999995,
+            6.4329666666666645
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.781866666666667,
+            6.964673333333335,
+            6.830133333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD154-A9",
+      "number": 4485,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5842199999999997,
+            0.570841059602649,
+            0.571887417218543
+          ],
+          "GT Power_0": [
+            0.04626666666666666,
+            0.016158940397350996,
+            0.01703973509933775
+          ],
+          "IA Power_0": [
+            3.0830466666666676,
+            2.797423841059604,
+            2.804880794701987
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.429306666666666,
+            3.0530596026490047,
+            3.080701986754967
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.711546666666666,
+            0.726926666666666,
+            1.0203708609271522
+          ],
+          "GT Power_0": [
+            0.13228,
+            0.13062666666666664,
+            0.13282781456953643
+          ],
+          "IA Power_0": [
+            6.104306666666665,
+            5.829273333333333,
+            15.092986754966894
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.514266666666668,
+            6.327599999999999,
+            15.898920529801329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7292066666666663,
+            0.7093066666666662,
+            0.715079470198675
+          ],
+          "GT Power_0": [
+            0.12860000000000002,
+            0.1261533333333334,
+            0.12937086092715233
+          ],
+          "IA Power_0": [
+            6.927013333333331,
+            5.9141600000000025,
+            5.985622516556292
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.280599999999996,
+            6.30050666666666,
+            6.375490066225163
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7722847682119209,
+            0.782966666666667,
+            0.7697133333333338
+          ],
+          "GT Power_0": [
+            0.27511258278145717,
+            0.27831999999999996,
+            0.2901866666666667
+          ],
+          "IA Power_0": [
+            6.231139072847682,
+            6.090393333333335,
+            6.522039999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.750781456953641,
+            6.752719999999996,
+            6.967860000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7187682119205293,
+            0.7419006622516553,
+            0.7188999999999995
+          ],
+          "GT Power_0": [
+            0.13888079470198678,
+            0.13671523178807957,
+            0.13842666666666667
+          ],
+          "IA Power_0": [
+            6.02603973509934,
+            6.097807947019868,
+            6.316499999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.394039735099338,
+            6.764238410596027,
+            6.711913333333337
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD132-A9",
+      "number": 4484,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5756953642384105,
+            0.5742266666666663,
+            0.5746466666666666
+          ],
+          "GT Power_0": [
+            0.014443708609271527,
+            0.013486666666666664,
+            0.012646666666666667
+          ],
+          "IA Power_0": [
+            3.4516556291390716,
+            3.112853333333332,
+            3.1072066666666673
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.665602649006623,
+            3.3495733333333333,
+            3.3263000000000007
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7148476821192045,
+            0.7243973509933769,
+            0.7146799999999996
+          ],
+          "GT Power_0": [
+            0.09370860927152316,
+            0.09606622516556292,
+            0.09110000000000004
+          ],
+          "IA Power_0": [
+            6.232529801324501,
+            6.2685496688741695,
+            6.718173333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.56553642384106,
+            6.689576158940401,
+            7.059633333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7286953642384097,
+            0.7271466666666662,
+            0.7159006622516549
+          ],
+          "GT Power_0": [
+            0.0912980132450331,
+            0.08916000000000004,
+            0.09452980132450339
+          ],
+          "IA Power_0": [
+            6.310986754966888,
+            6.2778,
+            6.7478344370860945
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.716880794701982,
+            6.697606666666669,
+            6.995940397350995
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.797793333333334,
+            0.7933466666666669,
+            0.7857218543046363
+          ],
+          "GT Power_0": [
+            0.20499333333333347,
+            0.20383333333333326,
+            0.20521854304635756
+          ],
+          "IA Power_0": [
+            6.896699999999997,
+            6.479746666666666,
+            6.542278145695363
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.411773333333335,
+            7.1516399999999996,
+            7.141264900662248
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7198476821192048,
+            0.7392199999999995,
+            0.7218940397350986
+          ],
+          "GT Power_0": [
+            0.10236423841059603,
+            0.09567999999999999,
+            0.09950993377483444
+          ],
+          "IA Power_0": [
+            6.384105960264902,
+            7.202253333333333,
+            6.383052980132449
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.715443708609271,
+            7.621306666666667,
+            6.705331125827814
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4483,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6011799999999996,
+            0.6090993377483446,
+            0.6016733333333328
+          ],
+          "GT Power_0": [
+            0.04569999999999997,
+            0.015748344370860926,
+            0.016453333333333337
+          ],
+          "IA Power_0": [
+            4.093166666666669,
+            4.174562913907284,
+            4.385120000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.330073333333335,
+            4.426178807947021,
+            4.6462400000000015
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7309602649006625,
+            0.7462052980132449,
+            0.7295133333333326
+          ],
+          "GT Power_0": [
+            0.11923178807947019,
+            0.11917218543046358,
+            0.11719333333333336
+          ],
+          "IA Power_0": [
+            6.9887880794702015,
+            7.0280397350993375,
+            7.344326666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.39158278145695,
+            7.460894039735103,
+            7.703046666666669
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.731370860927152,
+            0.7311655629139068,
+            0.7326066666666663
+          ],
+          "GT Power_0": [
+            0.1194437086092715,
+            0.11794039735099333,
+            0.11856666666666667
+          ],
+          "IA Power_0": [
+            7.002079470198676,
+            7.107920529801325,
+            7.054886666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.362966887417214,
+            7.420761589403971,
+            7.428826666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7889470198675501,
+            0.8197086092715237,
+            0.788649006622517
+          ],
+          "GT Power_0": [
+            0.25820529801324504,
+            0.2569602649006624,
+            0.2540529801324506
+          ],
+          "IA Power_0": [
+            7.219026490066224,
+            7.527807947019868,
+            7.327695364238409
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.783622516556293,
+            8.258211920529801,
+            7.843245033112583
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7377880794701982,
+            0.7357533333333328,
+            0.737072847682119
+          ],
+          "GT Power_0": [
+            0.12070198675496693,
+            0.12082000000000001,
+            0.12678145695364243
+          ],
+          "IA Power_0": [
+            7.106801324503307,
+            7.531113333333335,
+            7.08914569536424
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.474357615894037,
+            7.8947266666666716,
+            7.458278145695366
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD131-A9",
+      "number": 4482,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5981655629139071,
+            0.6014635761589404,
+            0.6003178807947017
+          ],
+          "GT Power_0": [
+            0.015284768211920523,
+            0.01623841059602649,
+            0.015827814569536417
+          ],
+          "IA Power_0": [
+            4.037781456953642,
+            3.8898476821192065,
+            4.097721854304636
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.202470198675497,
+            4.063298013245033,
+            4.280231788079468
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7577066666666664,
+            0.739033333333333,
+            0.7387399999999996
+          ],
+          "GT Power_0": [
+            0.11755999999999998,
+            0.11491999999999997,
+            0.11587333333333341
+          ],
+          "IA Power_0": [
+            6.305319999999999,
+            6.206006666666666,
+            6.472866666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.912880000000001,
+            6.537206666666667,
+            6.76257333333333
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7375099337748343,
+            0.7462185430463574,
+            0.7368533333333328
+          ],
+          "GT Power_0": [
+            0.11250993377483444,
+            0.10896026490066227,
+            0.1141
+          ],
+          "IA Power_0": [
+            6.238781456953642,
+            6.29935761589404,
+            6.211873333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.546629139072849,
+            6.6382516556291415,
+            6.567493333333328
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8007466666666672,
+            0.7981600000000003,
+            0.7997533333333336
+          ],
+          "GT Power_0": [
+            0.24723333333333344,
+            0.24397999999999997,
+            0.26274000000000003
+          ],
+          "IA Power_0": [
+            6.473993333333333,
+            6.652240000000001,
+            6.411639999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9584866666666665,
+            7.1574199999999975,
+            6.931206666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7751133333333329,
+            0.7451125827814568,
+            0.7432866666666669
+          ],
+          "GT Power_0": [
+            0.13094,
+            0.12672185430463576,
+            0.12277333333333332
+          ],
+          "IA Power_0": [
+            6.486006666666666,
+            6.639973509933773,
+            6.31694
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.383986666666665,
+            6.954986754966889,
+            6.645206666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD158-A9",
+      "number": 4481,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6028675496688745,
+            0.6117019867549665,
+            0.5963973509933773
+          ],
+          "GT Power_0": [
+            0.04256953642384105,
+            0.01711920529801324,
+            0.016105960264900663
+          ],
+          "IA Power_0": [
+            3.9557880794702,
+            4.284788079470197,
+            3.877847682119208
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.235052980132455,
+            4.701006622516554,
+            4.092139072847683
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7349000000000001,
+            0.7465298013245033,
+            0.7505666666666658
+          ],
+          "GT Power_0": [
+            0.13605333333333341,
+            0.13666887417218543,
+            0.13164000000000006
+          ],
+          "IA Power_0": [
+            6.949326666666664,
+            7.402596026490067,
+            6.933393333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.321060000000004,
+            7.80864238410596,
+            7.504420000000003
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7525466666666665,
+            0.7651066666666663,
+            0.7350733333333329
+          ],
+          "GT Power_0": [
+            0.13177333333333338,
+            0.13251999999999994,
+            0.13376000000000007
+          ],
+          "IA Power_0": [
+            6.9860200000000034,
+            6.9900866666666674,
+            7.022386666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.561046666666663,
+            8.119133333333334,
+            7.361886666666664
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.791566666666667,
+            0.8102000000000007,
+            0.8069000000000007
+          ],
+          "GT Power_0": [
+            0.28162,
+            0.2793999999999999,
+            0.29582666666666674
+          ],
+          "IA Power_0": [
+            7.698393333333338,
+            7.383940000000003,
+            7.346093333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.258346666666666,
+            8.05298,
+            7.99622
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7394533333333331,
+            0.7399066666666665,
+            0.7404400000000001
+          ],
+          "GT Power_0": [
+            0.14317333333333335,
+            0.1515933333333333,
+            0.14856000000000003
+          ],
+          "IA Power_0": [
+            7.505013333333338,
+            7.148493333333333,
+            7.223353333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.888119999999997,
+            7.518146666666669,
+            7.534813333333338
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4480,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5983533333333328,
+            0.6194999999999999,
+            0.6297152317880794
+          ],
+          "GT Power_0": [
+            0.03637333333333332,
+            0.018006666666666667,
+            0.014894039735099342
+          ],
+          "IA Power_0": [
+            4.069319999999999,
+            6.97935333333333,
+            5.231695364238411
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.308873333333334,
+            7.196726666666665,
+            5.642761589403972
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7371986754966886,
+            0.7576799999999997,
+            0.7421390728476818
+          ],
+          "GT Power_0": [
+            0.12298675496688741,
+            0.12359333333333336,
+            0.11995364238410598
+          ],
+          "IA Power_0": [
+            7.902185430463574,
+            7.897533333333334,
+            9.310741721854303
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.364801324503311,
+            8.597246666666667,
+            10.09041059602649
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7397333333333331,
+            0.7324701986754965,
+            0.7451266666666667
+          ],
+          "GT Power_0": [
+            0.12129333333333339,
+            0.1191986754966888,
+            0.1191066666666666
+          ],
+          "IA Power_0": [
+            7.877733333333335,
+            8.34368874172185,
+            7.714073333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.308346666666667,
+            8.773132450331122,
+            8.12716666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7931466666666672,
+            0.8061324503311259,
+            0.8018999999999998
+          ],
+          "GT Power_0": [
+            0.24718666666666664,
+            0.25013907284768205,
+            0.2471466666666668
+          ],
+          "IA Power_0": [
+            8.437619999999999,
+            8.36149006622517,
+            8.410073333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.997619999999998,
+            8.871364238410592,
+            8.959826666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7613266666666664,
+            0.7433973509933773,
+            0.7728278145695363
+          ],
+          "GT Power_0": [
+            0.12994000000000006,
+            0.13262251655629148,
+            0.1307218543046358
+          ],
+          "IA Power_0": [
+            8.239899999999997,
+            8.457649006622526,
+            8.195165562913905
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.817273333333338,
+            8.930046357615897,
+            9.04187417218543
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD173-A9",
+      "number": 4479,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6045033112582779,
+            0.59746357615894,
+            0.6104333333333332
+          ],
+          "GT Power_0": [
+            0.04225165562913905,
+            0.01696688741721854,
+            0.01596666666666667
+          ],
+          "IA Power_0": [
+            4.138933774834437,
+            4.319483443708606,
+            3.923440000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.364761589403973,
+            4.5293907284768204,
+            4.304093333333333
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7325999999999996,
+            0.7331799999999999,
+            0.7331533333333331
+          ],
+          "GT Power_0": [
+            0.13057333333333332,
+            0.13452000000000006,
+            0.13522
+          ],
+          "IA Power_0": [
+            6.9959733333333345,
+            6.99301333333333,
+            7.033066666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.3786066666666645,
+            7.367633333333333,
+            7.345920000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7332649006622514,
+            0.7317266666666662,
+            0.7357549668874166
+          ],
+          "GT Power_0": [
+            0.12973509933774838,
+            0.12555333333333338,
+            0.1240331125827815
+          ],
+          "IA Power_0": [
+            7.256662251655628,
+            7.026053333333331,
+            7.028715231788081
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.668059602649007,
+            7.3731599999999995,
+            7.39082119205298
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8061854304635768,
+            0.7921800000000001,
+            0.7911324503311261
+          ],
+          "GT Power_0": [
+            0.2712781456953643,
+            0.27149999999999996,
+            0.2678741721854303
+          ],
+          "IA Power_0": [
+            7.633874172185432,
+            7.355879999999999,
+            7.346172185430463
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.310708609271531,
+            7.855226666666672,
+            7.870052980132453
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7387019867549668,
+            0.7365761589403967,
+            0.7394966887417215
+          ],
+          "GT Power_0": [
+            0.1362516556291391,
+            0.13688079470198683,
+            0.1379006622516557
+          ],
+          "IA Power_0": [
+            7.437264900662252,
+            7.204761589403976,
+            7.098291390728474
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.828523178807947,
+            7.588384105960263,
+            7.494490066225169
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4478,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5982913907284767,
+            0.5980733333333335,
+            0.5976799999999998
+          ],
+          "GT Power_0": [
+            0.017198675496688742,
+            0.01714,
+            0.016506666666666666
+          ],
+          "IA Power_0": [
+            4.348317880794701,
+            4.400233333333334,
+            4.280039999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.563377483443708,
+            4.6049266666666675,
+            4.508180000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7590927152317881,
+            0.7356999999999997,
+            0.733666666666666
+          ],
+          "GT Power_0": [
+            0.11533112582781463,
+            0.11925333333333336,
+            0.12194666666666673
+          ],
+          "IA Power_0": [
+            7.8119403973509955,
+            7.498453333333334,
+            7.493606666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.488788079470199,
+            7.814773333333336,
+            7.846973333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7610399999999999,
+            0.7349933774834434,
+            0.7362599999999997
+          ],
+          "GT Power_0": [
+            0.11684666666666663,
+            0.1184635761589404,
+            0.1244666666666667
+          ],
+          "IA Power_0": [
+            8.74606,
+            7.648483443708611,
+            7.618720000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.10026,
+            7.961450331125824,
+            7.990140000000003
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8138400000000003,
+            0.7935600000000004,
+            0.7933333333333334
+          ],
+          "GT Power_0": [
+            0.26403999999999994,
+            0.2538133333333333,
+            0.2572266666666666
+          ],
+          "IA Power_0": [
+            8.018786666666669,
+            7.913713333333328,
+            8.234560000000004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.92822666666667,
+            8.418833333333337,
+            8.802386666666665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7565933333333333,
+            0.7407417218543048,
+            0.7471199999999995
+          ],
+          "GT Power_0": [
+            0.12454000000000005,
+            0.1270066225165563,
+            0.12727333333333343
+          ],
+          "IA Power_0": [
+            7.649573333333337,
+            7.749556291390731,
+            8.47865333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.10526,
+            8.123933774834438,
+            8.815473333333331
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD148-A9",
+      "number": 4477,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6016866666666666,
+            0.5994039735099336,
+            0.5982133333333329
+          ],
+          "GT Power_0": [
+            0.042086666666666626,
+            0.02005298013245033,
+            0.01949333333333333
+          ],
+          "IA Power_0": [
+            3.515360000000001,
+            3.4556490066225156,
+            3.7125666666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.777973333333334,
+            3.8354238410596033,
+            3.9909399999999997
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7300599999999998,
+            0.7500794701986752,
+            0.7295231788079467
+          ],
+          "GT Power_0": [
+            0.15203333333333333,
+            0.1520331125827815,
+            0.15462913907284764
+          ],
+          "IA Power_0": [
+            5.889973333333335,
+            5.931370860927151,
+            6.173642384105961
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.285833333333333,
+            6.49267549668874,
+            6.585721854304635
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7444768211920526,
+            0.7304172185430463,
+            0.7301599999999996
+          ],
+          "GT Power_0": [
+            0.15168211920529798,
+            0.1489801324503311,
+            0.15102666666666667
+          ],
+          "IA Power_0": [
+            5.964086092715232,
+            5.934774834437089,
+            5.996673333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.495695364238412,
+            6.343357615894041,
+            6.400713333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7830466666666668,
+            0.7824533333333334,
+            0.7858133333333335
+          ],
+          "GT Power_0": [
+            0.34444666666666673,
+            0.34647333333333347,
+            0.34575333333333336
+          ],
+          "IA Power_0": [
+            6.215853333333332,
+            6.468913333333332,
+            6.250333333333328
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.877233333333332,
+            7.145986666666663,
+            6.882953333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7512384105960263,
+            0.7327466666666667,
+            0.7374039735099345
+          ],
+          "GT Power_0": [
+            0.16448344370860937,
+            0.1597,
+            0.16574172185430466
+          ],
+          "IA Power_0": [
+            6.039304635761591,
+            6.341920000000001,
+            6.131152317880794
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.638596026490068,
+            6.723326666666668,
+            6.529264900662253
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD126-A9",
+      "number": 4476,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5999801324503308,
+            0.6020533333333331,
+            0.6142119205298013
+          ],
+          "GT Power_0": [
+            0.014761589403973511,
+            0.015186666666666666,
+            0.014867549668874172
+          ],
+          "IA Power_0": [
+            3.69735761589404,
+            4.357173333333333,
+            3.675523178807947
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9593509933774826,
+            4.588926666666667,
+            4.023350993377482
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7346399999999996,
+            0.734206666666666,
+            0.7509599999999997
+          ],
+          "GT Power_0": [
+            0.11675999999999997,
+            0.1136533333333334,
+            0.11466666666666667
+          ],
+          "IA Power_0": [
+            6.606520000000001,
+            6.328066666666665,
+            6.232493333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.952139999999999,
+            6.644973333333334,
+            6.75058
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7348533333333331,
+            0.7575999999999997,
+            0.736313333333333
+          ],
+          "GT Power_0": [
+            0.11146666666666669,
+            0.11132,
+            0.11349999999999999
+          ],
+          "IA Power_0": [
+            6.597246666666671,
+            6.946439999999999,
+            6.326553333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.978773333333334,
+            7.342593333333334,
+            6.668466666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7926933333333338,
+            0.8081589403973517,
+            0.7939400000000006
+          ],
+          "GT Power_0": [
+            0.2411400000000001,
+            0.2424238410596026,
+            0.2434866666666666
+          ],
+          "IA Power_0": [
+            6.535133333333334,
+            6.549900662251658,
+            6.843693333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0980799999999995,
+            7.205026490066226,
+            7.403313333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7419266666666666,
+            0.7421266666666665,
+            0.7485266666666665
+          ],
+          "GT Power_0": [
+            0.12218000000000001,
+            0.11909999999999998,
+            0.13004
+          ],
+          "IA Power_0": [
+            6.467733333333335,
+            6.514893333333335,
+            6.793846666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8135200000000005,
+            6.882620000000002,
+            7.24116
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4475,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5988807947019865,
+            0.5990133333333328,
+            0.5999933333333333
+          ],
+          "GT Power_0": [
+            0.013397350993377482,
+            0.014293333333333335,
+            0.01358
+          ],
+          "IA Power_0": [
+            3.2349470198675494,
+            3.2778133333333335,
+            3.257366666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5102649006622504,
+            3.52492,
+            3.523653333333334
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352266666666665,
+            0.7372266666666664,
+            0.7551456953642378
+          ],
+          "GT Power_0": [
+            0.09295333333333332,
+            0.09236666666666667,
+            0.11179470198675494
+          ],
+          "IA Power_0": [
+            5.638426666666665,
+            5.892066666666666,
+            5.640304635761591
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.0271066666666675,
+            6.220953333333332,
+            6.342668874172187
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7647666666666664,
+            0.7552999999999997,
+            0.7363443708609271
+          ],
+          "GT Power_0": [
+            0.09182666666666668,
+            0.09254000000000007,
+            0.09560927152317879
+          ],
+          "IA Power_0": [
+            5.562093333333332,
+            6.472086666666666,
+            5.589350993377485
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.449093333333331,
+            6.833746666666667,
+            5.943059602649005
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7923000000000006,
+            0.7935533333333336,
+            0.7933333333333336
+          ],
+          "GT Power_0": [
+            0.21066000000000001,
+            0.21680666666666673,
+            0.21196666666666653
+          ],
+          "IA Power_0": [
+            5.874206666666667,
+            5.861533333333334,
+            5.897906666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.382106666666671,
+            6.336526666666666,
+            6.389293333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7428466666666661,
+            0.7423266666666665,
+            0.7535999999999996
+          ],
+          "GT Power_0": [
+            0.10463333333333334,
+            0.10036000000000005,
+            0.10142666666666668
+          ],
+          "IA Power_0": [
+            5.873973333333334,
+            5.732620000000002,
+            5.701546666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.265579999999999,
+            6.099173333333333,
+            6.1318600000000005
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4474,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5996291390728474,
+            0.6012847682119203,
+            0.6001721854304636
+          ],
+          "GT Power_0": [
+            0.03261589403973508,
+            0.01358278145695364,
+            0.014370860927152318
+          ],
+          "IA Power_0": [
+            3.588927152317879,
+            3.3441258278145694,
+            3.2964238410596014
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.84480132450331,
+            3.594019867549671,
+            3.5491920529801315
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7359205298013242,
+            0.7366225165562911,
+            0.7340533333333329
+          ],
+          "GT Power_0": [
+            0.09711258278145696,
+            0.09456953642384111,
+            0.10035333333333331
+          ],
+          "IA Power_0": [
+            6.13747682119205,
+            5.747821192052981,
+            5.810686666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.494311258278145,
+            6.113993377483445,
+            6.1703933333333305
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.746993333333333,
+            0.7565399999999994,
+            0.7356291390728473
+          ],
+          "GT Power_0": [
+            0.10239333333333331,
+            0.09538666666666669,
+            0.09759602649006627
+          ],
+          "IA Power_0": [
+            5.851686666666668,
+            5.807286666666666,
+            6.129781456953642
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.322646666666669,
+            6.33228,
+            6.461158940397349
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8080866666666673,
+            0.8386133333333339,
+            0.8021400000000005
+          ],
+          "GT Power_0": [
+            0.23468666666666668,
+            0.23007333333333327,
+            0.23478666666666673
+          ],
+          "IA Power_0": [
+            6.3082,
+            6.6489666666666665,
+            6.389020000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.795719999999999,
+            7.374593333333339,
+            6.88734666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7428145695364236,
+            0.7394199999999997,
+            0.7406666666666666
+          ],
+          "GT Power_0": [
+            0.10737086092715237,
+            0.10232666666666673,
+            0.10682
+          ],
+          "IA Power_0": [
+            5.917728476821192,
+            5.931066666666667,
+            5.9039666666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.304384105960266,
+            6.2888533333333285,
+            6.291466666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4473,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6068599999999997,
+            0.5994834437086087,
+            0.5995496688741716
+          ],
+          "GT Power_0": [
+            0.03833333333333331,
+            0.015443708609271519,
+            0.01588079470198675
+          ],
+          "IA Power_0": [
+            3.7172733333333325,
+            3.915125827814571,
+            3.677258278145695
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.09884,
+            4.173403973509935,
+            3.9305033112582786
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7526423841059598,
+            0.7369466666666665,
+            0.7553599999999996
+          ],
+          "GT Power_0": [
+            0.12382119205298006,
+            0.12754666666666656,
+            0.12010000000000003
+          ],
+          "IA Power_0": [
+            6.388774834437085,
+            6.518580000000003,
+            6.371033333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.873046357615892,
+            6.848633333333332,
+            6.962859999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7489333333333331,
+            0.7355827814569534,
+            0.7622516556291384
+          ],
+          "GT Power_0": [
+            0.12298666666666667,
+            0.12105298013245037,
+            0.12168211920529808
+          ],
+          "IA Power_0": [
+            6.787219999999999,
+            6.462370860927149,
+            6.46517880794702
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.351079999999999,
+            7.295046357615895,
+            7.25309933774834
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7927814569536427,
+            0.8003733333333338,
+            0.792206666666667
+          ],
+          "GT Power_0": [
+            0.2603642384105961,
+            0.2611733333333332,
+            0.25613999999999987
+          ],
+          "IA Power_0": [
+            7.067079470198676,
+            6.814866666666669,
+            6.709026666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.609715231788074,
+            7.4233933333333315,
+            7.220693333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.739553333333333,
+            0.7405999999999998,
+            0.7393999999999998
+          ],
+          "GT Power_0": [
+            0.15200666666666673,
+            0.1342533333333333,
+            0.13484666666666664
+          ],
+          "IA Power_0": [
+            6.607753333333333,
+            6.550139999999997,
+            6.836499999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9472799999999975,
+            6.935113333333336,
+            7.223600000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD124-A9",
+      "number": 4472,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6179470198675497,
+            0.6265364238410593,
+            0.6130397350993372
+          ],
+          "GT Power_0": [
+            0.016801324503311253,
+            0.01831788079470198,
+            0.017019867549668877
+          ],
+          "IA Power_0": [
+            5.408,
+            4.624410596026491,
+            4.469695364238409
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.914271523178806,
+            4.952437086092716,
+            4.734834437086092
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7351589403973507,
+            0.758833333333333,
+            0.7661799999999993
+          ],
+          "GT Power_0": [
+            0.1294635761589404,
+            0.1290066666666666,
+            0.1259466666666666
+          ],
+          "IA Power_0": [
+            7.366562913907284,
+            7.343673333333333,
+            7.266960000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.780953642384106,
+            8.157873333333338,
+            8.060379999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7608533333333332,
+            0.7584933333333329,
+            0.7461721854304633
+          ],
+          "GT Power_0": [
+            0.12708666666666663,
+            0.12718,
+            0.12739072847682117
+          ],
+          "IA Power_0": [
+            7.028633333333333,
+            7.448046666666667,
+            7.961086092715232
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5781666666666645,
+            8.022513333333332,
+            8.389357615894038
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7905333333333338,
+            0.8027200000000001,
+            0.7941733333333336
+          ],
+          "GT Power_0": [
+            0.28196666666666664,
+            0.28061333333333327,
+            0.2774466666666667
+          ],
+          "IA Power_0": [
+            7.366873333333336,
+            8.063293333333332,
+            7.797653333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.998146666666663,
+            8.827033333333333,
+            8.416986666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7498333333333335,
+            0.7586999999999999,
+            0.7413800000000001
+          ],
+          "GT Power_0": [
+            0.13563999999999993,
+            0.1389333333333333,
+            0.14037333333333327
+          ],
+          "IA Power_0": [
+            7.600073333333332,
+            7.769879999999997,
+            7.441126666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.064393333333333,
+            8.355659999999999,
+            7.907160000000005
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4471,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6020397350993375,
+            0.5972199999999998,
+            0.5994599999999997
+          ],
+          "GT Power_0": [
+            0.043139072847682106,
+            0.014886666666666664,
+            0.014659999999999996
+          ],
+          "IA Power_0": [
+            3.503344370860926,
+            3.3389999999999995,
+            3.902446666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.77501986754967,
+            3.591126666666669,
+            4.1365333333333325
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7353933333333332,
+            0.7506266666666663,
+            0.7358211920529799
+          ],
+          "GT Power_0": [
+            0.12356666666666667,
+            0.11985333333333337,
+            0.12565562913907283
+          ],
+          "IA Power_0": [
+            5.715639999999997,
+            5.767393333333333,
+            5.985092715231787
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.106086666666665,
+            6.3580666666666685,
+            6.380993377483449
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7368609271523175,
+            0.732688741721854,
+            0.7452200000000001
+          ],
+          "GT Power_0": [
+            0.1200728476821192,
+            0.12115231788079465,
+            0.13201999999999997
+          ],
+          "IA Power_0": [
+            5.719370860927155,
+            5.717569536423842,
+            5.810486666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.095920529801323,
+            6.159569536423841,
+            6.316760000000001
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8096800000000002,
+            0.7913576158940402,
+            0.7925933333333333
+          ],
+          "GT Power_0": [
+            0.24934000000000012,
+            0.25336423841059597,
+            0.2509466666666667
+          ],
+          "IA Power_0": [
+            6.013973333333333,
+            6.203284768211918,
+            6.028000000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.68474666666666,
+            6.736834437086092,
+            6.560499999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7411199999999999,
+            0.7407284768211919,
+            0.7403178807947016
+          ],
+          "GT Power_0": [
+            0.13135333333333332,
+            0.12914569536423837,
+            0.12629801324503312
+          ],
+          "IA Power_0": [
+            5.753066666666666,
+            6.038841059602649,
+            5.767682119205294
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.155460000000002,
+            6.456192052980132,
+            6.164721854304638
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4470,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5989999999999999,
+            0.597473333333333,
+            0.5981599999999997
+          ],
+          "GT Power_0": [
+            0.046233333333333314,
+            0.016513333333333335,
+            0.01540666666666667
+          ],
+          "IA Power_0": [
+            3.718873333333334,
+            3.964280000000002,
+            3.6543199999999985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9819000000000013,
+            4.210419999999998,
+            3.8810133333333328
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7339066666666665,
+            0.735026490066225,
+            0.7480199999999996
+          ],
+          "GT Power_0": [
+            0.12943333333333332,
+            0.12981456953642392,
+            0.12960000000000002
+          ],
+          "IA Power_0": [
+            6.46533333333333,
+            6.63594701986755,
+            6.413186666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.879786666666667,
+            7.019092715231787,
+            7.029386666666669
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7332599999999996,
+            0.7320533333333333,
+            0.7380533333333331
+          ],
+          "GT Power_0": [
+            0.12839999999999993,
+            0.12855333333333335,
+            0.12783999999999995
+          ],
+          "IA Power_0": [
+            6.274673333333332,
+            6.403206666666666,
+            6.4603933333333305
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6909600000000005,
+            6.770000000000002,
+            6.841839999999998
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7891000000000001,
+            0.7909602649006624,
+            0.788886666666667
+          ],
+          "GT Power_0": [
+            0.3049333333333333,
+            0.29317218543046336,
+            0.2908666666666667
+          ],
+          "IA Power_0": [
+            6.996973333333332,
+            6.702754966887416,
+            6.782453333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.54718,
+            7.24517880794702,
+            7.342246666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.735226666666666,
+            0.7351533333333328,
+            0.7381866666666668
+          ],
+          "GT Power_0": [
+            0.13508000000000014,
+            0.13908000000000006,
+            0.13864000000000004
+          ],
+          "IA Power_0": [
+            6.678566666666666,
+            6.431026666666669,
+            6.411753333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.052779999999999,
+            6.831493333333338,
+            6.8069000000000015
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD142-A9",
+      "number": 4469,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6294999999999995,
+            0.5987019867549664,
+            0.6101933333333328
+          ],
+          "GT Power_0": [
+            0.04237333333333331,
+            0.016953642384105953,
+            0.016566666666666664
+          ],
+          "IA Power_0": [
+            4.632186666666665,
+            3.7451456953642395,
+            3.7797266666666642
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.987139999999998,
+            3.991337748344371,
+            4.093233333333331
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7380872483221473,
+            0.7378199999999998,
+            0.7339733333333334
+          ],
+          "GT Power_0": [
+            0.13102684563758393,
+            0.13403333333333337,
+            0.1450066666666667
+          ],
+          "IA Power_0": [
+            7.263302013422821,
+            6.568326666666667,
+            6.557946666666665
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.599449664429532,
+            6.927246666666668,
+            6.898793333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            149,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7522533333333328,
+            0.7355066666666664,
+            0.7469666666666666
+          ],
+          "GT Power_0": [
+            0.13337333333333337,
+            0.1325733333333333,
+            0.13164
+          ],
+          "IA Power_0": [
+            6.8695999999999975,
+            6.603446666666667,
+            6.468673333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.335039999999999,
+            7.001066666666666,
+            6.971653333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7951000000000001,
+            0.7910466666666672,
+            0.7906490066225169
+          ],
+          "GT Power_0": [
+            0.27978666666666685,
+            0.2829333333333332,
+            0.2813112582781455
+          ],
+          "IA Power_0": [
+            7.011873333333333,
+            6.873433333333334,
+            7.1686953642384115
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.551806666666668,
+            7.43036,
+            7.726913907284764
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7413933333333331,
+            0.7412466666666665,
+            0.7417599999999998
+          ],
+          "GT Power_0": [
+            0.1530333333333333,
+            0.14445999999999995,
+            0.1400466666666667
+          ],
+          "IA Power_0": [
+            6.7552333333333365,
+            6.668506666666668,
+            7.05186666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.134766666666665,
+            7.071186666666666,
+            7.4222933333333305
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD138-A9",
+      "number": 4468,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6251599999999997,
+            0.5984966887417215,
+            0.5977866666666665
+          ],
+          "GT Power_0": [
+            0.013506666666666665,
+            0.014768211920529807,
+            0.01422666666666666
+          ],
+          "IA Power_0": [
+            3.8250400000000004,
+            3.1435496688741726,
+            3.0339
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.094866666666666,
+            3.3708145695364236,
+            3.2921400000000007
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.763726666666666,
+            0.7376933333333329,
+            0.7350599999999995
+          ],
+          "GT Power_0": [
+            0.11024666666666676,
+            0.11212000000000001,
+            0.10886666666666675
+          ],
+          "IA Power_0": [
+            5.4199733333333295,
+            5.415840000000001,
+            5.397540000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.8728399999999965,
+            5.784206666666666,
+            5.774406666666663
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7539801324503308,
+            0.7362066666666661,
+            0.7361266666666664
+          ],
+          "GT Power_0": [
+            0.1057748344370861,
+            0.10518666666666669,
+            0.10869333333333336
+          ],
+          "IA Power_0": [
+            5.360562913907286,
+            5.420286666666665,
+            5.410919999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.854695364238412,
+            5.781260000000004,
+            5.786993333333337
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8037600000000003,
+            0.8022866666666671,
+            0.8001200000000004
+          ],
+          "GT Power_0": [
+            0.24838666666666678,
+            0.25227333333333346,
+            0.25188000000000005
+          ],
+          "IA Power_0": [
+            5.653320000000001,
+            5.587606666666667,
+            5.60350666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.198666666666664,
+            6.145746666666668,
+            6.147053333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7439466666666662,
+            0.7411133333333335,
+            0.7426999999999994
+          ],
+          "GT Power_0": [
+            0.11842666666666671,
+            0.12275333333333328,
+            0.11716666666666664
+          ],
+          "IA Power_0": [
+            5.515153333333335,
+            5.4889666666666646,
+            5.466813333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.879219999999999,
+            5.898773333333332,
+            5.839873333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD129-A9",
+      "number": 4467,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.60082,
+            0.6121399999999998,
+            0.5987066666666663
+          ],
+          "GT Power_0": [
+            0.033493333333333326,
+            0.0126,
+            0.013479999999999999
+          ],
+          "IA Power_0": [
+            3.3426533333333315,
+            3.4969199999999994,
+            3.7934733333333344
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.6367733333333354,
+            3.818406666666668,
+            4.039813333333332
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7485629139072845,
+            0.7369072847682118,
+            0.7371800000000001
+          ],
+          "GT Power_0": [
+            0.0931721854304636,
+            0.09173509933774843,
+            0.09043999999999995
+          ],
+          "IA Power_0": [
+            6.073688741721857,
+            6.120019867549669,
+            6.076360000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.501622516556295,
+            6.442066225165563,
+            6.440446666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7373399999999997,
+            0.7343399999999995,
+            0.7367466666666667
+          ],
+          "GT Power_0": [
+            0.09830000000000001,
+            0.08888666666666667,
+            0.09255333333333335
+          ],
+          "IA Power_0": [
+            6.147493333333332,
+            6.373446666666665,
+            6.105626666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.436879999999999,
+            6.704993333333334,
+            6.414366666666665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7920264900662257,
+            0.7918333333333339,
+            0.8086600000000004
+          ],
+          "GT Power_0": [
+            0.2082052980132451,
+            0.20748666666666674,
+            0.20967999999999998
+          ],
+          "IA Power_0": [
+            6.435635761589402,
+            6.493159999999998,
+            6.286653333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.869801324503316,
+            6.970913333333333,
+            6.904746666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7697666666666662,
+            0.7396466666666665,
+            0.7678599999999998
+          ],
+          "GT Power_0": [
+            0.10370666666666671,
+            0.0969466666666667,
+            0.0994666666666667
+          ],
+          "IA Power_0": [
+            6.223646666666669,
+            6.414426666666665,
+            6.149493333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.979260000000003,
+            6.774326666666667,
+            6.818493333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4466,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6058799999999998,
+            0.5973066666666662,
+            0.6013333333333329
+          ],
+          "GT Power_0": [
+            0.044019999999999976,
+            0.015020000000000007,
+            0.015319999999999995
+          ],
+          "IA Power_0": [
+            3.5765666666666673,
+            3.496113333333332,
+            4.334566666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.909326666666665,
+            3.7594999999999996,
+            4.574566666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7395761589403972,
+            0.7758133333333328,
+            0.7380133333333331
+          ],
+          "GT Power_0": [
+            0.12047019867549666,
+            0.12792666666666674,
+            0.12227333333333332
+          ],
+          "IA Power_0": [
+            6.414437086092714,
+            7.479999999999995,
+            6.620480000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8108211920529795,
+            8.035413333333334,
+            6.969253333333331
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7350733333333334,
+            0.7353399999999995,
+            0.7522317880794699
+          ],
+          "GT Power_0": [
+            0.12197999999999998,
+            0.12215333333333338,
+            0.12538410596026492
+          ],
+          "IA Power_0": [
+            6.394839999999997,
+            6.396239999999998,
+            6.318304635761588
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.818860000000001,
+            6.776199999999998,
+            6.762841059602651
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7902200000000004,
+            0.7930533333333339,
+            0.8071800000000002
+          ],
+          "GT Power_0": [
+            0.27233333333333337,
+            0.2613733333333335,
+            0.25878000000000007
+          ],
+          "IA Power_0": [
+            6.676913333333332,
+            7.071300000000001,
+            6.69718
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.224539999999998,
+            7.609806666666665,
+            7.275019999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7396291390728473,
+            0.7383642384105956,
+            0.737906666666666
+          ],
+          "GT Power_0": [
+            0.13218543046357611,
+            0.1321456953642384,
+            0.13160000000000005
+          ],
+          "IA Power_0": [
+            6.541735099337744,
+            6.783635761589408,
+            6.537006666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.894999999999997,
+            7.151099337748344,
+            6.919940000000003
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4465,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5982666666666665,
+            0.5996999999999996,
+            0.6184437086092714
+          ],
+          "GT Power_0": [
+            0.03277333333333332,
+            0.014719999999999999,
+            0.015304635761589398
+          ],
+          "IA Power_0": [
+            3.9584199999999994,
+            3.9064866666666673,
+            3.9877152317880817
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.333613333333334,
+            4.153306666666666,
+            4.346999999999999
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352199999999994,
+            0.7575099337748341,
+            0.7499733333333329
+          ],
+          "GT Power_0": [
+            0.10578000000000008,
+            0.10907947019867552,
+            0.10593333333333331
+          ],
+          "IA Power_0": [
+            6.773306666666665,
+            7.120019867549668,
+            6.820506666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.117946666666669,
+            7.852788079470197,
+            7.246713333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7354399999999995,
+            0.7682999999999996,
+            0.7338733333333334
+          ],
+          "GT Power_0": [
+            0.10842666666666669,
+            0.10892666666666666,
+            0.10808
+          ],
+          "IA Power_0": [
+            6.864859999999996,
+            7.73857333333333,
+            6.810653333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.180233333333333,
+            8.324613333333337,
+            7.163593333333335
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7924066666666669,
+            0.7913266666666668,
+            0.807145695364239
+          ],
+          "GT Power_0": [
+            0.2373133333333333,
+            0.24086666666666653,
+            0.24643046357615894
+          ],
+          "IA Power_0": [
+            7.178833333333335,
+            7.099366666666667,
+            7.112059602649008
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.692873333333334,
+            7.61446,
+            7.776708609271522
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7392251655629136,
+            0.7399337748344369,
+            0.7412799999999996
+          ],
+          "GT Power_0": [
+            0.1159337748344371,
+            0.11436423841059604,
+            0.11464000000000003
+          ],
+          "IA Power_0": [
+            7.279403973509936,
+            7.032350993377482,
+            7.015019999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.6287019867549635,
+            7.399821192052981,
+            7.303939999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD145-A9",
+      "number": 4464,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6147266666666664,
+            0.6297814569536423,
+            0.6248476821192053
+          ],
+          "GT Power_0": [
+            0.05016666666666664,
+            0.017668874172185427,
+            0.02454304635761588
+          ],
+          "IA Power_0": [
+            4.0831066666666676,
+            4.056324503311258,
+            4.230450331125827
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.397766666666668,
+            4.455668874172188,
+            4.579072847682117
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7472980132450335,
+            0.7629337748344367,
+            0.7756891891891893
+          ],
+          "GT Power_0": [
+            0.10677483443708607,
+            0.10511920529801329,
+            0.10397297297297299
+          ],
+          "IA Power_0": [
+            6.451046357615894,
+            7.3198079470198705,
+            7.868540540540538
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.848874172185434,
+            7.747344370860931,
+            8.280189189189189
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            148
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7651920529801323,
+            0.7492317880794693,
+            0.7357086092715228
+          ],
+          "GT Power_0": [
+            0.10423841059602652,
+            0.10595364238410597,
+            0.10537086092715232
+          ],
+          "IA Power_0": [
+            7.582225165562914,
+            6.518821192052977,
+            6.858423841059604
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.031132450331128,
+            7.209735099337746,
+            7.319119205298014
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8072466666666668,
+            0.8057152317880797,
+            0.8080466666666667
+          ],
+          "GT Power_0": [
+            0.2583066666666665,
+            0.25067549668874173,
+            0.26704666666666665
+          ],
+          "IA Power_0": [
+            6.754800000000002,
+            6.648013245033113,
+            6.875259999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.381046666666662,
+            7.302582781456951,
+            7.501299999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7319205298013246,
+            0.7405629139072847,
+            0.7598866666666665
+          ],
+          "GT Power_0": [
+            0.11449006622516557,
+            0.1155629139072848,
+            0.1169466666666667
+          ],
+          "IA Power_0": [
+            7.079245033112584,
+            6.443357615894039,
+            6.387006666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.532880794701989,
+            6.838185430463578,
+            6.930386666666666
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD132-A9",
+      "number": 4463,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6121324503311254,
+            0.599311258278145,
+            0.5979205298013244
+          ],
+          "GT Power_0": [
+            0.044655629139072825,
+            0.014178807947019865,
+            0.01389403973509934
+          ],
+          "IA Power_0": [
+            3.8247682119205275,
+            4.083066225165562,
+            3.7574503311258263
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.212907284768214,
+            4.3385496688741725,
+            3.957615894039736
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7373509933774833,
+            0.7367284768211919,
+            0.7341733333333333
+          ],
+          "GT Power_0": [
+            0.0987814569536424,
+            0.09696026490066227,
+            0.09937333333333336
+          ],
+          "IA Power_0": [
+            6.707668874172187,
+            7.019152317880792,
+            6.8247533333333354
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.0776423841059595,
+            7.3563178807946965,
+            7.136213333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7552133333333333,
+            0.7327799999999999,
+            0.7372119205298008
+          ],
+          "GT Power_0": [
+            0.09716666666666665,
+            0.09771333333333337,
+            0.09876821192052977
+          ],
+          "IA Power_0": [
+            6.816313333333333,
+            6.762913333333333,
+            6.785496688741722
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.308706666666666,
+            7.069166666666669,
+            7.15054966887417
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8115000000000003,
+            0.8115800000000006,
+            0.7964768211920531
+          ],
+          "GT Power_0": [
+            0.21712666666666677,
+            0.21452000000000007,
+            0.21718543046357613
+          ],
+          "IA Power_0": [
+            7.773606666666668,
+            6.936680000000001,
+            7.067662251655628
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.29698,
+            7.548640000000001,
+            7.535960264900666
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7410933333333333,
+            0.7573509933774837,
+            0.744092715231788
+          ],
+          "GT Power_0": [
+            0.10207333333333331,
+            0.09959602649006621,
+            0.10298013245033116
+          ],
+          "IA Power_0": [
+            7.200280000000001,
+            6.902543046357615,
+            6.898152317880792
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4911200000000004,
+            7.437993377483437,
+            7.252092715231789
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4462,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6085827814569535,
+            0.5969799999999997,
+            0.6141192052980129
+          ],
+          "GT Power_0": [
+            0.035066225165562896,
+            0.01367333333333333,
+            0.013370860927152315
+          ],
+          "IA Power_0": [
+            3.275099337748344,
+            3.505006666666665,
+            3.2317152317880784
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.640192052980132,
+            3.7562733333333327,
+            3.586741721854305
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7371266666666662,
+            0.7360066666666666,
+            0.7461258278145693
+          ],
+          "GT Power_0": [
+            0.09169333333333332,
+            0.09127333333333333,
+            0.09054966887417218
+          ],
+          "IA Power_0": [
+            5.742980000000001,
+            5.669579999999999,
+            5.639794701986753
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.097313333333335,
+            6.037373333333332,
+            6.0784503311258264
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7640799999999999,
+            0.7473933333333327,
+            0.7539999999999994
+          ],
+          "GT Power_0": [
+            0.09314666666666675,
+            0.09063333333333334,
+            0.08919333333333336
+          ],
+          "IA Power_0": [
+            6.041006666666664,
+            5.719993333333336,
+            6.160480000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.8135733333333315,
+            6.150120000000001,
+            6.50563333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7926225165562911,
+            0.791126666666667,
+            0.7919127516778527
+          ],
+          "GT Power_0": [
+            0.20480794701986743,
+            0.2073933333333334,
+            0.20452348993288597
+          ],
+          "IA Power_0": [
+            6.2945695364238405,
+            5.965746666666666,
+            5.958006711409397
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.750450331125829,
+            6.4508333333333345,
+            6.459268456375838
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7564399999999999,
+            0.7411266666666664,
+            0.7412933333333334
+          ],
+          "GT Power_0": [
+            0.09654000000000001,
+            0.09644000000000004,
+            0.09828666666666673
+          ],
+          "IA Power_0": [
+            6.065873333333338,
+            5.765300000000001,
+            5.819193333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.572626666666669,
+            6.118053333333332,
+            6.170593333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD120-A9",
+      "number": 4461,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6000066225165562,
+            0.597443708609271,
+            0.597913333333333
+          ],
+          "GT Power_0": [
+            0.015039735099337748,
+            0.015947019867549664,
+            0.015813333333333335
+          ],
+          "IA Power_0": [
+            3.8068874172185425,
+            3.9710794701986742,
+            3.6801466666666656
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.050728476821191,
+            4.216258278145694,
+            3.923386666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7344733333333329,
+            0.7517152317880792,
+            0.7337799999999994
+          ],
+          "GT Power_0": [
+            0.12179333333333342,
+            0.1262582781456954,
+            0.12531333333333322
+          ],
+          "IA Power_0": [
+            6.43378666666667,
+            6.704145695364238,
+            6.379666666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.828466666666668,
+            7.216980132450334,
+            6.796179999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7521866666666664,
+            0.732333333333333,
+            0.7346933333333329
+          ],
+          "GT Power_0": [
+            0.1185333333333334,
+            0.12195999999999993,
+            0.12041333333333332
+          ],
+          "IA Power_0": [
+            6.4412600000000015,
+            6.741246666666668,
+            6.412553333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9455933333333375,
+            7.143246666666667,
+            6.813233333333331
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7928800000000004,
+            0.7921866666666669,
+            0.8053400000000005
+          ],
+          "GT Power_0": [
+            0.2570533333333333,
+            0.26175333333333345,
+            0.2582533333333334
+          ],
+          "IA Power_0": [
+            6.627093333333333,
+            6.671526666666665,
+            6.656406666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.204226666666671,
+            7.150766666666665,
+            7.335273333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.741033112582781,
+            0.7405430463576156,
+            0.7650733333333338
+          ],
+          "GT Power_0": [
+            0.1319867549668874,
+            0.13033112582781461,
+            0.13114000000000012
+          ],
+          "IA Power_0": [
+            6.730013245033113,
+            6.692364238410597,
+            7.115386666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.159695364238414,
+            7.0910927152317935,
+            7.505099999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD153-A9",
+      "number": 4460,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6153666666666665,
+            0.5981721854304636,
+            0.6116133333333329
+          ],
+          "GT Power_0": [
+            0.014013333333333329,
+            0.014284768211920528,
+            0.014179999999999998
+          ],
+          "IA Power_0": [
+            3.7699333333333342,
+            3.1734370860927146,
+            3.47922
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.062686666666668,
+            3.448675496688743,
+            3.81718
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7361799999999998,
+            0.7350266666666664,
+            0.7369133333333326
+          ],
+          "GT Power_0": [
+            0.09447333333333345,
+            0.09639999999999999,
+            0.09394000000000002
+          ],
+          "IA Power_0": [
+            5.604940000000003,
+            5.574400000000001,
+            5.920933333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.97946,
+            5.94104666666667,
+            6.273886666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7589205298013242,
+            0.7349599999999995,
+            0.7338733333333329
+          ],
+          "GT Power_0": [
+            0.10076821192052983,
+            0.09488,
+            0.09382000000000003
+          ],
+          "IA Power_0": [
+            5.97966887417219,
+            5.688793333333329,
+            5.781780000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.489933774834436,
+            6.019926666666668,
+            6.15936
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.790773333333334,
+            0.7915800000000004,
+            0.7918400000000007
+          ],
+          "GT Power_0": [
+            0.21188000000000004,
+            0.21166,
+            0.21155333333333326
+          ],
+          "IA Power_0": [
+            5.7987400000000004,
+            5.817506666666668,
+            5.7466466666666705
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.306353333333333,
+            6.299606666666666,
+            6.279280000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7524266666666667,
+            0.7562599999999995,
+            0.7531666666666667
+          ],
+          "GT Power_0": [
+            0.1033133333333334,
+            0.10259333333333337,
+            0.10282000000000002
+          ],
+          "IA Power_0": [
+            5.662080000000004,
+            5.919179999999998,
+            5.607573333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.125520000000003,
+            6.400506666666669,
+            6.089873333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4459,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6076466666666669,
+            0.5988344370860924,
+            0.6119006622516552
+          ],
+          "GT Power_0": [
+            0.04281333333333331,
+            0.013509933774834431,
+            0.014105960264900661
+          ],
+          "IA Power_0": [
+            3.197713333333333,
+            3.3986225165562907,
+            3.1517483443708625
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5386199999999994,
+            3.6592251655629124,
+            3.470622516556291
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7519536423841054,
+            0.7361599999999999,
+            0.732693333333333
+          ],
+          "GT Power_0": [
+            0.09598013245033117,
+            0.09945333333333334,
+            0.09750000000000002
+          ],
+          "IA Power_0": [
+            5.569430463576161,
+            5.550733333333335,
+            5.466826666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.044913907284768,
+            5.900993333333332,
+            5.852653333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7363999999999999,
+            0.7349735099337743,
+            0.7350860927152315
+          ],
+          "GT Power_0": [
+            0.0988666666666667,
+            0.09547019867549673,
+            0.09693377483443712
+          ],
+          "IA Power_0": [
+            5.435279999999999,
+            5.541450331125828,
+            5.4156158940397345
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.837180000000004,
+            5.891344370860924,
+            5.7895960264900665
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8071866666666667,
+            0.8158400000000006,
+            0.8077333333333336
+          ],
+          "GT Power_0": [
+            0.21579333333333334,
+            0.23334666666666665,
+            0.2205533333333334
+          ],
+          "IA Power_0": [
+            5.949926666666665,
+            5.696053333333336,
+            5.682313333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.470559999999999,
+            6.467653333333332,
+            6.3356
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7488666666666663,
+            0.7383733333333332,
+            0.7535199999999999
+          ],
+          "GT Power_0": [
+            0.10704666666666668,
+            0.10503999999999995,
+            0.12068666666666668
+          ],
+          "IA Power_0": [
+            6.039966666666667,
+            5.538100000000003,
+            5.595220000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.453686666666666,
+            5.933233333333333,
+            6.119959999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD123-A9",
+      "number": 4458,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5984105960264896,
+            0.5975066666666662,
+            0.5978675496688739
+          ],
+          "GT Power_0": [
+            0.014814569536423842,
+            0.015580000000000002,
+            0.014708609271523182
+          ],
+          "IA Power_0": [
+            3.7750993377483466,
+            3.7498199999999997,
+            4.046304635761589
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.05051655629139,
+            3.9998733333333334,
+            4.259178807947019
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7376066666666666,
+            0.7351466666666663,
+            0.7346133333333332
+          ],
+          "GT Power_0": [
+            0.11940000000000002,
+            0.1219133333333334,
+            0.12332000000000008
+          ],
+          "IA Power_0": [
+            6.948779999999996,
+            6.706266666666664,
+            6.934993333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.3022599999999995,
+            7.061706666666667,
+            7.3425
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7832066666666665,
+            0.733046357615894,
+            0.732993333333333
+          ],
+          "GT Power_0": [
+            0.12198000000000003,
+            0.11790728476821195,
+            0.11682000000000002
+          ],
+          "IA Power_0": [
+            7.254126666666668,
+            6.6509139072847665,
+            6.6471133333333325
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.133099999999997,
+            7.002311258278145,
+            6.996400000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7911721854304643,
+            0.7905933333333344,
+            0.791073333333334
+          ],
+          "GT Power_0": [
+            0.2492251655629138,
+            0.25084666666666666,
+            0.24965999999999988
+          ],
+          "IA Power_0": [
+            6.9759933774834435,
+            7.274066666666666,
+            7.2113066666666645
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4833046357615896,
+            7.790099999999999,
+            7.7420866666666655
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7394466666666663,
+            0.7386266666666667,
+            0.7385364238410594
+          ],
+          "GT Power_0": [
+            0.13001333333333331,
+            0.12901333333333323,
+            0.12947019867549667
+          ],
+          "IA Power_0": [
+            6.789326666666667,
+            6.8422399999999985,
+            7.090033112582777
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.14564666666667,
+            7.214406666666667,
+            7.454536423841058
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD133-A9",
+      "number": 4457,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5996754966887414,
+            0.5973509933774833,
+            0.6106556291390726
+          ],
+          "GT Power_0": [
+            0.03365562913907282,
+            0.01588079470198675,
+            0.016377483443708606
+          ],
+          "IA Power_0": [
+            3.4297682119205297,
+            3.345238410596027,
+            3.6208344370860925
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.691496688741722,
+            3.587781456953643,
+            3.9706490066225166
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7343774834437083,
+            0.7319133333333329,
+            0.7336887417218542
+          ],
+          "GT Power_0": [
+            0.12978807947019866,
+            0.13215999999999992,
+            0.13270860927152328
+          ],
+          "IA Power_0": [
+            5.850165562913906,
+            6.173953333333334,
+            5.92737086092715
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.23632450331126,
+            6.707893333333332,
+            6.335331125827812
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7341986754966882,
+            0.731673333333333,
+            0.750867549668874
+          ],
+          "GT Power_0": [
+            0.14052980132450335,
+            0.13399999999999995,
+            0.13015894039735104
+          ],
+          "IA Power_0": [
+            5.886642384105961,
+            5.810399999999998,
+            5.8944304635761595
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.213019867549667,
+            6.208759999999998,
+            6.410596026490069
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7905960264900667,
+            0.8146357615894043,
+            0.788741721854305
+          ],
+          "GT Power_0": [
+            0.2673841059602649,
+            0.26542384105960265,
+            0.26451655629139076
+          ],
+          "IA Power_0": [
+            6.335662251655631,
+            6.126019867549671,
+            6.102039735099335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9385033112582795,
+            7.003947019867548,
+            6.6577880794702
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7400331125827806,
+            0.7387066666666663,
+            0.7382599999999997
+          ],
+          "GT Power_0": [
+            0.13710596026490063,
+            0.14145333333333332,
+            0.13916666666666672
+          ],
+          "IA Power_0": [
+            6.261490066225164,
+            5.921846666666665,
+            5.971133333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.67001986754967,
+            6.367899999999999,
+            6.405013333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD135-A9",
+      "number": 4456,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5978344370860924,
+            0.6110066225165559,
+            0.6111333333333333
+          ],
+          "GT Power_0": [
+            0.021337748344370865,
+            0.01987417218543047,
+            0.020660000000000005
+          ],
+          "IA Power_0": [
+            4.327430463576161,
+            4.610258278145697,
+            4.233759999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.551033112582782,
+            4.90425165562914,
+            4.546566666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7316199999999992,
+            0.7319668874172183,
+            0.7331466666666658
+          ],
+          "GT Power_0": [
+            0.14999333333333337,
+            0.1650066225165563,
+            0.15293333333333328
+          ],
+          "IA Power_0": [
+            7.583760000000003,
+            8.072238410596025,
+            7.618473333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.953233333333337,
+            8.380476821192056,
+            8.059213333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7320860927152313,
+            0.732253333333333,
+            0.7324933333333331
+          ],
+          "GT Power_0": [
+            0.15116556291390723,
+            0.1480066666666667,
+            0.15250666666666665
+          ],
+          "IA Power_0": [
+            7.548006622516558,
+            7.686193333333333,
+            7.64736
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.959589403973511,
+            8.04822,
+            8.045866666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7864600000000005,
+            0.8149533333333332,
+            0.7904701986754971
+          ],
+          "GT Power_0": [
+            0.3343266666666666,
+            0.3629933333333336,
+            0.32967549668874174
+          ],
+          "IA Power_0": [
+            8.35322,
+            10.89916666666666,
+            9.748218543046358
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.949846666666664,
+            11.569106666666663,
+            10.375086092715232
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7532466666666666,
+            0.7409533333333327,
+            0.73902
+          ],
+          "GT Power_0": [
+            0.15926000000000004,
+            0.15938000000000008,
+            0.1563999999999999
+          ],
+          "IA Power_0": [
+            9.671253333333333,
+            9.058166666666663,
+            9.29421333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            10.212220000000006,
+            9.47128666666667,
+            9.77129333333333
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4455,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6070133333333328,
+            0.6240529801324504,
+            0.608701986754967
+          ],
+          "GT Power_0": [
+            0.03181333333333332,
+            0.01463576158940397,
+            0.014211920529801324
+          ],
+          "IA Power_0": [
+            3.408393333333331,
+            3.117754966887418,
+            3.0597814569536412
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7760333333333325,
+            3.7136026490066225,
+            3.3417019867549667
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7344799999999996,
+            0.7366953642384101,
+            0.7333333333333335
+          ],
+          "GT Power_0": [
+            0.10383333333333335,
+            0.10116556291390733,
+            0.09568000000000004
+          ],
+          "IA Power_0": [
+            5.574919999999999,
+            5.3766556291390755,
+            5.35618
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.954266666666668,
+            5.74969536423841,
+            5.652153333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7341333333333331,
+            0.740852348993288,
+            0.7432866666666662
+          ],
+          "GT Power_0": [
+            0.09580666666666669,
+            0.09608724832214761,
+            0.0943466666666666
+          ],
+          "IA Power_0": [
+            5.328186666666666,
+            5.8795436241610775,
+            5.9719733333333345
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.700226666666666,
+            6.232080536912754,
+            6.3487866666666655
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            149,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7910800000000007,
+            0.8007152317880797,
+            0.8388344370860933
+          ],
+          "GT Power_0": [
+            0.22534666666666672,
+            0.21472847682119206,
+            0.21619205298013253
+          ],
+          "IA Power_0": [
+            5.529099999999995,
+            5.58558940397351,
+            5.845225165562909
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.064573333333332,
+            6.122841059602652,
+            6.779086092715229
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7405266666666664,
+            0.7385199999999997,
+            0.7557199999999995
+          ],
+          "GT Power_0": [
+            0.1054333333333333,
+            0.10623333333333335,
+            0.10236666666666666
+          ],
+          "IA Power_0": [
+            5.484046666666669,
+            5.477806666666667,
+            5.645173333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.879679999999999,
+            5.862046666666668,
+            6.134793333333332
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD131-A9",
+      "number": 4454,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.602646666666666,
+            0.607980132450331,
+            0.6105666666666664
+          ],
+          "GT Power_0": [
+            0.03481333333333333,
+            0.015860927152317877,
+            0.015260000000000004
+          ],
+          "IA Power_0": [
+            3.913053333333333,
+            3.829602649006621,
+            3.9212800000000017
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.110213333333336,
+            4.129953642384108,
+            4.233606666666669
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7419533333333334,
+            0.7372466666666665,
+            0.7395666666666665
+          ],
+          "GT Power_0": [
+            0.12009999999999996,
+            0.12309999999999997,
+            0.11586000000000003
+          ],
+          "IA Power_0": [
+            6.611693333333327,
+            6.17948,
+            6.150126666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.922006666666667,
+            6.539506666666665,
+            6.508246666666667
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7385733333333333,
+            0.7619199999999999,
+            0.741013333333333
+          ],
+          "GT Power_0": [
+            0.12095333333333338,
+            0.11768000000000003,
+            0.11467333333333336
+          ],
+          "IA Power_0": [
+            6.5462466666666685,
+            6.253106666666668,
+            6.260146666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.870413333333334,
+            6.661713333333333,
+            6.549866666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8102933333333336,
+            0.8001733333333334,
+            0.81358
+          ],
+          "GT Power_0": [
+            0.24545333333333333,
+            0.24814666666666668,
+            0.27847333333333346
+          ],
+          "IA Power_0": [
+            6.3854000000000015,
+            6.450473333333333,
+            6.7591600000000005
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.926973333333331,
+            6.923206666666664,
+            7.284333333333339
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7448599999999999,
+            0.7432133333333333,
+            0.75028
+          ],
+          "GT Power_0": [
+            0.12806,
+            0.12396666666666668,
+            0.13126666666666673
+          ],
+          "IA Power_0": [
+            6.385920000000002,
+            6.242506666666667,
+            6.991379999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.685206666666668,
+            6.59344,
+            7.333686666666669
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD180-A9",
+      "number": 4453,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.597913907284768,
+            0.5974701986754966,
+            0.6118145695364237
+          ],
+          "GT Power_0": [
+            0.01570198675496689,
+            0.016125827814569536,
+            0.015907284768211922
+          ],
+          "IA Power_0": [
+            4.255635761589404,
+            3.8940331125827807,
+            3.871019867549668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.4785960264900675,
+            4.149470198675497,
+            4.244655629139075
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7461324503311255,
+            0.7436622516556287,
+            0.7306733333333328
+          ],
+          "GT Power_0": [
+            0.1258145695364239,
+            0.12982781456953646,
+            0.12644666666666665
+          ],
+          "IA Power_0": [
+            7.188735099337748,
+            6.9075827814569495,
+            6.876859999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.670854304635763,
+            7.309980132450329,
+            7.243753333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7303443708609267,
+            0.732092715231788,
+            0.7387199999999999
+          ],
+          "GT Power_0": [
+            0.12580132450331127,
+            0.12482781456953645,
+            0.12754000000000004
+          ],
+          "IA Power_0": [
+            6.876748344370859,
+            6.881986754966888,
+            7.227706666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.225364238410599,
+            7.187178807947018,
+            7.6216666666666715
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8002400000000004,
+            0.7858133333333339,
+            0.7856533333333336
+          ],
+          "GT Power_0": [
+            0.2793133333333334,
+            0.27669999999999995,
+            0.3079333333333334
+          ],
+          "IA Power_0": [
+            7.244986666666664,
+            7.215300000000006,
+            7.193619999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.881586666666661,
+            7.899853333333338,
+            7.73704
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7360266666666665,
+            0.7351721854304635,
+            0.7354133333333326
+          ],
+          "GT Power_0": [
+            0.13873333333333343,
+            0.13675496688741723,
+            0.13222666666666671
+          ],
+          "IA Power_0": [
+            6.995526666666667,
+            7.339039735099336,
+            7.015713333333335
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.389386666666666,
+            7.693456953642384,
+            7.361206666666667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD121-A9",
+      "number": 4452,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5989066666666663,
+            0.61612,
+            0.599033333333333
+          ],
+          "GT Power_0": [
+            0.041686666666666636,
+            0.01636,
+            0.01546
+          ],
+          "IA Power_0": [
+            3.994593333333333,
+            4.357893333333333,
+            3.9462399999999973
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.236026666666667,
+            4.768393333333333,
+            4.195773333333335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7546599999999993,
+            0.7450399999999995,
+            0.7358066666666663
+          ],
+          "GT Power_0": [
+            0.11623333333333333,
+            0.11654000000000003,
+            0.11668666666666672
+          ],
+          "IA Power_0": [
+            6.838653333333335,
+            6.992413333333331,
+            6.860333333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.36339333333333,
+            7.397206666666667,
+            7.2204466666666685
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.752886666666666,
+            0.7369133333333331,
+            0.7341066666666662
+          ],
+          "GT Power_0": [
+            0.11493333333333337,
+            0.12004000000000002,
+            0.11396
+          ],
+          "IA Power_0": [
+            7.156500000000001,
+            6.838213333333335,
+            6.8870999999999984
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.718166666666668,
+            7.2516533333333335,
+            7.202526666666666
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7961333333333337,
+            0.7941666666666669,
+            0.7930733333333339
+          ],
+          "GT Power_0": [
+            0.25528,
+            0.25825333333333345,
+            0.2549133333333333
+          ],
+          "IA Power_0": [
+            7.614679999999997,
+            7.390159999999999,
+            7.064959999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.118626666666668,
+            7.9182533333333325,
+            7.587206666666668
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8077333333333334,
+            0.7406666666666666,
+            0.7670799999999995
+          ],
+          "GT Power_0": [
+            0.12051333333333328,
+            0.12457333333333336,
+            0.12238000000000009
+          ],
+          "IA Power_0": [
+            9.530886666666673,
+            6.903299999999998,
+            6.9929599999999965
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            10.047673333333334,
+            7.3015466666666695,
+            7.914986666666661
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD177-A9",
+      "number": 4451,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6058133333333331,
+            0.598133333333333,
+            0.5985629139072844
+          ],
+          "GT Power_0": [
+            0.03754666666666665,
+            0.013713333333333336,
+            0.014801324503311257
+          ],
+          "IA Power_0": [
+            4.060399999999999,
+            4.020373333333335,
+            3.9721589403973505
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.4404666666666675,
+            4.239746666666665,
+            4.220364238410597
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7336821192052974,
+            0.7527152317880791,
+            0.734801324503311
+          ],
+          "GT Power_0": [
+            0.10889403973509933,
+            0.11244370860927154,
+            0.10978807947019867
+          ],
+          "IA Power_0": [
+            7.2098543046357655,
+            6.9358211920529795,
+            7.038039735099337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.642609271523177,
+            7.463721854304634,
+            7.34506622516556
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7500399999999994,
+            0.7334599999999996,
+            0.7323199999999999
+          ],
+          "GT Power_0": [
+            0.1119,
+            0.11150000000000009,
+            0.10806
+          ],
+          "IA Power_0": [
+            7.183993333333336,
+            7.068760000000002,
+            6.942640000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.688999999999999,
+            7.382833333333336,
+            7.270313333333337
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7891600000000007,
+            0.7902466666666674,
+            0.8059200000000002
+          ],
+          "GT Power_0": [
+            0.24101999999999998,
+            0.2425666666666666,
+            0.2451666666666667
+          ],
+          "IA Power_0": [
+            7.593779999999999,
+            7.354620000000003,
+            7.300306666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.09508666666667,
+            7.870746666666665,
+            7.94648666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7392733333333332,
+            0.7566490066225163,
+            0.7405533333333332
+          ],
+          "GT Power_0": [
+            0.12088666666666666,
+            0.12222516556291395,
+            0.12255333333333335
+          ],
+          "IA Power_0": [
+            7.126839999999999,
+            7.134986754966886,
+            7.386760000000004
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.49584,
+            7.6761589403973485,
+            7.756746666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD137-A9",
+      "number": 4450,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6060066666666662,
+            0.6091456953642383,
+            0.5975066666666661
+          ],
+          "GT Power_0": [
+            0.04259999999999998,
+            0.013947019867549667,
+            0.014386666666666664
+          ],
+          "IA Power_0": [
+            4.247593333333333,
+            4.4277549668874165,
+            4.137826666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.568006666666667,
+            4.706271523178809,
+            4.400640000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.732693333333333,
+            0.7344701986754966,
+            0.7323199999999997
+          ],
+          "GT Power_0": [
+            0.10732,
+            0.10955629139072852,
+            0.11048
+          ],
+          "IA Power_0": [
+            7.405593333333335,
+            7.355801324503312,
+            7.408773333333338
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.721446666666664,
+            7.696615894039736,
+            7.777946666666664
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7339199999999994,
+            0.7313907284768207,
+            0.7487086092715233
+          ],
+          "GT Power_0": [
+            0.1069266666666667,
+            0.11215894039735104,
+            0.10943708609271524
+          ],
+          "IA Power_0": [
+            7.461613333333333,
+            7.436251655629138,
+            7.3454238410596036
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.824853333333333,
+            7.728920529801328,
+            7.876364238410594
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7936400000000002,
+            0.7915562913907292,
+            0.7881466666666671
+          ],
+          "GT Power_0": [
+            0.23606000000000008,
+            0.25666887417218553,
+            0.23613999999999996
+          ],
+          "IA Power_0": [
+            8.518913333333334,
+            7.669913907284763,
+            7.766433333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            9.017500000000002,
+            8.137655629139076,
+            8.267073333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7664701986754965,
+            0.7382133333333332,
+            0.7538133333333331
+          ],
+          "GT Power_0": [
+            0.11644370860927149,
+            0.11600666666666666,
+            0.12046000000000004
+          ],
+          "IA Power_0": [
+            8.551112582781453,
+            7.583606666666663,
+            7.664053333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.999231788079467,
+            7.930460000000003,
+            8.212646666666664
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4449,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5975165562913907,
+            0.5970331125827812,
+            0.5970132450331123
+          ],
+          "GT Power_0": [
+            0.03905960264900661,
+            0.014523178807947023,
+            0.01519867549668874
+          ],
+          "IA Power_0": [
+            3.263516556291391,
+            3.202291390728478,
+            3.2337417218543036
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5284569536423835,
+            3.4590728476821195,
+            3.4505827814569545
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7362781456953639,
+            0.7383733333333331,
+            0.7341986754966887
+          ],
+          "GT Power_0": [
+            0.11665562913907283,
+            0.11820666666666672,
+            0.11791390728476826
+          ],
+          "IA Power_0": [
+            5.806715231788079,
+            5.590086666666669,
+            5.589384105960268
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.187079470198676,
+            5.985713333333332,
+            5.971264900662249
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7337933333333332,
+            0.7532399999999998,
+            0.734433333333333
+          ],
+          "GT Power_0": [
+            0.11722000000000002,
+            0.11467333333333331,
+            0.11947333333333335
+          ],
+          "IA Power_0": [
+            5.803320000000002,
+            5.609506666666667,
+            5.568286666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.190753333333333,
+            6.123140000000001,
+            5.954113333333332
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7914039735099337,
+            0.8047947019867554,
+            0.7914304635761596
+          ],
+          "GT Power_0": [
+            0.24262913907284772,
+            0.2400529801324504,
+            0.24160927152317885
+          ],
+          "IA Power_0": [
+            5.992609271523182,
+            5.980112582781458,
+            5.897026490066224
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.549026490066223,
+            6.568860927152315,
+            6.405483443708608
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7469599999999997,
+            0.7572266666666665,
+            0.7418211920529801
+          ],
+          "GT Power_0": [
+            0.12838666666666662,
+            0.1301266666666666,
+            0.1268609271523178
+          ],
+          "IA Power_0": [
+            5.683193333333335,
+            5.661039999999999,
+            5.960867549668876
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.113740000000001,
+            6.140806666666664,
+            6.327072847682119
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD160-A9",
+      "number": 4448,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6053576158940394,
+            0.5978476821192049,
+            0.5991456953642382
+          ],
+          "GT Power_0": [
+            0.036357615894039706,
+            0.014682119205298012,
+            0.014682119205298013
+          ],
+          "IA Power_0": [
+            3.240344370860926,
+            3.482688741721855,
+            3.195682119205299
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.5871854304635766,
+            3.7135099337748367,
+            3.448443708609272
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7335430463576155,
+            0.7342251655629137,
+            0.7484999999999996
+          ],
+          "GT Power_0": [
+            0.11753642384105964,
+            0.11731125827814566,
+            0.11624000000000002
+          ],
+          "IA Power_0": [
+            5.5802980132450335,
+            5.794688741721858,
+            5.566739999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.917006622516557,
+            6.172695364238407,
+            5.995313333333329
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7520132450331123,
+            0.7353399999999997,
+            0.746211920529801
+          ],
+          "GT Power_0": [
+            0.1139470198675497,
+            0.1122400000000001,
+            0.11851655629139075
+          ],
+          "IA Power_0": [
+            5.566874172185433,
+            5.860026666666667,
+            5.600794701986754
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.00146357615894,
+            6.2197000000000005,
+            6.056794701986758
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7897400000000003,
+            0.8084066666666674,
+            0.792052980132451
+          ],
+          "GT Power_0": [
+            0.23625999999999991,
+            0.23922000000000007,
+            0.23690728476821205
+          ],
+          "IA Power_0": [
+            5.765619999999999,
+            5.889986666666668,
+            5.789556291390729
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.299293333333333,
+            6.529726666666665,
+            6.3216622516556304
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7607086092715231,
+            0.7374701986754966,
+            0.7407933333333335
+          ],
+          "GT Power_0": [
+            0.12327152317880795,
+            0.12209933774834443,
+            0.12171999999999995
+          ],
+          "IA Power_0": [
+            5.768132450331129,
+            5.737344370860923,
+            5.762193333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.299582781456953,
+            6.102741721854302,
+            6.137519999999999
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD179-A9",
+      "number": 4447,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5984437086092715,
+            0.5970132450331125,
+            0.598483443708609
+          ],
+          "GT Power_0": [
+            0.04715231788079467,
+            0.017735099337748347,
+            0.018211920529801324
+          ],
+          "IA Power_0": [
+            4.187847682119209,
+            3.7654635761589397,
+            3.795880794701985
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.394218543046358,
+            3.988695364238412,
+            4.054675496688741
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7341986754966884,
+            0.7527799999999997,
+            0.7323599999999996
+          ],
+          "GT Power_0": [
+            0.1377019867549669,
+            0.13577999999999996,
+            0.1356866666666666
+          ],
+          "IA Power_0": [
+            6.523119205298014,
+            6.519306666666665,
+            6.7862866666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.922198675496685,
+            7.0441600000000015,
+            7.192766666666665
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7328807947019864,
+            0.7337682119205293,
+            0.7338266666666666
+          ],
+          "GT Power_0": [
+            0.13705960264900663,
+            0.13675496688741723,
+            0.1384
+          ],
+          "IA Power_0": [
+            6.507350993377482,
+            6.566,
+            6.790586666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.875986754966888,
+            6.97529801324503,
+            7.192553333333329
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7891192052980135,
+            0.7915466666666667,
+            0.789933774834437
+          ],
+          "GT Power_0": [
+            0.28735099337748327,
+            0.2880466666666667,
+            0.28634437086092707
+          ],
+          "IA Power_0": [
+            6.920788079470198,
+            6.837513333333333,
+            7.192708609271525
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.430953642384108,
+            7.435920000000001,
+            7.743463576158941
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.745033333333333,
+            0.7542251655629137,
+            0.7562781456953639
+          ],
+          "GT Power_0": [
+            0.14883333333333335,
+            0.1476291390728477,
+            0.15629139072847686
+          ],
+          "IA Power_0": [
+            6.751953333333333,
+            6.583907284768212,
+            6.622582781456955
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.103833333333335,
+            7.154417218543048,
+            7.16567549668874
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD140-A9",
+      "number": 4446,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.607106666666666,
+            0.5995364238410593,
+            0.6145562913907282
+          ],
+          "GT Power_0": [
+            0.03413999999999999,
+            0.013165562913907285,
+            0.014324503311258277
+          ],
+          "IA Power_0": [
+            3.362453333333334,
+            3.496238410596026,
+            3.2642715231788064
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.7169733333333337,
+            3.7707218543046372,
+            3.664112582781456
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7333509933774831,
+            0.75018,
+            0.7539466666666664
+          ],
+          "GT Power_0": [
+            0.09164238410596028,
+            0.09070000000000004,
+            0.09352666666666666
+          ],
+          "IA Power_0": [
+            5.684721854304635,
+            5.687493333333332,
+            5.801853333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.052052980132452,
+            6.092673333333332,
+            6.247733333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7356556291390725,
+            0.7429066666666664,
+            0.7511589403973508
+          ],
+          "GT Power_0": [
+            0.09304635761589405,
+            0.0932533333333334,
+            0.09272185430463575
+          ],
+          "IA Power_0": [
+            5.984556291390729,
+            5.763706666666666,
+            5.731026490066229
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.329781456953646,
+            6.1428466666666655,
+            6.139046357615893
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7899072847682125,
+            0.7915933333333336,
+            0.7904733333333336
+          ],
+          "GT Power_0": [
+            0.2073973509933776,
+            0.2239400000000001,
+            0.20885333333333334
+          ],
+          "IA Power_0": [
+            6.269298013245031,
+            5.944893333333331,
+            6.004633333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.736000000000002,
+            6.451840000000003,
+            6.501826666666667
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7398733333333335,
+            0.7508609271523177,
+            0.7593841059602645
+          ],
+          "GT Power_0": [
+            0.10456000000000008,
+            0.09685430463576165,
+            0.0994172185430464
+          ],
+          "IA Power_0": [
+            6.056099999999997,
+            5.834589403973508,
+            5.748410596026488
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.346186666666666,
+            6.291245033112583,
+            6.281350993377483
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD166-A9",
+      "number": 4445,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6053533333333325,
+            0.5964768211920529,
+            0.6020999999999997
+          ],
+          "GT Power_0": [
+            0.04083999999999998,
+            0.01782781456953642,
+            0.016773333333333335
+          ],
+          "IA Power_0": [
+            3.6183533333333338,
+            3.527827814569537,
+            4.3052666666666655
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.8957800000000007,
+            3.7600662251655668,
+            4.568173333333333
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7336357615894034,
+            0.736966666666666,
+            0.7345960264900663
+          ],
+          "GT Power_0": [
+            0.12566225165562914,
+            0.12334666666666659,
+            0.1302384105960265
+          ],
+          "IA Power_0": [
+            6.19717218543046,
+            6.244180000000001,
+            6.582708609271522
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.578807947019871,
+            6.625813333333335,
+            6.978258278145696
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7334599999999999,
+            0.7269072847682114,
+            0.7355599999999994
+          ],
+          "GT Power_0": [
+            0.12630666666666662,
+            0.12174834437086095,
+            0.1298333333333333
+          ],
+          "IA Power_0": [
+            6.230453333333334,
+            6.04206622516556,
+            6.616946666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.641813333333335,
+            6.442344370860926,
+            7.010413333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7984733333333335,
+            0.7915894039735102,
+            0.7918800000000005
+          ],
+          "GT Power_0": [
+            0.2880133333333334,
+            0.27741059602649015,
+            0.27854666666666666
+          ],
+          "IA Power_0": [
+            6.55566,
+            6.729291390728474,
+            6.548799999999999
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.229606666666667,
+            7.2443245033112555,
+            7.090419999999999
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7456599999999997,
+            0.7566866666666662,
+            0.7403666666666666
+          ],
+          "GT Power_0": [
+            0.13252,
+            0.13207999999999998,
+            0.13687333333333332
+          ],
+          "IA Power_0": [
+            6.5510866666666665,
+            6.66147333333333,
+            6.39818
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9314066666666685,
+            7.174133333333334,
+            6.833973333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD149-A9",
+      "number": 4444,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5937133333333332,
+            0.59764,
+            0.597754966887417
+          ],
+          "GT Power_0": [
+            0.04406666666666665,
+            0.015880000000000005,
+            0.016688741721854305
+          ],
+          "IA Power_0": [
+            3.9523933333333328,
+            4.022573333333332,
+            4.0538145695364225
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.187313333333334,
+            4.256593333333334,
+            4.2902185430463575
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7480266666666658,
+            0.7324066666666662,
+            0.7333799999999994
+          ],
+          "GT Power_0": [
+            0.12035333333333337,
+            0.11950666666666668,
+            0.15506
+          ],
+          "IA Power_0": [
+            7.543706666666669,
+            7.557473333333335,
+            7.1458600000000025
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.903299999999999,
+            7.876153333333334,
+            7.465466666666663
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7320466666666667,
+            0.7337599999999996,
+            0.736377483443708
+          ],
+          "GT Power_0": [
+            0.12093333333333336,
+            0.1200933333333333,
+            0.11903311258278143
+          ],
+          "IA Power_0": [
+            7.095673333333338,
+            7.446973333333335,
+            7.2226688741721885
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.453200000000002,
+            7.780793333333332,
+            7.573695364238412
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7903933333333338,
+            0.7887466666666669,
+            0.8044400000000005
+          ],
+          "GT Power_0": [
+            0.27787999999999985,
+            0.26824666666666686,
+            0.26825333333333334
+          ],
+          "IA Power_0": [
+            7.471680000000003,
+            7.8044066666666705,
+            7.414946666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.981493333333333,
+            8.337559999999998,
+            8.086
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7379066666666664,
+            0.7382133333333332,
+            0.7363733333333327
+          ],
+          "GT Power_0": [
+            0.12501333333333334,
+            0.12410000000000004,
+            0.12631333333333333
+          ],
+          "IA Power_0": [
+            7.226120000000001,
+            7.2435133333333335,
+            7.293806666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.58826,
+            7.610840000000001,
+            7.644873333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD147-A9",
+      "number": 4443,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6665416666666668,
+            0.5989337748344367,
+            0.5990927152317879
+          ],
+          "GT Power_0": [
+            0.04229861111111109,
+            0.01586092715231788,
+            0.015033112582781455
+          ],
+          "IA Power_0": [
+            5.202270833333332,
+            3.0869668874172165,
+            3.2068476821192045
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.541368055555555,
+            3.363701986754965,
+            3.4500264900662265
+          ],
+          "name": "Basic",
+          "samples": [
+            144,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7385999999999991,
+            0.7498741721854304,
+            0.7346599999999998
+          ],
+          "GT Power_0": [
+            0.14518666666666666,
+            0.13358940397350988,
+            0.13714666666666672
+          ],
+          "IA Power_0": [
+            5.83758,
+            5.6452119205298015,
+            5.598900000000003
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.245793333333335,
+            6.061417218543047,
+            6.0383533333333315
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7450133333333329,
+            0.7330993377483445,
+            0.7501266666666666
+          ],
+          "GT Power_0": [
+            0.13020666666666672,
+            0.13041721854304641,
+            0.12787999999999997
+          ],
+          "IA Power_0": [
+            6.033680000000003,
+            5.671748344370861,
+            5.594433333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.430506666666667,
+            6.0577880794702,
+            6.104320000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7910200000000008,
+            0.8078733333333337,
+            0.8095000000000003
+          ],
+          "GT Power_0": [
+            0.26356,
+            0.2636666666666667,
+            0.26344000000000006
+          ],
+          "IA Power_0": [
+            6.0656599999999985,
+            5.876233333333331,
+            5.858539999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.606986666666664,
+            6.5655,
+            6.527213333333332
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7394105960264901,
+            0.7474933333333332,
+            0.7550794701986755
+          ],
+          "GT Power_0": [
+            0.13958278145695358,
+            0.13980666666666663,
+            0.14943046357615894
+          ],
+          "IA Power_0": [
+            5.633178807947016,
+            6.128959999999998,
+            5.934384105960265
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.073735099337751,
+            6.504500000000001,
+            6.501966887417218
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD151-A9",
+      "number": 4442,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5984866666666663,
+            0.6123311258278143,
+            0.6116333333333331
+          ],
+          "GT Power_0": [
+            0.02747333333333332,
+            0.013735099337748344,
+            0.014506666666666664
+          ],
+          "IA Power_0": [
+            3.738360000000001,
+            3.682569536423841,
+            3.697626666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.980226666666666,
+            3.9955099337748328,
+            3.9577066666666663
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7406423841059597,
+            0.7363576158940396,
+            0.7340466666666665
+          ],
+          "GT Power_0": [
+            0.10620529801324508,
+            0.10282119205298015,
+            0.10777999999999999
+          ],
+          "IA Power_0": [
+            6.433543046357616,
+            6.682887417218544,
+            6.44146
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.819860927152316,
+            7.075781456953644,
+            6.790013333333334
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7340666666666664,
+            0.7349866666666663,
+            0.7484799999999999
+          ],
+          "GT Power_0": [
+            0.10916666666666666,
+            0.10793333333333337,
+            0.11002666666666663
+          ],
+          "IA Power_0": [
+            6.371206666666666,
+            6.6657666666666655,
+            6.436706666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.765186666666666,
+            7.087146666666669,
+            6.85176
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7905165562913912,
+            0.8057549668874179,
+            0.8044666666666666
+          ],
+          "GT Power_0": [
+            0.2349337748344372,
+            0.23198013245033106,
+            0.23048666666666667
+          ],
+          "IA Power_0": [
+            6.671039735099338,
+            6.9274039735099295,
+            6.760586666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1681258278145705,
+            7.599052980132453,
+            7.305713333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.739653333333333,
+            0.7575165562913907,
+            0.7404834437086093
+          ],
+          "GT Power_0": [
+            0.11273333333333338,
+            0.11404635761589406,
+            0.11548344370860926
+          ],
+          "IA Power_0": [
+            6.5976066666666675,
+            6.842668874172183,
+            6.778205298013248
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.95532,
+            7.327185430463576,
+            7.120344370860924
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD170-A9",
+      "number": 4441,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6161933333333334,
+            0.5972781456953637,
+            0.6207549668874173
+          ],
+          "GT Power_0": [
+            0.043939999999999986,
+            0.014894039735099339,
+            0.014092715231788074
+          ],
+          "IA Power_0": [
+            4.008013333333332,
+            3.1941324503311255,
+            3.845337748344372
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.447920000000003,
+            3.4413907284768195,
+            4.151238410596025
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7343907284768207,
+            0.7333933333333332,
+            0.7329066666666662
+          ],
+          "GT Power_0": [
+            0.10682781456953654,
+            0.10261333333333335,
+            0.10680000000000002
+          ],
+          "IA Power_0": [
+            5.5211456953642415,
+            5.518980000000001,
+            5.839346666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.902052980132454,
+            5.871833333333333,
+            6.220293333333332
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7665200000000001,
+            0.7491799999999997,
+            0.7509006622516551
+          ],
+          "GT Power_0": [
+            0.10478666666666668,
+            0.10492000000000005,
+            0.1005364238410596
+          ],
+          "IA Power_0": [
+            5.516286666666668,
+            5.541233333333333,
+            5.5389602649006635
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.037640000000002,
+            6.0312800000000015,
+            5.957291390728476
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7922980132450334,
+            0.8090800000000007,
+            0.8086133333333342
+          ],
+          "GT Power_0": [
+            0.23869536423841087,
+            0.23519333333333312,
+            0.23447333333333328
+          ],
+          "IA Power_0": [
+            5.823205298013243,
+            6.037646666666667,
+            5.748086666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.36656953642384,
+            6.616893333333332,
+            6.371320000000001
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7398344370860923,
+            0.7397399999999995,
+            0.7609403973509934
+          ],
+          "GT Power_0": [
+            0.11183443708609277,
+            0.11138666666666668,
+            0.11095364238410597
+          ],
+          "IA Power_0": [
+            5.582827814569532,
+            5.908826666666669,
+            5.563834437086093
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.979357615894039,
+            6.310979999999997,
+            6.0876357615894054
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4440,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6132516556291394,
+            0.6179470198675497,
+            0.601099337748344
+          ],
+          "GT Power_0": [
+            0.02986092715231786,
+            0.015410596026490062,
+            0.018158940397350994
+          ],
+          "IA Power_0": [
+            7.478384105960266,
+            7.664569536423841,
+            4.287417218543049
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.656397350993374,
+            7.916046357615893,
+            4.515298013245032
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7332399999999996,
+            0.7344933333333332,
+            0.7483112582781454
+          ],
+          "GT Power_0": [
+            0.12372000000000005,
+            0.12763333333333335,
+            0.12433112582781455
+          ],
+          "IA Power_0": [
+            7.316246666666666,
+            6.953653333333332,
+            7.057072847682122
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.660666666666665,
+            7.312460000000002,
+            7.450258278145697
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7331066666666659,
+            0.734443708609271,
+            0.735253333333333
+          ],
+          "GT Power_0": [
+            0.12305333333333338,
+            0.1208543046357616,
+            0.12288000000000002
+          ],
+          "IA Power_0": [
+            6.94384,
+            7.030006622516559,
+            7.259806666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.315453333333335,
+            7.608582781456958,
+            7.632933333333338
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8075266666666671,
+            0.7912400000000003,
+            0.7911200000000007
+          ],
+          "GT Power_0": [
+            0.2509266666666667,
+            0.24876666666666675,
+            0.25026000000000004
+          ],
+          "IA Power_0": [
+            7.189980000000002,
+            7.18466,
+            7.6552200000000035
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.852359999999997,
+            7.7282,
+            8.178106666666663
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7403774834437078,
+            0.7437666666666667,
+            0.7429333333333331
+          ],
+          "GT Power_0": [
+            0.13200662251655632,
+            0.13047333333333336,
+            0.13006000000000012
+          ],
+          "IA Power_0": [
+            7.0846887417218545,
+            7.713813333333335,
+            7.411886666666666
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.484993377483443,
+            8.039000000000003,
+            7.793866666666668
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD143-A9",
+      "number": 4439,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6065562913907283,
+            0.5973311258278142,
+            0.5976423841059598
+          ],
+          "GT Power_0": [
+            0.03466225165562912,
+            0.014615894039735101,
+            0.014947019867549663
+          ],
+          "IA Power_0": [
+            3.366860927152318,
+            3.2711788079470194,
+            3.2491589403973515
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.705920529801326,
+            3.5397615894039722,
+            3.527827814569538
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7451133333333332,
+            0.7342649006622516,
+            0.7353466666666665
+          ],
+          "GT Power_0": [
+            0.11782666666666669,
+            0.11790728476821201,
+            0.11591999999999997
+          ],
+          "IA Power_0": [
+            6.044280000000002,
+            5.692192052980131,
+            5.792300000000002
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.4583,
+            6.060238410596029,
+            6.188206666666666
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7339602649006619,
+            0.7335999999999999,
+            0.7331133333333328
+          ],
+          "GT Power_0": [
+            0.11589403973509929,
+            0.11845999999999994,
+            0.11344000000000005
+          ],
+          "IA Power_0": [
+            6.018205298013246,
+            5.773200000000004,
+            5.6625933333333345
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.3797152317880785,
+            6.143153333333331,
+            6.076846666666667
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7957814569536429,
+            0.7912466666666671,
+            0.7907400000000004
+          ],
+          "GT Power_0": [
+            0.2471788079470199,
+            0.24707333333333337,
+            0.24519333333333335
+          ],
+          "IA Power_0": [
+            6.455536423841058,
+            5.935573333333334,
+            5.938419999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.009509933774843,
+            6.46302,
+            6.476993333333334
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7522980132450326,
+            0.7415133333333331,
+            0.7409801324503311
+          ],
+          "GT Power_0": [
+            0.13192715231788077,
+            0.12089333333333335,
+            0.1255298013245033
+          ],
+          "IA Power_0": [
+            6.275165562913909,
+            5.91894,
+            6.013026490066227
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.690350993377481,
+            6.309173333333333,
+            6.4048145695364225
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD135-A9",
+      "number": 4438,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5973999999999997,
+            0.6554666666666662,
+            0.610039735099337
+          ],
+          "GT Power_0": [
+            0.04781999999999997,
+            0.020626666666666668,
+            0.02013907284768212
+          ],
+          "IA Power_0": [
+            4.713746666666664,
+            6.7798599999999976,
+            4.2470927152317905
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.9514533333333315,
+            7.009259999999999,
+            4.548867549668876
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7297466666666664,
+            0.7459133333333331,
+            0.7289599999999993
+          ],
+          "GT Power_0": [
+            0.17944,
+            0.14634666666666668,
+            0.14733333333333334
+          ],
+          "IA Power_0": [
+            7.945633333333329,
+            7.511140000000002,
+            7.528359999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.301046666666663,
+            8.023493333333334,
+            7.900713333333337
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7314599999999996,
+            0.7304733333333328,
+            0.7306799999999999
+          ],
+          "GT Power_0": [
+            0.15057999999999996,
+            0.1478066666666667,
+            0.1491333333333333
+          ],
+          "IA Power_0": [
+            7.561333333333332,
+            7.5242400000000025,
+            7.932039999999997
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.948239999999993,
+            7.89806666666667,
+            8.308473333333334
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7877066666666672,
+            0.7849800000000005,
+            0.7855200000000006
+          ],
+          "GT Power_0": [
+            0.3267,
+            0.3268200000000001,
+            0.3277066666666667
+          ],
+          "IA Power_0": [
+            7.868086666666665,
+            7.868199999999995,
+            8.238100000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.453953333333335,
+            8.50779333333334,
+            8.874719999999998
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7525999999999996,
+            0.7368807947019864,
+            0.7497880794701981
+          ],
+          "GT Power_0": [
+            0.15649333333333323,
+            0.15814569536423848,
+            0.15982119205298012
+          ],
+          "IA Power_0": [
+            7.6686133333333375,
+            7.6501523178807975,
+            8.007562913907286
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.227279999999997,
+            8.038953642384106,
+            8.508894039735099
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD168-A9",
+      "number": 4437,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5990466666666665,
+            0.6007066666666666,
+            0.5989139072847679
+          ],
+          "GT Power_0": [
+            0.04061333333333331,
+            0.014506666666666664,
+            0.016006622516556296
+          ],
+          "IA Power_0": [
+            3.660853333333333,
+            3.907286666666668,
+            3.5833774834437087
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.914779999999999,
+            4.0586866666666666,
+            3.8554039735099335
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7535733333333325,
+            0.7345933333333331,
+            0.7348466666666664
+          ],
+          "GT Power_0": [
+            0.11487333333333334,
+            0.11682666666666668,
+            0.11626666666666666
+          ],
+          "IA Power_0": [
+            6.569373333333335,
+            6.210360000000002,
+            6.357040000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.007579999999998,
+            6.593126666666666,
+            6.708919999999999
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7696333333333328,
+            0.7353599999999992,
+            0.7450399999999998
+          ],
+          "GT Power_0": [
+            0.11617999999999999,
+            0.11790666666666666,
+            0.1187333333333334
+          ],
+          "IA Power_0": [
+            6.9884733333333315,
+            6.350359999999999,
+            6.29446
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.528246666666669,
+            6.702913333333336,
+            6.76204
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7904333333333339,
+            0.792426666666667,
+            0.7916158940397356
+          ],
+          "GT Power_0": [
+            0.25667333333333353,
+            0.2548066666666666,
+            0.2677417218543047
+          ],
+          "IA Power_0": [
+            6.9295666666666635,
+            6.564886666666663,
+            6.646231788079473
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.434186666666668,
+            7.074793333333337,
+            7.1804503311258285
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7405666666666662,
+            0.740886666666666,
+            0.7506999999999999
+          ],
+          "GT Power_0": [
+            0.12699333333333335,
+            0.12611333333333336,
+            0.1281466666666667
+          ],
+          "IA Power_0": [
+            6.69934,
+            6.571466666666665,
+            6.468113333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1412933333333335,
+            6.896606666666667,
+            6.998940000000001
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD141-A9",
+      "number": 4436,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6040198675496687,
+            0.5970529801324501,
+            0.6058874172185428
+          ],
+          "GT Power_0": [
+            0.032258278145695346,
+            0.015172185430463572,
+            0.014688741721854304
+          ],
+          "IA Power_0": [
+            3.9555629139072854,
+            3.833940397350994,
+            3.8669006622516546
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.24394701986755,
+            4.074033112582783,
+            4.164370860927151
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7321733333333332,
+            0.7328940397350991,
+            0.7576533333333331
+          ],
+          "GT Power_0": [
+            0.12122000000000002,
+            0.12109933774834437,
+            0.12304666666666675
+          ],
+          "IA Power_0": [
+            6.894320000000001,
+            6.932172185430461,
+            7.5916466666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.265446666666667,
+            7.297026490066229,
+            8.027786666666668
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7551920529801323,
+            0.7339066666666666,
+            0.7697114093959729
+          ],
+          "GT Power_0": [
+            0.11913907284768213,
+            0.11709333333333331,
+            0.12423489932885907
+          ],
+          "IA Power_0": [
+            6.892066225165564,
+            7.275013333333333,
+            9.867248322147658
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.4610331125827845,
+            7.632046666666667,
+            10.29521476510068
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            149
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8460599999999997,
+            0.8493466666666663,
+            0.7921400000000004
+          ],
+          "GT Power_0": [
+            0.24903999999999987,
+            0.2559600000000001,
+            0.2473333333333333
+          ],
+          "IA Power_0": [
+            10.295786666666663,
+            9.949806666666667,
+            7.424533333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            10.928740000000003,
+            10.514699999999994,
+            7.971613333333331
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7548533333333334,
+            0.7375799999999993,
+            0.75062
+          ],
+          "GT Power_0": [
+            0.12886,
+            0.12796666666666662,
+            0.12912666666666672
+          ],
+          "IA Power_0": [
+            7.139673333333335,
+            7.5273666666666665,
+            7.169606666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.569719999999999,
+            7.919726666666662,
+            7.697506666666665
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD132-A9",
+      "number": 4435,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.598673333333333,
+            0.6103973509933773,
+            0.5981258278145694
+          ],
+          "GT Power_0": [
+            0.039146666666666656,
+            0.012986754966887417,
+            0.013476821192052978
+          ],
+          "IA Power_0": [
+            3.7993066666666677,
+            3.601867549668875,
+            3.9651324503311245
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.059786666666668,
+            3.965490066225163,
+            4.262119205298012
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7350666666666663,
+            0.7439470198675492,
+            0.7488145695364237
+          ],
+          "GT Power_0": [
+            0.09876,
+            0.09786754966887412,
+            0.1014105960264901
+          ],
+          "IA Power_0": [
+            6.603453333333332,
+            6.98182781456954,
+            6.628079470198678
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.925966666666669,
+            7.333953642384103,
+            7.124496688741723
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7337417218543044,
+            0.7322199999999996,
+            0.734866666666666
+          ],
+          "GT Power_0": [
+            0.09925827814569535,
+            0.09470000000000003,
+            0.09546000000000004
+          ],
+          "IA Power_0": [
+            6.6424966887417245,
+            6.8698666666666695,
+            6.629726666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.9556225165562955,
+            7.1977600000000015,
+            6.986840000000002
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7916333333333337,
+            0.7974266666666674,
+            0.7909066666666675
+          ],
+          "GT Power_0": [
+            0.21054666666666666,
+            0.21094666666666664,
+            0.21463999999999994
+          ],
+          "IA Power_0": [
+            7.016626666666665,
+            7.611633333333337,
+            6.937413333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.485713333333335,
+            8.110266666666668,
+            7.420733333333335
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7388333333333331,
+            0.7390599999999998,
+            0.7421324503311253
+          ],
+          "GT Power_0": [
+            0.10058666666666669,
+            0.10156000000000004,
+            0.10388741721854301
+          ],
+          "IA Power_0": [
+            6.794273333333331,
+            7.112146666666669,
+            6.91828476821192
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.1349266666666695,
+            7.456500000000003,
+            7.267298013245032
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD126-A9",
+      "number": 4434,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6051666666666665,
+            0.612576158940397,
+            0.5963133333333329
+          ],
+          "GT Power_0": [
+            0.0374733333333333,
+            0.016026490066225172,
+            0.014666666666666665
+          ],
+          "IA Power_0": [
+            3.9412600000000007,
+            3.5573311258278135,
+            3.499340000000001
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.271073333333332,
+            3.8698278145695366,
+            3.762766666666668
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7370666666666665,
+            0.7529470198675492,
+            0.7363799999999994
+          ],
+          "GT Power_0": [
+            0.11457333333333337,
+            0.1133774834437086,
+            0.11173333333333332
+          ],
+          "IA Power_0": [
+            6.5927533333333335,
+            6.1079470198675505,
+            6.533953333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.975026666666666,
+            6.609549668874172,
+            6.871499999999995
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7343907284768209,
+            0.7336533333333329,
+            0.7481533333333332
+          ],
+          "GT Power_0": [
+            0.11350331125827816,
+            0.11109333333333335,
+            0.11294666666666667
+          ],
+          "IA Power_0": [
+            6.152536423841058,
+            6.27950666666667,
+            6.508393333333337
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.543887417218543,
+            6.6314866666666665,
+            6.924739999999999
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7897866666666673,
+            0.8204933333333339,
+            0.7915400000000002
+          ],
+          "GT Power_0": [
+            0.2427466666666666,
+            0.24636,
+            0.2452466666666667
+          ],
+          "IA Power_0": [
+            6.425833333333335,
+            6.427506666666672,
+            6.787613333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.948493333333335,
+            7.171000000000002,
+            7.3557
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7413266666666665,
+            0.7565733333333332,
+            0.7416092715231786
+          ],
+          "GT Power_0": [
+            0.12095333333333334,
+            0.12222,
+            0.12211920529801318
+          ],
+          "IA Power_0": [
+            6.325486666666664,
+            6.35036,
+            6.529556291390728
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.6350733333333345,
+            6.835106666666664,
+            6.912529801324499
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD128-A9",
+      "number": 4433,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6083266666666665,
+            0.6090066225165559,
+            0.5979199999999998
+          ],
+          "GT Power_0": [
+            0.04000666666666665,
+            0.014503311258278142,
+            0.014386666666666664
+          ],
+          "IA Power_0": [
+            3.9384000000000006,
+            4.634417218543044,
+            3.835246666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.239466666666664,
+            4.885682119205298,
+            4.0474
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7501266666666663,
+            0.7354569536423833,
+            0.7355066666666659
+          ],
+          "GT Power_0": [
+            0.1118866666666667,
+            0.11487417218543049,
+            0.11361999999999994
+          ],
+          "IA Power_0": [
+            6.638020000000001,
+            6.998708609271522,
+            6.777913333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.089473333333331,
+            7.343337748344371,
+            7.13184
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7352666666666663,
+            0.74492,
+            0.7515231788079464
+          ],
+          "GT Power_0": [
+            0.10994666666666668,
+            0.10747333333333335,
+            0.10987417218543057
+          ],
+          "IA Power_0": [
+            6.709333333333333,
+            7.18238666666667,
+            6.706231788079468
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.028926666666668,
+            7.528493333333337,
+            7.227033112582783
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7911125827814575,
+            0.7933800000000005,
+            0.7955298013245036
+          ],
+          "GT Power_0": [
+            0.24176821192052983,
+            0.24195333333333333,
+            0.2476821192052979
+          ],
+          "IA Power_0": [
+            7.038324503311259,
+            7.013499999999998,
+            7.236364238410594
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.481953642384102,
+            7.538553333333337,
+            7.751039735099339
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7415231788079472,
+            0.7408410596026486,
+            0.7513999999999998
+          ],
+          "GT Power_0": [
+            0.12300000000000003,
+            0.12217218543046363,
+            0.12310000000000003
+          ],
+          "IA Power_0": [
+            7.111052980132452,
+            6.810198675496687,
+            6.942473333333331
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.5111059602649,
+            7.176039735099338,
+            7.434033333333335
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD139-A9",
+      "number": 4432,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6016266666666664,
+            0.6149668874172183,
+            0.5983933333333332
+          ],
+          "GT Power_0": [
+            0.04743999999999999,
+            0.017298013245033116,
+            0.01632
+          ],
+          "IA Power_0": [
+            3.7146066666666675,
+            3.6688344370860935,
+            3.9178066666666678
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.9856800000000008,
+            3.9904039735099333,
+            4.141120000000001
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7425033112582778,
+            0.7497682119205293,
+            0.7333377483443707
+          ],
+          "GT Power_0": [
+            0.1314304635761589,
+            0.12699999999999997,
+            0.12476158940397353
+          ],
+          "IA Power_0": [
+            6.306807947019866,
+            6.215953642384107,
+            6.25355629139073
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.820456953642385,
+            6.7229801324503295,
+            6.652741721854306
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7487533333333329,
+            0.7447682119205294,
+            0.748509933774834
+          ],
+          "GT Power_0": [
+            0.12247333333333332,
+            0.12283443708609272,
+            0.1257284768211921
+          ],
+          "IA Power_0": [
+            6.214840000000004,
+            6.583834437086095,
+            6.1810132450331166
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.642273333333334,
+            7.0272582781456965,
+            6.670357615894039
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7904200000000003,
+            0.7883133333333338,
+            0.7869271523178809
+          ],
+          "GT Power_0": [
+            0.2885533333333333,
+            0.2894399999999998,
+            0.28722516556291394
+          ],
+          "IA Power_0": [
+            6.591646666666667,
+            6.5056866666666675,
+            6.502708609271525
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.187106666666671,
+            7.040686666666664,
+            7.112960264900665
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7395562913907281,
+            0.7548933333333332,
+            0.7389133333333329
+          ],
+          "GT Power_0": [
+            0.13810596026490074,
+            0.13756666666666675,
+            0.13471333333333335
+          ],
+          "IA Power_0": [
+            6.292761589403972,
+            6.315626666666664,
+            6.276233333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.689403973509931,
+            6.868159999999997,
+            6.690213333333338
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD172-A9",
+      "number": 4431,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.6022266666666661,
+            0.599980132450331,
+            0.6094437086092712
+          ],
+          "GT Power_0": [
+            0.03387333333333333,
+            0.01409933774834437,
+            0.014105960264900661
+          ],
+          "IA Power_0": [
+            3.11754,
+            3.4039933774834457,
+            3.0900264900662266
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.4118733333333324,
+            3.667059602649007,
+            3.416258278145694
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7515364238410597,
+            0.7367533333333333,
+            0.7348199999999997
+          ],
+          "GT Power_0": [
+            0.0951523178807947,
+            0.09476666666666668,
+            0.09555333333333337
+          ],
+          "IA Power_0": [
+            5.393317880794703,
+            5.630193333333334,
+            5.382586666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.852609271523182,
+            6.008813333333334,
+            5.724659999999998
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7348999999999999,
+            0.7336266666666663,
+            0.7594266666666663
+          ],
+          "GT Power_0": [
+            0.09690666666666668,
+            0.09388666666666673,
+            0.09784666666666669
+          ],
+          "IA Power_0": [
+            5.33512,
+            5.391626666666666,
+            5.389353333333334
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.686619999999997,
+            5.735113333333332,
+            6.124393333333336
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.791748344370862,
+            0.8081400000000001,
+            0.8342799999999998
+          ],
+          "GT Power_0": [
+            0.21127814569536427,
+            0.21486000000000005,
+            0.23430666666666666
+          ],
+          "IA Power_0": [
+            5.780258278145694,
+            5.561019999999998,
+            7.651879999999998
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.32730463576159,
+            6.219493333333334,
+            8.226993333333336
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7485364238410596,
+            0.7589867549668874,
+            0.7515400000000001
+          ],
+          "GT Power_0": [
+            0.10027814569536427,
+            0.10245695364238415,
+            0.10151333333333334
+          ],
+          "IA Power_0": [
+            6.422602649006621,
+            6.000298013245032,
+            6.222066666666663
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.828781456953644,
+            6.495841059602646,
+            6.655966666666663
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            151,
+            151,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD161-A9",
+      "number": 4430,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5974466666666665,
+            0.597199999999999,
+            0.5974238410596023
+          ],
+          "GT Power_0": [
+            0.033173333333333326,
+            0.014533333333333332,
+            0.014039735099337753
+          ],
+          "IA Power_0": [
+            3.1309333333333327,
+            3.2825866666666674,
+            3.107708609271523
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3544799999999997,
+            3.5542066666666656,
+            3.3672582781456954
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7383466666666664,
+            0.7340466666666662,
+            0.7346599999999998
+          ],
+          "GT Power_0": [
+            0.12420000000000002,
+            0.12057999999999999,
+            0.12191999999999996
+          ],
+          "IA Power_0": [
+            5.334766666666667,
+            5.28392,
+            5.28156
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.7210666666666645,
+            5.664626666666663,
+            5.673553333333336
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7492317880794701,
+            0.7387266666666664,
+            0.7209403973509931
+          ],
+          "GT Power_0": [
+            0.11968874172185436,
+            0.11732666666666675,
+            0.11767549668874171
+          ],
+          "IA Power_0": [
+            5.5432052980132465,
+            5.390500000000002,
+            5.13944370860927
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.996052980132452,
+            5.77622,
+            5.543099337748344
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            151,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8230333333333336,
+            0.790166666666667,
+            0.804735099337749
+          ],
+          "GT Power_0": [
+            0.24856000000000003,
+            0.24832666666666664,
+            0.2485827814569537
+          ],
+          "IA Power_0": [
+            6.655779999999999,
+            5.535746666666665,
+            5.500913907284771
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.267320000000004,
+            6.0808199999999974,
+            6.163132450331123
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7542866666666667,
+            0.7457733333333335,
+            0.739293333333333
+          ],
+          "GT Power_0": [
+            0.12697999999999998,
+            0.12786,
+            0.12365333333333335
+          ],
+          "IA Power_0": [
+            5.663133333333337,
+            5.4349733333333345,
+            5.372626666666669
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.090033333333333,
+            5.876453333333336,
+            5.799853333333334
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD125-A9",
+      "number": 4429,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5960463576158938,
+            0.5976158940397345,
+            0.6126490066225166
+          ],
+          "GT Power_0": [
+            0.016622516556291395,
+            0.01666887417218543,
+            0.016370860927152318
+          ],
+          "IA Power_0": [
+            4.371145695364239,
+            4.1438741721854315,
+            4.131139072847681
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            4.602390728476821,
+            4.335476821192053,
+            4.501662251655626
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7361399999999996,
+            0.7392599999999991,
+            0.7508933333333332
+          ],
+          "GT Power_0": [
+            0.11903333333333334,
+            0.11807333333333339,
+            0.12720000000000004
+          ],
+          "IA Power_0": [
+            7.5222733333333345,
+            7.35814666666667,
+            7.34308666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.884699999999998,
+            7.703013333333336,
+            7.876100000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7521199999999997,
+            0.7376599999999999,
+            0.7502799999999998
+          ],
+          "GT Power_0": [
+            0.13185333333333332,
+            0.1170066666666667,
+            0.1200666666666667
+          ],
+          "IA Power_0": [
+            7.3716,
+            7.399646666666667,
+            7.790793333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.006999999999998,
+            7.737173333333334,
+            8.239999999999997
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.8091,
+            0.8039733333333333,
+            0.7923000000000002
+          ],
+          "GT Power_0": [
+            0.25755999999999996,
+            0.2550733333333334,
+            0.26196666666666674
+          ],
+          "IA Power_0": [
+            8.32220666666667,
+            7.7595266666666705,
+            8.058173333333336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            8.813559999999999,
+            8.310893333333338,
+            8.593966666666669
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7445799999999998,
+            0.7561199999999999,
+            0.7433666666666664
+          ],
+          "GT Power_0": [
+            0.13731999999999991,
+            0.14430666666666672,
+            0.12672666666666665
+          ],
+          "IA Power_0": [
+            7.535580000000003,
+            7.596046666666666,
+            7.6315066666666675
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.872659999999996,
+            8.095059999999997,
+            8.033786666666671
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD182-A9",
+      "number": 4428,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5976622516556286,
+            0.5974199999999997,
+            0.5970533333333332
+          ],
+          "GT Power_0": [
+            0.013238410596026488,
+            0.014386666666666666,
+            0.01297333333333333
+          ],
+          "IA Power_0": [
+            3.1297615894039743,
+            3.393633333333334,
+            3.125073333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3950529801324514,
+            3.669240000000001,
+            3.38634
+          ],
+          "name": "Basic",
+          "samples": [
+            151,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7365866666666664,
+            0.7368733333333332,
+            0.7333666666666666
+          ],
+          "GT Power_0": [
+            0.0991466666666667,
+            0.09530000000000004,
+            0.09790666666666667
+          ],
+          "IA Power_0": [
+            5.644166666666667,
+            5.992033333333333,
+            5.580786666666668
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.050313333333333,
+            6.2564066666666625,
+            5.948799999999997
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7371866666666661,
+            0.7353466666666665,
+            0.7487417218543038
+          ],
+          "GT Power_0": [
+            0.09601333333333333,
+            0.09390666666666668,
+            0.0924701986754967
+          ],
+          "IA Power_0": [
+            5.649500000000001,
+            5.866360000000001,
+            5.621145695364239
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.977339999999998,
+            6.219860000000001,
+            6.049410596026487
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7932800000000009,
+            0.8010066666666669,
+            0.8053666666666668
+          ],
+          "GT Power_0": [
+            0.2043933333333334,
+            0.21381333333333344,
+            0.2108600000000002
+          ],
+          "IA Power_0": [
+            5.851373333333334,
+            5.895946666666664,
+            5.897126666666667
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.36086666666667,
+            6.475313333333332,
+            6.429913333333333
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7580599999999994,
+            0.7632666666666664,
+            0.7405666666666666
+          ],
+          "GT Power_0": [
+            0.10273999999999998,
+            0.10402000000000002,
+            0.10094000000000004
+          ],
+          "IA Power_0": [
+            6.003560000000001,
+            5.7193466666666675,
+            5.675013333333332
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.423706666666667,
+            6.414340000000001,
+            6.07068
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD127-A9",
+      "number": 4427,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5998333333333329,
+            0.6119466666666663,
+            0.5992251655629136
+          ],
+          "GT Power_0": [
+            0.04052666666666666,
+            0.014213333333333331,
+            0.013993377483443705
+          ],
+          "IA Power_0": [
+            3.0844000000000005,
+            3.327013333333336,
+            3.0534768211920533
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.3567133333333334,
+            3.6380200000000005,
+            3.3026556291390743
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7349999999999998,
+            0.7348466666666664,
+            0.7343599999999996
+          ],
+          "GT Power_0": [
+            0.10198000000000008,
+            0.10364666666666673,
+            0.09984666666666665
+          ],
+          "IA Power_0": [
+            5.356979999999999,
+            5.361413333333335,
+            5.358673333333333
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            5.724593333333336,
+            5.7389,
+            5.733259999999997
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7528866666666665,
+            0.7537814569536424,
+            0.7356754966887418
+          ],
+          "GT Power_0": [
+            0.10238000000000004,
+            0.10259602649006619,
+            0.10865562913907292
+          ],
+          "IA Power_0": [
+            5.618553333333329,
+            5.393284768211922,
+            5.3585761589404
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.095326666666665,
+            5.883576158940393,
+            5.747827814569535
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            151,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7929733333333338,
+            0.7917733333333334,
+            0.7913576158940401
+          ],
+          "GT Power_0": [
+            0.22205999999999992,
+            0.2237666666666666,
+            0.2250993377483444
+          ],
+          "IA Power_0": [
+            5.788353333333332,
+            5.561333333333334,
+            5.570490066225166
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.34362,
+            6.121073333333332,
+            6.0966423841059605
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.745073333333333,
+            0.7403599999999998,
+            0.7516026490066223
+          ],
+          "GT Power_0": [
+            0.10419999999999996,
+            0.10562,
+            0.10694039735099338
+          ],
+          "IA Power_0": [
+            6.015199999999999,
+            5.496473333333332,
+            5.48833774834437
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.362773333333333,
+            5.882346666666666,
+            5.916695364238412
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    },
+    {
+      "bot": "BUILD120-A9",
+      "number": 4426,
+      "tests": [
+        {
+          "DRAM Power_0": [
+            0.5995466666666662,
+            0.5977019867549664,
+            0.5969399999999994
+          ],
+          "GT Power_0": [
+            0.03224666666666665,
+            0.01586092715231788,
+            0.015800000000000005
+          ],
+          "IA Power_0": [
+            3.78508,
+            3.639688741721854,
+            3.6164266666666656
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            3.999699999999997,
+            3.8987086092715235,
+            3.878706666666666
+          ],
+          "name": "Basic",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7568199999999997,
+            0.7333046357615896,
+            0.733206666666666
+          ],
+          "GT Power_0": [
+            0.1244266666666666,
+            0.12520529801324506,
+            0.12172000000000002
+          ],
+          "IA Power_0": [
+            6.7718399999999965,
+            6.418940397350992,
+            6.424646666666664
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.495593333333333,
+            6.799456953642379,
+            6.799620000000001
+          ],
+          "name": "Video_720_MP4",
+          "samples": [
+            150,
+            151,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7514933333333329,
+            0.7353199999999993,
+            0.734033333333333
+          ],
+          "GT Power_0": [
+            0.1213666666666667,
+            0.11846000000000001,
+            0.12071333333333335
+          ],
+          "IA Power_0": [
+            6.744106666666667,
+            6.482826666666665,
+            6.3928199999999995
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.213306666666666,
+            6.852393333333333,
+            6.740773333333333
+          ],
+          "name": "Video_720_MP4_Fullscreen",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7948466666666671,
+            0.9229733333333339,
+            0.8096066666666668
+          ],
+          "GT Power_0": [
+            0.25653333333333345,
+            0.2576333333333335,
+            0.2572866666666666
+          ],
+          "IA Power_0": [
+            7.016299999999998,
+            10.040713333333336,
+            6.718639999999996
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            7.543873333333334,
+            10.6132,
+            7.3368400000000005
+          ],
+          "name": "Video_720_MP4_Underlay",
+          "samples": [
+            150,
+            150,
+            150
+          ]
+        },
+        {
+          "DRAM Power_0": [
+            0.7423799999999998,
+            0.7419266666666663,
+            0.892801324503311
+          ],
+          "GT Power_0": [
+            0.1335733333333333,
+            0.1281066666666667,
+            0.13041059602649008
+          ],
+          "IA Power_0": [
+            6.587173333333331,
+            6.644960000000001,
+            17.069980132450336
+          ],
+          "Package Power Limit_0": [
+            65.0,
+            65.0,
+            65.0
+          ],
+          "Processor Power_0": [
+            6.930413333333334,
+            6.934413333333332,
+            17.975960264900667
+          ],
+          "name": "Video_720_MP4_Underlay_Fullscreen",
+          "samples": [
+            150,
+            150,
+            151
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/content/utility/utility_thread_impl.cc b/content/utility/utility_thread_impl.cc
index 1455be2..adedf88 100644
--- a/content/utility/utility_thread_impl.cc
+++ b/content/utility/utility_thread_impl.cc
@@ -143,8 +143,6 @@
   service_factory_.reset(new UtilityServiceFactory);
 
   if (connection) {
-    GetContentClient()->OnServiceManagerConnected(connection);
-
     // NOTE: You must register any ConnectionFilter instances on |connection|
     // *before* this call to |Start()|, otherwise incoming interface requests
     // may race with the registration.
diff --git a/device/fido/virtual_u2f_device.cc b/device/fido/virtual_u2f_device.cc
index 6260205..fed784f 100644
--- a/device/fido/virtual_u2f_device.cc
+++ b/device/fido/virtual_u2f_device.cc
@@ -40,13 +40,24 @@
 
 }  // namespace
 
+// VirtualU2fDevice ----------------------------------------------------------
+
+// static
+bool VirtualU2fDevice::IsTransportSupported(FidoTransportProtocol transport) {
+  return base::Contains(base::flat_set<FidoTransportProtocol>(
+                            {FidoTransportProtocol::kUsbHumanInterfaceDevice,
+                             FidoTransportProtocol::kBluetoothLowEnergy,
+                             FidoTransportProtocol::kNearFieldCommunication}),
+                        transport);
+}
+
 VirtualU2fDevice::VirtualU2fDevice()
     : VirtualFidoDevice(), weak_factory_(this) {}
 
-// VirtualU2fDevice ----------------------------------------------------------
-
 VirtualU2fDevice::VirtualU2fDevice(scoped_refptr<State> state)
-    : VirtualFidoDevice(std::move(state)), weak_factory_(this) {}
+    : VirtualFidoDevice(std::move(state)), weak_factory_(this) {
+  DCHECK(IsTransportSupported(mutable_state()->transport));
+}
 
 VirtualU2fDevice::~VirtualU2fDevice() = default;
 
diff --git a/device/fido/virtual_u2f_device.h b/device/fido/virtual_u2f_device.h
index 8d0d0a3..a6e1cac2 100644
--- a/device/fido/virtual_u2f_device.h
+++ b/device/fido/virtual_u2f_device.h
@@ -20,6 +20,10 @@
 class COMPONENT_EXPORT(DEVICE_FIDO) VirtualU2fDevice
     : public VirtualFidoDevice {
  public:
+  // Returns true if the |transport| is supported by virtual U2F devices, false
+  // otherwise.
+  static bool IsTransportSupported(FidoTransportProtocol transport);
+
   VirtualU2fDevice();
   explicit VirtualU2fDevice(scoped_refptr<State> state);
   ~VirtualU2fDevice() override;
diff --git a/fuchsia/engine/BUILD.gn b/fuchsia/engine/BUILD.gn
index a175283..b01218ce 100644
--- a/fuchsia/engine/BUILD.gn
+++ b/fuchsia/engine/BUILD.gn
@@ -167,6 +167,9 @@
   excluded_files = [
     "lib/libswiftshader_libEGL.so",
     "lib/libswiftshader_libGLESv2.so",
+    "lib/libEGL.so",
+    "lib/libGLESv2.so",
+    "lib/libfuchsia_egl.so",
   ]
 }
 
diff --git a/fuchsia/engine/browser/context_impl_browsertest.cc b/fuchsia/engine/browser/context_impl_browsertest.cc
index 598cd17..d536330 100644
--- a/fuchsia/engine/browser/context_impl_browsertest.cc
+++ b/fuchsia/engine/browser/context_impl_browsertest.cc
@@ -18,10 +18,6 @@
 #include "fuchsia/base/test_navigation_listener.h"
 #include "fuchsia/engine/common.h"
 #include "fuchsia/engine/test/web_engine_browser_test.h"
-#include "net/cookies/cookie_store.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "services/network/public/cpp/features.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -34,18 +30,11 @@
 
 namespace {
 
-void OnNetworkServiceCookiesReceived(net::CookieList* output,
-                                     base::OnceClosure on_received_cb,
-                                     const net::CookieList& cookies) {
-  *output = cookies;
-  std::move(on_received_cb).Run();
-}
-
 void OnCookiesReceived(net::CookieList* output,
                        base::OnceClosure on_received_cb,
-                       const net::CookieList& cookies,
-                       const net::CookieStatusList& cookie_status) {
-  OnNetworkServiceCookiesReceived(output, std::move(on_received_cb), cookies);
+                       const net::CookieList& cookies) {
+  *output = cookies;
+  std::move(on_received_cb).Run();
 }
 
 // Defines a suite of tests that exercise browser-level configuration and
@@ -66,30 +55,13 @@
     base::RunLoop run_loop;
     net::CookieList cookies;
     network::mojom::CookieManagerPtr cookie_manager;
-    if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-      content::BrowserContext::GetDefaultStoragePartition(
-          context_impl()->browser_context_for_test())
-          ->GetNetworkContext()
-          ->GetCookieManager(mojo::MakeRequest(&cookie_manager));
-      cookie_manager->GetAllCookies(
-          base::BindOnce(&OnNetworkServiceCookiesReceived,
-                         base::Unretained(&cookies), run_loop.QuitClosure()));
-    } else {
-      net::CookieStore* cookie_store =
-          content::BrowserContext::GetDefaultStoragePartition(
-              context_impl()->browser_context_for_test())
-              ->GetURLRequestContext()
-              ->GetURLRequestContext()
-              ->cookie_store();
-      base::PostTaskWithTraits(
-          FROM_HERE, {content::BrowserThread::IO},
-          base::BindOnce(
-              &net::CookieStore::GetAllCookiesAsync,
-              base::Unretained(cookie_store),
-              base::BindOnce(&OnCookiesReceived, base::Unretained(&cookies),
-                             run_loop.QuitClosure())));
-    }
-
+    content::BrowserContext::GetDefaultStoragePartition(
+        context_impl()->browser_context_for_test())
+        ->GetNetworkContext()
+        ->GetCookieManager(mojo::MakeRequest(&cookie_manager));
+    cookie_manager->GetAllCookies(base::BindOnce(&OnCookiesReceived,
+                                                 base::Unretained(&cookies),
+                                                 run_loop.QuitClosure()));
     run_loop.Run();
     return cookies;
   }
diff --git a/headless/lib/browser/headless_clipboard.cc b/headless/lib/browser/headless_clipboard.cc
index ccf616f..d1ce2e07 100644
--- a/headless/lib/browser/headless_clipboard.cc
+++ b/headless/lib/browser/headless_clipboard.cc
@@ -12,7 +12,7 @@
 namespace headless {
 
 HeadlessClipboard::HeadlessClipboard()
-    : default_store_type_(ui::CLIPBOARD_TYPE_COPY_PASTE) {}
+    : default_store_type_(ui::ClipboardType::kCopyPaste) {}
 
 HeadlessClipboard::~HeadlessClipboard() = default;
 
@@ -123,7 +123,7 @@
   default_store_type_ = type;
   for (const auto& kv : objects)
     DispatchObject(static_cast<ObjectType>(kv.first), kv.second);
-  default_store_type_ = ui::CLIPBOARD_TYPE_COPY_PASTE;
+  default_store_type_ = ui::ClipboardType::kCopyPaste;
 }
 
 void HeadlessClipboard::WriteText(const char* text_data, size_t text_len) {
@@ -131,8 +131,8 @@
   GetDefaultStore().data[ui::ClipboardFormatType::GetPlainTextType()] = text;
   // Create a dummy entry.
   GetDefaultStore().data[ui::ClipboardFormatType::GetPlainTextType()];
-  if (IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) {
-    GetStore(ui::CLIPBOARD_TYPE_SELECTION)
+  if (IsSupportedClipboardType(ui::ClipboardType::kSelection)) {
+    GetStore(ui::ClipboardType::kSelection)
         .data[ui::ClipboardFormatType::GetPlainTextType()] = text;
   }
 }
diff --git a/headless/lib/headless_browser_browsertest.cc b/headless/lib/headless_browser_browsertest.cc
index 7c7b9db..623acc90 100644
--- a/headless/lib/headless_browser_browsertest.cc
+++ b/headless/lib/headless_browser_browsertest.cc
@@ -265,8 +265,8 @@
   ASSERT_TRUE(clipboard);
   base::string16 paste_text = base::ASCIIToUTF16("Clippy!");
   for (ui::ClipboardType type :
-       {ui::CLIPBOARD_TYPE_COPY_PASTE, ui::CLIPBOARD_TYPE_SELECTION,
-        ui::CLIPBOARD_TYPE_DRAG}) {
+       {ui::ClipboardType::kCopyPaste, ui::ClipboardType::kSelection,
+        ui::ClipboardType::kDrag}) {
     if (!ui::Clipboard::IsSupportedClipboardType(type))
       continue;
     {
diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg
index b85bf90..a5d1001 100644
--- a/infra/config/cr-buildbucket.cfg
+++ b/infra/config/cr-buildbucket.cfg
@@ -1018,48 +1018,24 @@
     }
 
     builders {
-      name: "Android FYI 32 dEQP Vk Release (Pixel XL)"
-      mixins: "android-gpu-fyi-ci"
-      mixins: "goma-rbe-prod"
-    }
-
-    builders {
       name: "Android FYI 32 Vk Release (Pixel 2)"
       mixins: "android-gpu-fyi-ci"
       mixins: "goma-rbe-prod"
     }
 
     builders {
-      name: "Android FYI 32 Vk Release (Pixel XL)"
-      mixins: "android-gpu-fyi-ci"
-      mixins: "goma-rbe-prod"
-    }
-
-    builders {
       name: "Android FYI 64 dEQP Vk Release (Pixel 2)"
       mixins: "android-gpu-fyi-ci"
       mixins: "goma-rbe-prod"
     }
 
     builders {
-      name: "Android FYI 64 dEQP Vk Release (Pixel XL)"
-      mixins: "android-gpu-fyi-ci"
-      mixins: "goma-rbe-prod"
-    }
-
-    builders {
       name: "Android FYI 64 Vk Release (Pixel 2)"
       mixins: "android-gpu-fyi-ci"
       mixins: "goma-rbe-prod"
     }
 
     builders {
-      name: "Android FYI 64 Vk Release (Pixel XL)"
-      mixins: "android-gpu-fyi-ci"
-      mixins: "goma-rbe-prod"
-    }
-
-    builders {
       name: "Android FYI dEQP Release (Nexus 5X)"
       mixins: "android-gpu-fyi-ci"
       mixins: "goma-rbe-prod"
@@ -1108,6 +1084,12 @@
     }
 
     builders {
+      name: "Android FYI SkiaRenderer Vulkan (Pixel 2)"
+      mixins: "android-gpu-fyi-ci"
+      mixins: "goma-rbe-prod"
+    }
+
+    builders {
       name: "Android Release (Nexus 5X)"
       mixins: "android-gpu-ci"
     }
@@ -1696,13 +1678,6 @@
     }
 
     builders {
-      name: "Linux Tests (dbg)(1)(32)"
-      mixins: "linux-ci"
-      mixins: "linux-xenial"
-      mixins: "builderless"
-    }
-
-    builders {
       name: "Linux TSan Builder"
       mixins: "linux"
       mixins: "linux-xenial"
@@ -3796,26 +3771,6 @@
       name: "gpu-fyi-try-android-p-pixel-2-64-deqp-vk"
     }
     builders {
-      mixins: "android-optional-gpu-try"
-      mixins: "goma-rbe-prod"
-      name: "gpu-fyi-try-android-p-pixel-xl-32-vk"
-    }
-    builders {
-      mixins: "android-optional-gpu-try"
-      mixins: "goma-rbe-prod"
-      name: "gpu-fyi-try-android-p-pixel-xl-32-deqp-vk"
-    }
-    builders {
-      mixins: "android-optional-gpu-try"
-      mixins: "goma-rbe-prod"
-      name: "gpu-fyi-try-android-p-pixel-xl-64-vk"
-    }
-    builders {
-      mixins: "android-optional-gpu-try"
-      mixins: "goma-rbe-prod"
-      name: "gpu-fyi-try-android-p-pixel-xl-64-deqp-vk"
-    }
-    builders {
       mixins: "android-try"
       mixins: "deterministic"
       mixins: "goma-rbe-prod"
@@ -4151,13 +4106,6 @@
       mixins: "builderless"
     }
     builders {
-      mixins: "linux-try"
-      mixins: "goma-rbe-prod"
-      name: "linux_chromium_dbg_32_ng"
-      mixins: "linux-xenial"
-      mixins: "builderless"
-    }
-    builders {
       mixins: "builderless"
       mixins: "goma-rbe-prod"
       mixins: "linux-debug-cache"
diff --git a/infra/config/luci-milo.cfg b/infra/config/luci-milo.cfg
index f9264db..804b1394 100644
--- a/infra/config/luci-milo.cfg
+++ b/infra/config/luci-milo.cfg
@@ -556,11 +556,6 @@
     short_name: "det"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)(32)"
-    category: "chromium.linux|debug|tester"
-    short_name: "32"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)"
     category: "chromium.linux|debug|tester"
     short_name: "64"
@@ -979,11 +974,6 @@
     short_name: "det"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)(32)"
-    category: "debug|tester"
-    short_name: "32"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)"
     category: "debug|tester"
     short_name: "64"
@@ -2677,41 +2667,21 @@
     short_name: "p2"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel XL)"
-    category: "week2a|android|32"
-    short_name: "pxl"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel 2)"
     category: "week2a|android|32deqp"
     short_name: "p2"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel XL)"
-    category: "week2a|android|32deqp"
-    short_name: "pxl"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel 2)"
     category: "week2a|android|64"
     short_name: "p2"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel XL)"
-    category: "week2a|android|64"
-    short_name: "pxl"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel 2)"
     category: "week2a|android|64deqp"
     short_name: "p2"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel XL)"
-    category: "week2a|android|64deqp"
-    short_name: "pxl"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI Release (NVIDIA Shield TV)"
     category: "week2a|android|rel"
     short_name: "shdtv"
@@ -3412,16 +3382,6 @@
     short_name: "P2"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel XL)"
-    category: "Android|vk|P32"
-    short_name: "PXL"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel XL)"
-    category: "Android|vk|P64"
-    short_name: "PXL"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel 2)"
     category: "Android|vk|P32"
     short_name: "P2"
@@ -3437,16 +3397,6 @@
     short_name: "N5X"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel XL)"
-    category: "Android|dqp|vk|P32"
-    short_name: "PXL"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel XL)"
-    category: "Android|dqp|vk|P64"
-    short_name: "PXL"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel 2)"
     category: "Android|dqp|vk|P32"
     short_name: "P2"
@@ -3456,6 +3406,11 @@
     category: "Android|dqp|vk|P64"
     short_name: "P2"
   }
+  builders {
+    name: "buildbucket/luci.chromium.ci/Android FYI SkiaRenderer Vulkan (Pixel 2)"
+    category: "Android|skv|P32"
+    short_name: "P2"
+  }
 }
 
 consoles {
@@ -4058,18 +4013,6 @@
     name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-2-64-deqp-vk"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-deqp-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-deqp-vk"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/android-deterministic-rel"
   }
   builders {
@@ -4234,9 +4177,6 @@
     name: "buildbucket/luci.chromium.try/linux_chromium_component_updater"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/linux_chromium_dbg_32_ng"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux_chromium_msan_rel_ng"
   }
   builders {
@@ -4746,18 +4686,6 @@
     name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-2-64-deqp-vk"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-deqp-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-vk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-deqp-vk"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/gpu-fyi-try-linux-intel-dqp"
   }
   builders {
@@ -4947,9 +4875,6 @@
     name: "buildbucket/luci.chromium.try/linux-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/linux_chromium_dbg_32_ng"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux_chromium_dbg_ng"
   }
   builders {
diff --git a/infra/config/luci-scheduler.cfg b/infra/config/luci-scheduler.cfg
index 8643590a..cf23283 100644
--- a/infra/config/luci-scheduler.cfg
+++ b/infra/config/luci-scheduler.cfg
@@ -72,13 +72,9 @@
   triggers: "Android Builder (dbg) Goma Latest Client"
   triggers: "Android CFI"
   triggers: "Android FYI 32 Vk Release (Pixel 2)"
-  triggers: "Android FYI 32 Vk Release (Pixel XL)"
   triggers: "Android FYI 32 dEQP Vk Release (Pixel 2)"
-  triggers: "Android FYI 32 dEQP Vk Release (Pixel XL)"
   triggers: "Android FYI 64 Vk Release (Pixel 2)"
-  triggers: "Android FYI 64 Vk Release (Pixel XL)"
   triggers: "Android FYI 64 dEQP Vk Release (Pixel 2)"
-  triggers: "Android FYI 64 dEQP Vk Release (Pixel XL)"
   triggers: "Android FYI Release (NVIDIA Shield TV)"
   triggers: "Android FYI Release (Nexus 5)"
   triggers: "Android FYI Release (Nexus 5X)"
@@ -456,16 +452,6 @@
 }
 
 job {
-  id: "Android FYI 32 dEQP Vk Release (Pixel XL)"
-  acl_sets: "default"
-  buildbucket: {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "luci.chromium.ci"
-    builder: "Android FYI 32 dEQP Vk Release (Pixel XL)"
-  }
-}
-
-job {
   id: "Android FYI 32 Vk Release (Pixel 2)"
   acl_sets: "default"
   buildbucket: {
@@ -476,16 +462,6 @@
 }
 
 job {
-  id: "Android FYI 32 Vk Release (Pixel XL)"
-  acl_sets: "default"
-  buildbucket: {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "luci.chromium.ci"
-    builder: "Android FYI 32 Vk Release (Pixel XL)"
-  }
-}
-
-job {
   id: "Android FYI 64 dEQP Vk Release (Pixel 2)"
   acl_sets: "default"
   buildbucket: {
@@ -496,16 +472,6 @@
 }
 
 job {
-  id: "Android FYI 64 dEQP Vk Release (Pixel XL)"
-  acl_sets: "default"
-  buildbucket: {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "luci.chromium.ci"
-    builder: "Android FYI 64 dEQP Vk Release (Pixel XL)"
-  }
-}
-
-job {
   id: "Android FYI 64 Vk Release (Pixel 2)"
   acl_sets: "default"
   buildbucket: {
@@ -516,16 +482,6 @@
 }
 
 job {
-  id: "Android FYI 64 Vk Release (Pixel XL)"
-  acl_sets: "default"
-  buildbucket: {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "luci.chromium.ci"
-    builder: "Android FYI 64 Vk Release (Pixel XL)"
-  }
-}
-
-job {
   id: "Android FYI dEQP Release (Nexus 5X)"
   acl_sets: "default"
   buildbucket: {
@@ -606,6 +562,16 @@
 }
 
 job {
+  id: "Android FYI SkiaRenderer Vulkan (Pixel 2)"
+  acl_sets: "default"
+  buildbucket: {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "Android FYI SkiaRenderer Vulkan (Pixel 2)"
+  }
+}
+
+job {
   id: "Android Release (Nexus 5X)"
   acl_sets: "default"
   buildbucket: {
@@ -1882,17 +1848,6 @@
   }
 }
 
-# Triggered by "Linux Builder (dbg)(32)"
-job {
-  id: "Linux Tests (dbg)(1)(32)"
-  acl_sets: "triggered-by-parent-builders"
-  buildbucket: {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "luci.chromium.ci"
-    builder: "Linux Tests (dbg)(1)(32)"
-  }
-}
-
 job {
   id: "Linux Builder"
   acl_sets: "default"
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_controller.mm b/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
index 123b9f23..78193c8 100644
--- a/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
+++ b/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
@@ -277,9 +277,8 @@
     active_time = l10n_util::GetNSString(
         IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_TODAY);
   } else if (days == 1) {
-    active_time = l10n_util::GetNSStringF(
-        IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAY,
-        base::NumberToString16(days));
+    active_time = l10n_util::GetNSString(
+        IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAY);
   } else {
     active_time = l10n_util::GetNSStringF(
         IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAYS,
diff --git a/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm b/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm
index b7a521e..a75d6e9 100644
--- a/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm
+++ b/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm
@@ -395,7 +395,9 @@
 // Tests to dismiss sign-in by opening an URL from another app.
 // Sign-in opened from: tab switcher.
 // Interrupted at: user consent.
-- (void)testDismissSigninFromTabSwitcher {
+// TODO(crbug.com/976828): Test flaky based on the screen size and the number
+// of recently closed tabs from the previous tests.
+- (void)DISABLED_testDismissSigninFromTabSwitcher {
   [self assertOpenURLWhenSigninFromView:OpenSigninMethodFromTabSwitcher
                         tapSettingsLink:NO];
 }
@@ -403,7 +405,9 @@
 // Tests to dismiss sign-in by opening an URL from another app.
 // Sign-in opened from: tab switcher.
 // Interrupted at: advanced sign-in.
-- (void)testDismissSigninFromTabSwitcherFromAdvancedSigninSettings {
+// TODO(crbug.com/976828): Test flaky based on the screen size and the number
+// of recently closed tabs from the previous tests.
+- (void)DISABLED_testDismissSigninFromTabSwitcherFromAdvancedSigninSettings {
   [self assertOpenURLWhenSigninFromView:OpenSigninMethodFromTabSwitcher
                         tapSettingsLink:YES];
 }
diff --git a/media/audio/audio_output_unittest.cc b/media/audio/audio_output_unittest.cc
index fb65539..c649475 100644
--- a/media/audio/audio_output_unittest.cc
+++ b/media/audio/audio_output_unittest.cc
@@ -98,7 +98,7 @@
 }
 
 // This test produces actual audio for .25 seconds on the default device.
-TEST_F(AudioOutputTest, Play200HzTone) {
+TEST_F(AudioOutputTest, DISABLED_Play200HzTone) {
   ABORT_AUDIO_TEST_IF_NOT(audio_manager_device_info_->HasAudioOutputDevices());
 
   stream_params_ =
diff --git a/media/audio/fake_audio_input_stream.cc b/media/audio/fake_audio_input_stream.cc
index ea06f93..0c03c65 100644
--- a/media/audio/fake_audio_input_stream.cc
+++ b/media/audio/fake_audio_input_stream.cc
@@ -3,19 +3,15 @@
 // found in the LICENSE file.
 
 #include "media/audio/fake_audio_input_stream.h"
-#include <memory>
 
 #include "base/atomicops.h"
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/command_line.h"
 #include "base/files/file_path.h"
-#include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_split.h"
-#include "base/threading/platform_thread.h"
-#include "base/threading/thread.h"
 #include "base/time/time.h"
 #include "media/audio/audio_manager_base.h"
 #include "media/audio/simple_sources.h"
@@ -38,7 +34,7 @@
                                            const AudioParameters& params)
     : audio_manager_(manager),
       callback_(NULL),
-      capture_thread_("FakeAudioInput"),
+      fake_audio_worker_(manager->GetWorkerTaskRunner(), params),
       params_(params),
       audio_bus_(AudioBus::Create(params)) {
   DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
@@ -55,39 +51,16 @@
   return true;
 }
 
-void FakeAudioInputStream::Start(AudioInputCallback* callback) {
+void FakeAudioInputStream::Start(AudioInputCallback* callback)  {
   DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
-  DCHECK(callback);
-  DCHECK(!callback_);
-  DCHECK(!fake_audio_worker_);
-
   callback_ = callback;
-
-  base::Thread::Options options;
-  options.priority = base::ThreadPriority::REALTIME_AUDIO;
-  CHECK(capture_thread_.StartWithOptions(options));
-
-  fake_audio_worker_ =
-      std::make_unique<FakeAudioWorker>(capture_thread_.task_runner(), params_);
-
-  fake_audio_worker_->Start(base::BindRepeating(
+  fake_audio_worker_.Start(base::BindRepeating(
       &FakeAudioInputStream::ReadAudioFromSource, base::Unretained(this)));
 }
 
 void FakeAudioInputStream::Stop() {
   DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
-  // Start was never called
-  if (!callback_) {
-    return;
-  }
-
-  DCHECK(capture_thread_.IsRunning());
-  DCHECK(fake_audio_worker_);
-
-  fake_audio_worker_->Stop();
-  fake_audio_worker_.reset();
-  capture_thread_.Stop();
-
+  fake_audio_worker_.Stop();
   callback_ = NULL;
 }
 
@@ -131,7 +104,7 @@
 
 void FakeAudioInputStream::ReadAudioFromSource(base::TimeTicks ideal_time,
                                                base::TimeTicks now) {
-  DCHECK(capture_thread_.task_runner()->BelongsToCurrentThread());
+  DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread());
   DCHECK(callback_);
 
   if (!audio_source_)
@@ -154,7 +127,7 @@
 
 using AudioSourceCallback = AudioOutputStream::AudioSourceCallback;
 std::unique_ptr<AudioSourceCallback> FakeAudioInputStream::ChooseSource() {
-  DCHECK(capture_thread_.task_runner()->BelongsToCurrentThread());
+  DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread());
 
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
       switches::kUseFileForFakeAudioCapture)) {
diff --git a/media/audio/fake_audio_input_stream.h b/media/audio/fake_audio_input_stream.h
index 1369332..29f74df 100644
--- a/media/audio/fake_audio_input_stream.h
+++ b/media/audio/fake_audio_input_stream.h
@@ -12,7 +12,6 @@
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
-#include "base/threading/thread.h"
 #include "media/audio/audio_io.h"
 #include "media/base/audio_parameters.h"
 #include "media/base/fake_audio_worker.h"
@@ -70,10 +69,9 @@
 
   AudioManagerBase* audio_manager_;
   AudioInputCallback* callback_;
-  base::Thread capture_thread_;
+  FakeAudioWorker fake_audio_worker_;
   AudioParameters params_;
 
-  std::unique_ptr<FakeAudioWorker> fake_audio_worker_;
   std::unique_ptr<AudioOutputStream::AudioSourceCallback> audio_source_;
   std::unique_ptr<media::AudioBus> audio_bus_;
 
diff --git a/media/base/android/media_drm_bridge_unittest.cc b/media/base/android/media_drm_bridge_unittest.cc
index 664854d7..bed53cb 100644
--- a/media/base/android/media_drm_bridge_unittest.cc
+++ b/media/base/android/media_drm_bridge_unittest.cc
@@ -174,7 +174,7 @@
   CreateWithoutSessionSupport(kWidevineKeySystem, kTestOrigin, kL1);
 }
 
-TEST_F(MediaDrmBridgeTest, Provision_Widevine) {
+TEST_F(MediaDrmBridgeTest, DISABLED_Provision_Widevine) {
   // Only test this if Widevine is supported. Otherwise
   // CreateWithoutSessionSupport() will return null and it can't be tested.
   if (!MediaDrmBridge::IsKeySystemSupported(kWidevineKeySystem)) {
diff --git a/media/base/fake_audio_worker_unittest.cc b/media/base/fake_audio_worker_unittest.cc
index 69ce37f..b1ee9e6 100644
--- a/media/base/fake_audio_worker_unittest.cc
+++ b/media/base/fake_audio_worker_unittest.cc
@@ -4,8 +4,6 @@
 
 #include "media/base/fake_audio_worker.h"
 
-#include <limits>
-#include <memory>
 #include <vector>
 
 #include "base/bind.h"
@@ -13,10 +11,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/single_thread_task_runner.h"
 #include "base/test/scoped_task_environment.h"
-#include "base/test/test_mock_time_task_runner.h"
-#include "base/time/tick_clock.h"
 #include "base/time/time.h"
-#include "base/time/time_override.h"
 #include "build/build_config.h"
 #include "media/base/audio_parameters.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
@@ -174,92 +169,4 @@
   scoped_task_environment_.FastForwardUntilNoTasksRemain();
   EXPECT_THAT(callbacks_, SizeIs(3));
 }
-
-class FakeAudioWorkerMockTaskTest : public testing::Test {
- public:
-  FakeAudioWorkerMockTaskTest()
-      : params_(AudioParameters::AUDIO_FAKE, CHANNEL_LAYOUT_STEREO, 44100, 128),
-        fake_worker_(task_runner_, params_) {
-    DCHECK(!global_clock_);
-    global_clock_ = task_runner_->GetMockTickClock();
-    time_between_callbacks_ = base::TimeDelta::FromMicroseconds(
-        params_.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
-        static_cast<float>(params_.sample_rate()));
-    clock_overrides_ = std::make_unique<base::subtle::ScopedTimeClockOverrides>(
-        nullptr, TimeTicksOverride, nullptr);
-  }
-
-  ~FakeAudioWorkerMockTaskTest() override { global_clock_ = nullptr; }
-
-  void CalledByFakeWorker(base::TimeTicks ideal_time, base::TimeTicks now) {
-    callbacks_.push_back(base::TimeTicks::Now());
-  }
-
-  void SetUp() override {
-    {
-      base::TestMockTimeTaskRunner::ScopedContext ctx(task_runner_);
-      fake_worker_.Start(
-          base::BindRepeating(&FakeAudioWorkerMockTaskTest::CalledByFakeWorker,
-                              base::Unretained(this)));
-    }
-  }
-
-  void TearDown() override {
-    {
-      base::TestMockTimeTaskRunner::ScopedContext ctx(task_runner_);
-      fake_worker_.Stop();
-    }
-    task_runner_->RunUntilIdle();
-  }
-
- protected:
-  scoped_refptr<base::TestMockTimeTaskRunner> task_runner_ =
-      new base::TestMockTimeTaskRunner();
-  std::unique_ptr<base::subtle::ScopedTimeClockOverrides> clock_overrides_;
-  AudioParameters params_;
-  FakeAudioWorker fake_worker_;
-  base::TimeDelta time_between_callbacks_;
-  std::vector<base::TimeTicks> callbacks_;
-
-  static const base::TickClock* global_clock_;
-  static base::TimeTicks TimeTicksOverride() {
-    DCHECK(global_clock_);
-    return global_clock_->NowTicks();
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(FakeAudioWorkerMockTaskTest);
-};
-
-const base::TickClock* FakeAudioWorkerMockTaskTest::global_clock_ = nullptr;
-
-// This test is disabled because when late we skip reading to maintain
-// compatibility for input and output streams.
-TEST_F(FakeAudioWorkerMockTaskTest, DISABLED_LateCallbackProducesCallback) {
-  task_runner_->RunUntilIdle();
-  EXPECT_THAT(callbacks_, SizeIs(1));
-
-  // Advancing 2 periods will trigger the late logic. It should result in one
-  // callback, And one queued item which will run in 0.5 callback periods.
-  task_runner_->AdvanceMockTickClock(time_between_callbacks_ * 2.5);
-  task_runner_->RunUntilIdle();
-  EXPECT_THAT(callbacks_, SizeIs(2));
-  // Fast-forward to trigger the next time. Note that 0.5 does not work due to
-  // rounding in the next frame logic, since 128 does not divide 44100.
-  task_runner_->FastForwardBy(time_between_callbacks_ * 0.501);
-  EXPECT_THAT(callbacks_, SizeIs(3));
-}
-
-TEST_F(FakeAudioWorkerMockTaskTest, CallbackDelay) {
-  // Initial call only
-  task_runner_->RunUntilIdle();
-
-  // Run the clock forward 1.5 periods and then trigger the callback.
-  // This means we are not behind, but the next callback should occur
-  // in 0.5 periods.
-  task_runner_->AdvanceMockTickClock(time_between_callbacks_ * 1.5);
-  task_runner_->RunUntilIdle();
-  EXPECT_THAT(callbacks_, SizeIs(2));
-  EXPECT_EQ(task_runner_->NextPendingTaskDelay(), time_between_callbacks_ / 2);
-}
 }  // namespace media
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
index f2b7c9d..61652aa 100644
--- a/media/gpu/BUILD.gn
+++ b/media/gpu/BUILD.gn
@@ -167,6 +167,8 @@
       "windows/d3d11_h264_accelerator.h",
       "windows/d3d11_picture_buffer.cc",
       "windows/d3d11_picture_buffer.h",
+      "windows/d3d11_texture_selector.cc",
+      "windows/d3d11_texture_selector.h",
       "windows/d3d11_texture_wrapper.cc",
       "windows/d3d11_texture_wrapper.h",
       "windows/d3d11_video_context_wrapper.cc",
@@ -571,6 +573,7 @@
       "windows/d3d11_cdm_proxy_unittest.cc",
       "windows/d3d11_copying_texture_wrapper_unittest.cc",
       "windows/d3d11_decryptor_unittest.cc",
+      "windows/d3d11_texture_selector_unittest.cc",
       "windows/d3d11_video_decoder_unittest.cc",
       "windows/d3d11_video_processor_proxy_unittest.cc",
     ]
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
index 0fad908..d65ff99 100644
--- a/media/gpu/vaapi/BUILD.gn
+++ b/media/gpu/vaapi/BUILD.gn
@@ -83,7 +83,6 @@
     "//media",
     "//media/gpu:common",
     "//media/gpu:video_frame_mapper_common",
-    "//media/gpu/chromeos:common",
     "//media/parsers",
     "//mojo/public/cpp/bindings",
     "//third_party/libyuv",
@@ -102,6 +101,7 @@
     deps += [
       "//components/chromeos_camera:jpeg_encode_accelerator",
       "//components/chromeos_camera:mjpeg_decode_accelerator",
+      "//media/gpu/chromeos:common",
     ]
   }
 
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
index f080f1ec..6362223 100644
--- a/media/gpu/vaapi/vaapi_wrapper.cc
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -156,6 +156,82 @@
       VAProfileH264ConstrainedBaseline}},
 };
 
+// Converts the given |va_profile| to the corresponding string.
+// See: http://go/gh/intel/libva/blob/master/va/va.h#L359
+std::string VAProfileToString(VAProfile va_profile) {
+  switch (va_profile) {
+    case VAProfileNone:
+      return "VAProfileNone";
+    case VAProfileMPEG2Simple:
+      return "VAProfileMPEG2Simple";
+    case VAProfileMPEG2Main:
+      return "VAProfileMPEG2Main";
+    case VAProfileMPEG4Simple:
+      return "VAProfileMPEG4Simple";
+    case VAProfileMPEG4AdvancedSimple:
+      return "VAProfileMPEG4AdvancedSimple";
+    case VAProfileMPEG4Main:
+      return "VAProfileMPEG4Main";
+    case VAProfileH264Baseline:
+      return "VAProfileH264Baseline";
+    case VAProfileH264Main:
+      return "VAProfileH264Main";
+    case VAProfileH264High:
+      return "VAProfileH264High";
+    case VAProfileVC1Simple:
+      return "VAProfileVC1Simple";
+    case VAProfileVC1Main:
+      return "VAProfileVC1Main";
+    case VAProfileVC1Advanced:
+      return "VAProfileVC1Advanced";
+    case VAProfileH263Baseline:
+      return "VAProfileH263Baseline";
+    case VAProfileJPEGBaseline:
+      return "VAProfileJPEGBaseline";
+    case VAProfileH264ConstrainedBaseline:
+      return "VAProfileH264ConstrainedBaseline";
+    case VAProfileVP8Version0_3:
+      return "VAProfileVP8Version0_3";
+    case VAProfileH264MultiviewHigh:
+      return "VAProfileH264MultiviewHigh";
+    case VAProfileH264StereoHigh:
+      return "VAProfileH264StereoHigh";
+    case VAProfileHEVCMain:
+      return "VAProfileHEVCMain";
+    case VAProfileHEVCMain10:
+      return "VAProfileHEVCMain10";
+    case VAProfileVP9Profile0:
+      return "VAProfileVP9Profile0";
+    case VAProfileVP9Profile1:
+      return "VAProfileVP9Profile1";
+    case VAProfileVP9Profile2:
+      return "VAProfileVP9Profile2";
+    case VAProfileVP9Profile3:
+      return "VAProfileVP9Profile3";
+    case VAProfileHEVCMain12:
+      return "VAProfileHEVCMain12";
+    case VAProfileHEVCMain422_10:
+      return "VAProfileHEVCMain422_10";
+    case VAProfileHEVCMain422_12:
+      return "VAProfileHEVCMain422_12";
+    case VAProfileHEVCMain444:
+      return "VAProfileHEVCMain444";
+    case VAProfileHEVCMain444_10:
+      return "VAProfileHEVCMain444_10";
+    case VAProfileHEVCMain444_12:
+      return "VAProfileHEVCMain444_12";
+    case VAProfileHEVCSccMain:
+      return "VAProfileHEVCSccMain";
+    case VAProfileHEVCSccMain10:
+      return "VAProfileHEVCSccMain10";
+    case VAProfileHEVCSccMain444:
+      return "VAProfileHEVCSccMain444";
+    default:
+      NOTREACHED();
+      return "";
+  }
+}
+
 bool IsBlackListedDriver(const std::string& va_vendor_string,
                          VaapiWrapper::CodecMode mode,
                          VAProfile va_profile) {
@@ -422,7 +498,8 @@
     VAStatus va_res =
         vaGetConfigAttributes(va_display, profile, entrypoint, &attrib, 1);
     if (va_res != VA_STATUS_SUCCESS) {
-      LOG(ERROR) << "GetConfigAttributes failed for va_profile " << profile;
+      LOG(ERROR) << "GetConfigAttributes failed for va_profile "
+                 << VAProfileToString(profile);
       return false;
     }
 
@@ -593,7 +670,8 @@
     if (!FillProfileInfo_Locked(va_profile, entrypoint, required_attribs,
                                 &profile_info)) {
       LOG(ERROR) << "FillProfileInfo_Locked failed for va_profile "
-                 << va_profile << " and entrypoint " << entrypoint;
+                 << VAProfileToString(va_profile) << " and entrypoint "
+                 << entrypoint;
       continue;
     }
     supported_profile_infos.push_back(profile_info);
@@ -993,7 +1071,8 @@
     if (vaapi_wrapper->Initialize(mode, va_profile))
       return vaapi_wrapper;
   }
-  LOG(ERROR) << "Failed to create VaapiWrapper for va_profile: " << va_profile;
+  LOG(ERROR) << "Failed to create VaapiWrapper for va_profile: "
+             << VAProfileToString(va_profile);
   return nullptr;
 }
 
diff --git a/media/gpu/windows/d3d11_texture_selector.cc b/media/gpu/windows/d3d11_texture_selector.cc
new file mode 100644
index 0000000..3789d17
--- /dev/null
+++ b/media/gpu/windows/d3d11_texture_selector.cc
@@ -0,0 +1,145 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "media/gpu/windows/d3d11_texture_selector.h"
+
+#include <d3d11.h>
+
+#include "media/gpu/windows/d3d11_copying_texture_wrapper.h"
+#include "ui/gfx/geometry/size.h"
+
+namespace media {
+
+TextureSelector::TextureSelector(VideoPixelFormat pixfmt,
+                                 DXGI_FORMAT dxgifmt,
+                                 GUID decoder_guid,
+                                 gfx::Size coded_size,
+                                 bool is_encrypted,
+                                 bool supports_swap_chain)
+    : pixel_format_(pixfmt),
+      dxgi_format_(dxgifmt),
+      decoder_guid_(decoder_guid),
+      coded_size_(coded_size),
+      is_encrypted_(is_encrypted),
+      supports_swap_chain_(supports_swap_chain) {
+  SetUpDecoderDescriptor();
+  SetUpTextureDescriptor();
+}
+
+// static
+std::unique_ptr<TextureSelector> TextureSelector::Create(
+    const VideoDecoderConfig& config) {
+  // TODO(tmathmeyer) use a CopyTextureSelector
+  if (config.profile() == VP9PROFILE_PROFILE2) {
+    return std::make_unique<TextureSelector>(
+        PIXEL_FORMAT_YUV420P10, DXGI_FORMAT_P010,
+        D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, config.coded_size(),
+        config.is_encrypted(), false);
+  }
+
+  bool supports_nv12_decode_swap_chain = base::FeatureList::IsEnabled(
+      features::kDirectCompositionUseNV12DecodeSwapChain);
+
+  if (config.profile() == VP9PROFILE_PROFILE0) {
+    return std::make_unique<TextureSelector>(
+        PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12,
+        D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, config.coded_size(),
+        config.is_encrypted(), supports_nv12_decode_swap_chain);
+  }
+
+  if (config.codec() == kCodecH264) {
+    return std::make_unique<TextureSelector>(
+        PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12,
+        D3D11_DECODER_PROFILE_H264_VLD_NOFGT, config.coded_size(),
+        config.is_encrypted(), supports_nv12_decode_swap_chain);
+  }
+
+  return nullptr;
+}
+
+bool TextureSelector::SupportsDevice(
+    Microsoft::WRL::ComPtr<ID3D11VideoDevice> video_device) {
+  for (UINT i = video_device->GetVideoDecoderProfileCount(); i--;) {
+    GUID profile = {};
+    if (SUCCEEDED(video_device->GetVideoDecoderProfile(i, &profile))) {
+      if (profile == decoder_guid_)
+        return true;
+    }
+  }
+  return false;
+}
+
+ComD3D11Texture2D TextureSelector::CreateOutputTexture(ComD3D11Device device,
+                                                       gfx::Size size) {
+  texture_desc_.Width = size.width();
+  texture_desc_.Height = size.height();
+
+  ComD3D11Texture2D result;
+  if (!SUCCEEDED(device->CreateTexture2D(&texture_desc_, nullptr, &result)))
+    return nullptr;
+
+  return result;
+}
+
+std::unique_ptr<Texture2DWrapper> TextureSelector::CreateTextureWrapper(
+    ComD3D11Device device,
+    ComD3D11VideoDevice video_device,
+    ComD3D11DeviceContext device_context,
+    ComD3D11Texture2D input_texture,
+    gfx::Size size) {
+  return std::make_unique<DefaultTexture2DWrapper>(input_texture);
+}
+
+// private
+void TextureSelector::SetUpDecoderDescriptor() {
+  decoder_desc_ = {};
+  decoder_desc_.Guid = decoder_guid_;
+  decoder_desc_.SampleWidth = coded_size_.width();
+  decoder_desc_.SampleHeight = coded_size_.height();
+  decoder_desc_.OutputFormat = dxgi_format_;
+}
+
+// private
+void TextureSelector::SetUpTextureDescriptor() {
+  texture_desc_ = {};
+  texture_desc_.MipLevels = 1;
+  texture_desc_.ArraySize = TextureSelector::BUFFER_COUNT;
+  texture_desc_.Format = dxgi_format_;
+  texture_desc_.SampleDesc.Count = 1;
+  texture_desc_.Usage = D3D11_USAGE_DEFAULT;
+  texture_desc_.BindFlags = D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE;
+
+  // Decode swap chains do not support shared resources.
+  // TODO(sunnyps): Find a workaround for when the decoder moves to its own
+  // thread and D3D device.  See https://crbug.com/911847
+  texture_desc_.MiscFlags =
+      supports_swap_chain_ ? 0 : D3D11_RESOURCE_MISC_SHARED;
+
+  if (is_encrypted_)
+    texture_desc_.MiscFlags |= D3D11_RESOURCE_MISC_HW_PROTECTED;
+}
+
+std::unique_ptr<Texture2DWrapper> CopyTextureSelector::CreateTextureWrapper(
+    ComD3D11Device device,
+    ComD3D11VideoDevice video_device,
+    ComD3D11DeviceContext device_context,
+    ComD3D11Texture2D input_texture,
+    gfx::Size size) {
+  // Change the texture descriptor flags to make different output textures
+  texture_desc_.BindFlags =
+      D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
+  texture_desc_.ArraySize = 1;
+  texture_desc_.CPUAccessFlags = 0;
+
+  ComD3D11Texture2D out_texture = CreateOutputTexture(device, size);
+  if (!out_texture)
+    return nullptr;
+
+  return std::make_unique<CopyingTexture2DWrapper>(
+      std::make_unique<DefaultTexture2DWrapper>(out_texture),
+      std::make_unique<VideoProcessorProxy>(video_device, device_context),
+      input_texture);
+}
+
+}  // namespace media
diff --git a/media/gpu/windows/d3d11_texture_selector.h b/media/gpu/windows/d3d11_texture_selector.h
new file mode 100644
index 0000000..f54d52f0
--- /dev/null
+++ b/media/gpu/windows/d3d11_texture_selector.h
@@ -0,0 +1,92 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_
+#define MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_
+
+#include <d3d11.h>
+#include <wrl.h>
+#include <memory>
+#include <vector>
+
+#include "media/gpu/media_gpu_export.h"
+#include "media/gpu/windows/d3d11_picture_buffer.h"
+#include "media/gpu/windows/d3d11_video_processor_proxy.h"
+#include "ui/gfx/geometry/size.h"
+
+namespace media {
+
+// Stores different pixel formats and DGXI formats, and checks for decoder
+// GUID support.
+class MEDIA_GPU_EXPORT TextureSelector {
+ public:
+  TextureSelector(VideoPixelFormat pixfmt,
+                  DXGI_FORMAT dxgifmt,
+                  GUID decoder_guid,
+                  gfx::Size coded_size,
+                  bool is_encrypted,
+                  bool supports_swap_chain);
+  virtual ~TextureSelector() = default;
+
+  static std::unique_ptr<TextureSelector> Create(
+      const VideoDecoderConfig& config);
+
+  bool SupportsDevice(Microsoft::WRL::ComPtr<ID3D11VideoDevice> video_device);
+  ComD3D11Texture2D CreateOutputTexture(ComD3D11Device device, gfx::Size size);
+  virtual std::unique_ptr<Texture2DWrapper> CreateTextureWrapper(
+      ComD3D11Device device,
+      ComD3D11VideoDevice video_device,
+      ComD3D11DeviceContext,
+      ComD3D11Texture2D input_texture,
+      gfx::Size size);
+
+  const D3D11_VIDEO_DECODER_DESC* DecoderDescriptor() { return &decoder_desc_; }
+  const GUID DecoderGuid() { return decoder_guid_; }
+  VideoPixelFormat PixelFormat() { return pixel_format_; }
+
+  static constexpr size_t BUFFER_COUNT = 20;
+
+ private:
+  friend class CopyTextureSelector;
+  // Set up instances of the parameter structs for D3D11 Functions
+  void SetUpDecoderDescriptor();
+  void SetUpTextureDescriptor();
+
+  D3D11_TEXTURE2D_DESC texture_desc_;
+  D3D11_VIDEO_DECODER_DESC decoder_desc_;
+
+  const VideoPixelFormat pixel_format_;
+  const DXGI_FORMAT dxgi_format_;
+  const GUID decoder_guid_;
+  const gfx::Size coded_size_;
+  const bool is_encrypted_;
+  const bool supports_swap_chain_;
+};
+
+class MEDIA_GPU_EXPORT CopyTextureSelector : public TextureSelector {
+ public:
+  CopyTextureSelector(VideoPixelFormat pixfmt,
+                      DXGI_FORMAT dxgifmt,
+                      GUID decoder_guid,
+                      gfx::Size coded_size,
+                      bool is_encrypted,
+                      bool supports_swap_chain)
+      : TextureSelector(pixfmt,
+                        dxgifmt,
+                        decoder_guid,
+                        coded_size,
+                        is_encrypted,
+                        supports_swap_chain) {}
+
+  std::unique_ptr<Texture2DWrapper> CreateTextureWrapper(
+      ComD3D11Device device,
+      ComD3D11VideoDevice video_device,
+      ComD3D11DeviceContext,
+      ComD3D11Texture2D input_texture,
+      gfx::Size size) override;
+};
+
+}  // namespace media
+
+#endif  // MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_
diff --git a/media/gpu/windows/d3d11_texture_selector_unittest.cc b/media/gpu/windows/d3d11_texture_selector_unittest.cc
new file mode 100644
index 0000000..aa1e0d9d2
--- /dev/null
+++ b/media/gpu/windows/d3d11_texture_selector_unittest.cc
@@ -0,0 +1,96 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <utility>
+
+#include "media/base/win/d3d11_mocks.h"
+#include "media/gpu/windows/d3d11_texture_selector.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using ::testing::_;
+using ::testing::Combine;
+using ::testing::DoAll;
+using ::testing::Return;
+using ::testing::SetArgPointee;
+using ::testing::Values;
+
+namespace media {
+
+class D3D11TextureSelectorUnittest : public ::testing::Test {
+ public:
+  VideoDecoderConfig CreateDecoderConfig(VideoCodecProfile profile,
+                                         gfx::Size size,
+                                         bool encrypted) {
+    VideoDecoderConfig result;
+    EncryptionPattern pattern;
+    result.Initialize(
+        kUnknownVideoCodec,  // It doesn't matter because it won't be used.
+        profile, PIXEL_FORMAT_UNKNOWN, VideoColorSpace(), kNoTransformation,
+        size, {}, {}, {},
+        EncryptionScheme(encrypted ? EncryptionScheme::CIPHER_MODE_AES_CTR
+                                   : EncryptionScheme::CIPHER_MODE_UNENCRYPTED,
+                         pattern));
+    return result;
+  }
+};
+
+TEST_F(D3D11TextureSelectorUnittest, VP9Profile0RightFormats) {
+  auto tex_sel = TextureSelector::Create(
+      CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false));
+
+  EXPECT_EQ(tex_sel->DecoderGuid(), D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0);
+  EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_NV12);
+  EXPECT_EQ(tex_sel->DecoderDescriptor()->OutputFormat, DXGI_FORMAT_NV12);
+}
+
+TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceNoProfiles) {
+  auto tex_sel = TextureSelector::Create(
+      CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false));
+
+  auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>();
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount())
+      .Times(1)
+      .WillOnce(Return(0));
+
+  EXPECT_FALSE(tex_sel->SupportsDevice(vd_mock));
+}
+
+TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceWrongProfiles) {
+  auto tex_sel = TextureSelector::Create(
+      CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false));
+
+  auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>();
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount())
+      .Times(1)
+      .WillOnce(Return(2));
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(0, _))
+      .Times(1)
+      .WillOnce(DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN),
+                      Return(S_OK)));
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(1, _))
+      .Times(1)
+      .WillOnce(
+          DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_VC1_VLD), Return(S_OK)));
+
+  EXPECT_FALSE(tex_sel->SupportsDevice(vd_mock));
+}
+
+TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceCorrectProfile) {
+  auto tex_sel = TextureSelector::Create(
+      CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false));
+
+  auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>();
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount())
+      .Times(1)
+      .WillOnce(Return(5));
+  EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(4, _))
+      .Times(1)
+      .WillOnce(DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0),
+                      Return(S_OK)));
+
+  EXPECT_TRUE(tex_sel->SupportsDevice(vd_mock));
+}
+
+}  // namespace media
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc
index f61b8dbd..9987c03 100644
--- a/media/gpu/windows/d3d11_video_decoder.cc
+++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -31,19 +31,6 @@
 
 namespace {
 
-#define INRANGE(_profile, codecname) \
-  (_profile >= codecname##PROFILE_MIN && _profile <= codecname##PROFILE_MAX)
-
-bool IsVP9(const VideoDecoderConfig& config) {
-  return INRANGE(config.profile(), VP9);
-}
-
-bool IsH264(const VideoDecoderConfig& config) {
-  return INRANGE(config.profile(), H264);
-}
-
-#undef INRANGE
-
 // Holder class, so that we don't keep creating CommandBufferHelpers every time
 // somebody calls a callback.  We can't actually create it until we're on the
 // right thread.
@@ -79,79 +66,6 @@
 
 }  // namespace
 
-D3D11_VIDEO_DECODER_DESC TextureSelector::DecoderDescriptor(gfx::Size size) {
-  D3D11_VIDEO_DECODER_DESC desc = {};
-  desc.Guid = decoder_guid;
-  desc.SampleWidth = size.width();
-  desc.SampleHeight = size.height();
-  desc.OutputFormat = dxgi_format;
-  return desc;
-}
-
-D3D11_TEXTURE2D_DESC TextureSelector::TextureDescriptor(gfx::Size size) {
-  D3D11_TEXTURE2D_DESC texture_desc = {};
-  texture_desc.Width = size.width();
-  texture_desc.Height = size.height();
-  texture_desc.MipLevels = 1;
-  texture_desc.ArraySize = TextureSelector::BUFFER_COUNT;
-  texture_desc.Format = dxgi_format;
-  texture_desc.SampleDesc.Count = 1;
-  texture_desc.Usage = D3D11_USAGE_DEFAULT;
-  texture_desc.BindFlags = D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE;
-
-  // Decode swap chains do not support shared resources.
-  // TODO(sunnyps): Find a workaround for when the decoder moves to its own
-  // thread and D3D device.  See https://crbug.com/911847
-  texture_desc.MiscFlags =
-      supports_swap_chain_ ? 0 : D3D11_RESOURCE_MISC_SHARED;
-
-  if (is_encrypted_)
-    texture_desc.MiscFlags |= D3D11_RESOURCE_MISC_HW_PROTECTED;
-
-  return texture_desc;
-}
-
-bool TextureSelector::SupportsDevice(ComD3D11VideoDevice video_device) {
-  for (UINT i = video_device->GetVideoDecoderProfileCount(); i--;) {
-    GUID profile = {};
-    if (SUCCEEDED(video_device->GetVideoDecoderProfile(i, &profile))) {
-      if (profile == decoder_guid)
-        return true;
-    }
-  }
-  return false;
-}
-
-// static
-std::unique_ptr<TextureSelector> TextureSelector::Create(
-    const VideoDecoderConfig& config) {
-  if (config.profile() == VP9PROFILE_PROFILE2) {
-    return std::make_unique<TextureSelector>(
-        PIXEL_FORMAT_YUV420P10, DXGI_FORMAT_P010,
-        D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, config.is_encrypted(),
-        false);
-  }
-
-  bool supports_nv12_decode_swap_chain = base::FeatureList::IsEnabled(
-      features::kDirectCompositionUseNV12DecodeSwapChain);
-
-  if (config.profile() == VP9PROFILE_PROFILE0) {
-    return std::make_unique<TextureSelector>(
-        PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12,
-        D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, config.is_encrypted(),
-        supports_nv12_decode_swap_chain);
-  }
-
-  if (IsH264(config)) {
-    return std::make_unique<TextureSelector>(
-        PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12,
-        D3D11_DECODER_PROFILE_H264_VLD_NOFGT, config.is_encrypted(),
-        supports_nv12_decode_swap_chain);
-  }
-
-  return nullptr;
-}
-
 std::unique_ptr<VideoDecoder> D3D11VideoDecoder::Create(
     scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
     std::unique_ptr<MediaLog> media_log,
@@ -239,7 +153,7 @@
   if (!SUCCEEDED(hr))
     return hr;
 
-  if (IsVP9(config)) {
+  if (config.codec() == kCodecVP9) {
     accelerated_video_decoder_ = std::make_unique<VP9Decoder>(
         std::make_unique<D3D11VP9Accelerator>(
             this, media_log_.get(), proxy_context, video_decoder, video_device_,
@@ -248,7 +162,7 @@
     return hr;
   }
 
-  if (IsH264(config)) {
+  if (config.codec() == kCodecH264) {
     accelerated_video_decoder_ = std::make_unique<H264Decoder>(
         std::make_unique<D3D11H264Accelerator>(
             this, media_log_.get(), proxy_context, video_decoder, video_device_,
@@ -352,10 +266,9 @@
   if (multi_threaded)
     multi_threaded->SetMultithreadProtected(TRUE);
 
-  D3D11_VIDEO_DECODER_DESC desc =
-      texture_selector_->DecoderDescriptor(config.coded_size());
   UINT config_count = 0;
-  hr = video_device_->GetVideoDecoderConfigCount(&desc, &config_count);
+  hr = video_device_->GetVideoDecoderConfigCount(
+      texture_selector_->DecoderDescriptor(), &config_count);
   if (FAILED(hr) || config_count == 0) {
     NotifyError("Failed to get video decoder config count");
     return;
@@ -363,8 +276,10 @@
 
   D3D11_VIDEO_DECODER_CONFIG dec_config = {};
   bool found = false;
+
   for (UINT i = 0; i < config_count; i++) {
-    hr = video_device_->GetVideoDecoderConfig(&desc, i, &dec_config);
+    hr = video_device_->GetVideoDecoderConfig(
+        texture_selector_->DecoderDescriptor(), i, &dec_config);
     if (FAILED(hr)) {
       NotifyError("Failed to get decoder config");
       return;
@@ -376,13 +291,13 @@
       continue;
     }
 
-    if (IsVP9(config) && dec_config.ConfigBitstreamRaw == 1) {
+    if (config.codec() == kCodecVP9 && dec_config.ConfigBitstreamRaw == 1) {
       // DXVA VP9 specification mentions ConfigBitstreamRaw "shall be 1".
       found = true;
       break;
     }
 
-    if (IsH264(config) && dec_config.ConfigBitstreamRaw == 2) {
+    if (config.codec() == kCodecH264 && dec_config.ConfigBitstreamRaw == 2) {
       // ConfigBitstreamRaw == 2 means the decoder uses DXVA_Slice_H264_Short.
       found = true;
       break;
@@ -393,9 +308,9 @@
     return;
   }
 
-  ComD3D11VideoDecoder video_decoder;
-  hr = video_device_->CreateVideoDecoder(
-      &desc, &dec_config, video_decoder.ReleaseAndGetAddressOf());
+  Microsoft::WRL::ComPtr<ID3D11VideoDecoder> video_decoder;
+  hr = video_device_->CreateVideoDecoder(texture_selector_->DecoderDescriptor(),
+                                         &dec_config, &video_decoder);
   if (!video_decoder.Get()) {
     NotifyError("Failed to create a video decoder");
     return;
@@ -651,13 +566,10 @@
   DCHECK(texture_selector_);
   gfx::Size size = accelerated_video_decoder_->GetPicSize();
 
-  D3D11_TEXTURE2D_DESC texture_desc =
-      texture_selector_->TextureDescriptor(size);
-
-  ComD3D11Texture2D out_texture;
-  HRESULT hr = device_->CreateTexture2D(&texture_desc, nullptr,
-                                        out_texture.ReleaseAndGetAddressOf());
-  if (!SUCCEEDED(hr)) {
+  // Create an input texture array.
+  ComD3D11Texture2D in_texture =
+      texture_selector_->CreateOutputTexture(device_, size);
+  if (!in_texture) {
     NotifyError("Failed to create a Texture2D for PictureBuffers");
     return;
   }
@@ -667,14 +579,16 @@
     DCHECK(!buffer->in_picture_use());
   picture_buffers_.clear();
 
-  // Create each picture buffer.
+  // Create each picture buffer.1
   const int textures_per_picture = 2;  // From the VDA
   for (size_t i = 0; i < TextureSelector::BUFFER_COUNT; i++) {
-    auto processor = std::make_unique<DefaultTexture2DWrapper>(out_texture);
+    auto tex_wrapper = texture_selector_->CreateTextureWrapper(
+        device_, video_device_, device_context_, in_texture, size);
+
     picture_buffers_.push_back(new D3D11PictureBuffer(
-        GL_TEXTURE_EXTERNAL_OES, std::move(processor), size, i));
+        GL_TEXTURE_EXTERNAL_OES, std::move(tex_wrapper), size, i));
     if (!picture_buffers_[i]->Init(get_helper_cb_, video_device_,
-                                   texture_selector_->decoder_guid,
+                                   texture_selector_->DecoderGuid(),
                                    textures_per_picture, media_log_->Clone())) {
       NotifyError("Unable to allocate PictureBuffer");
       return;
@@ -720,7 +634,7 @@
   }
 
   scoped_refptr<VideoFrame> frame = VideoFrame::WrapNativeTextures(
-      texture_selector_->pixel_format, mailbox_holders,
+      texture_selector_->PixelFormat(), mailbox_holders,
       VideoFrame::ReleaseMailboxCB(), picture_buffer->size(), visible_rect,
       GetNaturalSize(visible_rect, pixel_aspect_ratio), timestamp);
 
diff --git a/media/gpu/windows/d3d11_video_decoder.h b/media/gpu/windows/d3d11_video_decoder.h
index 369b643..b76bf59 100644
--- a/media/gpu/windows/d3d11_video_decoder.h
+++ b/media/gpu/windows/d3d11_video_decoder.h
@@ -5,6 +5,7 @@
 #ifndef MEDIA_GPU_D3D11_VIDEO_DECODER_H_
 #define MEDIA_GPU_D3D11_VIDEO_DECODER_H_
 
+#include <d3d11.h>
 #include <string>
 #include <vector>
 
@@ -23,6 +24,7 @@
 #include "media/gpu/media_gpu_export.h"
 #include "media/gpu/windows/d3d11_com_defs.h"
 #include "media/gpu/windows/d3d11_h264_accelerator.h"
+#include "media/gpu/windows/d3d11_texture_selector.h"
 #include "media/gpu/windows/d3d11_video_decoder_client.h"
 #include "media/gpu/windows/d3d11_vp9_accelerator.h"
 #include "media/video/supported_video_decoder_config.h"
@@ -38,42 +40,6 @@
 class D3D11VideoDecoderTest;
 class MediaLog;
 
-// Stores different pixel formats and DGXI formats, and checks for decoder
-// GUID support.
-class TextureSelector {
- public:
-  TextureSelector(VideoPixelFormat pixfmt,
-                  DXGI_FORMAT dxgifmt,
-                  GUID decoder_guid,
-                  bool is_encrypted,
-                  bool supports_swap_chain)
-      : pixel_format(pixfmt),
-        dxgi_format(dxgifmt),
-        decoder_guid(decoder_guid),
-        is_encrypted_(is_encrypted),
-        supports_swap_chain_(supports_swap_chain) {}
-  ~TextureSelector() = default;
-
-  static std::unique_ptr<TextureSelector> Create(
-      const VideoDecoderConfig& config);
-
-  D3D11_VIDEO_DECODER_DESC DecoderDescriptor(gfx::Size size);
-  D3D11_TEXTURE2D_DESC TextureDescriptor(gfx::Size size);
-  bool SupportsDevice(ComD3D11VideoDevice video_device);
-
-  const VideoPixelFormat pixel_format;
-  const DXGI_FORMAT dxgi_format;
-  const GUID decoder_guid;
-
-  // TODO(liberato): what's the minimum that we need for the decoder?
-  // the VDA requests 20.
-  static constexpr int BUFFER_COUNT = 20;
-
- private:
-  const bool is_encrypted_;
-  const bool supports_swap_chain_;
-};
-
 // Video decoder that uses D3D11 directly.  It is intended that this class will
 // run the decoder on whatever thread it lives on.  However, at the moment, it
 // only works if it's on the gpu main thread.
diff --git a/mojo/core/broker_host.cc b/mojo/core/broker_host.cc
index a40abad..5e6b225 100644
--- a/mojo/core/broker_host.cc
+++ b/mojo/core/broker_host.cc
@@ -108,21 +108,21 @@
   base::subtle::PlatformSharedMemoryRegion region =
       base::subtle::PlatformSharedMemoryRegion::CreateWritable(num_bytes);
 
-  std::vector<PlatformHandleInTransit> handles;
-  handles.reserve(2);
+  std::vector<PlatformHandleInTransit> handles(2);
   if (region.IsValid()) {
     PlatformHandle h[2];
     ExtractPlatformHandlesFromSharedMemoryRegionHandle(
         region.PassPlatformHandle(), &h[0], &h[1]);
-    handles.emplace_back(std::move(h[0]));
+    handles[0] = PlatformHandleInTransit(std::move(h[0]));
+    handles[1] = PlatformHandleInTransit(std::move(h[1]));
 #if !defined(OS_POSIX) || defined(OS_ANDROID) || \
     (defined(OS_MACOSX) && !defined(OS_IOS))
     // Non-POSIX systems, as well as Android, and non-iOS Mac, only use a single
     // handle to represent a writable region.
-    DCHECK(!h[1].is_valid());
+    DCHECK(!handles[1].handle().is_valid());
+    handles.resize(1);
 #else
-    DCHECK(h[1].is_valid());
-    handles.emplace_back(std::move(h[1]));
+    DCHECK(handles[1].handle().is_valid());
 #endif
   }
 
diff --git a/mojo/core/data_pipe_unittest.cc b/mojo/core/data_pipe_unittest.cc
index a4675079..4e7c9b0 100644
--- a/mojo/core/data_pipe_unittest.cc
+++ b/mojo/core/data_pipe_unittest.cc
@@ -42,9 +42,6 @@
 const char kMultiprocessTestData[] = "hello i'm a string that is 36 bytes";
 const int kMultiprocessMaxIter = 5;
 
-// Capacity that will cause data pipe creation to fail.
-constexpr size_t kOversizedCapacity = std::numeric_limits<uint32_t>::max();
-
 // TODO(rockot): There are many uses of ASSERT where EXPECT would be more
 // appropriate. Fix this.
 
@@ -1730,17 +1727,6 @@
   return num_bytes == 0;
 }
 
-TEST_F(DataPipeTest, CreateOversized) {
-  const MojoCreateDataPipeOptions options = {
-      kSizeOfOptions,                   // |struct_size|.
-      MOJO_CREATE_DATA_PIPE_FLAG_NONE,  // |flags|.
-      1,                                // |element_num_bytes|.
-      kOversizedCapacity,               // |capacity_num_bytes|.
-  };
-
-  ASSERT_EQ(MOJO_RESULT_RESOURCE_EXHAUSTED, Create(&options));
-}
-
 #if !defined(OS_IOS)
 
 TEST_F(DataPipeTest, Multiprocess) {
@@ -2054,33 +2040,6 @@
   });
 }
 
-DEFINE_TEST_CLIENT_TEST_WITH_PIPE(CreateOversizedChild, DataPipeTest, h) {
-  const MojoCreateDataPipeOptions options = {
-      kSizeOfOptions,                   // |struct_size|.
-      MOJO_CREATE_DATA_PIPE_FLAG_NONE,  // |flags|.
-      1,                                // |element_num_bytes|.
-      kOversizedCapacity                // |capacity_num_bytes|.
-  };
-
-  MojoHandle p, c;
-  ASSERT_EQ(MOJO_RESULT_RESOURCE_EXHAUSTED,
-            MojoCreateDataPipe(&options, &p, &c));
-  WriteMessage(h, "success");
-
-  // Wait for a quit message.
-  EXPECT_EQ("quit", ReadMessage(h));
-}
-
-TEST_F(DataPipeTest, CreateOversizedInChild) {
-  RunTestClient("CreateOversizedChild", [&](MojoHandle child) {
-    // Wait for the child to finish the test.
-    std::string expected_message = ReadMessage(child);
-    EXPECT_EQ("success", expected_message);
-
-    WriteMessage(child, "quit");
-  });
-}
-
 #endif  // !defined(OS_IOS)
 
 }  // namespace
diff --git a/net/http/http_auth_gssapi_posix.cc b/net/http/http_auth_gssapi_posix.cc
index 9dfbcf0..4428629 100644
--- a/net/http/http_auth_gssapi_posix.cc
+++ b/net/http/http_auth_gssapi_posix.cc
@@ -13,68 +13,17 @@
 #include "base/format_macros.h"
 #include "base/logging.h"
 #include "base/stl_util.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/threading/thread_restrictions.h"
+#include "net/base/hex_utils.h"
 #include "net/base/net_errors.h"
 #include "net/http/http_auth_gssapi_posix.h"
 #include "net/http/http_auth_multi_round_parse.h"
 #include "net/net_buildflags.h"
 
-// Based on RFC 2744 Appendix A (https://tools.ietf.org/html/rfc2744#appendix-A)
-// These constants are defined here for use in diagnostics without adding a
-// dependency on an external library.
-namespace {
-
-static gss_OID_desc GSS_C_NT_USER_NAME_VAL = {
-  10,
-  const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01")
-};
-static gss_OID_desc GSS_C_NT_MACHINE_UID_NAME_VAL = {
-  10,
-  const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02")
-};
-static gss_OID_desc GSS_C_NT_STRING_UID_NAME_VAL = {
-  10,
-  const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03")
-};
-static gss_OID_desc GSS_C_NT_HOSTBASED_SERVICE_X_VAL = {
-  6,
-  const_cast<char*>("\x2b\x06\x01\x05\x06\x02")
-};
-static gss_OID_desc GSS_C_NT_HOSTBASED_SERVICE_VAL = {
-  10,
-  const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04")
-};
-static gss_OID_desc GSS_C_NT_ANONYMOUS_VAL = {
-  6,
-  const_cast<char*>("\x2b\x06\01\x05\x06\x03")
-};
-static gss_OID_desc GSS_C_NT_EXPORT_NAME_VAL = {
-  6,
-  const_cast<char*>("\x2b\x06\x01\x05\x06\x04")
-};
-
-}  // namespace
-
-// Heimdal >= 1.4 will define the following as preprocessor macros.
-// To avoid conflicting declarations, we have to undefine these.
-#undef GSS_C_NT_USER_NAME
-#undef GSS_C_NT_MACHINE_UID_NAME
-#undef GSS_C_NT_STRING_UID_NAME
-#undef GSS_C_NT_HOSTBASED_SERVICE_X
-#undef GSS_C_NT_HOSTBASED_SERVICE
-#undef GSS_C_NT_ANONYMOUS
-#undef GSS_C_NT_EXPORT_NAME
-
-gss_OID GSS_C_NT_USER_NAME = &GSS_C_NT_USER_NAME_VAL;
-gss_OID GSS_C_NT_MACHINE_UID_NAME = &GSS_C_NT_MACHINE_UID_NAME_VAL;
-gss_OID GSS_C_NT_STRING_UID_NAME = &GSS_C_NT_STRING_UID_NAME_VAL;
-gss_OID GSS_C_NT_HOSTBASED_SERVICE_X = &GSS_C_NT_HOSTBASED_SERVICE_X_VAL;
-gss_OID GSS_C_NT_HOSTBASED_SERVICE = &GSS_C_NT_HOSTBASED_SERVICE_VAL;
-gss_OID GSS_C_NT_ANONYMOUS = &GSS_C_NT_ANONYMOUS_VAL;
-gss_OID GSS_C_NT_EXPORT_NAME = &GSS_C_NT_EXPORT_NAME_VAL;
-
 namespace net {
 
 using DelegationType = HttpAuth::DelegationType;
@@ -93,98 +42,22 @@
 // Debugging helpers.
 namespace {
 
-std::string DisplayStatus(OM_uint32 major_status,
-                          OM_uint32 minor_status) {
-  if (major_status == GSS_S_COMPLETE)
-    return "OK";
-  return base::StringPrintf("0x%08X 0x%08X", major_status, minor_status);
-}
-
-std::string DisplayCode(GSSAPILibrary* gssapi_lib,
-                        OM_uint32 status,
-                        OM_uint32 status_code_type) {
-  const int kMaxDisplayIterations = 8;
-  const size_t kMaxMsgLength = 4096;
-  // msg_ctx needs to be outside the loop because it is invoked multiple times.
-  OM_uint32 msg_ctx = 0;
-  std::string rv = base::StringPrintf("(0x%08X)", status);
-
-  // This loop should continue iterating until msg_ctx is 0 after the first
-  // iteration. To be cautious and prevent an infinite loop, it stops after
-  // a finite number of iterations as well. As an added sanity check, no
-  // individual message may exceed |kMaxMsgLength|, and the final result
-  // will not exceed |kMaxMsgLength|*2-1.
-  for (int i = 0; i < kMaxDisplayIterations && rv.size() < kMaxMsgLength;
-       ++i) {
-    OM_uint32 min_stat;
-    gss_buffer_desc_struct msg = GSS_C_EMPTY_BUFFER;
-    OM_uint32 maj_stat =
-        gssapi_lib->display_status(&min_stat, status, status_code_type,
-                                   GSS_C_NULL_OID, &msg_ctx, &msg);
-    if (maj_stat == GSS_S_COMPLETE) {
-      int msg_len = (msg.length > kMaxMsgLength) ?
-          static_cast<int>(kMaxMsgLength) :
-          static_cast<int>(msg.length);
-      if (msg_len > 0 && msg.value != nullptr) {
-        rv += base::StringPrintf(" %.*s", msg_len,
-                                 static_cast<char*>(msg.value));
-      }
-    }
-    gssapi_lib->release_buffer(&min_stat, &msg);
-    if (!msg_ctx)
-      break;
+OM_uint32 DelegationTypeToFlag(DelegationType delegation_type) {
+  switch (delegation_type) {
+    case DelegationType::kNone:
+      return 0;
+    case DelegationType::kByKdcPolicy:
+      return GSS_C_DELEG_POLICY_FLAG;
+    case DelegationType::kUnconstrained:
+      return GSS_C_DELEG_FLAG;
   }
-  return rv;
 }
 
-std::string DisplayExtendedStatus(GSSAPILibrary* gssapi_lib,
-                                  OM_uint32 major_status,
-                                  OM_uint32 minor_status) {
-  if (major_status == GSS_S_COMPLETE)
-    return "OK";
-  std::string major = DisplayCode(gssapi_lib, major_status, GSS_C_GSS_CODE);
-  std::string minor = DisplayCode(gssapi_lib, minor_status, GSS_C_MECH_CODE);
-  return base::StringPrintf("Major: %s | Minor: %s", major.c_str(),
-                            minor.c_str());
-}
-
-// ScopedName releases a gss_name_t when it goes out of scope.
-class ScopedName {
- public:
-  ScopedName(gss_name_t name,
-             GSSAPILibrary* gssapi_lib)
-      : name_(name),
-        gssapi_lib_(gssapi_lib) {
-    DCHECK(gssapi_lib_);
-  }
-
-  ~ScopedName() {
-    if (name_ != GSS_C_NO_NAME) {
-      OM_uint32 minor_status = 0;
-      OM_uint32 major_status =
-          gssapi_lib_->release_name(&minor_status, &name_);
-      if (major_status != GSS_S_COMPLETE) {
-        LOG(WARNING) << "Problem releasing name. "
-                     << DisplayStatus(major_status, minor_status);
-      }
-      name_ = GSS_C_NO_NAME;
-    }
-  }
-
- private:
-  gss_name_t name_;
-  GSSAPILibrary* gssapi_lib_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedName);
-};
-
 // ScopedBuffer releases a gss_buffer_t when it goes out of scope.
 class ScopedBuffer {
  public:
-  ScopedBuffer(gss_buffer_t buffer,
-               GSSAPILibrary* gssapi_lib)
-      : buffer_(buffer),
-        gssapi_lib_(gssapi_lib) {
+  ScopedBuffer(gss_buffer_t buffer, GSSAPILibrary* gssapi_lib)
+      : buffer_(buffer), gssapi_lib_(gssapi_lib) {
     DCHECK(gssapi_lib_);
   }
 
@@ -194,8 +67,8 @@
       OM_uint32 major_status =
           gssapi_lib_->release_buffer(&minor_status, buffer_);
       if (major_status != GSS_S_COMPLETE) {
-        LOG(WARNING) << "Problem releasing buffer. "
-                     << DisplayStatus(major_status, minor_status);
+        DLOG(WARNING) << "Problem releasing buffer. major=" << major_status
+                      << ", minor=" << minor_status;
       }
       buffer_ = GSS_C_NO_BUFFER;
     }
@@ -208,124 +81,203 @@
   DISALLOW_COPY_AND_ASSIGN(ScopedBuffer);
 };
 
-namespace {
+// ScopedName releases a gss_name_t when it goes out of scope.
+class ScopedName {
+ public:
+  ScopedName(gss_name_t name, GSSAPILibrary* gssapi_lib)
+      : name_(name), gssapi_lib_(gssapi_lib) {
+    DCHECK(gssapi_lib_);
+  }
 
-std::string AppendIfPredefinedValue(gss_OID oid,
-                                    gss_OID predefined_oid,
-                                    const char* predefined_oid_name) {
-  DCHECK(oid);
-  DCHECK(predefined_oid);
-  DCHECK(predefined_oid_name);
-  std::string output;
-  if (oid->length != predefined_oid->length)
-    return output;
-  if (0 != memcmp(oid->elements,
-                  predefined_oid->elements,
-                  predefined_oid->length))
-    return output;
+  ~ScopedName() {
+    if (name_ != GSS_C_NO_NAME) {
+      OM_uint32 minor_status = 0;
+      OM_uint32 major_status = gssapi_lib_->release_name(&minor_status, &name_);
+      if (major_status != GSS_S_COMPLETE) {
+        DLOG(WARNING) << "Problem releasing name. "
+                      << GetGssStatusValue(nullptr, "gss_release_name",
+                                           major_status, minor_status);
+      }
+      name_ = GSS_C_NO_NAME;
+    }
+  }
 
-  output += " (";
-  output += predefined_oid_name;
-  output += ")";
-  return output;
+ private:
+  gss_name_t name_;
+  GSSAPILibrary* gssapi_lib_;
+
+  DISALLOW_COPY_AND_ASSIGN(ScopedName);
+};
+
+bool OidEquals(const gss_OID left, const gss_OID right) {
+  if (left->length != right->length)
+    return false;
+  return 0 == memcmp(left->elements, right->elements, right->length);
 }
 
 }  // namespace
 
-std::string DescribeOid(GSSAPILibrary* gssapi_lib, const gss_OID oid) {
-  if (!oid)
-    return "<NULL>";
-  std::string output;
-  const size_t kMaxCharsToPrint = 1024;
-  OM_uint32 byte_length = oid->length;
-  size_t char_length = byte_length / sizeof(char);
-  if (char_length > kMaxCharsToPrint) {
-    // This might be a plain ASCII string.
-    // Check if the first |kMaxCharsToPrint| characters
-    // contain only printable characters and are NUL terminated.
-    const char* str = reinterpret_cast<const char*>(oid);
-    size_t str_length = 0;
-    for ( ; str_length < kMaxCharsToPrint; ++str_length) {
-      if (!str[str_length] || !isprint(str[str_length]))
-        break;
-    }
-    if (!str[str_length]) {
-      output += base::StringPrintf("\"%s\"", str);
-      return output;
-    }
-  }
-  output = base::StringPrintf("(%u) \"", byte_length);
-  if (!oid->elements) {
-    output += "<NULL>";
-    return output;
-  }
-  const unsigned char* elements =
-      reinterpret_cast<const unsigned char*>(oid->elements);
-  // Don't print more than |kMaxCharsToPrint| characters.
-  size_t i = 0;
-  for ( ; (i < byte_length) && (i < kMaxCharsToPrint); ++i) {
-    output += base::StringPrintf("\\x%02X", elements[i]);
-  }
-  if (i >= kMaxCharsToPrint)
-    output += "...";
-  output += "\"";
+base::Value GetGssStatusCodeValue(GSSAPILibrary* gssapi_lib,
+                                  OM_uint32 status,
+                                  OM_uint32 status_code_type) {
+  base::Value rv{base::Value::Type::DICTIONARY};
 
-  // Check if the OID is one of the predefined values.
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_USER_NAME,
-                                    "GSS_C_NT_USER_NAME");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_MACHINE_UID_NAME,
-                                    "GSS_C_NT_MACHINE_UID_NAME");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_STRING_UID_NAME,
-                                    "GSS_C_NT_STRING_UID_NAME");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_HOSTBASED_SERVICE_X,
-                                    "GSS_C_NT_HOSTBASED_SERVICE_X");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_HOSTBASED_SERVICE,
-                                    "GSS_C_NT_HOSTBASED_SERVICE");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_ANONYMOUS,
-                                    "GSS_C_NT_ANONYMOUS");
-  output += AppendIfPredefinedValue(oid,
-                                    GSS_C_NT_EXPORT_NAME,
-                                    "GSS_C_NT_EXPORT_NAME");
+  rv.SetIntKey("status", status);
 
-  return output;
+  // Message lookups aren't performed if there's no library or if the status
+  // indicates success.
+  if (!gssapi_lib || status == GSS_S_COMPLETE)
+    return rv;
+
+  // gss_display_status() can potentially return multiple strings by sending
+  // each string on successive invocations. State is maintained across these
+  // invocations in a caller supplied OM_uint32.  After each successful call,
+  // the context is set to a non-zero value that should be passed as a message
+  // context to each successive gss_display_status() call.  The initial and
+  // terminal values of this context storage is 0.
+  OM_uint32 message_context = 0;
+
+  // To account for the off chance that gss_display_status() misbehaves and gets
+  // into an infinite loop, we'll artificially limit the number of iterations to
+  // |kMaxDisplayIterations|. This limit is arbitrary.
+  constexpr size_t kMaxDisplayIterations = 8;
+  size_t iterations = 0;
+
+  // In addition, each message string is again arbitrarily limited to
+  // |kMaxMsgLength|. There's no real documented limit to work with here.
+  constexpr size_t kMaxMsgLength = 4096;
+
+  base::Value messages{base::Value::Type::LIST};
+  do {
+    gss_buffer_desc_struct message_buffer = GSS_C_EMPTY_BUFFER;
+    ScopedBuffer message_buffer_releaser(&message_buffer, gssapi_lib);
+
+    OM_uint32 minor_status = 0;
+    OM_uint32 major_status = gssapi_lib->display_status(
+        &minor_status, status, status_code_type, GSS_C_NO_OID, &message_context,
+        &message_buffer);
+
+    if (major_status != GSS_S_COMPLETE || message_buffer.length == 0 ||
+        !message_buffer.value) {
+      continue;
+    }
+
+    base::StringPiece message_string{
+        static_cast<const char*>(message_buffer.value),
+        std::min(kMaxMsgLength, message_buffer.length)};
+
+    // The returned string is almost assuredly ASCII, but be defensive.
+    if (!base::IsStringUTF8(message_string))
+      continue;
+
+    messages.GetList().emplace_back(message_string);
+  } while (message_context != 0 && ++iterations < kMaxDisplayIterations);
+
+  if (messages.GetList().size() > 0)
+    rv.SetKey("message", std::move(messages));
+  return rv;
 }
 
-std::string DescribeName(GSSAPILibrary* gssapi_lib, const gss_name_t name) {
+base::Value GetGssStatusValue(GSSAPILibrary* gssapi_lib,
+                              base::StringPiece method,
+                              OM_uint32 major_status,
+                              OM_uint32 minor_status) {
+  base::Value params{base::Value::Type::DICTIONARY};
+  params.SetStringKey("function", method);
+  params.SetKey("major_status", GetGssStatusCodeValue(gssapi_lib, major_status,
+                                                      GSS_C_GSS_CODE));
+  params.SetKey("minor_status", GetGssStatusCodeValue(gssapi_lib, minor_status,
+                                                      GSS_C_MECH_CODE));
+  return params;
+}
+
+base::Value OidToValue(gss_OID oid) {
+  base::Value params(base::Value::Type::DICTIONARY);
+
+  if (!oid || oid->length == 0) {
+    params.SetStringKey("oid", "<Empty OID>");
+    return params;
+  }
+
+  params.SetIntKey("length", oid->length);
+  if (!oid->elements)
+    return params;
+
+  // Cap OID content at arbitrary limit 1k.
+  constexpr OM_uint32 kMaxOidDataSize = 1024;
+  const base::StringPiece oid_contents(reinterpret_cast<char*>(oid->elements),
+                                       std::min(kMaxOidDataSize, oid->length));
+
+  params.SetStringKey("bytes", HexDump(oid_contents));
+
+  // Based on RFC 2744 Appendix A. Hardcoding the OIDs in the list below to
+  // avoid having a static dependency on the library.
+  static const struct {
+    const char* symbolic_name;
+    const gss_OID_desc oid_desc;
+  } kWellKnownOIDs[] = {
+      {"GSS_C_NT_USER_NAME",
+       {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01")}},
+      {"GSS_C_NT_MACHINE_UID_NAME",
+       {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02")}},
+      {"GSS_C_NT_STRING_UID_NAME",
+       {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03")}},
+      {"GSS_C_NT_HOSTBASED_SERVICE_X",
+       {6, const_cast<char*>("\x2b\x06\x01\x05\x06\x02")}},
+      {"GSS_C_NT_HOSTBASED_SERVICE",
+       {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04")}},
+      {"GSS_C_NT_ANONYMOUS", {6, const_cast<char*>("\x2b\x06\01\x05\x06\x03")}},
+      {"GSS_C_NT_EXPORT_NAME",
+       {6, const_cast<char*>("\x2b\x06\x01\x05\x06\x04")}}};
+
+  for (auto& well_known_oid : kWellKnownOIDs) {
+    if (OidEquals(oid, const_cast<const gss_OID>(&well_known_oid.oid_desc)))
+      params.SetStringKey("oid", well_known_oid.symbolic_name);
+  }
+
+  return params;
+}
+
+base::Value GetDisplayNameValue(GSSAPILibrary* gssapi_lib,
+                                const gss_name_t gss_name) {
   OM_uint32 major_status = 0;
   OM_uint32 minor_status = 0;
-  gss_buffer_desc_struct output_name_buffer = GSS_C_EMPTY_BUFFER;
-  gss_OID_desc output_name_type_desc = GSS_C_EMPTY_BUFFER;
-  gss_OID output_name_type = &output_name_type_desc;
-  major_status = gssapi_lib->display_name(&minor_status,
-                                          name,
-                                          &output_name_buffer,
-                                          &output_name_type);
-  ScopedBuffer scoped_output_name(&output_name_buffer, gssapi_lib);
+  gss_buffer_desc_struct name = GSS_C_EMPTY_BUFFER;
+  gss_OID name_type = GSS_C_NO_OID;
+
+  base::Value rv{base::Value::Type::DICTIONARY};
+  major_status =
+      gssapi_lib->display_name(&minor_status, gss_name, &name, &name_type);
+  ScopedBuffer scoped_output_name(&name, gssapi_lib);
   if (major_status != GSS_S_COMPLETE) {
-    std::string error =
-        base::StringPrintf("Unable to describe name 0x%p, %s",
-                           name,
-                           DisplayExtendedStatus(gssapi_lib,
-                                                 major_status,
-                                                 minor_status).c_str());
-    return error;
+    rv.SetKey("error", GetGssStatusValue(gssapi_lib, "gss_display_name",
+                                         major_status, minor_status));
+    return rv;
   }
-  int len = output_name_buffer.length;
-  std::string description = base::StringPrintf(
-      "%.*s (Type %s)", len,
-      reinterpret_cast<const char*>(output_name_buffer.value),
-      DescribeOid(gssapi_lib, output_name_type).c_str());
-  return description;
+  auto name_string =
+      base::StringPiece(reinterpret_cast<const char*>(name.value), name.length);
+  rv.SetStringKey("name", base::IsStringUTF8(name_string)
+                              ? name_string
+                              : HexDump(name_string));
+  rv.SetKey("type", OidToValue(name_type));
+  return rv;
 }
 
-std::string DescribeContext(GSSAPILibrary* gssapi_lib,
-                            const gss_ctx_id_t context_handle) {
+base::Value ContextFlagsToValue(OM_uint32 flags) {
+  // TODO(asanka): This should break down known flags. At least the
+  // GSS_C_DELEG_FLAG.
+  return base::Value(base::StringPrintf("%08x", flags));
+}
+
+base::Value GetContextStateAsValue(GSSAPILibrary* gssapi_lib,
+                                   const gss_ctx_id_t context_handle) {
+  base::Value rv{base::Value::Type::DICTIONARY};
+  if (context_handle == GSS_C_NO_CONTEXT) {
+    rv.SetKey("error",
+              GetGssStatusValue(nullptr, "<none>", GSS_S_NO_CONTEXT, 0));
+    return rv;
+  }
+
   OM_uint32 major_status = 0;
   OM_uint32 minor_status = 0;
   gss_name_t src_name = GSS_C_NO_NAME;
@@ -335,8 +287,6 @@
   OM_uint32 ctx_flags = 0;
   int locally_initiated = 0;
   int open = 0;
-  if (context_handle == GSS_C_NO_CONTEXT)
-    return std::string("Context: GSS_C_NO_CONTEXT");
   major_status = gssapi_lib->inquire_context(&minor_status,
                                              context_handle,
                                              &src_name,
@@ -346,52 +296,25 @@
                                              &ctx_flags,
                                              &locally_initiated,
                                              &open);
+  if (major_status != GSS_S_COMPLETE) {
+    rv.SetKey("error", GetGssStatusValue(gssapi_lib, "gss_inquire_context",
+                                         major_status, minor_status));
+    return rv;
+  }
   ScopedName scoped_src_name(src_name, gssapi_lib);
   ScopedName scoped_targ_name(targ_name, gssapi_lib);
-  if (major_status != GSS_S_COMPLETE) {
-    std::string error =
-        base::StringPrintf("Unable to describe context 0x%p, %s",
-                           context_handle,
-                           DisplayExtendedStatus(gssapi_lib,
-                                                 major_status,
-                                                 minor_status).c_str());
-    return error;
-  }
-  std::string source(DescribeName(gssapi_lib, src_name));
-  std::string target(DescribeName(gssapi_lib, targ_name));
-  std::string description = base::StringPrintf("Context 0x%p: "
-                                               "Source \"%s\", "
-                                               "Target \"%s\", "
-                                                "lifetime %d, "
-                                                "mechanism %s, "
-                                                "flags 0x%08X, "
-                                                "local %d, "
-                                                "open %d",
-                                                context_handle,
-                                                source.c_str(),
-                                                target.c_str(),
-                                                lifetime_rec,
-                                                DescribeOid(gssapi_lib,
-                                                            mech_type).c_str(),
-                                                ctx_flags,
-                                                locally_initiated,
-                                                open);
-  return description;
-}
 
-OM_uint32 DelegationTypeToFlag(DelegationType delegation_type) {
-  switch (delegation_type) {
-    case DelegationType::kNone:
-      return 0;
-    case DelegationType::kByKdcPolicy:
-      return GSS_C_DELEG_POLICY_FLAG;
-    case DelegationType::kUnconstrained:
-      return GSS_C_DELEG_FLAG;
-  }
+  rv.SetKey("source", GetDisplayNameValue(gssapi_lib, src_name));
+  rv.SetKey("target", GetDisplayNameValue(gssapi_lib, targ_name));
+  // lifetime_rec is a uint32, while base::Value only takes ints. On 32 bit
+  // platforms uint32 doesn't fit on an int.
+  rv.SetStringKey("lifetime", base::NumberToString(lifetime_rec));
+  rv.SetKey("mechanism", OidToValue(mech_type));
+  rv.SetKey("flags", ContextFlagsToValue(ctx_flags));
+  rv.SetBoolKey("open", !!open);
+  return rv;
 }
 
-}  // namespace
-
 GSSAPISharedLibrary::GSSAPISharedLibrary(const std::string& gssapi_library_name)
     : gssapi_library_name_(gssapi_library_name) {}
 
@@ -682,7 +605,8 @@
         &minor_status, &security_context_, &output_token);
     if (major_status != GSS_S_COMPLETE) {
       LOG(WARNING) << "Problem releasing security_context. "
-                   << DisplayStatus(major_status, minor_status);
+                   << GetGssStatusValue(gssapi_lib_, "gss_delete_sec_context",
+                                        major_status, minor_status);
     }
     security_context_ = GSS_C_NO_CONTEXT;
   }
@@ -854,6 +778,13 @@
                                          const std::string& channel_bindings,
                                          gss_buffer_t in_token,
                                          gss_buffer_t out_token) {
+  // GSSAPI header files, to this day, require OIDs passed in as non-const
+  // pointers. Rather than const casting, let's just leave this as non-const.
+  // Even if the OID pointer is const, the inner |elements| pointer is still
+  // non-const.
+  static gss_OID_desc kGSS_C_NT_HOSTBASED_SERVICE = {
+      10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04")};
+
   // Create a name for the principal
   // TODO(cbentzel): Just do this on the first pass?
   std::string spn_principal = spn;
@@ -862,16 +793,15 @@
   spn_buffer.length = spn_principal.size() + 1;
   OM_uint32 minor_status = 0;
   gss_name_t principal_name = GSS_C_NO_NAME;
-  OM_uint32 major_status = library_->import_name(
-      &minor_status,
-      &spn_buffer,
-      GSS_C_NT_HOSTBASED_SERVICE,
-      &principal_name);
+  OM_uint32 major_status =
+      library_->import_name(&minor_status, &spn_buffer,
+                            &kGSS_C_NT_HOSTBASED_SERVICE, &principal_name);
   int rv = MapImportNameStatusToError(major_status);
   if (rv != OK) {
     LOG(ERROR) << "Problem importing name from "
                << "spn \"" << spn_principal << "\"\n"
-               << DisplayExtendedStatus(library_, major_status, minor_status);
+               << GetGssStatusValue(library_, "gss_import_name", major_status,
+                                    minor_status);
     return rv;
   }
   ScopedName scoped_name(principal_name, library_);
@@ -889,9 +819,10 @@
   rv = MapInitSecContextStatusToError(major_status);
   if (rv != OK) {
     LOG(ERROR) << "Problem initializing context. \n"
-               << DisplayExtendedStatus(library_, major_status, minor_status)
+               << GetGssStatusValue(library_, "gss_init_sec_context",
+                                    major_status, minor_status)
                << '\n'
-               << DescribeContext(library_, scoped_sec_context_.get());
+               << GetContextStateAsValue(library_, scoped_sec_context_.get());
   }
   return rv;
 }
diff --git a/net/http/http_auth_gssapi_posix.h b/net/http/http_auth_gssapi_posix.h
index 5284312..c0966e9 100644
--- a/net/http/http_auth_gssapi_posix.h
+++ b/net/http/http_auth_gssapi_posix.h
@@ -10,6 +10,8 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/native_library.h"
+#include "base/strings/string_piece_forward.h"
+#include "base/values.h"
 #include "net/base/completion_once_callback.h"
 #include "net/base/net_export.h"
 #include "net/http/http_auth.h"
@@ -247,6 +249,117 @@
   HttpAuth::DelegationType delegation_type_ = HttpAuth::DelegationType::kNone;
 };
 
+// Diagnostics
+
+// GetGssStatusCodeValue constructs a base::Value containing a status code and a
+// message.
+//
+//     {
+//       "status" : <status value as a number>,
+//       "message": [
+//          <list of strings explaining what that number means>
+//       ]
+//     }
+//
+// Messages are looked up via gss_display_status() exposed by |gssapi_lib|. The
+// type of status code should be indicated by setting |status_code_type| to
+// either |GSS_C_MECH_CODE| or |GSS_C_GSS_CODE|.
+//
+// Mechanism specific codes aren't unique, so the mechanism needs to be
+// identified to look up messages if |status_code_type| is |GSS_C_MECH_CODE|.
+// Since no mechanism OIDs are passed in, mechanism specific status codes will
+// likely not have messages.
+NET_EXPORT_PRIVATE base::Value GetGssStatusCodeValue(
+    GSSAPILibrary* gssapi_lib,
+    OM_uint32 status,
+    OM_uint32 status_code_type);
+
+// Given major and minor GSSAPI status codes, returns a base::Value
+// encapsulating the codes as well as their meanings as expanded via
+// gss_display_status().
+//
+// The base::Value has the following structure:
+//   {
+//     "function": <name of GSSAPI function that returned the error>
+//     "major_status": {
+//       "status" : <status value as a number>,
+//       "message": [
+//          <list of strings hopefully explaining what that number means>
+//       ]
+//     },
+//     "minor_status": {
+//       "status" : <status value as a number>,
+//       "message": [
+//          <list of strings hopefully explaining what that number means>
+//       ]
+//     }
+//   }
+//
+// Passing nullptr to |gssapi_lib| will skip the message lookups. Thus the
+// returned value will be missing the "message" fields. The same is true if the
+// message lookup failed for some reason, or if the lookups succeeded but
+// yielded an empty message.
+NET_EXPORT_PRIVATE base::Value GetGssStatusValue(GSSAPILibrary* gssapi_lib,
+                                                 base::StringPiece method,
+                                                 OM_uint32 major_status,
+                                                 OM_uint32 minor_status);
+
+// OidToValue returns a base::Value representing an OID. The structure of the
+// value is:
+//   {
+//     "oid":    <symbolic name of OID if it is known>
+//     "length": <length in bytes of serialized OID>,
+//     "bytes":  <hexdump of up to 1024 bytes of serialized OID>
+//   }
+NET_EXPORT_PRIVATE base::Value OidToValue(const gss_OID oid);
+
+// GetDisplayNameValue returns a base::Value representing a gss_name_t. It
+// invokes |gss_display_name()| via |gssapi_lib| to determine the display name
+// associated with |gss_name|.
+//
+// The structure of the returned value is:
+//   {
+//     "gss_name": <display name as returned by gss_display_name()>,
+//     "type": <OID indicating type. See OidToValue() for structure of this
+//              field>
+//   }
+//
+// If the lookup failed, then the structure is:
+//   {
+//     "error": <error. See GetGssStatusValue() for structure.>
+//   }
+//
+// Note that |gss_name_t| is platform dependent. If |gss_display_name| fails,
+// there's no good value to display in its stead.
+NET_EXPORT_PRIVATE base::Value GetDisplayNameValue(GSSAPILibrary* gssapi_lib,
+                                                   const gss_name_t gss_name);
+
+// GetContextStateAsValue returns a base::Value that describes the state of a
+// GSSAPI context. The structure of the value is:
+//
+//   {
+//     "source": {
+//       "name": <GSSAPI principal name of source (e.g. the user)>,
+//       "type": <OID of name type>
+//     },
+//     "target": {
+//       "name": <GSSAPI principal name of target (e.g. the server)>,
+//       "type": <OID of name type>
+//     },
+//     "lifetime": <Lifetime of the negotiated context in seconds.>,
+//     "mechanism": <OID of negotiated mechanism>,
+//     "flags": <Context flags. See documentation for gss_inquire_context for
+//               flag values>
+//     "open": <True if the context has finished the handshake>
+//   }
+//
+// If the inquiry fails, the following is returned:
+//   {
+//     "error": <error. See GetGssStatusValue() for structure.>
+//   }
+NET_EXPORT_PRIVATE base::Value GetContextStateAsValue(
+    GSSAPILibrary* gssapi_lib,
+    const gss_ctx_id_t context_handle);
 }  // namespace net
 
 #endif  // NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
diff --git a/net/http/http_auth_gssapi_posix_unittest.cc b/net/http/http_auth_gssapi_posix_unittest.cc
index 8a557f8..c9b277c9 100644
--- a/net/http/http_auth_gssapi_posix_unittest.cc
+++ b/net/http/http_auth_gssapi_posix_unittest.cc
@@ -8,6 +8,7 @@
 
 #include "base/base_paths.h"
 #include "base/bind.h"
+#include "base/json/json_reader.h"
 #include "base/logging.h"
 #include "base/native_library.h"
 #include "base/path_service.h"
@@ -318,4 +319,282 @@
             auth_gssapi.ParseChallenge(&second_challenge));
 }
 
+TEST(HttpAuthGSSAPITest, OidToValue_NIL) {
+  auto actual = OidToValue(GSS_C_NO_OID);
+  auto expected = base::JSONReader::Read(R"({ "oid": "<Empty OID>" })");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, OidToValue_Known) {
+  gss_OID_desc known = {6, const_cast<char*>("\x2b\x06\01\x05\x06\x03")};
+
+  auto actual = OidToValue(const_cast<const gss_OID>(&known));
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "oid"   : "GSS_C_NT_ANONYMOUS",
+        "length": 6,
+        "bytes" : "0x0000:  2b06 0105 0603                           +.....\n"
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, OidToValue_Unknown) {
+  gss_OID_desc unknown = {6, const_cast<char*>("\x2b\x06\01\x05\x06\x05")};
+  auto actual = OidToValue(const_cast<const gss_OID>(&unknown));
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "length": 6,
+        "bytes" : "0x0000:  2b06 0105 0605                           +.....\n"
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_NoLibrary) {
+  auto actual = GetGssStatusValue(nullptr, "my_method", GSS_S_BAD_NAME, 1);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 131072
+        },
+        "minor_status": {
+          "status": 1
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_WithLibrary) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(&library, "my_method", GSS_S_BAD_NAME, 1);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 131072,
+          "message": [ "Value: 131072, Type 1" ]
+        },
+        "minor_status": {
+          "status": 1,
+          "message": [ "Value: 1, Type 2" ]
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_Multiline) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::MultiLine),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 128,
+          "message": [
+            "Line 1 for status 128",
+            "Line 2 for status 128",
+            "Line 3 for status 128",
+            "Line 4 for status 128",
+            "Line 5 for status 128"
+          ]
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_InfiniteLines) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::InfiniteLines),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 129,
+          "message": [
+            "Line 1 for status 129",
+            "Line 2 for status 129",
+            "Line 3 for status 129",
+            "Line 4 for status 129",
+            "Line 5 for status 129",
+            "Line 6 for status 129",
+            "Line 7 for status 129",
+            "Line 8 for status 129"
+          ]
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_Failure) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::Fail),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 130
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_EmptyMessage) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::EmptyMessage),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 131
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_Misbehave) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::UninitalizedBuffer),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 132
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetGssStatusValue_NotUtf8) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetGssStatusValue(
+      &library, "my_method",
+      static_cast<OM_uint32>(
+          test::MockGSSAPILibrary::DisplayStatusSpecials::InvalidUtf8),
+      0);
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "function": "my_method",
+        "major_status": {
+          "status": 133
+        },
+        "minor_status": {
+          "status": 0
+        }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetContextStateAsValue_ValidContext) {
+  test::GssContextMockImpl context{"source_spn@somewhere",
+                                   "target_spn@somewhere.else",
+                                   /* lifetime_rec= */ 100,
+                                   *CHROME_GSS_SPNEGO_MECH_OID_DESC,
+                                   /* ctx_flags= */ 0,
+                                   /* locally_initiated= */ 1,
+                                   /* open= */ 0};
+  test::MockGSSAPILibrary library;
+  auto actual = GetContextStateAsValue(
+      &library, reinterpret_cast<const gss_ctx_id_t>(&context));
+  auto expected = base::JSONReader::Read(R"(
+      {
+        "source": {
+          "name": "source_spn@somewhere",
+          "type": {
+            "oid" : "<Empty OID>"
+          }
+        },
+        "target": {
+          "name": "target_spn@somewhere.else",
+          "type": {
+            "oid" : "<Empty OID>"
+          }
+        },
+        "lifetime": "100",
+        "mechanism": {
+          "oid": "<Empty OID>"
+        },
+        "flags": "00000000",
+        "open": false
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
+TEST(HttpAuthGSSAPITest, GetContextStateAsValue_NoContext) {
+  test::MockGSSAPILibrary library;
+  auto actual = GetContextStateAsValue(&library, GSS_C_NO_CONTEXT);
+  auto expected = base::JSONReader::Read(R"(
+      {
+         "error": {
+            "function": "<none>",
+            "major_status": {
+               "status": 524288
+            },
+            "minor_status": {
+               "status": 0
+            }
+         }
+      }
+  )");
+  ASSERT_TRUE(expected.has_value());
+  EXPECT_EQ(actual, expected);
+}
+
 }  // namespace net
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index e66c2ce..40d1755 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -398,7 +398,8 @@
   normal_socket_pool_manager_->FlushSocketPoolsWithError(ERR_ABORTED);
   websocket_socket_pool_manager_->FlushSocketPoolsWithError(ERR_ABORTED);
   spdy_session_pool_.CloseCurrentSessions(ERR_ABORTED);
-  quic_stream_factory_.CloseAllSessions(ERR_ABORTED, quic::QUIC_INTERNAL_ERROR);
+  quic_stream_factory_.CloseAllSessions(ERR_ABORTED,
+                                        quic::QUIC_PEER_GOING_AWAY);
 }
 
 void HttpNetworkSession::CloseIdleConnections() {
diff --git a/net/http/mock_gssapi_library_posix.cc b/net/http/mock_gssapi_library_posix.cc
index 87cc2bd..6766602 100644
--- a/net/http/mock_gssapi_library_posix.cc
+++ b/net/http/mock_gssapi_library_posix.cc
@@ -342,15 +342,47 @@
       const gss_OID mech_type,
       OM_uint32* message_context,
       gss_buffer_t status_string) {
-  if (minor_status)
-    *minor_status = 0;
-  std::string msg = base::StringPrintf("Value: %u, Type %u",
-                                       status_value,
-                                       status_type);
-  if (message_context)
-    *message_context = 0;
+  OM_uint32 rv = GSS_S_COMPLETE;
+  *minor_status = 0;
+  std::string msg;
+  switch (static_cast<DisplayStatusSpecials>(status_value)) {
+    case DisplayStatusSpecials::MultiLine:
+      msg = base::StringPrintf("Line %u for status %u", ++*message_context,
+                               status_value);
+      if (*message_context >= 5u)
+        *message_context = 0u;
+      break;
+
+    case DisplayStatusSpecials::InfiniteLines:
+      msg = base::StringPrintf("Line %u for status %u", ++*message_context,
+                               status_value);
+      break;
+
+    case DisplayStatusSpecials::Fail:
+      rv = GSS_S_BAD_MECH;
+      msg = "You should not see this";
+      EXPECT_EQ(*message_context, 0u);
+      break;
+
+    case DisplayStatusSpecials::EmptyMessage:
+      EXPECT_EQ(*message_context, 0u);
+      break;
+
+    case DisplayStatusSpecials::UninitalizedBuffer:
+      EXPECT_EQ(*message_context, 0u);
+      return GSS_S_COMPLETE;
+
+    case DisplayStatusSpecials::InvalidUtf8:
+      msg = "\xff\xff\xff";
+      EXPECT_EQ(*message_context, 0u);
+      break;
+
+    default:
+      msg = base::StringPrintf("Value: %u, Type %u", status_value, status_type);
+      EXPECT_EQ(*message_context, 0u);
+  }
   BufferFromString(msg, status_string);
-  return GSS_S_COMPLETE;
+  return rv;
 }
 
 OM_uint32 MockGSSAPILibrary::init_sec_context(
diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h
index 1488be7..9ed109b 100644
--- a/net/http/mock_gssapi_library_posix.h
+++ b/net/http/mock_gssapi_library_posix.h
@@ -128,6 +128,28 @@
                          const gss_name_t input_name,
                          gss_buffer_t output_name_buffer,
                          gss_OID* output_name_type) override;
+
+  // These special status values can be used to trigger specific behavior in
+  // |display_status()|.
+  enum class DisplayStatusSpecials : OM_uint32 {
+    // A multiline status message.
+    MultiLine = 128,
+
+    // Multiline, execept there's no ending message.
+    InfiniteLines,
+
+    // Causes |display_status()| to fail.
+    Fail,
+
+    // Returns an empty message.
+    EmptyMessage,
+
+    // Returns successfully without modifying |status_string|.
+    UninitalizedBuffer,
+
+    // Returns a message that's invalid UTF-8.
+    InvalidUtf8
+  };
   OM_uint32 display_status(OM_uint32* minor_status,
                            OM_uint32 status_value,
                            int status_type,
diff --git a/net/quic/bidirectional_stream_quic_impl.cc b/net/quic/bidirectional_stream_quic_impl.cc
index 7fde601..7878463 100644
--- a/net/quic/bidirectional_stream_quic_impl.cc
+++ b/net/quic/bidirectional_stream_quic_impl.cc
@@ -180,7 +180,7 @@
   }
 
   std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> bundler(
-      session_->CreatePacketBundler(quic::QuicConnection::SEND_ACK_IF_PENDING));
+      session_->CreatePacketBundler());
   if (!has_sent_headers_) {
     DCHECK(!send_request_headers_automatically_);
     int rv = WriteHeaders();
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index d808a2a..c4d824cc 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -395,13 +395,12 @@
 }
 
 std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher>
-QuicChromiumClientSession::Handle::CreatePacketBundler(
-    quic::QuicConnection::AckBundling bundling_mode) {
+QuicChromiumClientSession::Handle::CreatePacketBundler() {
   if (!session_)
     return nullptr;
 
   return std::make_unique<quic::QuicConnection::ScopedPacketFlusher>(
-      session_->connection(), bundling_mode);
+      session_->connection());
 }
 
 bool QuicChromiumClientSession::Handle::SharesSameSession(
@@ -855,7 +854,7 @@
   if (connection()->connected()) {
     // Ensure that the connection is closed by the time the session is
     // destroyed.
-    connection()->CloseConnection(quic::QUIC_INTERNAL_ERROR,
+    connection()->CloseConnection(quic::QUIC_PEER_GOING_AWAY,
                                   "session torn down",
                                   quic::ConnectionCloseBehavior::SILENT_CLOSE);
   }
diff --git a/net/quic/quic_chromium_client_session.h b/net/quic/quic_chromium_client_session.h
index 05610e4..ea47921 100644
--- a/net/quic/quic_chromium_client_session.h
+++ b/net/quic/quic_chromium_client_session.h
@@ -183,7 +183,7 @@
     // Returns a new packet bundler while will cause writes to be batched up
     // until a packet is full, or the last bundler is destroyed.
     std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher>
-    CreatePacketBundler(quic::QuicConnection::AckBundling bundling_mode);
+    CreatePacketBundler();
 
     // Populates network error details for this session.
     void PopulateNetErrorDetails(NetErrorDetails* details) const;
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc
index bcf7bed..6911137 100644
--- a/net/quic/quic_chromium_client_session_test.cc
+++ b/net/quic/quic_chromium_client_session_test.cc
@@ -342,8 +342,7 @@
   IPEndPoint address;
   EXPECT_EQ(OK, handle->GetPeerAddress(&address));
   EXPECT_EQ(kIpEndPoint, address);
-  EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() !=
-              nullptr);
+  EXPECT_TRUE(handle->CreatePacketBundler().get() != nullptr);
 
   CompleteCryptoHandshake();
 
@@ -369,8 +368,7 @@
   EXPECT_EQ(session_net_log.source().id, handle->net_log().source().id);
   EXPECT_EQ(session_net_log.net_log(), handle->net_log().net_log());
   EXPECT_EQ(ERR_CONNECTION_CLOSED, handle->GetPeerAddress(&address));
-  EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() ==
-              nullptr);
+  EXPECT_TRUE(handle->CreatePacketBundler().get() == nullptr);
   {
     // Verify that CreateHandle() works even after the session is closed.
     std::unique_ptr<QuicChromiumClientSession::Handle> handle2 =
@@ -394,8 +392,7 @@
   EXPECT_EQ(session_net_log.source().id, handle->net_log().source().id);
   EXPECT_EQ(session_net_log.net_log(), handle->net_log().net_log());
   EXPECT_EQ(ERR_CONNECTION_CLOSED, handle->GetPeerAddress(&address));
-  EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() ==
-              nullptr);
+  EXPECT_TRUE(handle->CreatePacketBundler().get() == nullptr);
   ASSERT_EQ(
       ERR_CONNECTION_CLOSED,
       handle->RequestStream(/*requires_confirmation=*/false,
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h
index 45a95ee..d924058e 100644
--- a/net/quic/quic_flags_list.h
+++ b/net/quic/quic_flags_list.h
@@ -72,9 +72,6 @@
 // protocol.
 QUIC_FLAG(bool, FLAGS_quic_supports_tls_handshake, false)
 
-// Allow QUIC to accept initial packet numbers that are random, not 1.
-QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_enable_accept_random_ipn, true)
-
 // Enables 3 new connection options to make PROBE_RTT more aggressive
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_less_probe_rtt, false)
 
@@ -135,10 +132,6 @@
 // ACK in packet conservation.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_one_mss_conservation, false)
 
-// Add 3 connection options to decrease the pacing and CWND gain in QUIC BBR
-// STARTUP.
-QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_slower_startup3, true)
-
 // When true, the LOSS connection option allows for 1/8 RTT of reording instead
 // of the current 1/8th threshold which has been found to be too large for fast
 // loss recovery.
@@ -167,13 +160,6 @@
           FLAGS_quic_reloadable_flag_quic_fix_has_pending_crypto_data,
           true)
 
-// When true, fix initialization and updating of
-// |time_of_first_packet_sent_after_receiving_| in QuicConnection.
-QUIC_FLAG(
-    bool,
-    FLAGS_quic_reloadable_flag_quic_fix_time_of_first_packet_sent_after_receiving,
-    true)
-
 // When the STMP connection option is sent by the client, timestamps in the QUIC
 // ACK frame are sent and processed.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_timestamps, false)
@@ -235,14 +221,7 @@
 // If true, use one loss algorithm per encryption level.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_uber_loss_algorithm, true)
 
-// If true, stop using AckBundling mode to send ACK, also deprecate ack_queued
-// from QuicConnection.
-QUIC_FLAG(bool,
-          FLAGS_quic_reloadable_flag_quic_deprecate_ack_bundling_mode,
-          true)
-
-// If both this flag and gfe2_reloadable_flag_quic_deprecate_ack_bundling_mode
-// are true, QuicReceivedPacketManager decides when to send ACKs.
+// If true, QuicReceivedPacketManager decides when to send ACKs.
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_rpm_decides_when_to_send_acks,
           true)
@@ -276,18 +255,6 @@
           FLAGS_quic_restart_flag_dont_fetch_quic_private_keys_from_leto,
           false)
 
-// If true, disable lumpy pacing for low bandwidth flows.
-QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_lumpy_pacing_at_low_bw, true)
-
-// If true, ignore TLPR for retransmission delay when sending pings from ping
-// alarm.
-QUIC_FLAG(bool,
-          FLAGS_quic_reloadable_flag_quic_ignore_tlpr_if_sending_ping,
-          true)
-
-// If true, non-ASCII QUIC tags are printed as hex instead of integers."
-QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_print_tag_hex, true)
-
 // If true, terminate Google QUIC connections similary as IETF QUIC.
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_terminate_gquic_connection_as_ietf,
@@ -302,35 +269,11 @@
 // If true, deprecate queued_control_frames_ from QuicPacketGenerator.
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_deprecate_queued_control_frames,
-          false)
-
-// When true, QUIC server will drop IETF QUIC Version Negotiation packets.
-QUIC_FLAG(bool,
-          FLAGS_quic_restart_flag_quic_server_drop_version_negotiation,
           true)
 
-// When true, version negotiation packets sent by the server will set the fixed
-// bit.
-QUIC_FLAG(bool,
-          FLAGS_quic_reloadable_flag_quic_send_version_negotiation_fixed_bit,
-          true)
-
-// When true, allow variable length QUIC connection IDs for unsupported
-// versions. This allows performing version negotiation when the client-chosen
-// server connection ID length is not 8.
-QUIC_FLAG(
-    bool,
-    FLAGS_quic_restart_flag_quic_allow_variable_length_connection_id_for_negotiation,
-    true)
-
 // If true, set burst token to 2 in cwnd bootstrapping experiment.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_conservative_bursts, false)
 
-// If true, make QuicDispatcher no longer have an instance of QuicFramer.
-QUIC_FLAG(bool,
-          FLAGS_quic_restart_flag_quic_no_framer_object_in_dispatcher,
-          true)
-
 // When true, QuicFramer will not override connection IDs in headers and will
 // instead respect the source/destination direction as expected by IETF QUIC.
 QUIC_FLAG(bool,
@@ -351,7 +294,7 @@
 // If true, check whether connection is connected before flush.
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_check_connected_before_flush,
-          false)
+          true)
 
 // When true, QuicConnectionId will allocate long connection IDs on the heap
 // instead of inline in the object.
@@ -375,3 +318,14 @@
 // If true, when detecting losses, use packets_acked of corresponding packet
 // number space.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_packets_acked, false)
+
+// QUIC version 99 will use this stream ID for the headers stream.
+QUIC_FLAG(int64_t, FLAGS_quic_headers_stream_id_in_v99, 0)
+
+// When true, QuicDispatcher will drop packets that have an initial destination
+// connection ID that is too short, instead of responding with a Version
+// Negotiation packet to reject it.
+QUIC_FLAG(
+    bool,
+    FLAGS_quic_reloadable_flag_quic_drop_invalid_small_initial_connection_id,
+    false)
diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc
index 740f229..3fd54d8a 100644
--- a/net/quic/quic_http_stream.cc
+++ b/net/quic/quic_http_stream.cc
@@ -463,8 +463,7 @@
   CHECK(!in_loop_);
   base::AutoReset<bool> auto_reset_in_loop(&in_loop_, true);
   std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> packet_flusher =
-      quic_session()->CreatePacketBundler(
-          quic::QuicConnection::AckBundling::SEND_ACK_IF_QUEUED);
+      quic_session()->CreatePacketBundler();
   do {
     State state = next_state_;
     next_state_ = STATE_NONE;
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index 7ccfbe7..8afec5b 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -2242,12 +2242,6 @@
   EXPECT_THAT(callback.WaitForResult(), IsOk());
   CheckResponseData(&trans, "TCP succeeds");
 
-  // Fire the retransmission alarm, from this point, connection will idle
-  // timeout after 4 seconds.
-  if (!GetQuicReloadableFlag(
-          quic_fix_time_of_first_packet_sent_after_receiving)) {
-    quic_task_runner_->RunNextTask();
-  }
   // Fast forward to idle timeout the original connection. A new connection will
   // be kicked off on the alternate network.
   quic_task_runner_->FastForwardBy(quic::QuicTime::Delta::FromSeconds(4));
@@ -2362,12 +2356,6 @@
   EXPECT_THAT(callback.WaitForResult(), IsOk());
   CheckResponseData(&trans, "TCP succeeds");
 
-  // Fire the retransmission alarm, after which connection will idle
-  // timeout after 4 seconds.
-  if (!GetQuicReloadableFlag(
-          quic_fix_time_of_first_packet_sent_after_receiving)) {
-    quic_task_runner_->RunNextTask();
-  }
   // Fast forward to idle timeout the original connection. A new connection will
   // be kicked off on the alternate network.
   quic_task_runner_->FastForwardBy(quic::QuicTime::Delta::FromSeconds(4));
@@ -2490,10 +2478,6 @@
 
   // Pump the message loop to get the request started.
   base::RunLoop().RunUntilIdle();
-  if (!GetQuicReloadableFlag(
-          quic_fix_time_of_first_packet_sent_after_receiving)) {
-    quic_task_runner_->RunNextTask();
-  }
 
   // Fast forward to idle timeout the original connection. A new connection will
   // be kicked off on the alternate network.
@@ -3243,22 +3227,12 @@
   quic_data.AddWrite(SYNCHRONOUS, client_maker_.MakeHeadersDataPacket(
                                       11, false, false, settings_data));
 
-  if (GetQuicReloadableFlag(
-          quic_fix_time_of_first_packet_sent_after_receiving)) {
     quic_data.AddWrite(
         SYNCHRONOUS,
         client_maker_.MakeAckAndConnectionClosePacket(
             12, false, quic::QuicTime::Delta::FromMilliseconds(4000), 1, 1, 1,
             quic::QUIC_NETWORK_IDLE_TIMEOUT, "No recent network activity."));
 
-  } else {
-    quic_data.AddWrite(
-        SYNCHRONOUS,
-        client_maker_.MakeAckAndConnectionClosePacket(
-            12, false, quic::QuicTime::Delta::FromMilliseconds(4200), 1, 1, 1,
-            quic::QUIC_NETWORK_IDLE_TIMEOUT, "No recent network activity."));
-  }
-
   quic_data.AddRead(ASYNC, ERR_IO_PENDING);
   quic_data.AddRead(ASYNC, OK);
   quic_data.AddSocketDataToFactory(&socket_factory_);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index 57852190..f3a01d23d 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -1859,7 +1859,7 @@
       SYNCHRONOUS, ConstructClientRstPacket(2, quic::QUIC_RST_ACKNOWLEDGEMENT));
   socket_data.AddWrite(SYNCHRONOUS,
                        client_maker_.MakeConnectionClosePacket(
-                           3, true, quic::QUIC_INTERNAL_ERROR, "net error"));
+                           3, true, quic::QUIC_PEER_GOING_AWAY, "net error"));
   socket_data.AddSocketDataToFactory(socket_factory_.get());
 
   client_maker_.Reset();
@@ -1886,7 +1886,7 @@
 
   // Close the session and verify that stream saw the error.
   factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED,
-                             quic::QUIC_INTERNAL_ERROR);
+                             quic::QUIC_PEER_GOING_AWAY);
   EXPECT_EQ(ERR_INTERNET_DISCONNECTED,
             stream->ReadResponseHeaders(callback_.callback()));
 
@@ -4038,12 +4038,6 @@
       ASYNC, ConstructOkResponsePacket(
                  2, GetNthClientInitiatedBidirectionalStreamId(0), false,
                  true));  // keep sending version.
-  if (!GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
-    // Packet 2 is considered as out of order packet and an ACK will be sent
-    // immediately.
-    quic_data1.AddWrite(SYNCHRONOUS, client_maker_.MakeAckPacket(
-                                         packet_number++, 2, 2, 2, 1, true));
-  }
   quic_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
   quic_data1.AddSocketDataToFactory(socket_factory_.get());
 
diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc
index a33c339..5caf9ab 100644
--- a/pdf/out_of_process_instance.cc
+++ b/pdf/out_of_process_instance.cc
@@ -428,7 +428,6 @@
       preview_document_load_state_(LOAD_STATE_COMPLETE),
       uma_(this),
       told_browser_about_unsupported_feature_(false),
-      font_substitution_reported_(false),
       print_preview_page_count_(-1),
       print_preview_loaded_page_count_(-1),
       last_progress_sent_(0),
@@ -1643,8 +1642,6 @@
   document_load_state_ = LOAD_STATE_COMPLETE;
   UserMetricsRecordAction("PDF.LoadSuccess");
   HistogramEnumeration("PDF.DocumentFeature", LOADED_DOCUMENT, FEATURES_COUNT);
-  if (!font_substitution_reported_)
-    HistogramEnumeration("PDF.IsFontSubstituted", 0, 2);
 
   // Note: If we are in print preview mode the scroll location is retained
   // across document loads so we don't want to scroll again and override it.
@@ -1775,13 +1772,6 @@
   PostMessage(message);
 }
 
-void OutOfProcessInstance::FontSubstituted() {
-  if (font_substitution_reported_)
-    return;
-  font_substitution_reported_ = true;
-  uma_.HistogramEnumeration("PDF.IsFontSubstituted", 1, 2);
-}
-
 void OutOfProcessInstance::PreviewDocumentLoadFailed() {
   UserMetricsRecordAction("PDF.PreviewDocumentLoadFailure");
   if (preview_document_load_state_ != LOAD_STATE_LOADING ||
diff --git a/pdf/out_of_process_instance.h b/pdf/out_of_process_instance.h
index 899c132..c5bbf12e 100644
--- a/pdf/out_of_process_instance.h
+++ b/pdf/out_of_process_instance.h
@@ -135,7 +135,6 @@
       const PDFEngine::DocumentFeatures& document_features,
       uint32_t file_size) override;
   void DocumentLoadFailed() override;
-  void FontSubstituted() override;
   pp::Instance* GetPluginInstance() override;
   void DocumentHasUnsupportedFeature(const std::string& feature) override;
   void DocumentLoadProgress(uint32_t available, uint32_t doc_size) override;
@@ -368,10 +367,6 @@
   // the stats if a feature shows up many times per document.
   std::set<std::string> unsupported_features_reported_;
 
-  // Keeps track of whether font substitution has been reported, so we avoid
-  // spamming the stats if a document requested multiple substitutes.
-  bool font_substitution_reported_;
-
   // Number of pages in print preview mode for non-PDF source, 0 if print
   // previewing a PDF, and -1 if not in print preview mode.
   int print_preview_page_count_;
diff --git a/pdf/pdf_engine.h b/pdf/pdf_engine.h
index 65ef10f..c8b11d5 100644
--- a/pdf/pdf_engine.h
+++ b/pdf/pdf_engine.h
@@ -242,9 +242,6 @@
     // Notifies the client that the document has failed to load.
     virtual void DocumentLoadFailed() {}
 
-    // Notifies the client that the document has requested substitute fonts.
-    virtual void FontSubstituted() {}
-
     virtual pp::Instance* GetPluginInstance() = 0;
 
     // Notifies that an unsupported feature in the PDF was encountered.
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
index 613950e3..30cf28a 100644
--- a/pdf/pdfium/pdfium_engine.cc
+++ b/pdf/pdfium/pdfium_engine.cc
@@ -132,8 +132,6 @@
 constexpr base::TimeDelta kMaxInitialProgressivePaintTime =
     base::TimeDelta::FromMilliseconds(250);
 
-PDFiumEngine* g_engine_for_fontmapper = nullptr;
-
 #if defined(OS_LINUX)
 
 PP_Instance g_last_instance_id;
@@ -274,9 +272,6 @@
     return nullptr;
   }
 
-  if (g_engine_for_fontmapper)
-    g_engine_for_fontmapper->FontSubstituted();
-
   PP_Resource font_resource = pp::PDF::GetFontFileWithFallback(
       pp::InstanceHandle(g_last_instance_id),
       &description.pp_font_description(),
@@ -309,111 +304,6 @@
 
 FPDF_SYSFONTINFO g_font_info = {1,           0, EnumFonts, MapFont,   0,
                                 GetFontData, 0, 0,         DeleteFont};
-#else
-struct FPDF_SYSFONTINFO_WITHMETRICS : public FPDF_SYSFONTINFO {
-  explicit FPDF_SYSFONTINFO_WITHMETRICS(FPDF_SYSFONTINFO* sysfontinfo) {
-    version = sysfontinfo->version;
-    default_sysfontinfo = sysfontinfo;
-  }
-
-  ~FPDF_SYSFONTINFO_WITHMETRICS() {
-    FPDF_FreeDefaultSystemFontInfo(default_sysfontinfo);
-  }
-
-  FPDF_SYSFONTINFO* default_sysfontinfo;
-};
-
-FPDF_SYSFONTINFO_WITHMETRICS* g_font_info = nullptr;
-
-void* MapFontWithMetrics(FPDF_SYSFONTINFO* sysfontinfo,
-                         int weight,
-                         int italic,
-                         int charset,
-                         int pitch_family,
-                         const char* face,
-                         int* exact) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->MapFont)
-    return nullptr;
-  void* mapped_font = fontinfo_with_metrics->default_sysfontinfo->MapFont(
-      fontinfo_with_metrics->default_sysfontinfo, weight, italic, charset,
-      pitch_family, face, exact);
-  if (mapped_font && g_engine_for_fontmapper)
-    g_engine_for_fontmapper->FontSubstituted();
-  return mapped_font;
-}
-
-void DeleteFont(FPDF_SYSFONTINFO* sysfontinfo, void* font_id) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->DeleteFont)
-    return;
-  fontinfo_with_metrics->default_sysfontinfo->DeleteFont(
-      fontinfo_with_metrics->default_sysfontinfo, font_id);
-}
-
-void EnumFonts(FPDF_SYSFONTINFO* sysfontinfo, void* mapper) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->EnumFonts)
-    return;
-  fontinfo_with_metrics->default_sysfontinfo->EnumFonts(
-      fontinfo_with_metrics->default_sysfontinfo, mapper);
-}
-
-unsigned long GetFaceName(FPDF_SYSFONTINFO* sysfontinfo,
-                          void* hFont,
-                          char* buffer,
-                          unsigned long buffer_size) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->GetFaceName)
-    return 0;
-  return fontinfo_with_metrics->default_sysfontinfo->GetFaceName(
-      fontinfo_with_metrics->default_sysfontinfo, hFont, buffer, buffer_size);
-}
-
-void* GetFont(FPDF_SYSFONTINFO* sysfontinfo, const char* face) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->GetFont)
-    return nullptr;
-  return fontinfo_with_metrics->default_sysfontinfo->GetFont(
-      fontinfo_with_metrics->default_sysfontinfo, face);
-}
-
-int GetFontCharset(FPDF_SYSFONTINFO* sysfontinfo, void* hFont) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->GetFontCharset)
-    return 0;
-  return fontinfo_with_metrics->default_sysfontinfo->GetFontCharset(
-      fontinfo_with_metrics->default_sysfontinfo, hFont);
-}
-
-unsigned long GetFontData(FPDF_SYSFONTINFO* sysfontinfo,
-                          void* hFont,
-                          unsigned int table,
-                          unsigned char* buffer,
-                          unsigned long buf_size) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->GetFontData)
-    return 0;
-  return fontinfo_with_metrics->default_sysfontinfo->GetFontData(
-      fontinfo_with_metrics->default_sysfontinfo, hFont, table, buffer,
-      buf_size);
-}
-
-void Release(FPDF_SYSFONTINFO* sysfontinfo) {
-  auto* fontinfo_with_metrics =
-      static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo);
-  if (!fontinfo_with_metrics->default_sysfontinfo->Release)
-    return;
-  fontinfo_with_metrics->default_sysfontinfo->Release(
-      fontinfo_with_metrics->default_sysfontinfo);
-}
 #endif  // defined(OS_LINUX)
 
 PDFiumEngine::CreateDocumentLoaderFunction
@@ -667,19 +557,6 @@
 #if defined(OS_LINUX)
   // Font loading doesn't work in the renderer sandbox in Linux.
   FPDF_SetSystemFontInfo(&g_font_info);
-#else
-  g_font_info =
-      new FPDF_SYSFONTINFO_WITHMETRICS(FPDF_GetDefaultSystemFontInfo());
-  g_font_info->Release = Release;
-  g_font_info->EnumFonts = EnumFonts;
-  // Set new MapFont that calculates metrics
-  g_font_info->MapFont = MapFontWithMetrics;
-  g_font_info->GetFont = GetFont;
-  g_font_info->GetFaceName = GetFaceName;
-  g_font_info->GetFontCharset = GetFontCharset;
-  g_font_info->GetFontData = GetFontData;
-  g_font_info->DeleteFont = DeleteFont;
-  FPDF_SetSystemFontInfo(g_font_info);
 #endif
 
   InitializeUnsupportedFeaturesHandler();
@@ -689,9 +566,6 @@
 
 void ShutdownSDK() {
   FPDF_DestroyLibrary();
-#if !defined(OS_LINUX)
-  delete g_font_info;
-#endif
   TearDownV8();
 }
 
@@ -1051,10 +925,6 @@
   client_->DocumentHasUnsupportedFeature(feature);
 }
 
-void PDFiumEngine::FontSubstituted() {
-  client_->FontSubstituted();
-}
-
 FPDF_AVAIL PDFiumEngine::fpdf_availability() const {
   return document_ ? document_->fpdf_availability() : nullptr;
 }
@@ -1148,7 +1018,6 @@
     uint32_t page_range_count,
     const PP_PrintSettings_Dev& print_settings,
     const PP_PdfPrintSettings_Dev& pdf_print_settings) {
-  ScopedSubstFont scoped_subst_font(this);
   if (!page_range_count)
     return pp::Resource();
 
@@ -2628,7 +2497,6 @@
     return;
 
   ScopedUnsupportedFeature scoped_unsupported_feature(this);
-  ScopedSubstFont scoped_subst_font(this);
   bool needs_password = false;
   if (TryLoadingDoc(std::string(), &needs_password)) {
     ContinueLoadingDocument(std::string());
@@ -2688,7 +2556,6 @@
 
 void PDFiumEngine::ContinueLoadingDocument(const std::string& password) {
   ScopedUnsupportedFeature scoped_unsupported_feature(this);
-  ScopedSubstFont scoped_subst_font(this);
 
   bool needs_password = false;
   bool loaded = TryLoadingDoc(password, &needs_password);
@@ -3748,13 +3615,4 @@
   image_data_ = std::move(image_data);
 }
 
-ScopedSubstFont::ScopedSubstFont(PDFiumEngine* engine)
-    : old_engine_(g_engine_for_fontmapper) {
-  g_engine_for_fontmapper = engine;
-}
-
-ScopedSubstFont::~ScopedSubstFont() {
-  g_engine_for_fontmapper = old_engine_;
-}
-
 }  // namespace chrome_pdf
diff --git a/pdf/pdfium/pdfium_engine.h b/pdf/pdfium/pdfium_engine.h
index 13952100..e66201ad 100644
--- a/pdf/pdfium/pdfium_engine.h
+++ b/pdf/pdfium/pdfium_engine.h
@@ -144,7 +144,6 @@
 #endif  // defined(PDF_ENABLE_XFA)
 
   void UnsupportedFeature(const std::string& feature);
-  void FontSubstituted();
 
   FPDF_AVAIL fpdf_availability() const;
   FPDF_DOCUMENT doc() const;
@@ -661,19 +660,6 @@
   DISALLOW_COPY_AND_ASSIGN(PDFiumEngine);
 };
 
-// Create a local variable of this when calling PDFium functions which can call
-// our global callback when a substitute font is mapped.
-class ScopedSubstFont {
- public:
-  explicit ScopedSubstFont(PDFiumEngine* engine);
-  ~ScopedSubstFont();
-
- private:
-  PDFiumEngine* const old_engine_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSubstFont);
-};
-
 }  // namespace chrome_pdf
 
 #endif  // PDF_PDFIUM_PDFIUM_ENGINE_H_
diff --git a/pdf/pdfium/pdfium_page.cc b/pdf/pdfium/pdfium_page.cc
index 941b859..fd3084b 100644
--- a/pdf/pdfium/pdfium_page.cc
+++ b/pdf/pdfium/pdfium_page.cc
@@ -121,7 +121,6 @@
 
 FPDF_PAGE PDFiumPage::GetPage() {
   ScopedUnsupportedFeature scoped_unsupported_feature(engine_);
-  ScopedSubstFont scoped_subst_font(engine_);
   if (!available_)
     return nullptr;
   if (!page_) {
diff --git a/pdf/pdfium/pdfium_print.cc b/pdf/pdfium/pdfium_print.cc
index 93ed2c3..042bb20 100644
--- a/pdf/pdfium/pdfium_print.cc
+++ b/pdf/pdfium/pdfium_print.cc
@@ -467,7 +467,6 @@
 bool PDFiumPrint::FlattenPrintData(FPDF_DOCUMENT doc) const {
   DCHECK(doc);
 
-  ScopedSubstFont scoped_subst_font(engine_);
   int page_count = FPDF_GetPageCount(doc);
   for (int i = 0; i < page_count; ++i) {
     ScopedFPDFPage page(FPDF_LoadPage(doc, i));
diff --git a/pdf/preview_mode_client.cc b/pdf/preview_mode_client.cc
index e8ae2740..0d59a60d 100644
--- a/pdf/preview_mode_client.cc
+++ b/pdf/preview_mode_client.cc
@@ -136,10 +136,6 @@
   NOTREACHED();
 }
 
-void PreviewModeClient::FontSubstituted() {
-  NOTREACHED();
-}
-
 void PreviewModeClient::FormTextFieldFocusChange(bool in_focus) {
   NOTREACHED();
 }
diff --git a/pdf/preview_mode_client.h b/pdf/preview_mode_client.h
index 7bb939a..65174eab 100644
--- a/pdf/preview_mode_client.h
+++ b/pdf/preview_mode_client.h
@@ -63,7 +63,6 @@
       const PDFEngine::DocumentFeatures& document_features,
       uint32_t file_size) override;
   void DocumentLoadFailed() override;
-  void FontSubstituted() override;
   pp::Instance* GetPluginInstance() override;
   void DocumentHasUnsupportedFeature(const std::string& feature) override;
   void FormTextFieldFocusChange(bool in_focus) override;
diff --git a/printing/BUILD.gn b/printing/BUILD.gn
index aa6fd913..2fd86c2 100644
--- a/printing/BUILD.gn
+++ b/printing/BUILD.gn
@@ -229,6 +229,7 @@
       "backend/printing_restrictions.cc",
       "backend/printing_restrictions.h",
       "printed_document_chromeos.cc",
+      "printer_query_result_chromeos.h",
       "printing_context_no_system_dialog.cc",
       "printing_context_no_system_dialog.h",
       "printing_features_chromeos.cc",
diff --git a/printing/backend/cups_jobs.h b/printing/backend/cups_jobs.h
index f67359d..bd336c9 100644
--- a/printing/backend/cups_jobs.h
+++ b/printing/backend/cups_jobs.h
@@ -14,6 +14,7 @@
 #include <vector>
 
 #include "base/version.h"
+#include "printing/printer_query_result_chromeos.h"
 #include "printing/printing_export.h"
 
 // This file contains a collection of functions used to query IPP printers or
@@ -143,13 +144,6 @@
   PROCESSING  // only jobs that are being processed
 };
 
-// Specifies query status codes.
-enum PRINTING_EXPORT PrinterQueryResult {
-  UNKNOWN_FAILURE,  // catchall error
-  SUCCESS,          // successful
-  UNREACHABLE,      // failed to reach the host
-};
-
 // Extracts structured job information from the |response| for |printer_id|.
 // Extracted jobs are added to |jobs|.
 void ParseJobsResponse(ipp_t* response,
diff --git a/printing/printer_query_result_chromeos.h b/printing/printer_query_result_chromeos.h
new file mode 100644
index 0000000..8f926a8
--- /dev/null
+++ b/printing/printer_query_result_chromeos.h
@@ -0,0 +1,21 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_
+#define PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_
+
+#include "printing/printing_export.h"
+
+namespace printing {
+
+// Specifies query status codes.
+enum PRINTING_EXPORT PrinterQueryResult {
+  UNKNOWN_FAILURE,  // catchall error
+  SUCCESS,          // successful
+  UNREACHABLE,      // failed to reach the host
+};
+
+}  // namespace printing
+
+#endif  // PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_
diff --git a/remoting/host/chromeos/clipboard_aura.cc b/remoting/host/chromeos/clipboard_aura.cc
index ffe68e8..c9e267a 100644
--- a/remoting/host/chromeos/clipboard_aura.cc
+++ b/remoting/host/chromeos/clipboard_aura.cc
@@ -54,7 +54,7 @@
     return;
   }
 
-  ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
   clipboard_writer.WriteText(base::UTF8ToUTF16(event.data()));
 
   // Update local change-count to prevent this change from being picked up by
@@ -74,7 +74,7 @@
 
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   uint64_t change_count =
-      clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste);
 
   if (change_count == current_change_count_) {
     return;
@@ -85,7 +85,7 @@
   protocol::ClipboardEvent event;
   std::string data;
 
-  clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &data);
+  clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &data);
   event.set_mime_type(kMimeTypeTextUtf8);
   event.set_data(data);
 
diff --git a/remoting/host/chromeos/clipboard_aura_unittest.cc b/remoting/host/chromeos/clipboard_aura_unittest.cc
index 763a560..fa82caa4 100644
--- a/remoting/host/chromeos/clipboard_aura_unittest.cc
+++ b/remoting/host/chromeos/clipboard_aura_unittest.cc
@@ -100,7 +100,7 @@
 
   std::string clipboard_data;
   ui::Clipboard* aura_clipboard = ui::Clipboard::GetForCurrentThread();
-  aura_clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_data);
+  aura_clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &clipboard_data);
 
   EXPECT_EQ(clipboard_data, "Test data.")
       << "InjectClipboardEvent should write to aura clipboard";
@@ -111,7 +111,7 @@
 
   {
     // |clipboard_writer| will write to the clipboard when it goes out of scope.
-    ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
+    ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(base::UTF8ToUTF16("Test data."));
   }
 
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index a6dbc7b..91e90bf 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -280,6 +280,7 @@
 
   # The imported Skia gni source paths are made absolute by gn.
   defines = skia_core_defines
+  sources += skia_sksl_sources
   sources += skia_utils_sources
   sources += skia_xps_sources
   sources += [
@@ -522,7 +523,6 @@
   if (skia_support_gpu) {
     sources += skia_gpu_sources
     sources += skia_null_gpu_sources
-    sources += skia_sksl_sources
     sources += skia_sksl_gpu_sources
     if (enable_vulkan) {
       sources += skia_vk_sources
diff --git a/storage/browser/quota/quota_database.cc b/storage/browser/quota/quota_database.cc
index c67b532..b65429a 100644
--- a/storage/browser/quota/quota_database.cc
+++ b/storage/browser/quota/quota_database.cc
@@ -46,15 +46,6 @@
 
 const int kCommitIntervalMs = 30000;
 
-void LogDaysSinceLastAccess(base::Time this_time,
-                            const QuotaDatabase::OriginInfoTableEntry& entry) {
-  base::TimeDelta time_since = this_time - std::max(entry.last_access_time,
-                                                    entry.last_modified_time);
-  if (time_since.InDays() < 1)
-    return;
-  UMA_HISTOGRAM_COUNTS_1000("Quota.DaysSinceLastAccess", time_since.InDays());
-}
-
 }  // anonymous namespace
 
 // static
@@ -204,7 +195,6 @@
 
   OriginInfoTableEntry entry;
   if (GetOriginInfo(origin, type, &entry)) {
-    LogDaysSinceLastAccess(last_access_time, entry);
     ++entry.used_count;
     const char* kSql =
         "UPDATE OriginInfoTable"
@@ -243,7 +233,6 @@
 
   OriginInfoTableEntry entry;
   if (GetOriginInfo(origin, type, &entry)) {
-    LogDaysSinceLastAccess(last_modified_time, entry);
     const char* kSql =
         "UPDATE OriginInfoTable"
         " SET last_modified_time = ?"
diff --git a/storage/browser/quota/quota_manager.cc b/storage/browser/quota/quota_manager.cc
index 95a6652..ba38d01 100644
--- a/storage/browser/quota/quota_manager.cc
+++ b/storage/browser/quota/quota_manager.cc
@@ -1716,12 +1716,10 @@
           base::BindOnce(&DidGetSettingsThreadAdapter,
                          base::RetainedRef(base::ThreadTaskRunnerHandle::Get()),
                          base::BindOnce(&QuotaManager::DidGetSettings,
-                                        weak_factory_.GetWeakPtr(),
-                                        base::TimeTicks::Now()))));
+                                        weak_factory_.GetWeakPtr()))));
 }
 
-void QuotaManager::DidGetSettings(base::TimeTicks start_ticks,
-                                  base::Optional<QuotaSettings> settings) {
+void QuotaManager::DidGetSettings(base::Optional<QuotaSettings> settings) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!settings) {
     settings = settings_;
@@ -1730,8 +1728,6 @@
   SetQuotaSettings(*settings);
   settings_callbacks_.Run(*settings);
   UMA_HISTOGRAM_MBYTES("Quota.GlobalTemporaryPoolSize", settings->pool_size);
-  UMA_HISTOGRAM_LONG_TIMES("Quota.TimeToGetSettings",
-                           base::TimeTicks::Now() - start_ticks);
   LOG_IF(WARNING, settings->pool_size == 0)
       << "No storage quota provided in QuotaSettings.";
 }
diff --git a/storage/browser/quota/quota_manager.h b/storage/browser/quota/quota_manager.h
index c397fd3a..66e3bea 100644
--- a/storage/browser/quota/quota_manager.h
+++ b/storage/browser/quota/quota_manager.h
@@ -402,8 +402,7 @@
   void DidGetLRUOrigin(std::unique_ptr<base::Optional<url::Origin>> origin,
                        bool success);
   void GetQuotaSettings(QuotaSettingsCallback callback);
-  void DidGetSettings(base::TimeTicks start_ticks,
-                      base::Optional<QuotaSettings> settings);
+  void DidGetSettings(base::Optional<QuotaSettings> settings);
   void GetStorageCapacity(StorageCapacityCallback callback);
   void ContinueIncognitoGetStorageCapacity(const QuotaSettings& settings);
   void DidGetStorageCapacity(
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index 059f53d..e19dabc 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -2396,123 +2396,6 @@
       }
     ]
   },
-  "Android FYI 32 Vk Release (Pixel XL)": {
-    "gtest_tests": [
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_end2end_tests"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ]
-        },
-        "test": "angle_unittests"
-      }
-    ],
-    "isolated_scripts": [
-      {
-        "args": [
-          "--gtest-benchmark-name=angle_perftests",
-          "-v",
-          "--one-frame-only",
-          "--shard-timeout=500"
-        ],
-        "isolate_name": "angle_perftests",
-        "merge": {
-          "args": [
-            "--smoke-test-mode"
-          ],
-          "script": "//tools/perf/process_perf_results.py"
-        },
-        "name": "angle_perftests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ]
-        }
-      }
-    ]
-  },
   "Android FYI 32 dEQP Vk Release (Pixel 2)": {
     "gtest_tests": [
       {
@@ -2746,239 +2629,6 @@
       }
     ]
   },
-  "Android FYI 32 dEQP Vk Release (Pixel XL)": {
-    "gtest_tests": [
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_egl_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_deqp_egl_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_gles2_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_deqp_gles2_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_gles3_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 12
-        },
-        "test": "angle_deqp_gles3_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_khr_gles2_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ]
-        },
-        "test": "angle_deqp_khr_gles2_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_khr_gles3_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 2
-        },
-        "test": "angle_deqp_khr_gles3_tests"
-      }
-    ]
-  },
   "Android FYI 64 Vk Release (Pixel 2)": {
     "gtest_tests": [
       {
@@ -3096,123 +2746,6 @@
       }
     ]
   },
-  "Android FYI 64 Vk Release (Pixel XL)": {
-    "gtest_tests": [
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_end2end_tests"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ]
-        },
-        "test": "angle_unittests"
-      }
-    ],
-    "isolated_scripts": [
-      {
-        "args": [
-          "--gtest-benchmark-name=angle_perftests",
-          "-v",
-          "--one-frame-only",
-          "--shard-timeout=500"
-        ],
-        "isolate_name": "angle_perftests",
-        "merge": {
-          "args": [
-            "--smoke-test-mode"
-          ],
-          "script": "//tools/perf/process_perf_results.py"
-        },
-        "name": "angle_perftests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ]
-        }
-      }
-    ]
-  },
   "Android FYI 64 dEQP Vk Release (Pixel 2)": {
     "gtest_tests": [
       {
@@ -3446,239 +2979,6 @@
       }
     ]
   },
-  "Android FYI 64 dEQP Vk Release (Pixel XL)": {
-    "gtest_tests": [
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_egl_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_deqp_egl_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_gles2_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 4
-        },
-        "test": "angle_deqp_gles2_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_gles3_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 12
-        },
-        "test": "angle_deqp_gles3_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_khr_gles2_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ]
-        },
-        "test": "angle_deqp_khr_gles2_tests"
-      },
-      {
-        "args": [
-          "--deqp-egl-display-type=angle-vulkan",
-          "--enable-xml-result-parsing",
-          "--shard-timeout=500",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "angle_deqp_khr_gles3_vulkan_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "P",
-              "device_os_type": "userdebug",
-              "device_type": "marlin",
-              "os": "Android",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "shards": 2
-        },
-        "test": "angle_deqp_khr_gles3_tests"
-      }
-    ]
-  },
   "Android FYI Release (NVIDIA Shield TV)": {
     "gtest_tests": [
       {
@@ -7248,6 +6548,55 @@
       }
     ]
   },
+  "Android FYI SkiaRenderer Vulkan (Pixel 2)": {
+    "gtest_tests": [
+      {
+        "args": [
+          "--use-vulkan=native",
+          "--disable-vulkan-fallback-to-gl-for-testing",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "vulkan_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "P",
+              "device_os_type": "userdebug",
+              "device_type": "walleye",
+              "os": "Android",
+              "pool": "Chrome-GPU"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "shards": 12
+        },
+        "test": "content_browsertests"
+      }
+    ]
+  },
   "Android FYI dEQP Release (Nexus 5X)": {
     "gtest_tests": [
       {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 697ae96..ef1245b 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -5451,1549 +5451,6 @@
       }
     ]
   },
-  "Linux Tests (dbg)(1)(32)": {
-    "gtest_tests": [
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "accessibility_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "angle_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "app_shell_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "aura_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "base_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "base_util_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "blink_common_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "blink_fuzzer_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "blink_heap_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "blink_platform_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "webkit_unit_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "blink_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "boringssl_crypto_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "boringssl_ssl_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "shards": 10
-        },
-        "test": "browser_tests"
-      },
-      {
-        "args": [
-          "--disable-blink-features=HTMLImports,ShadowDOMV0,CustomElementsV0",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/webui_html_imports_polyfill_browser_tests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "webui_html_imports_polyfill_browser_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "browser_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "cacheinvalidation_unittests"
-      },
-      {
-        "args": [
-          "--gtest_filter=-*UsingRealWebcam*"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "capture_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "cast_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "cc_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "chrome_app_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "chromedriver_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "components_browsertests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "components_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "compositor_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "shards": 6
-        },
-        "test": "content_browsertests"
-      },
-      {
-        "args": [
-          "--disable-perfetto",
-          "--gtest_filter=TracingControllerTest.*:BackgroundTracingManagerBrowserTest.*"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "nonperfetto_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "content_browsertests"
-      },
-      {
-        "args": [
-          "--enable-features=VizDisplayCompositor,UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "content_browsertests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "content_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "cronet_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "cronet_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "crypto_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "dbus_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "device_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "display_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "events_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "extensions_browsertests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "extensions_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "filesystem_service_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "gcm_unit_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "gfx_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "gin_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "google_apis_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "gpu_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "headless_browsertests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "headless_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "shards": 3
-        },
-        "test": "interactive_ui_tests"
-      },
-      {
-        "args": [
-          "--disable-blink-features=HTMLImports,ShadowDOMV0,CustomElementsV0",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/webui_html_imports_polyfill_interactive_ui_tests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "webui_html_imports_polyfill_interactive_ui_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "interactive_ui_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "ipc_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "jingle_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "latency_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "leveldb_service_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "libjingle_xmpp_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "media_blink_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "media_service_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "media_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "message_center_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "midi_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "mojo_core_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "mojo_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "nacl_helper_nonsfi_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "nacl_loader_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "native_theme_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "shards": 2
-        },
-        "test": "net_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "pdf_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "perfetto_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "ppapi_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "printing_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "sandbox_linux_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "service_manager_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "services_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "shell_dialogs_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "skia_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "snapshot_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "sql_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "storage_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "sync_integration_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "traffic_annotation_auditor_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "ui_base_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "ui_touch_selection_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "unit_tests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "url_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "views_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "viz_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "vr_common_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "vr_pixeltests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "wm_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "wtf_unittests"
-      },
-      {
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "xr_browser_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "xr_browser_tests"
-      }
-    ],
-    "isolated_scripts": [
-      {
-        "isolate_name": "blink_python_tests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "blink_python_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "content_shell_crash_test",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "content_shell_crash_test",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "devtools_closure_compile",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "devtools_closure_compile",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "devtools_eslint",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "devtools_eslint",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "flatbuffers_unittests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "flatbuffers_unittests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "grit_python_unittests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "grit_python_unittests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "metrics_python_tests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "metrics_python_tests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "telemetry_gpu_unittests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "telemetry_gpu_unittests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "idempotent": false
-        }
-      },
-      {
-        "args": [
-          "--jobs=1",
-          "--extra-browser-args=--disable-gpu"
-        ],
-        "isolate_name": "telemetry_unittests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "telemetry_unittests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ],
-          "idempotent": false,
-          "shards": 4
-        }
-      },
-      {
-        "args": [
-          "--gtest-benchmark-name=views_perftests"
-        ],
-        "isolate_name": "views_perftests",
-        "merge": {
-          "args": [
-            "--smoke-test-mode"
-          ],
-          "script": "//tools/perf/process_perf_results.py"
-        },
-        "name": "views_perftests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      },
-      {
-        "isolate_name": "webdriver_wpt_tests",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "webdriver_tests_suite",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        }
-      }
-    ]
-  },
   "Linux Tests Code Coverage": {
     "gtest_tests": [
       {
diff --git a/testing/buildbot/filters/BUILD.gn b/testing/buildbot/filters/BUILD.gn
index 66bc9a2..e850e09 100644
--- a/testing/buildbot/filters/BUILD.gn
+++ b/testing/buildbot/filters/BUILD.gn
@@ -59,6 +59,7 @@
     "//testing/buildbot/filters/site_isolation_android.content_browsertests.filter",
     "//testing/buildbot/filters/skia_renderer.content_browsertests.filter",
     "//testing/buildbot/filters/vulkan.content_browsertests.filter",
+    "//testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter",
   ]
 }
 
diff --git a/testing/buildbot/filters/chromeos.browser_tests.filter b/testing/buildbot/filters/chromeos.browser_tests.filter
index 2ec1def..8ab5db9 100644
--- a/testing/buildbot/filters/chromeos.browser_tests.filter
+++ b/testing/buildbot/filters/chromeos.browser_tests.filter
@@ -3,3 +3,13 @@
 
 # TODO(crbug.com/976807): Enable this.
 -SiteIsolationFlagHandlingTest.FlagHandlingTest*
+
+# TODO(crbug.com/976987): Enable this.
+-UserCloudPolicyManagerTest.ErrorLoadingPolicyForUnmanagedUser/0
+-UserCloudPolicyManagerTest.ErrorLoadingPolicyForUnmanagedUser/1
+-UserCloudPolicyManagerTest.NoPolicyForNonEnterpriseUser/0
+-UserCloudPolicyManagerTest.NoPolicyForNonEnterpriseUser/1
+-UserCloudPolicyManagerTest.PolicyForChildUser/0
+-UserCloudPolicyManagerTest.PolicyForChildUser/1
+-UserCloudPolicyManagerTest.StartSession/0
+-UserCloudPolicyManagerTest.StartSession/1
diff --git a/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
new file mode 100644
index 0000000..ce551a0
--- /dev/null
+++ b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
@@ -0,0 +1,69 @@
+# crbug.com/963266: Android SkiaRenderer Vulkan content_browsertests failures
+-AccessibilityHitTestingBrowserTest.HitTestingWithPinchZoom
+-BrowserSideFlingBrowserTest.InertialGSUBubblingStopsWhenParentCannotScroll
+-DumpAccessibilityTreeTest.AccessibilityDfn/blink
+-DumpAccessibilityTreeTest.AccessibilityOffscreen/blink
+-DumpAccessibilityTreeTest.AccessibilityOffscreenScroll/blink
+-DumpAccessibilityTreeTest.AccessibilityOffscreenSelect/blink
+-DumpAccessibilityTreeTest.AccessibilityWindowCropsItems/blink
+-File/MediaTest.VideoBearMp4/0
+-Http/MediaTest.VideoBearMp4/0
+-MediaColorTest.Yuv420pTheora
+-MediaColorTest.Yuv420pVp8
+-MediaSessionImplBrowserTest.MetadataWhenFileUrlScheme
+-MediaSourceTest.Playback_Video_MP4_Audio_WEBM
+-MediaTest.VideoBearRotated0
+-MediaTest.VideoBearRotated90
+-MediaTest.VideoBearRotated180
+-MediaTest.VideoBearRotated270
+-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CBCS/0
+-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CBCS_Video_CENC_Audio/0
+-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CENC/0
+-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CENC_Video_CBCS_Audio/0
+-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CBCS/0
+-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CBCS_Video_CENC_Audio/0
+-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CENC/0
+-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CENC_Video_CBCS_Audio/0
+-NavigationControllerBrowserTest.DontIgnoreBackAfterNavEntryLimit
+-NavigationControllerBrowserTest.ReloadWithUrlAnchor
+-NavigationControllerBrowserTest.ReloadWithUrlAnchorAndScroll
+-OOPBrowserTest.Basic
+-P/CompositorImplBrowserTestRefreshRate.VideoPreference/0
+-SitePerProcessBrowserTest.HiddenOOPIFWillNotGenerateCompositorFrames
+-SitePerProcessBrowserTest.ScaledIframeRasterSize
+-SitePerProcessBrowserTest.ScrollOopifInPinchZoomedPage
+-SitePerProcessBrowserTest.SubframeVisibleAfterRenderViewBecomesSwappedOut
+-SitePerProcessEmulatedTouchBrowserTest.EmulatedGestureScrollBubbles/0
+-SitePerProcessEmulatedTouchBrowserTest.EmulatedTouchScrollBubbles/0
+-SitePerProcessEmulatedTouchBrowserTest.EmulatedTouchShowPressHasTouchID/0
+-SitePerProcessHighDPIHitTestBrowserTest.OverlapSurfaceHitTestTest/0
+-SitePerProcessHitTestBrowserTest.BubbledScrollEventsTransformedCorrectly/0
+-SitePerProcessHitTestBrowserTest.CrossProcessMouseCapture/0
+-SitePerProcessHitTestBrowserTest.CrossProcessMouseEnterAndLeaveTest/0
+-SitePerProcessHitTestBrowserTest.CrossProcessMousePointerCapture/0
+-SitePerProcessHitTestBrowserTest.CrossProcessTooltipTestAndroid/0
+-SitePerProcessHitTestBrowserTest.HitTestStaleDataDeletedView/0
+-SitePerProcessHitTestBrowserTest.MouseCaptureOnDragSelection/0
+-SitePerProcessHitTestBrowserTest.OverlapSurfaceHitTestTest/0
+-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/0
+-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/1
+-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/2
+-SitePerProcessHitTestBrowserTest.TouchpadPinchWhenMissingHitTestDataDoesNotCrash/0
+-SitePerProcessHitTestBrowserTest.TouchpadPinchWhenMissingHitTestDataDoesNotCrash/1
+-SnapshotBrowserTest.SyncMultiWindowTest
+-SRC_ClearKey/EncryptedMediaTest.FrameSizeChangeVideo/0
+-TouchActionBrowserTest.DefaultAuto/1
+-TouchActionBrowserTest.PanXMainThreadJanky/1
+-TouchActionBrowserTest.PanXYMainThreadJanky/1
+-TouchActionBrowserTest.PanYMainThreadJanky/1
+-TouchSelectionControllerClientAndroidSiteIsolationTest.BasicSelectionIsolatedIframe
+-WebContentsImplBrowserTest.PopupWindowBrowserNavResumeLoad
+-WebRtcBrowserTest.CanSetupH264VideoCallOnSupportedDevice
+-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames
+-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureWebGLFrames
+-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCapture2DFrames
+-WebRtcCaptureFromElementBrowserTest.VerifyCanvas2DCaptureColor
+-WebRtcGetUserMediaBrowserTest.TestGetUserMediaAspectRatio1To1/0
+-WebRtcGetUserMediaBrowserTest.TestGetUserMediaAspectRatio4To3/0
+-WithOutOfBlinkCors/CrossSiteDocumentBlockingTest.BlockImages/0
+-WithoutOutOfBlinkCors/CrossSiteDocumentBlockingTest.BlockImages/0
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index 2e154ede..224234c 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -2258,6 +2258,7 @@
       "--benchmarks=rendering.desktop",
       "--output-format=csv",
       "--browser=release",
+      "--upload-results",
     ],
     "label": "//chrome/test:rendering_representative_perf_tests",
     "script": "//testing/scripts/run_rendering_benchmark_with_gated_performance.py",
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 82f2e33..b34f264 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -444,15 +444,6 @@
       },
     },
   },
-  'marlin': {
-    # Pixel XL
-    'swarming': {
-      'dimensions': {
-        'device_type': 'marlin',
-        'os': 'Android',
-      },
-    },
-  },
   'marshmallow': {
     'swarming': {
       'dimensions': {
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index f6a57d8b..27dc8ae 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -860,11 +860,6 @@
           'shards': 2,
         },
       },
-      'Linux Tests (dbg)(1)(32)': {
-        'swarming': {
-          'shards': 2,
-        },
-      },
       'linux-chromeos-dbg': {
         'swarming': {
           'shards': 2,
@@ -1096,7 +1091,6 @@
   },
   'non_network_service_webkit_layout_tests' : {
     'remove_from': [
-      'Linux Tests (dbg)(1)(32)', # 32-bit linux is unsupported
       # chromium.mac. TODO(https://crbug.com/944117): Remove this.
       'mac-dummy-rel',
     ],
@@ -1131,7 +1125,7 @@
       # chromium.linux
       # TODO(dpranke): Should we be running this step on Linux Tests (dbg)(1)?
       'Linux Tests (dbg)(1)',
-      'Linux Tests (dbg)(1)(32)',
+
       # chromium.mac. TODO(https://crbug.com/944117): Remove this.
       'mac-dummy-rel',
     ],
@@ -1229,12 +1223,6 @@
         },
       },
     },
- },
- 'remoting_unittests': {
-    'remove_from': [
-      # chromium.linux
-      'Linux Tests (dbg)(1)(32)',  # https://crbug.com/852895
-    ],
   },
   'sandbox_linux_unittests': {
     'modifications': {
@@ -1418,7 +1406,6 @@
       },
     },
     'remove_from': [
-      'Linux Tests (dbg)(1)(32)',
       # crbug.com/936540
       'Mac10.10 Tests',
       'Mac10.11 Tests',
@@ -1674,8 +1661,6 @@
   },
   'webkit_layout_tests': {
     'remove_from': [
-      # chromium.linux
-      'Linux Tests (dbg)(1)(32)', # 32-bit linux is unsupported
       # chromium.win
       'Win 7 Tests x64 (1)',  # 64-bit win is unsupported by the layout tests.
       'Win10 Tests x64 (dbg)',
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index ac094fe..ef81f4d 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -3420,7 +3420,6 @@
       }
     },
 
-
     'gpu_skia_renderer_telemetry_tests': {
       'skia_renderer_pixel_skia_gold_test': {
         'name': 'skia_renderer_pixel_skia_gold_test',
@@ -3460,6 +3459,23 @@
       },
     },
 
+    'gpu_skia_renderer_vulkan_gtests': {
+      'vulkan_content_browsertests': {
+        'args': [
+          '--use-vulkan=native',
+          '--disable-vulkan-fallback-to-gl-for-testing',
+          '--test-launcher-filter-file=../../testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter',
+        ],
+        'swarming': {
+          'shards': 10,
+        },
+        'android_swarming': {
+          'shards': 12,
+        },
+        'test': 'content_browsertests',
+      },
+    },
+
     'gpu_swiftshader_gtests': {
       'swiftshader_unittests': {
       },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 1935122..ccd2743 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2328,19 +2328,6 @@
           'isolated_scripts': 'gpu_angle_perf_isolated_scripts',
         },
       },
-      'Android FYI 32 Vk Release (Pixel XL)': {
-        'os_type': 'android',
-        'skip_merge_script': True,
-        'mixins': [
-          'gpu_pool',
-          'marlin',
-          'pie',
-        ],
-        'test_suites': {
-          'gtest_tests': 'gpu_angle_gtests',
-          'isolated_scripts': 'gpu_angle_perf_isolated_scripts',
-        },
-      },
       'Android FYI 32 dEQP Vk Release (Pixel 2)': {
         'os_type': 'android',
         'skip_merge_script': True,
@@ -2353,18 +2340,6 @@
           'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests',
         },
       },
-      'Android FYI 32 dEQP Vk Release (Pixel XL)': {
-        'os_type': 'android',
-        'skip_merge_script': True,
-        'mixins': [
-          'gpu_pool',
-          'marlin',
-          'pie',
-        ],
-        'test_suites': {
-          'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests',
-        },
-      },
       'Android FYI 64 Vk Release (Pixel 2)': {
         'os_type': 'android',
         'skip_merge_script': True,
@@ -2378,19 +2353,6 @@
           'isolated_scripts': 'gpu_angle_perf_isolated_scripts',
         },
       },
-      'Android FYI 64 Vk Release (Pixel XL)': {
-        'os_type': 'android',
-        'skip_merge_script': True,
-        'mixins': [
-          'gpu_pool',
-          'marlin',
-          'pie',
-        ],
-        'test_suites': {
-          'gtest_tests': 'gpu_angle_gtests',
-          'isolated_scripts': 'gpu_angle_perf_isolated_scripts',
-        },
-      },
       'Android FYI 64 dEQP Vk Release (Pixel 2)': {
         'os_type': 'android',
         'skip_merge_script': True,
@@ -2403,18 +2365,6 @@
           'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests',
         },
       },
-      'Android FYI 64 dEQP Vk Release (Pixel XL)': {
-        'os_type': 'android',
-        'skip_merge_script': True,
-        'mixins': [
-          'gpu_pool',
-          'marlin',
-          'pie',
-        ],
-        'test_suites': {
-          'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests',
-        },
-      },
       'Android FYI Release (NVIDIA Shield TV)': {
         'browser_config': 'android-chromium',
         'os_type': 'android',
@@ -2519,6 +2469,19 @@
           'gpu_telemetry_tests': 'gpu_fyi_android_webgl2_and_gold_telemetry_tests',
         },
       },
+      'Android FYI SkiaRenderer Vulkan (Pixel 2)': {
+        'os_type': 'android',
+        'browser_config': 'android-chromium',
+        'skip_merge_script': True,
+        'mixins': [
+          'gpu_pool',
+          'pie',
+          'walleye',
+        ],
+        'test_suites': {
+          'gtest_tests': 'gpu_skia_renderer_vulkan_gtests',
+        },
+      },
       'Android FYI dEQP Release (Nexus 5X)': {
         'os_type': 'android',
         'skip_merge_script': True,
@@ -3407,15 +3370,6 @@
           'isolated_scripts': 'chromium_linux_dbg_isolated_scripts',
         },
       },
-      'Linux Tests (dbg)(1)(32)': {
-        'mixins': [
-          'linux-trusty',
-        ],
-        'test_suites': {
-          'gtest_tests': 'chromium_linux_gtests',
-          'isolated_scripts': 'chromium_linux_dbg_isolated_scripts',
-        },
-      },
       # TODO(crbug.com/930364): Remove once linux-coverage-rel is folded into
       # linux-rel or ended up not being able to fold.
       'Linux Tests Code Coverage': {
diff --git a/testing/scripts/run_rendering_benchmark_with_gated_performance.py b/testing/scripts/run_rendering_benchmark_with_gated_performance.py
index b42042ac..38835b4 100755
--- a/testing/scripts/run_rendering_benchmark_with_gated_performance.py
+++ b/testing/scripts/run_rendering_benchmark_with_gated_performance.py
@@ -15,6 +15,8 @@
 use with other benchmarks.
 """
 
+from __future__ import print_function
+
 import argparse
 import csv
 import json
@@ -29,8 +31,8 @@
 # AVG_ERROR_MARGIN determines how much more the value of frame times can be
 # compared to the recorded value
 AVG_ERROR_MARGIN = 2.0
-# CI stands for comfidence intrevals. "ci_095"s recorded in the data is the
-# reocrded range between upper and lower CIs. CI_ERROR_MARGIN is the maximum
+# CI stands for confidence intervals. "ci_095"s recorded in the data is the
+# recorded range between upper and lower CIs. CI_ERROR_MARGIN is the maximum
 # acceptable ratio of calculated ci_095 to the recorded ones.
 CI_ERROR_MARGIN = 2.0
 
@@ -41,44 +43,120 @@
     self.start_time = time.time()
     self.output = {}
     self.return_code = 0
+    self._failed_stories = set()
 
-  def setTests(self, output, testNum):
+  def set_tests(self, output):
     self.output = output
-    self.tests = testNum
     self.fails = 0
     if 'FAIL' in output['num_failures_by_type']:
       self.fails = output['num_failures_by_type']['FAIL']
+    self.tests = self.fails + output['num_failures_by_type']['PASS']
 
-  def addFailure(self, name):
+  def add_failure(self, name):
     self.output['tests'][BENCHMARK][name]['actual'] = 'FAIL'
     self.output['tests'][BENCHMARK][name]['is_unexpected'] = True
+    self._failed_stories.add(name)
     self.fails += 1
 
-  def getOutput(self, return_code):
+  def remove_failure(self, name):
+    self.output['tests'][BENCHMARK][name]['actual'] = 'PASS'
+    self.output['tests'][BENCHMARK][name]['is_unexpected'] = False
+    self._failed_stories.remove(name)
+    self.fails -= 1
+
+  @property
+  def failed_stories(self):
+    return self._failed_stories
+
+  def get_output(self, return_code):
     self.output['seconds_since_epoch'] = time.time() - self.start_time
     self.output['num_failures_by_type']['PASS'] = self.tests - self.fails
     if self.fails > 0:
       self.output['num_failures_by_type']['FAIL'] = self.fails
     if return_code == 1:
-      self.output["interrupted"] = True
+      self.output['interrupted'] = True
 
-    if self.fails == 0:
-      print "[  PASSED  ] " + str(self.tests) + " tests."
-    else:
-      print "[  FAILED  ] " + str(self.fails) + "/" + str(self.tests)+ " tests."
+    plural = lambda n, s, p: '%d %s' % (n, p if n != 1 else s)
+    tests = lambda n: plural(n, 'test', 'tests')
+
+    print('[  PASSED  ] ' + tests(self.tests - self.fails) + '.')
+    if self.fails > 0:
+      print('[  FAILED  ] ' + tests(self.fails) + '.')
       self.return_code = 1
 
     return (self.output, self.return_code)
 
-  def setAllToFail(self):
-    self.fails = self.tests
+def interpret_run_benchmark_results(upper_limit_data,
+    isolated_script_test_output):
+  out_dir_path = os.path.dirname(isolated_script_test_output)
+  output_path = os.path.join(out_dir_path, BENCHMARK, 'test_results.json')
+  result_recorder = ResultRecorder()
+
+  with open(output_path, 'r+') as resultsFile:
+    initialOut = json.load(resultsFile)
+    result_recorder.set_tests(initialOut)
+
+    results_path = os.path.join(out_dir_path, BENCHMARK, 'perf_results.csv')
+    marked_stories = set()
+
+    with open(results_path) as csv_file:
+      reader = csv.DictReader(csv_file)
+      for row in reader:
+        # For now only frame_times is used for testing representatives'
+        # performance.
+        if row['name'] != 'frame_times':
+          continue
+        story_name = row['stories']
+        if (story_name in marked_stories or story_name not in
+          upper_limit_data):
+          continue
+        marked_stories.add(story_name)
+
+        upper_limit_avg = upper_limit_data[story_name]['avg']
+        upper_limit_ci = upper_limit_data[story_name]['ci_095']
+
+        if row['avg'] == '' or row['count'] == 0:
+          print('[  FAILED  ] '+ BENCHMARK + '/' + story_name + ' ' +
+            row['name'] + ' has no values for ' + row['name'] +
+            '. check run_benchmark logs for more information.')
+          result_recorder.add_failure(story_name)
+        elif (float(row['ci_095']) > upper_limit_ci * CI_ERROR_MARGIN):
+          print('[  FAILED  ] '+ BENCHMARK + '/' + story_name + ' ' +
+            row['name'] + ' has higher noise' + '(' + str(row['ci_095']) +
+            ') compared to upper limit(' + str(upper_limit_ci) + ').')
+          result_recorder.add_failure(story_name)
+        elif (float(row['avg']) > upper_limit_avg + AVG_ERROR_MARGIN):
+          print('[  FAILED  ] '+ BENCHMARK + '/' + story_name +
+            ' higher average ' + row['name'] + '(' + str(row['avg']) +
+            ') compared to upper limit(' + str(upper_limit_avg) + ').')
+          result_recorder.add_failure(story_name)
+        else:
+          print('[       OK ] '+ BENCHMARK + '/' + story_name +
+            ' lower average ' + row['name'] + '(' + str(row['avg']) +
+            ') compared to upper limit(' + str(upper_limit_avg) + ').')
+
+    # Clearing the result of run_benchmark and write the gated perf results
+    resultsFile.seek(0)
+    resultsFile.truncate(0)
+
+  return result_recorder
+
+def replace_arg_values(args, key_value_pairs):
+  for index in range(0, len(args)):
+    for (key, value) in key_value_pairs:
+      if args[index].startswith(key):
+        if '=' in args[index]:
+          args[index] = key + '=' + value
+        else:
+          args[index+1] = value
+  return args
 
 def main():
   overall_return_code = 0
 
   # Linux does not have it's own specific representatives
-  # and uses the representatives chosen for winodws.
-  if sys.platform == 'win32':
+  # and uses the representatives chosen for windows.
+  if sys.platform == 'win32' or sys.platform.startswith('linux'):
     platform = 'win'
     story_tag = 'representative_win_desktop'
   elif sys.platform == 'darwin':
@@ -89,10 +167,10 @@
 
   options = parse_arguments()
   args = sys.argv
+  re_run_args = sys.argv
   args.extend(['--story-tag-filter', story_tag])
 
   overall_return_code = run_performance_tests.main(args)
-  result_recorder = ResultRecorder()
 
   # The values used as the upper limit are the 99th percentile of the
   # avg and ci_095 frame_times recorded by dashboard in the past 200 revisions.
@@ -107,51 +185,47 @@
     upper_limit_data = json.load(bound_data)
 
   out_dir_path = os.path.dirname(options.isolated_script_test_output)
-  test_count = len(upper_limit_data[platform])
-
   output_path = os.path.join(out_dir_path, BENCHMARK, 'test_results.json')
+  result_recorder = interpret_run_benchmark_results(upper_limit_data[platform],
+      options.isolated_script_test_output)
 
   with open(output_path, 'r+') as resultsFile:
-    initialOut = json.load(resultsFile)
-    result_recorder.setTests(initialOut, test_count)
+    if len(result_recorder.failed_stories) > 0:
+      # For failed stories we run_tests again to make sure it's not a false
+      # positive.
+      print('============ Re_run the failed tests ============')
+      all_failed_stories = '('+'|'.join(result_recorder.failed_stories)+')'
+      re_run_args.extend(
+        ['--story-filter', all_failed_stories, '--pageset-repeat=3'])
 
-    results_path = os.path.join(out_dir_path, BENCHMARK, 'perf_results.csv')
-    marked_stories = set()
-    with open(results_path) as csv_file:
-      reader = csv.DictReader(csv_file)
-      for row in reader:
-        # For now only frame_times is used for testing representatives'
-        # performance.
-        if row['name'] != 'frame_times':
-          continue
-        story_name = row['stories']
-        if (story_name in marked_stories or story_name not in
-          upper_limit_data[platform]):
-          continue
-        marked_stories.add(story_name)
+      re_run_isolated_script_test_dir = os.path.join(out_dir_path,
+        're_run_failures')
+      re_run_isolated_script_test_output = os.path.join(
+        re_run_isolated_script_test_dir,
+        os.path.basename(options.isolated_script_test_output))
+      re_run_isolated_script_test_perf_output = os.path.join(
+        re_run_isolated_script_test_dir,
+        os.path.basename(options.isolated_script_test_perf_output))
 
-        if row['avg'] == '' or row['count'] == 0:
-          print "No values for " + story_name
-          result_recorder.addFailure(story_name)
-        elif (float(row['ci_095']) >
-          upper_limit_data[platform][story_name]['ci_095'] * CI_ERROR_MARGIN):
-          print "Noisy data on frame_times for " + story_name + ".\n"
-          result_recorder.addFailure(story_name)
-        elif (float(row['avg']) >
-          upper_limit_data[platform][story_name]['avg'] + AVG_ERROR_MARGIN):
-          print (story_name + ": average frame_times is higher than 99th " +
-            "percentile of the past 200 recorded frame_times(" +
-            row['avg'] + ")" + ".\n")
-          result_recorder.addFailure(story_name)
+      re_run_args = replace_arg_values(re_run_args, [
+        ('--isolated-script-test-output', re_run_isolated_script_test_output),
+        ('--isolated-script-test-perf-output',
+          re_run_isolated_script_test_perf_output)
+      ])
+
+      overall_return_code |= run_performance_tests.main(re_run_args)
+      re_run_result_recorder = interpret_run_benchmark_results(
+          upper_limit_data[platform], re_run_isolated_script_test_output)
+
+      for story_name in result_recorder.failed_stories.copy():
+        if story_name not in re_run_result_recorder.failed_stories:
+          result_recorder.remove_failure(story_name)
 
     (
       finalOut,
       overall_return_code
-    ) = result_recorder.getOutput(overall_return_code)
+    ) = result_recorder.get_output(overall_return_code)
 
-    # Clearing the result of run_benchmark and write the gated perf results
-    resultsFile.seek(0)
-    resultsFile.truncate(0)
     json.dump(finalOut, resultsFile, indent=4)
 
     with open(options.isolated_script_test_output, 'w') as outputFile:
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 52a7b48..431a03c 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -1446,6 +1446,24 @@
             ]
         }
     ],
+    "ClipboardMaximumAge": [
+        {
+            "platforms": [
+                "android"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "params": {
+                        "UIClipboardMaximumAge": "600"
+                    },
+                    "enable_features": [
+                        "ClipboardMaximumAge"
+                    ]
+                }
+            ]
+        }
+    ],
     "CompositorImageAnimation": [
         {
             "platforms": [
diff --git a/testing/xvfb.py b/testing/xvfb.py
index abc4c32..bb9d3975 100755
--- a/testing/xvfb.py
+++ b/testing/xvfb.py
@@ -21,32 +21,24 @@
   pass
 
 
-def _kill(proc, send_signal):
-  """Kills |proc| and ignores exceptions thrown for non-existent processes."""
-  try:
-    os.kill(proc.pid, send_signal)
-  except OSError:
-    pass
-
-
-def kill(proc, timeout_in_seconds=10):
+def kill(proc, name, timeout_in_seconds=10):
   """Tries to kill |proc| gracefully with a timeout for each signal."""
-  if not proc or not proc.pid:
+  if not proc:
     return
 
-  _kill(proc, signal.SIGTERM)
+  proc.terminate()
   thread = threading.Thread(target=proc.wait)
   thread.start()
 
   thread.join(timeout_in_seconds)
   if thread.is_alive():
-    print >> sys.stderr, '%s running after SIGTERM, trying SIGKILL.' % proc.name
-    _kill(proc, signal.SIGKILL)
+    print >> sys.stderr, '%s running after SIGTERM, trying SIGKILL.' % name
+    proc.kill()
 
   thread.join(timeout_in_seconds)
   if thread.is_alive():
     print >> sys.stderr, \
-      '%s running after SIGTERM and SIGKILL; good luck!' % proc.name
+      '%s running after SIGTERM and SIGKILL; good luck!' % name
 
 
 # TODO(crbug.com/949194): Encourage setting flags to False.
@@ -159,10 +151,10 @@
       print >> sys.stderr, 'Xvfb fail: %s' % str(e)
       return 1
     finally:
-      kill(openbox_proc)
-      kill(xcompmgr_proc)
-      kill(weston_proc)
-      kill(xvfb_proc)
+      kill(openbox_proc, 'openbox')
+      kill(xcompmgr_proc, 'xcompmgr')
+      kill(weston_proc, 'weston')
+      kill(xvfb_proc, 'Xvfb')
   else:
     return test_env.run_executable(cmd, env, stdoutfile)
 
diff --git a/third_party/blink/public/BUILD.gn b/third_party/blink/public/BUILD.gn
index 24d20f8c..c976f85 100644
--- a/third_party/blink/public/BUILD.gn
+++ b/third_party/blink/public/BUILD.gn
@@ -165,6 +165,7 @@
     "platform/modules/webrtc/track_observer.h",
     "platform/modules/webrtc/webrtc_logging.h",
     "platform/modules/webrtc/webrtc_video_frame_adapter.h",
+    "platform/modules/webrtc/webrtc_video_utils.h",
     "platform/platform.h",
     "platform/pointer_properties.h",
     "platform/scheduler/web_rail_mode_observer.h",
@@ -540,6 +541,7 @@
     "//third_party/webrtc/api:libjingle_peerconnection_api",
     "//third_party/webrtc/api:rtc_stats_api",
     "//third_party/webrtc/api/video:video_frame",
+    "//third_party/webrtc/api/video:video_rtp_headers",
     "//third_party/webrtc/media:rtc_media_base",
     "//third_party/webrtc/modules/audio_processing:api",
     "//third_party/webrtc/rtc_base:rtc_base",
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index 6b49d8e..d53a3e5 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -111,7 +111,7 @@
     "service_worker/service_worker_state.mojom",
     "service_worker/service_worker_stream_handle.mojom",
     "site_engagement/site_engagement.mojom",
-    "sms/sms_manager.mojom",
+    "sms/sms_receiver.mojom",
     "speech/speech_recognition_error.mojom",
     "speech/speech_recognition_error_code.mojom",
     "speech/speech_recognition_grammar.mojom",
diff --git a/third_party/blink/public/mojom/sms/sms_manager.mojom b/third_party/blink/public/mojom/sms/sms_receiver.mojom
similarity index 79%
rename from third_party/blink/public/mojom/sms/sms_manager.mojom
rename to third_party/blink/public/mojom/sms/sms_receiver.mojom
index 05c4b6d..b48d616 100644
--- a/third_party/blink/public/mojom/sms/sms_manager.mojom
+++ b/third_party/blink/public/mojom/sms/sms_receiver.mojom
@@ -14,18 +14,14 @@
   kTimeout
 };
 
-struct SmsMessage {
-  SmsStatus status;
-  // Only set if status == kSuccess.
-  string? content;
-};
-
 // This interface is created per storage partition but its execution is context
 // associated: there is an origin associated with a request that is multiplexed
 // through one instance on a storage partition.
-interface SmsManager {
+interface SmsReceiver {
   // Retrieves the next SMS message that arrives on the phone that is addressed
   // to the caller's origin.
   // Returns the raw content of the received SMS.
-  GetNextMessage(mojo_base.mojom.TimeDelta timeout) => (SmsMessage sms);
+  // |message| is only set if status == kSuccess.
+  Receive(mojo_base.mojom.TimeDelta timeout)
+    => (SmsStatus status, string? message);
 };
diff --git a/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h b/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h
new file mode 100644
index 0000000..04eae9f
--- /dev/null
+++ b/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h
@@ -0,0 +1,30 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_
+
+#include "media/base/video_color_space.h"
+#include "media/base/video_transformation.h"
+#include "third_party/blink/public/platform/web_common.h"
+#include "third_party/webrtc/api/video/color_space.h"
+#include "third_party/webrtc/api/video/video_rotation.h"
+
+namespace blink {
+
+// This file has helper methods for conversion between chromium types and
+// webrtc/api/video types.
+//
+// TODO(crbug.com/704136): Move the helper methods below out of the Blink
+// exposed API when all users of it have been Onion souped.
+
+media::VideoRotation BLINK_PLATFORM_EXPORT
+WebRtcToMediaVideoRotation(webrtc::VideoRotation rotation);
+
+media::VideoColorSpace BLINK_PLATFORM_EXPORT
+WebRtcToMediaVideoColorSpace(const webrtc::ColorSpace& color_space);
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc
index f077ded5..fb2a8fa 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -253,7 +253,6 @@
           }
           break;
         case CSSPropertyID::kFilter:
-        case CSSPropertyID::kBackdropFilter:
           if (keyframe->GetCompositorKeyframeValue() &&
               ToCompositorKeyframeFilterOperations(
                   keyframe->GetCompositorKeyframeValue())
@@ -262,6 +261,10 @@
             reasons |= kFilterRelatedPropertyMayMovePixels;
           }
           break;
+        case CSSPropertyID::kBackdropFilter:
+          // Backdrop-filter pixel moving filters do not change the layer bounds
+          // like regular filters do, so they can still be composited.
+          break;
         case CSSPropertyID::kVariable:
           // Custom properties are supported only in the case of
           // OffMainThreadCSSPaintEnabled, and even then only for some specific
diff --git a/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css b/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css
index 2e99f77..2403a75d 100644
--- a/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css
+++ b/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css
@@ -17,6 +17,7 @@
   opacity: 0;
   position: absolute;
   will-change: opacity, transform;
+  word-break: break-word;
 }
 
 #container.shown-initially {
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_content.cc b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
index 312eca4..80016a9d 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_content.cc
+++ b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
@@ -278,6 +278,8 @@
 void LayoutEmbeddedContent::PaintReplaced(
     const PaintInfo& paint_info,
     const PhysicalOffset& paint_offset) const {
+  if (PaintBlockedByDisplayLock(DisplayLockContext::kChildren))
+    return;
   EmbeddedContentPainter(*this).PaintReplaced(paint_info, paint_offset);
 }
 
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
index 549698b..76ed37b9 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
@@ -26,8 +26,8 @@
 
   // We go backwards through the list as there is a higher probability that a
   // new area will be at the end of the list.
-  for (wtf_size_t j = areas->size() - 1; j >= 0; --j) {
-    const NGExclusionSpaceInternal::NGClosedArea& other = areas->at(j);
+  for (wtf_size_t i = areas->size(); i--;) {
+    const NGExclusionSpaceInternal::NGClosedArea& other = areas->at(i);
     if (other.opportunity.rect.BlockStartOffset() <=
         area.opportunity.rect.BlockStartOffset()) {
 #if DCHECK_IS_ON()
@@ -42,12 +42,21 @@
       }
 #endif
 
-      areas->insert(j + 1, area);
+      areas->insert(i + 1, area);
       return;
     }
   }
 
-  NOTREACHED();
+  // The first closed-off area we insert is almost always at LayoutUnit::Min().
+  //
+  // However if a float is placed at LayoutUnit::Min() it is possible to get
+  // into a state where this isn't the case (the first closed-off area might be
+  // directly below that float for example).
+  //
+  // When a subsequent float gets placed, it might create a closed-off area at
+  // LayoutUnit::Min(), and should be inserted at the front of the areas list.
+  DCHECK_EQ(area.opportunity.rect.BlockStartOffset(), LayoutUnit::Min());
+  areas->push_front(area);
 }
 
 // Returns true if there is at least one edge between block_start and block_end.
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
index 0c8bacd4..c8fc8c3d 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
@@ -13,9 +13,23 @@
 
 namespace blink {
 
+namespace {
+// This routine returns true if inline_container should replace descendant's
+// inline container.
+bool IsInlineContainerForDescendant(
+    const NGOutOfFlowPositionedDescendant& descendant,
+    const LayoutObject* inline_container) {
+  return !descendant.inline_container && inline_container &&
+         inline_container->IsLayoutInline() &&
+         inline_container->CanContainOutOfFlowPositionedElement(
+             descendant.node.Style().GetPosition());
+}
+}  // namespace
+
 NGContainerFragmentBuilder& NGContainerFragmentBuilder::AddChild(
     const NGPhysicalContainerFragment& child,
-    const LogicalOffset& child_offset) {
+    const LogicalOffset& child_offset,
+    const LayoutInline* inline_container) {
   // Collect the child's out of flow descendants.
   // child_offset is offset of inline_start/block_start vertex.
   // Candidates need offset of top/left vertex.
@@ -68,8 +82,11 @@
                                                PhysicalSize(), PhysicalSize());
     }
 
-    for (const NGOutOfFlowPositionedDescendant& descendant :
+    for (NGOutOfFlowPositionedDescendant& descendant :
          out_of_flow_descendants) {
+      if (IsInlineContainerForDescendant(descendant, inline_container)) {
+        descendant.inline_container = inline_container;
+      }
       oof_positioned_candidates_.push_back(
           NGOutOfFlowPositionedCandidate(descendant, top_left_offset));
     }
@@ -238,16 +255,14 @@
     // the given descendant.
     const LayoutInline* inline_container =
         candidate.descendant.inline_container;
-    if (!inline_container && layout_object_ &&
-        layout_object_->IsLayoutInline() &&
-        layout_object_->CanContainOutOfFlowPositionedElement(
-            candidate.descendant.node.Style().GetPosition()))
+    if (IsInlineContainerForDescendant(candidate.descendant, layout_object_)) {
       inline_container = ToLayoutInline(layout_object_);
-
+    }
     descendant_candidates->push_back(NGOutOfFlowPositionedDescendant(
         candidate.descendant.node, builder_relative_position,
         inline_container ? ToLayoutInline(inline_container->ContinuationRoot())
                          : nullptr));
+
     LogicalOffset container_offset =
         builder_relative_position.offset.ConvertToLogical(
             GetWritingMode(), Direction(), builder_physical_size,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
index e84c879..d0b428d 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
@@ -86,8 +86,10 @@
     return *this;
   }
 
-  NGContainerFragmentBuilder& AddChild(const NGPhysicalContainerFragment&,
-                                       const LogicalOffset&);
+  NGContainerFragmentBuilder& AddChild(
+      const NGPhysicalContainerFragment&,
+      const LogicalOffset&,
+      const LayoutInline* inline_container = nullptr);
 
   NGContainerFragmentBuilder& AddChild(
       scoped_refptr<const NGPhysicalTextFragment> child,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
index 8f7494a5..c20aa9c 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -399,7 +399,8 @@
         scoped_refptr<const NGLayoutResult> result =
             LayoutDescendant(candidate, only_layout);
         container_builder_->AddChild(result->PhysicalFragment(),
-                                     result->OutOfFlowPositionedOffset());
+                                     result->OutOfFlowPositionedOffset(),
+                                     candidate.inline_container);
         placed_objects->insert(candidate.node.GetLayoutBox());
         if (candidate.node.GetLayoutBox() != only_layout)
           candidate.node.UseLegacyOutOfFlowPositioning();
diff --git a/third_party/blink/renderer/core/paint/link_highlight_impl.cc b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
index ff5e365d..00c4e74c 100644
--- a/third_party/blink/renderer/core/paint/link_highlight_impl.cc
+++ b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
@@ -396,7 +396,8 @@
 void LinkHighlightImpl::UpdateGeometry() {
   DCHECK(!RuntimeEnabledFeatures::CompositeAfterPaintEnabled());
 
-  if (!node_ || !node_->GetLayoutObject()) {
+  if (!node_ || !node_->GetLayoutObject() ||
+      node_->GetLayoutObject()->GetFrameView()->ShouldThrottleRendering()) {
     ClearGraphicsLayerLinkHighlightPointer();
     ReleaseResources();
     return;
@@ -453,7 +454,8 @@
 
 void LinkHighlightImpl::Paint(GraphicsContext& context) {
   DCHECK(RuntimeEnabledFeatures::CompositeAfterPaintEnabled());
-  if (!node_ || !node_->GetLayoutObject()) {
+  if (!node_ || !node_->GetLayoutObject() ||
+      node_->GetLayoutObject()->GetFrameView()->ShouldThrottleRendering()) {
     ReleaseResources();
     return;
   }
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc
index 39dc7d1..00c9489 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc
@@ -71,7 +71,7 @@
     const String& name,
     WorkletAnimationOptions options,
     scoped_refptr<SerializedScriptValue> serialized_state,
-    const std::vector<base::Optional<TimeDelta>>& local_times,
+    const std::vector<base::Optional<base::TimeDelta>>& local_times,
     const WTF::Vector<Timing>& timings) {
   DCHECK(!animators_.at(animation_id));
   Animator* animator =
@@ -113,7 +113,7 @@
                                       ->data;
     DCHECK_GE(timings.size(), 1u);
 
-    std::vector<base::Optional<TimeDelta>> local_times(
+    std::vector<base::Optional<base::TimeDelta>> local_times(
         static_cast<int>(timings.size()), base::nullopt);
 
     CreateAnimatorFor(id, name, options, nullptr /* serialized_state */,
@@ -243,7 +243,7 @@
     const String& name,
     WorkletAnimationOptions options,
     scoped_refptr<SerializedScriptValue> serialized_state,
-    const std::vector<base::Optional<TimeDelta>>& local_times,
+    const std::vector<base::Optional<base::TimeDelta>>& local_times,
     const WTF::Vector<Timing>& timings) {
   DCHECK(IsContextThread());
   AnimatorDefinition* definition = animator_definitions_.at(name);
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h
index b50fbb6..54e98d0 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h
@@ -67,14 +67,14 @@
       const String& name,
       WorkletAnimationOptions options,
       scoped_refptr<SerializedScriptValue> serialized_state,
-      const std::vector<base::Optional<TimeDelta>>& local_times,
+      const std::vector<base::Optional<base::TimeDelta>>& local_times,
       const Vector<Timing>& timings);
   Animator* CreateAnimatorFor(
       int animation_id,
       const String& name,
       WorkletAnimationOptions options,
       scoped_refptr<SerializedScriptValue> serialized_state,
-      const std::vector<base::Optional<TimeDelta>>& local_times,
+      const std::vector<base::Optional<base::TimeDelta>>& local_times,
       const Vector<Timing>& timings);
   typedef HeapHashMap<String, Member<AnimatorDefinition>> DefinitionMap;
   DefinitionMap animator_definitions_;
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
index ab51390..7ea3054 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
@@ -320,7 +320,7 @@
 
     EXPECT_EQ(output->animations.size(), 1ul);
     EXPECT_EQ(output->animations[0].local_times[0],
-              WTF::TimeDelta::FromMillisecondsD(123));
+              base::TimeDelta::FromMillisecondsD(123));
 
     waitable_event->Signal();
   }
diff --git a/third_party/blink/renderer/modules/animationworklet/animator.cc b/third_party/blink/renderer/modules/animationworklet/animator.cc
index ec5a849f..f43a7c7 100644
--- a/third_party/blink/renderer/modules/animationworklet/animator.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animator.cc
@@ -14,13 +14,14 @@
 
 namespace blink {
 
-Animator::Animator(v8::Isolate* isolate,
-                   AnimatorDefinition* definition,
-                   v8::Local<v8::Value> instance,
-                   const String& name,
-                   WorkletAnimationOptions options,
-                   const std::vector<base::Optional<TimeDelta>>& local_times,
-                   const Vector<Timing>& timings)
+Animator::Animator(
+    v8::Isolate* isolate,
+    AnimatorDefinition* definition,
+    v8::Local<v8::Value> instance,
+    const String& name,
+    WorkletAnimationOptions options,
+    const std::vector<base::Optional<base::TimeDelta>>& local_times,
+    const Vector<Timing>& timings)
     : definition_(definition),
       instance_(isolate, instance),
       name_(name),
@@ -67,8 +68,8 @@
   return true;
 }
 
-std::vector<base::Optional<TimeDelta>> Animator::GetLocalTimes() const {
-  std::vector<base::Optional<TimeDelta>> local_times;
+std::vector<base::Optional<base::TimeDelta>> Animator::GetLocalTimes() const {
+  std::vector<base::Optional<base::TimeDelta>> local_times;
   local_times.reserve(group_effect_->getChildren().size());
   for (const auto& effect : group_effect_->getChildren()) {
     local_times.push_back(effect->local_time());
diff --git a/third_party/blink/renderer/modules/animationworklet/animator.h b/third_party/blink/renderer/modules/animationworklet/animator.h
index c006031..f41fb97 100644
--- a/third_party/blink/renderer/modules/animationworklet/animator.h
+++ b/third_party/blink/renderer/modules/animationworklet/animator.h
@@ -31,7 +31,7 @@
            v8::Local<v8::Value> instance,
            const String& name,
            WorkletAnimationOptions options,
-           const std::vector<base::Optional<TimeDelta>>& local_times,
+           const std::vector<base::Optional<base::TimeDelta>>& local_times,
            const Vector<Timing>& timings);
   ~Animator();
   void Trace(blink::Visitor*);
@@ -44,7 +44,7 @@
                double current_time,
                AnimationWorkletDispatcherOutput::AnimationState* output);
   v8::Local<v8::Value> State(v8::Isolate*, ExceptionState&);
-  std::vector<base::Optional<TimeDelta>> GetLocalTimes() const;
+  std::vector<base::Optional<base::TimeDelta>> GetLocalTimes() const;
   Vector<Timing> GetTimings() const;
   bool IsStateful() const;
 
diff --git a/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc b/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc
index fb3c4db..2ad7dd2a 100644
--- a/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc
+++ b/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc
@@ -6,7 +6,7 @@
 
 namespace blink {
 
-EffectProxy::EffectProxy(base::Optional<TimeDelta> local_time)
+EffectProxy::EffectProxy(base::Optional<base::TimeDelta> local_time)
     : local_time_(local_time) {}
 
 void EffectProxy::setLocalTime(double time_ms, bool is_null) {
@@ -15,16 +15,17 @@
     return;
   }
   DCHECK(!std::isnan(time_ms));
-  // Convert double to TimeDelta because cc/animation expects TimeDelta.
+  // Convert double to base::TimeDelta because cc/animation expects
+  // base::TimeDelta.
   //
-  // Note on precision loss: TimeDelta has microseconds precision which is
+  // Note on precision loss: base::TimeDelta has microseconds precision which is
   // also the precision recommended by the web animation specification as well
   // [1]. If the input time value has a bigger precision then the conversion
   // causes precision loss. Doing the conversion here ensures that reading the
   // value back provides the actual value we use in further computation which
   // is the least surprising path.
   // [1] https://drafts.csswg.org/web-animations/#precision-of-time-values
-  local_time_ = WTF::TimeDelta::FromMillisecondsD(time_ms);
+  local_time_ = base::TimeDelta::FromMillisecondsD(time_ms);
 }
 
 double EffectProxy::localTime(bool& is_null) const {
@@ -32,7 +33,7 @@
   return local_time_.value_or(base::TimeDelta()).InMillisecondsF();
 }
 
-base::Optional<WTF::TimeDelta> EffectProxy::local_time() const {
+base::Optional<base::TimeDelta> EffectProxy::local_time() const {
   return local_time_;
 }
 
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
index 8a618f5..feeb08c 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
@@ -7,7 +7,7 @@
 namespace blink {
 
 WorkletAnimationEffect::WorkletAnimationEffect(
-    base::Optional<TimeDelta> local_time,
+    base::Optional<base::TimeDelta> local_time,
     const Timing& specified_timing)
     : local_time_(local_time), specified_timing_(specified_timing) {
   specified_timing_.AssertValid();
@@ -23,16 +23,17 @@
     return;
   }
   DCHECK(!std::isnan(time_ms));
-  // Convert double to TimeDelta because cc/animation expects TimeDelta.
+  // Convert double to base::TimeDelta because cc/animation expects
+  // base::TimeDelta.
   //
-  // Note on precision loss: TimeDelta has microseconds precision which is
+  // Note on precision loss: base::TimeDelta has microseconds precision which is
   // also the precision recommended by the web animation specification as well
   // [1]. If the input time value has a bigger precision then the conversion
   // causes precision loss. Doing the conversion here ensures that reading the
   // value back provides the actual value we use in further computation which
   // is the least surprising path.
   // [1] https://drafts.csswg.org/web-animations/#precision-of-time-values
-  local_time_ = WTF::TimeDelta::FromMillisecondsD(time_ms);
+  local_time_ = base::TimeDelta::FromMillisecondsD(time_ms);
 }
 
 double WorkletAnimationEffect::localTime(bool& is_null) const {
@@ -40,7 +41,7 @@
   return local_time_.value_or(base::TimeDelta()).InMillisecondsF();
 }
 
-base::Optional<WTF::TimeDelta> WorkletAnimationEffect::local_time() const {
+base::Optional<base::TimeDelta> WorkletAnimationEffect::local_time() const {
   return local_time_;
 }
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h
index 2582c71..d935ffa 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h
@@ -17,7 +17,7 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
-  WorkletAnimationEffect(base::Optional<TimeDelta> local_time,
+  WorkletAnimationEffect(base::Optional<base::TimeDelta> local_time,
                          const Timing& timing);
 
   // This function is named getTiming() as opposed to getEffectTiming() because
@@ -29,10 +29,10 @@
 
   void setLocalTime(double time_ms, bool is_null);
   double localTime(bool& is_null) const;
-  base::Optional<WTF::TimeDelta> local_time() const;
+  base::Optional<base::TimeDelta> local_time() const;
 
  private:
-  base::Optional<WTF::TimeDelta> local_time_;
+  base::Optional<base::TimeDelta> local_time_;
   // We chose to not call this variable "timing_" to avoid confusion with the
   // above function call getTiming() which returns a pointer to an EffectTiming
   // object, as is defined in worklet_animation_effect.idl.
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
index ee33416..91a5066 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
@@ -27,7 +27,7 @@
 
 // Only expect precision up to 1 microsecond with an additional epsilon to
 // account for float conversion error (mainly due to timeline time getting
-// converted between float and TimeDelta).
+// converted between float and base::TimeDelta).
 static constexpr double time_error_ms = 0.001 + 1e-13;
 
 #define EXPECT_TIME_NEAR(expected, value) \
@@ -233,8 +233,8 @@
   state.reset(new AnimationWorkletDispatcherInput);
 
   // Last peek request fulfilled. No need to peek.
-  std::vector<base::Optional<TimeDelta>> local_times;
-  local_times.push_back(TimeDelta());
+  std::vector<base::Optional<base::TimeDelta>> local_times;
+  local_times.push_back(base::TimeDelta());
   AnimationWorkletOutput::AnimationState output_with_value(id);
   output_with_value.local_times = local_times;
   worklet_animation_->SetOutputState(output_with_value);
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc
index e350d55..680d19e 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc
@@ -7,7 +7,7 @@
 namespace blink {
 
 WorkletGroupEffect::WorkletGroupEffect(
-    const std::vector<base::Optional<TimeDelta>>& local_times,
+    const std::vector<base::Optional<base::TimeDelta>>& local_times,
     const Vector<Timing>& timings) {
   DCHECK_GE(local_times.size(), 1u);
   DCHECK_EQ(local_times.size(), timings.size());
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h
index 07650af..c42b0d7b 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h
@@ -18,7 +18,7 @@
 
  public:
   explicit WorkletGroupEffect(
-      const std::vector<base::Optional<TimeDelta>>& local_times,
+      const std::vector<base::Optional<base::TimeDelta>>& local_times,
       const Vector<Timing>& timings);
   const HeapVector<Member<WorkletAnimationEffect>>& getChildren() {
     return effects_;
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
index 3e84444..3bfc5b37 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
@@ -104,7 +104,7 @@
   threadable_loader_ = MakeGarbageCollected<ThreadableLoader>(
       *execution_context, this, resource_loader_options);
   threadable_loader_->SetTimeout(
-      TimeDelta::FromMilliseconds(kIconFetchTimeoutInMs));
+      base::TimeDelta::FromMilliseconds(kIconFetchTimeoutInMs));
   threadable_loader_->Start(resource_request);
 }
 
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc
index b716630..fd805ac 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc
+++ b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc
@@ -142,7 +142,7 @@
             }
           },
           WrapPersistent(resolver), WrapPersistent(scoped_fetcher_.Get()),
-          TimeTicks::Now(), trace_id));
+          base::TimeTicks::Now(), trace_id));
 
   return promise;
 }
@@ -194,7 +194,7 @@
                 break;
             }
           },
-          WrapPersistent(resolver), TimeTicks::Now(), trace_id));
+          WrapPersistent(resolver), base::TimeTicks::Now(), trace_id));
 
   return promise;
 }
@@ -248,7 +248,7 @@
                 break;
             }
           },
-          WrapPersistent(resolver), TimeTicks::Now(), trace_id));
+          WrapPersistent(resolver), base::TimeTicks::Now(), trace_id));
 
   return promise;
 }
@@ -288,7 +288,7 @@
               return;
             resolver->Resolve(keys);
           },
-          WrapPersistent(resolver), TimeTicks::Now(), trace_id));
+          WrapPersistent(resolver), base::TimeTicks::Now(), trace_id));
 
   return promise;
 }
@@ -385,8 +385,8 @@
                                                  *result->get_response()));
             }
           },
-          WrapPersistent(resolver), TimeTicks::Now(), WrapPersistent(options),
-          trace_id));
+          WrapPersistent(resolver), base::TimeTicks::Now(),
+          WrapPersistent(options), trace_id));
 
   return promise;
 }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index 54f052a..bd866bb 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1268,7 +1268,7 @@
       duration_histogram_name.append(".CPU");
     }
 
-    base::TimeDelta elapsed = TimeTicks::Now() - start_time;
+    base::TimeDelta elapsed = base::TimeTicks::Now() - start_time;
     base::UmaHistogramMicrosecondsTimes(duration_histogram_name, elapsed);
 
     float sqrt_pixels_float =
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
index 4b4daa8..64ae5d5 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -76,8 +76,8 @@
 
 namespace blink {
 
-static const TimeDelta kTryRestoreContextInterval =
-    TimeDelta::FromMilliseconds(500);
+static const base::TimeDelta kTryRestoreContextInterval =
+    base::TimeDelta::FromMilliseconds(500);
 static const unsigned kMaxTryRestoreContextAttempts = 4;
 
 static bool ContextLostRestoredEventsEnabled() {
@@ -199,7 +199,7 @@
   if (context_lost_mode_ == kSyntheticLostContext && Host()) {
     Host()->DiscardResourceProvider();
   }
-  dispatch_context_lost_event_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  dispatch_context_lost_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void CanvasRenderingContext2D::DidSetSurfaceSize() {
@@ -211,7 +211,7 @@
 
   if (CanCreateCanvas2dResourceProvider()) {
     if (ContextLostRestoredEventsEnabled()) {
-      dispatch_context_restored_event_timer_.StartOneShot(TimeDelta(),
+      dispatch_context_restored_event_timer_.StartOneShot(base::TimeDelta(),
                                                           FROM_HERE);
     } else {
       // legacy synchronous context restoration.
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
index 42043d5..7a7e7bb 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
@@ -78,9 +78,9 @@
     return base::nullopt;
   }
 
-  WTF::Time expires = options->hasExpires()
-                          ? WTF::Time::FromJavaTime(options->expires())
-                          : WTF::Time();
+  base::Time expires = options->hasExpires()
+                           ? base::Time::FromJavaTime(options->expires())
+                           : base::Time();
 
   String cookie_url_host = cookie_url.Host();
   String domain;
@@ -127,8 +127,8 @@
   }
 
   return WebCanonicalCookie::Create(
-      name, value, domain, options->path(), WTF::Time() /*creation*/, expires,
-      WTF::Time() /*last_access*/, secure, false /*http_only*/, same_site,
+      name, value, domain, options->path(), base::Time() /*creation*/, expires,
+      base::Time() /*last_access*/, secure, false /*http_only*/, same_site,
       WebCanonicalCookie::kDefaultPriority);
 }
 
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
index 7195e8a..abc21d6 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
+++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
@@ -26,12 +26,14 @@
 
 namespace {
 // Time to wait for an authenticator to successfully complete an operation.
-constexpr TimeDelta kAdjustedTimeoutLower = TimeDelta::FromSeconds(10);
-constexpr TimeDelta kAdjustedTimeoutUpper = TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kAdjustedTimeoutLower =
+    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kAdjustedTimeoutUpper =
+    base::TimeDelta::FromMinutes(10);
 
-WTF::TimeDelta AdjustTimeout(uint32_t timeout) {
-  WTF::TimeDelta adjusted_timeout;
-  adjusted_timeout = WTF::TimeDelta::FromMilliseconds(timeout);
+base::TimeDelta AdjustTimeout(uint32_t timeout) {
+  base::TimeDelta adjusted_timeout;
+  adjusted_timeout = base::TimeDelta::FromMilliseconds(timeout);
   return std::max(kAdjustedTimeoutLower,
                   std::min(kAdjustedTimeoutUpper, adjusted_timeout));
 }
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
index 00ea877..bf1c8a75 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
@@ -423,7 +423,7 @@
 // (crbug.com/421691)
 TEST_F(DeviceMotionEventPumpTest, PumpThrottlesEventRate) {
   // Confirm that the delay for pumping events is 60 Hz.
-  EXPECT_GE(60, WTF::Time::kMicrosecondsPerSecond /
+  EXPECT_GE(60, base::Time::kMicrosecondsPerSecond /
                     DeviceMotionEventPump::kDefaultPumpDelayMicroseconds);
 
   controller()->RegisterWithDispatcher();
@@ -439,7 +439,7 @@
   base::RunLoop loop;
   blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostDelayedTask(
       FROM_HERE, loop.QuitWhenIdleClosure(),
-      WTF::TimeDelta::FromMilliseconds(100));
+      base::TimeDelta::FromMilliseconds(100));
   loop.Run();
   controller()->motion_pump()->Stop();
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
index bfbd67e..1bca4b2 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
+++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
@@ -69,7 +69,7 @@
   DCHECK(!timer_.IsActive());
 
   timer_.StartRepeating(
-      WTF::TimeDelta::FromMicroseconds(kDefaultPumpDelayMicroseconds),
+      base::TimeDelta::FromMicroseconds(kDefaultPumpDelayMicroseconds),
       FROM_HERE);
   state_ = PumpState::RUNNING;
 }
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
index f84d7ec..c5019d5 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
@@ -19,7 +19,7 @@
   // Default rate for firing events.
   static constexpr int kDefaultPumpFrequencyHz = 60;
   static constexpr int kDefaultPumpDelayMicroseconds =
-      WTF::Time::kMicrosecondsPerSecond / kDefaultPumpFrequencyHz;
+      base::Time::kMicrosecondsPerSecond / kDefaultPumpFrequencyHz;
 
   // The pump is a tri-state automaton with allowed transitions as follows:
   // STOPPED -> PENDING_START
diff --git a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc
index b8483db..e809a9f 100644
--- a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc
+++ b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc
@@ -296,9 +296,9 @@
   WebPagePtr page = WebPage::New();
 
   // Traverse the DOM tree and extract the metadata.
-  TimeTicks start_time = CurrentTimeTicks();
+  base::TimeTicks start_time = CurrentTimeTicks();
   ExtractionStatus status = ExtractMetadata(*html, page->entities);
-  TimeDelta elapsed_time = CurrentTimeTicks() - start_time;
+  base::TimeDelta elapsed_time = CurrentTimeTicks() - start_time;
 
   DEFINE_STATIC_LOCAL(EnumerationHistogram, status_histogram,
                       ("CopylessPaste.ExtractionStatus", kCount));
diff --git a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc
index 8914f53..807993e 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc
+++ b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc
@@ -152,7 +152,7 @@
   DVLOG(EME_LOG_LEVEL) << __func__;
 
   // 5. Run the following steps in parallel.
-  timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 SetMediaKeysHandler::~SetMediaKeysHandler() = default;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
index 7239a365..0a33ee8 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
@@ -26,6 +26,7 @@
 // https://w3c.github.io/encrypted-media/#mediaencryptedevent
 
 [
+    Exposed=Window,
     Constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict)
 ] interface MediaEncryptedEvent : Event {
     readonly attribute DOMString initDataType;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl
index 91bb823..d80b520 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl
@@ -33,6 +33,7 @@
 };
 
 [
+    Exposed=Window,
     Constructor(DOMString type, MediaKeyMessageEventInit eventInitDict),
     SecureContext
 ] interface MediaKeyMessageEvent : Event {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc
index 3edc0dc..01d27a06 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc
@@ -505,7 +505,7 @@
   pending_actions_.push_back(PendingAction::CreatePendingGenerateRequest(
       result, init_data_type, init_data_buffer));
   DCHECK(!action_timer_.IsActive());
-  action_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 11. Return promise.
   return promise;
@@ -602,7 +602,7 @@
   pending_actions_.push_back(
       PendingAction::CreatePendingLoadRequest(result, session_id));
   DCHECK(!action_timer_.IsActive());
-  action_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 9. Return promise.
   return promise;
@@ -723,7 +723,7 @@
   pending_actions_.push_back(
       PendingAction::CreatePendingUpdate(result, response_copy));
   if (!action_timer_.IsActive())
-    action_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 7. Return promise.
   return promise;
@@ -771,7 +771,7 @@
   // 5. Run the following steps in parallel (done in closeTask()).
   pending_actions_.push_back(PendingAction::CreatePendingClose(result));
   if (!action_timer_.IsActive())
-    action_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 6. Return promise.
   return promise;
@@ -812,7 +812,7 @@
   // 4. Run the following steps asynchronously (done in removeTask()).
   pending_actions_.push_back(PendingAction::CreatePendingRemove(result));
   if (!action_timer_.IsActive())
-    action_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 5. Return promise.
   return promise;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl
index b9a672b..df6764a 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl
@@ -23,7 +23,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// https://w3c.github.io/encrypted-media/#mediakeysession-interface
+
 [
+    Exposed=Window,
     ActiveScriptWrappable,
     SecureContext
 ] interface MediaKeySession : EventTarget {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
index a62d37a..53dfdb5 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://w3c.github.io/encrypted-media/#idl-def-MediaKeyStatusMap
+// https://w3c.github.io/encrypted-media/#mediakeystatusmap-interface
 
 enum MediaKeyStatus {
     "usable",
@@ -15,6 +15,7 @@
 };
 
 [
+    Exposed=Window,
     SecureContext
 ] interface MediaKeyStatusMap {
     iterable <BufferSource, MediaKeyStatus>;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl
index cf65a08d..00c7b23 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl
@@ -5,6 +5,7 @@
 // https://w3c.github.io/encrypted-media/#mediakeysystemaccess-interface
 
 [
+    Exposed=Window,
     SecureContext
 ] interface MediaKeySystemAccess {
     readonly attribute DOMString keySystem;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc b/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc
index 3c7b9af..9b64c93 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc
@@ -306,7 +306,7 @@
   pending_actions_.push_back(PendingAction::CreatePendingSetServerCertificate(
       result, server_certificate_buffer));
   if (!timer_.IsActive())
-    timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // 6. Return promise.
   return promise;
@@ -348,7 +348,7 @@
   pending_actions_.push_back(
       PendingAction::CreatePendingGetStatusForPolicy(result, min_hdcp_version));
   if (!timer_.IsActive())
-    timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   // Return promise.
   return promise;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl b/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl
index 8fd2d114..eb0c8fd 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl
@@ -23,6 +23,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// https://w3c.github.io/encrypted-media/#mediakeys-interface
+
 enum MediaKeySessionType {
     "temporary",
     "persistent-license",
@@ -30,6 +32,7 @@
 };
 
 [
+    Exposed=Window,
     ActiveScriptWrappable,
     SecureContext
 ] interface MediaKeys {
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.cc b/third_party/blink/renderer/modules/eventsource/event_source.cc
index a7fe56a..631acfc 100644
--- a/third_party/blink/renderer/modules/eventsource/event_source.cc
+++ b/third_party/blink/renderer/modules/eventsource/event_source.cc
@@ -114,7 +114,7 @@
   DCHECK_EQ(kConnecting, state_);
   DCHECK(!loader_);
 
-  connect_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  connect_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void EventSource::Connect() {
@@ -167,8 +167,8 @@
 
 void EventSource::ScheduleReconnect() {
   state_ = kConnecting;
-  connect_timer_.StartOneShot(TimeDelta::FromMilliseconds(reconnect_delay_),
-                              FROM_HERE);
+  connect_timer_.StartOneShot(
+      base::TimeDelta::FromMilliseconds(reconnect_delay_), FROM_HERE);
   DispatchEvent(*Event::Create(event_type_names::kError));
 }
 
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.cc b/third_party/blink/renderer/modules/gamepad/gamepad.cc
index 8ff60de0..69bd71560 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad.cc
+++ b/third_party/blink/renderer/modules/gamepad/gamepad.cc
@@ -35,8 +35,8 @@
 
 Gamepad::Gamepad(Client* client,
                  unsigned index,
-                 TimeTicks time_origin,
-                 TimeTicks time_floor)
+                 base::TimeTicks time_origin,
+                 base::TimeTicks time_floor)
     : client_(client),
       index_(index),
       timestamp_(0.0),
@@ -189,8 +189,9 @@
 // Convert the raw timestamp from the device to a relative one and apply the
 // floor.
 void Gamepad::SetTimestamp(const device::Gamepad& device_gamepad) {
-  TimeTicks last_updated =
-      TimeTicks() + TimeDelta::FromMicroseconds(device_gamepad.timestamp);
+  base::TimeTicks last_updated =
+      base::TimeTicks() +
+      base::TimeDelta::FromMicroseconds(device_gamepad.timestamp);
   if (last_updated < time_floor_)
     last_updated = time_floor_;
 
@@ -198,7 +199,7 @@
       time_origin_, last_updated, false);
 
   if (device_gamepad.is_xr) {
-    TimeTicks now = TimeTicks::Now();
+    base::TimeTicks now = base::TimeTicks::Now();
     TRACE_COUNTER1("input", "XR gamepad pose age (ms)",
                    (now - last_updated).InMilliseconds());
   }
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.h b/third_party/blink/renderer/modules/gamepad/gamepad.h
index 1a9e4c5..fa6db6f4 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad.h
+++ b/third_party/blink/renderer/modules/gamepad/gamepad.h
@@ -53,8 +53,8 @@
 
   Gamepad(Client* client,
           unsigned index,
-          TimeTicks time_origin,
-          TimeTicks time_floor);
+          base::TimeTicks time_origin,
+          base::TimeTicks time_floor);
   ~Gamepad() override;
 
   void UpdateFromDeviceState(const device::Gamepad&);
@@ -150,10 +150,10 @@
   bool is_button_data_dirty_;
 
   // Base time on which all relative timestamps are based.
-  const TimeTicks time_origin_;
+  const base::TimeTicks time_origin_;
 
   // Minimum value to use for timestamps from the device.
-  const TimeTicks time_floor_;
+  const base::TimeTicks time_floor_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
index 44363a1..0bceaae 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
@@ -45,10 +45,10 @@
   }
 
   Gamepad* CreateGamepad() {
-    TimeTicks dummy_time_origin =
-        TimeTicks() + TimeDelta::FromMicroseconds(1000);
-    TimeTicks dummy_time_floor =
-        TimeTicks() + TimeDelta::FromMicroseconds(2000);
+    base::TimeTicks dummy_time_origin =
+        base::TimeTicks() + base::TimeDelta::FromMicroseconds(1000);
+    base::TimeTicks dummy_time_floor =
+        base::TimeTicks() + base::TimeDelta::FromMicroseconds(2000);
     return MakeGarbageCollected<Gamepad>(nullptr, 0, dummy_time_origin,
                                          dummy_time_floor);
   }
diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h
index a40274f..8133c7e7 100644
--- a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h
+++ b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h
@@ -116,12 +116,12 @@
 
   // The timestamp for the navigationStart attribute. Gamepad timestamps are
   // reported relative to this value.
-  TimeTicks navigation_start_;
+  base::TimeTicks navigation_start_;
 
   // The timestamp when gamepads were made available to the page. If no data has
   // been received from the hardware, the gamepad timestamp should be equal to
   // this value.
-  TimeTicks gamepads_start_;
+  base::TimeTicks gamepads_start_;
 
   // True if there is at least one listener for gamepad connection or
   // disconnection events.
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
index a7f2f6eb..442b09d 100644
--- a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
+++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
@@ -55,12 +55,12 @@
   fatal_error_ = error;
   // An existing timer may not have a zero timeout.
   timer_->Stop();
-  timer_->StartOneShot(TimeDelta(), FROM_HERE);
+  timer_->StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void GeoNotifier::SetUseCachedPosition() {
   use_cached_position_ = true;
-  timer_->StartOneShot(TimeDelta(), FROM_HERE);
+  timer_->StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void GeoNotifier::RunSuccessCallback(Geoposition* position) {
@@ -73,7 +73,7 @@
 }
 
 void GeoNotifier::StartTimer() {
-  timer_->StartOneShot(TimeDelta::FromMilliseconds(options_->timeout()),
+  timer_->StartOneShot(base::TimeDelta::FromMilliseconds(options_->timeout()),
                        FROM_HERE);
 }
 
@@ -89,7 +89,7 @@
   visitor->Trace(notifier_);
 }
 
-void GeoNotifier::Timer::StartOneShot(TimeDelta interval,
+void GeoNotifier::Timer::StartOneShot(base::TimeDelta interval,
                                       const base::Location& caller) {
   DCHECK(notifier_->geolocation_->DoesOwnNotifier(notifier_));
   timer_.StartOneShot(interval, caller);
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.h b/third_party/blink/renderer/modules/geolocation/geo_notifier.h
index a6a24e5..2da6954 100644
--- a/third_party/blink/renderer/modules/geolocation/geo_notifier.h
+++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.h
@@ -64,7 +64,7 @@
     void Trace(blink::Visitor*);
 
     // TimerBase-compatible API
-    void StartOneShot(TimeDelta interval, const base::Location& caller);
+    void StartOneShot(base::TimeDelta interval, const base::Location& caller);
     void Stop();
     bool IsActive() const { return timer_.IsActive(); }
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
index 74e0584..8071cf1 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
@@ -46,7 +46,7 @@
 
   TaskHandle current_task_handle_;
 
-  base::Optional<WTF::TimeTicks> time_shown_;
+  base::Optional<base::TimeTicks> time_shown_;
   const base::TickClock* clock_;
 };
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc
index 9073580..495cead 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc
@@ -176,7 +176,8 @@
     }                                                                          \
   } while (false)
 
-void RecordDragGestureDurationByWidth(int timeline_width, TimeDelta duration) {
+void RecordDragGestureDurationByWidth(int timeline_width,
+                                      base::TimeDelta duration) {
   int32_t sample = base::saturated_cast<int32_t>(duration.InMilliseconds());
   RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragGestureDuration, sample,
                                CustomCountHistogram, 1 /* 1 ms */,
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
index aa405a91..1c0d4b60 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
@@ -67,7 +67,7 @@
   State state_ = State::kInactive;
 
   // The following are only valid during a pointer gesture.
-  TimeTicks drag_start_time_ticks_;
+  base::TimeTicks drag_start_time_ticks_;
   float drag_delta_media_seconds_ = 0;
   float drag_sum_abs_delta_media_seconds_ = 0;
 };
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
index d518494..c5d14af0 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -129,15 +129,16 @@
 const char kImmersiveModeCSSClass[] = "immersive-mode";
 
 // The delay between two taps to be recognized as a double tap gesture.
-constexpr WTF::TimeDelta kDoubleTapDelay = TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kDoubleTapDelay =
+    base::TimeDelta::FromMilliseconds(300);
 
 // The time user have to hover on mute button to show volume slider.
 // If this value is changed, you need to change the corresponding value in
 // media_controls_impl_test.cc
-constexpr WTF::TimeDelta kTimeToShowVolumeSlider =
-    TimeDelta::FromMilliseconds(200);
-constexpr WTF::TimeDelta kTimeToShowVolumeSliderTest =
-    TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kTimeToShowVolumeSlider =
+    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kTimeToShowVolumeSliderTest =
+    base::TimeDelta::FromMilliseconds(0);
 
 // The number of seconds to jump when double tapping.
 constexpr int kNumberOfSecondsToJump = 10;
@@ -185,10 +186,11 @@
 
 // If you change this value, then also update the corresponding value in
 // web_tests/media/media-controls.js.
-constexpr TimeDelta kModernTimeWithoutMouseMovementBeforeHidingMediaControls =
-    TimeDelta::FromSecondsD(2.5);
+constexpr base::TimeDelta
+    kModernTimeWithoutMouseMovementBeforeHidingMediaControls =
+        base::TimeDelta::FromSecondsD(2.5);
 
-TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() {
+base::TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() {
   return kModernTimeWithoutMouseMovementBeforeHidingMediaControls;
 }
 
@@ -1921,7 +1923,7 @@
     // the element sizes can update from the CSS class change before we start
     // calculating.
     UpdateSizingCSSClass();
-    element_size_changed_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    element_size_changed_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
   }
 }
 
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc
index 1136784..b9a11484 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc
@@ -92,7 +92,7 @@
 
 }  // anonymous namespace
 
-constexpr TimeDelta MediaControlsOrientationLockDelegate::kLockToAnyDelay;
+constexpr base::TimeDelta MediaControlsOrientationLockDelegate::kLockToAnyDelay;
 
 MediaControlsOrientationLockDelegate::MediaControlsOrientationLockDelegate(
     HTMLVideoElement& video)
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
index 0e934a42..8ff625c 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
@@ -121,8 +121,8 @@
   // Delay before `MaybeLockToAnyIfDeviceOrientationMatchesVideo` changes lock.
   // Emprically, 200ms is too short, but 250ms avoids glitches. 500ms gives us
   // a 2x margin in case the device is running slow, without being noticeable.
-  MODULES_EXPORT static constexpr TimeDelta kLockToAnyDelay =
-      TimeDelta::FromMilliseconds(500);
+  MODULES_EXPORT static constexpr base::TimeDelta kLockToAnyDelay =
+      base::TimeDelta::FromMilliseconds(500);
 
   // Current state of the object. See comment at the top of the file for a
   // detailed description.
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
index bd5534ad..d54cc4c 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
@@ -168,7 +168,7 @@
   using DeviceOrientationType =
       MediaControlsOrientationLockDelegate::DeviceOrientationType;
 
-  static constexpr TimeDelta GetUnlockDelay() {
+  static constexpr base::TimeDelta GetUnlockDelay() {
     return MediaControlsOrientationLockDelegate::kLockToAnyDelay;
   }
 
@@ -1418,7 +1418,8 @@
   // delegate unlocks the screen orientation, so Android changes the screen
   // orientation back to portrait because it hasn't yet processed the device
   // orientation change to landscape.
-  constexpr TimeDelta kMinUnlockDelay = TimeDelta::FromMilliseconds(249);
+  constexpr base::TimeDelta kMinUnlockDelay =
+      base::TimeDelta::FromMilliseconds(249);
   static_assert(GetUnlockDelay() > kMinUnlockDelay,
                 "GetUnlockDelay() should significantly exceed kMinUnlockDelay");
   test::RunDelayedTasks(kMinUnlockDelay);
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
index 4c2c213..335a60d 100644
--- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
@@ -14,7 +14,8 @@
 namespace {
 
 // Amount of time that media controls are visible.
-constexpr WTF::TimeDelta kTimeToHideControl = TimeDelta::FromMilliseconds(3000);
+constexpr base::TimeDelta kTimeToHideControl =
+    base::TimeDelta::FromMilliseconds(3000);
 
 const char kTransparentCSSClass[] = "transparent";
 const char kTransparentImmediateCSSClass[] = "transparent-immediate";
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
index 2f7395406..a9ead5d 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
@@ -76,7 +76,7 @@
   VideoCaptureDeliverFrameCB new_frame_callback_;
   double capture_frame_rate_;
 
-  // TimeTicks on which the first captured VideoFrame is produced.
+  // base::TimeTicks on which the first captured VideoFrame is produced.
   base::TimeTicks start_capture_time_;
 
   // Target time for the next frame.
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
index eb1926b4..9db62d8 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
@@ -17,7 +17,7 @@
     double frame_rate,
     ExecutionContext* context)
     : OnRequestCanvasDrawListener(std::move(handler)),
-      frame_interval_(TimeDelta::FromSecondsD(1 / frame_rate)),
+      frame_interval_(base::TimeDelta::FromSecondsD(1 / frame_rate)),
       request_frame_timer_(context->GetTaskRunner(TaskType::kInternalMedia),
                            this,
                            &TimedCanvasDrawListener::RequestFrameTimerFired) {}
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
index bf10de4..58d2d6fa 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
@@ -32,7 +32,7 @@
   // Implementation of TimerFiredFunction.
   void RequestFrameTimerFired(TimerBase*);
 
-  TimeDelta frame_interval_;
+  base::TimeDelta frame_interval_;
   TaskRunnerTimer<TimedCanvasDrawListener> request_frame_timer_;
 };
 
diff --git a/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc b/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc
index c1dc7ef..8ff2836 100644
--- a/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc
@@ -145,7 +145,8 @@
         first_params_.channels(), first_params_.sample_rate() *
                                       kMediaStreamAudioTrackBufferDurationMs /
                                       base::Time::kMillisecondsPerSecond));
-    first_source_.OnMoreData(base::TimeDelta(), TimeTicks::Now(), 0, bus.get());
+    first_source_.OnMoreData(base::TimeDelta(), base::TimeTicks::Now(), 0,
+                             bus.get());
 
     // Save the samples that we read into the first_source_cache_.
     std::unique_ptr<media::AudioBus> cache_bus(
@@ -165,7 +166,7 @@
         second_params_.channels(), second_params_.sample_rate() *
                                        kMediaStreamAudioTrackBufferDurationMs /
                                        base::Time::kMillisecondsPerSecond));
-    second_source_.OnMoreData(base::TimeDelta(), TimeTicks::Now(), 0,
+    second_source_.OnMoreData(base::TimeDelta(), base::TimeTicks::Now(), 0,
                               bus.get());
     return bus;
   }
@@ -173,11 +174,11 @@
   MOCK_METHOD3(DoOnEncodedAudio,
                void(const media::AudioParameters& params,
                     std::string encoded_data,
-                    TimeTicks timestamp));
+                    base::TimeTicks timestamp));
 
   void OnEncodedAudio(const media::AudioParameters& params,
                       std::unique_ptr<std::string> encoded_data,
-                      TimeTicks timestamp) {
+                      base::TimeTicks timestamp) {
     EXPECT_TRUE(!encoded_data->empty());
 
     if (codec_ == AudioTrackRecorder::CodecId::OPUS) {
@@ -263,9 +264,12 @@
   // TODO(ajose): consider adding WillOnce(SaveArg...) and inspecting, as done
   // in VTR unittests. http://crbug.com/548856
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)).Times(1);
-  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _))
       .Times(1)
@@ -273,14 +277,19 @@
       .WillOnce(RunClosure3(
           WTF::BindRepeating(&AudioTrackRecorderTest::ResetDecoder,
                              WTF::Unretained(this), second_params_)));
-  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   // If the amount of samples/10ms buffer is not an integer (e.g. 22050Hz) we
   // need an extra OnData() to account for the round-off error.
-  if (GetParam().sample_rate % 100)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  if (GetParam().sample_rate % 100) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   // Give ATR new audio parameters.
   audio_track_recorder_->OnSetFormat(second_params_);
@@ -289,9 +298,12 @@
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _))
       .Times(1)
       .WillOnce(RunClosure3(std::move(quit_closure)));
-  audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetSecondSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetSecondSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   run_loop.Run();
   testing::Mock::VerifyAndClearExpectations(this);
@@ -311,9 +323,12 @@
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _))
       .WillOnce(RunClosure3(std::move(quit_closure)));
 
-  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   run_loop.Run();
   testing::Mock::VerifyAndClearExpectations(this);
@@ -332,20 +347,28 @@
 
   audio_track_recorder_->Pause();
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)).Times(0);
-  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   audio_track_recorder_->Resume();
   EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _))
       .Times(1)
       .WillOnce(RunClosure3(std::move(quit_closure)));
-  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
-  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                base::TimeTicks::Now());
+  for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
-  if (GetParam().sample_rate % 100)
-    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now());
+  if (GetParam().sample_rate % 100) {
+    audio_track_recorder_->OnData(*GetFirstSourceAudioBus(),
+                                  base::TimeTicks::Now());
+  }
 
   run_loop.Run();
   testing::Mock::VerifyAndClearExpectations(this);
diff --git a/third_party/blink/renderer/modules/mediasession/media_metadata.cc b/third_party/blink/renderer/modules/mediasession/media_metadata.cc
index fee4f43..2b99171 100644
--- a/third_party/blink/renderer/modules/mediasession/media_metadata.cc
+++ b/third_party/blink/renderer/modules/mediasession/media_metadata.cc
@@ -93,7 +93,7 @@
 void MediaMetadata::NotifySessionAsync() {
   if (!session_ || notify_session_timer_.IsActive())
     return;
-  notify_session_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  notify_session_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void MediaMetadata::NotifySessionTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_device_info.idl b/third_party/blink/renderer/modules/mediastream/media_device_info.idl
index a567ecb..a67cde9 100644
--- a/third_party/blink/renderer/modules/mediastream/media_device_info.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_device_info.idl
@@ -31,8 +31,10 @@
     "videoinput"
 };
 
-[SecureContext]
-interface MediaDeviceInfo {
+[
+    Exposed=Window,
+    SecureContext
+] interface MediaDeviceInfo {
     readonly attribute DOMString deviceId;
     readonly attribute MediaDeviceKind kind;
     readonly attribute DOMString label;
diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.idl b/third_party/blink/renderer/modules/mediastream/media_devices.idl
index dee08d9..51d7f54 100644
--- a/third_party/blink/renderer/modules/mediastream/media_devices.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_devices.idl
@@ -7,6 +7,7 @@
 // https://w3c.github.io/mediacapture-main/#mediadevices-interface-extensions
 
 [
+    Exposed=Window,
     ActiveScriptWrappable,
     SecureContext
 ] interface MediaDevices : EventTarget {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream.cc b/third_party/blink/renderer/modules/mediastream/media_stream.cc
index 7b8d778..375550e 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream.cc
@@ -479,7 +479,7 @@
   scheduled_events_.push_back(event);
 
   if (!scheduled_event_timer_.IsActive())
-    scheduled_event_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    scheduled_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void MediaStream::ScheduledEventTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream.idl b/third_party/blink/renderer/modules/mediastream/media_stream.idl
index 03a3aaef..2650f43 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_stream.idl
@@ -26,6 +26,7 @@
 // https://w3c.github.io/mediacapture-main/#idl-def-mediastream
 
 [
+    Exposed=Window,
     ActiveScriptWrappable,
     Constructor,
     Constructor(MediaStream stream),
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
index 80a1082..9f63d4f 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
@@ -27,6 +27,7 @@
 // https://www.w3.org/TR/2015/WD-webrtc-20150210/#mediastreamevent
 
 [
+    Exposed=Window,
     Constructor(DOMString type, optional MediaStreamEventInit eventInitDict)
 ] interface MediaStreamEvent : Event {
     readonly attribute MediaStream? stream;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
index 01bf192..8a1e2a4 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
@@ -31,6 +31,7 @@
 };
 
 [
+    Exposed=Window,
     ActiveScriptWrappable
 ] interface MediaStreamTrack : EventTarget {
     readonly attribute DOMString kind;
diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b/third_party/blink/renderer/modules/netinfo/network_information.cc
index f2b9ffc..fe023d9 100644
--- a/third_party/blink/renderer/modules/netinfo/network_information.cc
+++ b/third_party/blink/renderer/modules/netinfo/network_information.cc
@@ -120,7 +120,7 @@
 
 uint32_t NetworkInformation::rtt() {
   MaybeShowWebHoldbackConsoleMsg();
-  base::Optional<TimeDelta> override_rtt =
+  base::Optional<base::TimeDelta> override_rtt =
       GetNetworkStateNotifier().GetWebHoldbackHttpRtt();
   if (override_rtt) {
     return GetNetworkStateNotifier().RoundRtt(Host(), override_rtt.value());
@@ -162,8 +162,8 @@
     WebConnectionType type,
     double downlink_max_mbps,
     WebEffectiveConnectionType effective_type,
-    const base::Optional<TimeDelta>& http_rtt,
-    const base::Optional<TimeDelta>& transport_rtt,
+    const base::Optional<base::TimeDelta>& http_rtt,
+    const base::Optional<base::TimeDelta>& transport_rtt,
     const base::Optional<double>& downlink_mbps,
     bool save_data) {
   DCHECK(GetExecutionContext()->IsContextThread());
@@ -281,7 +281,7 @@
     : ContextLifecycleObserver(context),
       web_holdback_console_message_shown_(false),
       context_stopped_(false) {
-  base::Optional<TimeDelta> http_rtt;
+  base::Optional<base::TimeDelta> http_rtt;
   base::Optional<double> downlink_mbps;
 
   GetNetworkStateNotifier().GetMetricsWithWebHoldback(
diff --git a/third_party/blink/renderer/modules/netinfo/network_information.h b/third_party/blink/renderer/modules/netinfo/network_information.h
index 22fe139..7fe15e5 100644
--- a/third_party/blink/renderer/modules/netinfo/network_information.h
+++ b/third_party/blink/renderer/modules/netinfo/network_information.h
@@ -41,8 +41,8 @@
   void ConnectionChange(WebConnectionType,
                         double downlink_max_mbps,
                         WebEffectiveConnectionType effective_type,
-                        const base::Optional<TimeDelta>& http_rtt,
-                        const base::Optional<TimeDelta>& transport_rtt,
+                        const base::Optional<base::TimeDelta>& http_rtt,
+                        const base::Optional<base::TimeDelta>& transport_rtt,
                         const base::Optional<double>& downlink_mbps,
                         bool save_data) override;
 
diff --git a/third_party/blink/renderer/modules/notifications/notification.cc b/third_party/blink/renderer/modules/notifications/notification.cc
index 4467263..1806be1 100644
--- a/third_party/blink/renderer/modules/notifications/notification.cc
+++ b/third_party/blink/renderer/modules/notifications/notification.cc
@@ -178,7 +178,7 @@
 void Notification::SchedulePrepareShow() {
   DCHECK_EQ(state_, State::kLoading);
 
-  prepare_show_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  prepare_show_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void Notification::PrepareShow(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/notifications/notification_image_loader.cc b/third_party/blink/renderer/modules/notifications/notification_image_loader.cc
index 6ef821ec..51be9df 100644
--- a/third_party/blink/renderer/modules/notifications/notification_image_loader.cc
+++ b/third_party/blink/renderer/modules/notifications/notification_image_loader.cc
@@ -76,7 +76,7 @@
   threadable_loader_ = MakeGarbageCollected<ThreadableLoader>(
       *context, this, resource_loader_options);
   threadable_loader_->SetTimeout(
-      TimeDelta::FromMilliseconds(kImageFetchTimeoutInMs));
+      base::TimeDelta::FromMilliseconds(kImageFetchTimeoutInMs));
   threadable_loader_->Start(resource_request);
 }
 
@@ -183,7 +183,7 @@
     double scale =
         std::min(static_cast<double>(max_width_px) / image.width(),
                  static_cast<double>(max_height_px) / image.height());
-    TimeTicks start_time = CurrentTimeTicks();
+    base::TimeTicks start_time = CurrentTimeTicks();
     // TODO(peter): Try using RESIZE_BETTER for large images.
     SkBitmap scaled_image = skia::ImageOperations::Resize(
         image, skia::ImageOperations::RESIZE_BEST,
diff --git a/third_party/blink/renderer/modules/notifications/notification_image_loader.h b/third_party/blink/renderer/modules/notifications/notification_image_loader.h
index c975f2b..4d2117a 100644
--- a/third_party/blink/renderer/modules/notifications/notification_image_loader.h
+++ b/third_party/blink/renderer/modules/notifications/notification_image_loader.h
@@ -74,7 +74,7 @@
 
   Type type_;
   bool stopped_;
-  TimeTicks start_time_;
+  base::TimeTicks start_time_;
   scoped_refptr<SharedBuffer> data_;
   ImageCallback image_callback_;
   Member<ThreadableLoader> threadable_loader_;
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc
index 639261c..8bb462e 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -708,7 +708,7 @@
   if (is_waiting_for_show_promise_to_resolve_) {
     // If the website does not calculate the final shopping cart contents within
     // 10 seconds, abort payment.
-    update_payment_details_timer_.StartOneShot(TimeDelta::FromSeconds(10),
+    update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(10),
                                                FROM_HERE);
     details_promise.Then(
         UpdatePaymentDetailsFunction::CreateFunction(
@@ -1261,7 +1261,7 @@
 
   // If the website does not call complete() 60 seconds after show() has been
   // resolved, then behave as if the website called complete("fail").
-  complete_timer_.StartOneShot(TimeDelta::FromSeconds(60), FROM_HERE);
+  complete_timer_.StartOneShot(base::TimeDelta::FromSeconds(60), FROM_HERE);
 
   if (retry_resolver_) {
     DCHECK(payment_response_);
@@ -1507,7 +1507,7 @@
 
   // If the website does not calculate the updated shopping cart contents
   // within 60 seconds, abort payment.
-  update_payment_details_timer_.StartOneShot(TimeDelta::FromSeconds(60),
+  update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(60),
                                              FROM_HERE);
 
   event_target->DispatchEvent(*event);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc
index 0744e26..c6c98b20 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc
@@ -534,7 +534,7 @@
   scheduled_events_.push_back(event);
 
   if (!scheduled_event_timer_.IsActive())
-    scheduled_event_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    scheduled_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void RTCDataChannel::ScheduledEventTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/sensor/sensor.cc b/third_party/blink/renderer/modules/sensor/sensor.cc
index 490a8763..57e0e57 100644
--- a/third_party/blink/renderer/modules/sensor/sensor.cc
+++ b/third_party/blink/renderer/modules/sensor/sensor.cc
@@ -236,7 +236,7 @@
     pending_reading_notification_ = PostDelayedCancellableTask(
         *GetExecutionContext()->GetTaskRunner(TaskType::kSensor), FROM_HERE,
         std::move(sensor_reading_changed),
-        WTF::TimeDelta::FromSecondsD(waitingTime));
+        base::TimeDelta::FromSecondsD(waitingTime));
   }
 }
 
diff --git a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
index 9485289..87c87c7 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
+++ b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
@@ -223,7 +223,7 @@
     // TODO(crbug/721297) : We need to find out an algorithm for resulting
     // polling frequency.
     polling_timer_.StartRepeating(
-        WTF::TimeDelta::FromSecondsD(1 / active_frequencies_.back()),
+        base::TimeDelta::FromSecondsD(1 / active_frequencies_.back()),
         FROM_HERE);
   } else {
     polling_timer_.Stop();
diff --git a/third_party/blink/renderer/modules/service_worker/fetch_event.cc b/third_party/blink/renderer/modules/service_worker/fetch_event.cc
index 3186de4..78d1139 100644
--- a/third_party/blink/renderer/modules/service_worker/fetch_event.cc
+++ b/third_party/blink/renderer/modules/service_worker/fetch_event.cc
@@ -178,7 +178,7 @@
 
 void FetchEvent::OnNavigationPreloadComplete(
     WorkerGlobalScope* worker_global_scope,
-    TimeTicks completion_time,
+    base::TimeTicks completion_time,
     int64_t encoded_data_length,
     int64_t encoded_body_length,
     int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/fetch_event.h b/third_party/blink/renderer/modules/service_worker/fetch_event.h
index 083665e..e9b9dba 100644
--- a/third_party/blink/renderer/modules/service_worker/fetch_event.h
+++ b/third_party/blink/renderer/modules/service_worker/fetch_event.h
@@ -78,7 +78,7 @@
   void OnNavigationPreloadError(ScriptState*,
                                 std::unique_ptr<WebServiceWorkerError>);
   void OnNavigationPreloadComplete(WorkerGlobalScope*,
-                                   TimeTicks completion_time,
+                                   base::TimeTicks completion_time,
                                    int64_t encoded_data_length,
                                    int64_t encoded_body_length,
                                    int64_t decoded_body_length);
diff --git a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
index 5be64dd..4b9f8af 100644
--- a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
+++ b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
@@ -58,7 +58,7 @@
  protected:
   RespondWithObserver(ExecutionContext*, int event_id, WaitUntilObserver*);
   const int event_id_;
-  TimeTicks event_dispatch_time_;
+  base::TimeTicks event_dispatch_time_;
 
  private:
   class ThenFunction;
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
index 1e600aac..c5b90724 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -671,7 +671,7 @@
 
 void ServiceWorkerGlobalScope::OnNavigationPreloadComplete(
     int fetch_event_id,
-    TimeTicks completion_time,
+    base::TimeTicks completion_time,
     int64_t encoded_data_length,
     int64_t encoded_body_length,
     int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
index 9f92e64..4fd425c 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -156,7 +156,7 @@
   void OnNavigationPreloadError(int fetch_event_id,
                                 std::unique_ptr<WebServiceWorkerError>);
   void OnNavigationPreloadComplete(int fetch_event_id,
-                                   TimeTicks completion_time,
+                                   base::TimeTicks completion_time,
                                    int64_t encoded_data_length,
                                    int64_t encoded_body_length,
                                    int64_t decoded_body_length);
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
index 952cc8f..89f3891 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
@@ -111,7 +111,7 @@
 
 void ServiceWorkerGlobalScopeProxy::OnNavigationPreloadComplete(
     int fetch_event_id,
-    TimeTicks completion_time,
+    base::TimeTicks completion_time,
     int64_t encoded_data_length,
     int64_t encoded_body_length,
     int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
index 9d28da8..a8b2097 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
@@ -89,7 +89,7 @@
       int fetch_event_id,
       std::unique_ptr<WebServiceWorkerError>) override;
   void OnNavigationPreloadComplete(int fetch_event_id,
-                                   TimeTicks completion_time,
+                                   base::TimeTicks completion_time,
                                    int64_t encoded_data_length,
                                    int64_t encoded_body_length,
                                    int64_t decoded_body_length) override;
diff --git a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
index eb338c04..c49f421 100644
--- a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
+++ b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
@@ -29,10 +29,10 @@
 const unsigned kWindowInteractionTimeout = 10;
 const unsigned kWindowInteractionTimeoutForTest = 1;
 
-TimeDelta WindowInteractionTimeout() {
-  return TimeDelta::FromSeconds(WebTestSupport::IsRunningWebTest()
-                                    ? kWindowInteractionTimeoutForTest
-                                    : kWindowInteractionTimeout);
+base::TimeDelta WindowInteractionTimeout() {
+  return base::TimeDelta::FromSeconds(WebTestSupport::IsRunningWebTest()
+                                          ? kWindowInteractionTimeoutForTest
+                                          : kWindowInteractionTimeout);
 }
 
 }  // anonymous namespace
diff --git a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
index 8ef87ad..ae0b604dc 100644
--- a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
@@ -95,7 +95,7 @@
       response.SetMimeType("text/javascript");
       response.SetHttpStatusCode(404);
       client->DidReceiveResponse(response);
-      client->DidFinishLoading(TimeTicks(), 0, 0, 0, false, {});
+      client->DidFinishLoading(base::TimeTicks(), 0, 0, 0, false, {});
       return;
     }
     // Don't handle other requests intentionally to emulate ongoing load.
diff --git a/third_party/blink/renderer/modules/sms/sms.h b/third_party/blink/renderer/modules/sms/sms.h
index 0ae9730b..84b708f 100644
--- a/third_party/blink/renderer/modules/sms/sms.h
+++ b/third_party/blink/renderer/modules/sms/sms.h
@@ -7,7 +7,6 @@
 
 #include "base/macros.h"
 #include "mojo/public/cpp/bindings/binding.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.cc b/third_party/blink/renderer/modules/sms/sms_receiver.cc
index 62cee53..05f0015 100644
--- a/third_party/blink/renderer/modules/sms/sms_receiver.cc
+++ b/third_party/blink/renderer/modules/sms/sms_receiver.cc
@@ -7,7 +7,7 @@
 #include "third_party/blink/renderer/modules/sms/sms_receiver.h"
 
 #include "services/service_manager/public/cpp/interface_provider.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
@@ -66,26 +66,26 @@
         &SMSReceiver::OnSMSReceiverConnectionError, WrapWeakPersistent(this)));
   }
 
-  service_->GetNextMessage(
-      base::TimeDelta::FromSeconds(timeout_seconds),
-      WTF::Bind(&SMSReceiver::OnGetNextMessage, WrapPersistent(this),
-                WrapPersistent(resolver)));
+  service_->Receive(base::TimeDelta::FromSeconds(timeout_seconds),
+                    WTF::Bind(&SMSReceiver::OnReceive, WrapPersistent(this),
+                              WrapPersistent(resolver)));
 
   return resolver->Promise();
 }
 
 SMSReceiver::~SMSReceiver() = default;
 
-void SMSReceiver::OnGetNextMessage(ScriptPromiseResolver* resolver,
-                                   mojom::blink::SmsMessagePtr sms) {
+void SMSReceiver::OnReceive(ScriptPromiseResolver* resolver,
+                            mojom::blink::SmsStatus status,
+                            const WTF::String& sms) {
   requests_.erase(resolver);
 
-  if (sms->status == mojom::blink::SmsStatus::kTimeout) {
+  if (status == mojom::blink::SmsStatus::kTimeout) {
     resolver->Reject(MakeGarbageCollected<DOMException>(
         DOMExceptionCode::kTimeoutError, "SMSReceiver timed out."));
     return;
   }
-  resolver->Resolve(MakeGarbageCollected<blink::SMS>(std::move(sms->content)));
+  resolver->Resolve(MakeGarbageCollected<blink::SMS>(sms));
 }
 
 void SMSReceiver::OnSMSReceiverConnectionError() {
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.h b/third_party/blink/renderer/modules/sms/sms_receiver.h
index dc8380d0..ad9a370 100644
--- a/third_party/blink/renderer/modules/sms/sms_receiver.h
+++ b/third_party/blink/renderer/modules/sms/sms_receiver.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_RECEIVER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h"
+#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
@@ -34,12 +34,13 @@
  private:
   HeapHashSet<Member<ScriptPromiseResolver>> requests_;
 
-  void OnGetNextMessage(ScriptPromiseResolver* resolver,
-                        mojom::blink::SmsMessagePtr sms);
+  void OnReceive(ScriptPromiseResolver* resolver,
+                 mojom::blink::SmsStatus status,
+                 const WTF::String& sms);
 
   void OnSMSReceiverConnectionError();
 
-  mojom::blink::SmsManagerPtr service_;
+  mojom::blink::SmsReceiverPtr service_;
 
   DISALLOW_COPY_AND_ASSIGN(SMSReceiver);
 };
diff --git a/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc b/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc
index 15a3ff0..7b41a7f 100644
--- a/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc
+++ b/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc
@@ -120,7 +120,7 @@
 
   // Give the fake speech job some time so that pause and other functions have
   // time to be called.
-  speaking_finished_timer_.StartOneShot(TimeDelta::FromMilliseconds(100),
+  speaking_finished_timer_.StartOneShot(base::TimeDelta::FromMilliseconds(100),
                                         FROM_HERE);
 }
 
@@ -132,8 +132,8 @@
   queued_utterances_.clear();
 
   speaking_finished_timer_.Stop();
-  speaking_error_occurred_timer_.StartOneShot(TimeDelta::FromMilliseconds(100),
-                                              FROM_HERE);
+  speaking_error_occurred_timer_.StartOneShot(
+      base::TimeDelta::FromMilliseconds(100), FROM_HERE);
 }
 
 void PlatformSpeechSynthesizerMock::Pause() {
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
index 7b4448c..ca05aba 100644
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -111,7 +111,7 @@
   // it also starts the timer. This is not a problem as calling |startOneShot|
   // repeatedly will just update the time at which to run |doVibrate|, it will
   // not be called more than once.
-  timer_do_vibrate_.StartOneShot(TimeDelta(), FROM_HERE);
+  timer_do_vibrate_.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   return true;
 }
@@ -152,7 +152,7 @@
     pattern_.EraseAt(0);
   }
 
-  timer_do_vibrate_.StartOneShot(TimeDelta::FromMilliseconds(interval),
+  timer_do_vibrate_.StartOneShot(base::TimeDelta::FromMilliseconds(interval),
                                  FROM_HERE);
 }
 
@@ -175,7 +175,7 @@
   // A new vibration pattern may have been set while the mojo call for
   // |cancel| was in flight, so kick the timer to let |doVibrate| process the
   // pattern.
-  timer_do_vibrate_.StartOneShot(TimeDelta(), FROM_HERE);
+  timer_do_vibrate_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void VibrationController::ContextDestroyed(ExecutionContext*) {
diff --git a/third_party/blink/renderer/modules/vr/vr_display.cc b/third_party/blink/renderer/modules/vr/vr_display.cc
index de3c8dc2..43ecde1 100644
--- a/third_party/blink/renderer/modules/vr/vr_display.cc
+++ b/third_party/blink/renderer/modules/vr/vr_display.cc
@@ -51,8 +51,8 @@
 // Threshold for rejecting stored non-immersive poses as being too old.
 // If it's exceeded, defer non-immersive rAF callback execution until
 // a fresh pose is received.
-constexpr WTF::TimeDelta kNonImmersivePoseAgeThreshold =
-    WTF::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kNonImmersivePoseAgeThreshold =
+    base::TimeDelta::FromMilliseconds(250);
 
 device::mojom::blink::XRFrameDataPtr CreateIdentityFrameData() {
   auto data = device::mojom::blink::XRFrameData::New();
@@ -80,17 +80,17 @@
   void Invoke(double high_res_time_ms) override {
     if (Id() != vr_display_->PendingNonImmersiveVSyncId())
       return;
-    TimeTicks monotonic_time;
+    base::TimeTicks monotonic_time;
     if (!vr_display_->GetDocument() || !vr_display_->GetDocument()->Loader()) {
       monotonic_time = WTF::CurrentTimeTicks();
     } else {
       // Convert document-zero time back to monotonic time.
-      TimeTicks reference_monotonic_time = vr_display_->GetDocument()
-                                               ->Loader()
-                                               ->GetTiming()
-                                               .ReferenceMonotonicTime();
+      base::TimeTicks reference_monotonic_time = vr_display_->GetDocument()
+                                                     ->Loader()
+                                                     ->GetTiming()
+                                                     .ReferenceMonotonicTime();
       monotonic_time = reference_monotonic_time +
-                       TimeDelta::FromMillisecondsD(high_res_time_ms);
+                       base::TimeDelta::FromMillisecondsD(high_res_time_ms);
     }
     vr_display_->OnNonImmersiveVSync(monotonic_time);
   }
@@ -718,7 +718,7 @@
   // Run window.rAF once manually so that applications get a chance to
   // schedule a VRDisplay.rAF in case they do so only while presenting.
   if (doc && !pending_vrdisplay_raf_ && !capabilities_->hasExternalDisplay()) {
-    TimeTicks timestamp = WTF::CurrentTimeTicks();
+    base::TimeTicks timestamp = WTF::CurrentTimeTicks();
     doc->GetTaskRunner(blink::TaskType::kInternalMedia)
         ->PostTask(FROM_HERE,
                    WTF::Bind(&VRDisplay::ProcessScheduledWindowAnimations,
@@ -987,7 +987,7 @@
       event_type_names::kVrdisplaydeactivate, this, reason));
 }
 
-void VRDisplay::ProcessScheduledWindowAnimations(TimeTicks timestamp) {
+void VRDisplay::ProcessScheduledWindowAnimations(base::TimeTicks timestamp) {
   TRACE_EVENT1("gpu", "VRDisplay::window.rAF", "frame", vr_frame_id_);
   auto* doc = navigator_vr_->GetDocument();
   if (!doc)
@@ -1016,7 +1016,7 @@
   }
 }
 
-void VRDisplay::ProcessScheduledAnimations(TimeTicks timestamp) {
+void VRDisplay::ProcessScheduledAnimations(base::TimeTicks timestamp) {
   DVLOG(2) << __FUNCTION__;
   // Check if we still have a valid context, the animation controller
   // or document may have disappeared since we scheduled this.
@@ -1126,19 +1126,20 @@
   // Used kInternalMedia since 1) this is not spec-ed and 2) this is media
   // related then tasks should not be throttled or frozen in background tabs.
   doc->GetTaskRunner(blink::TaskType::kInternalMedia)
-      ->PostTask(FROM_HERE, WTF::Bind(&VRDisplay::ProcessScheduledAnimations,
-                                      WrapWeakPersistent(this),
-                                      TimeTicks() + frame_data->time_delta));
+      ->PostTask(FROM_HERE,
+                 WTF::Bind(&VRDisplay::ProcessScheduledAnimations,
+                           WrapWeakPersistent(this),
+                           base::TimeTicks() + frame_data->time_delta));
 }
 
-void VRDisplay::OnNonImmersiveVSync(TimeTicks timestamp) {
+void VRDisplay::OnNonImmersiveVSync(base::TimeTicks timestamp) {
   DVLOG(2) << __FUNCTION__;
   pending_non_immersive_vsync_ = false;
   pending_non_immersive_vsync_id_ = -1;
   if (is_presenting_)
     return;
   vr_frame_id_ = -1;
-  WTF::TimeDelta pose_age =
+  base::TimeDelta pose_age =
       WTF::CurrentTimeTicks() - non_immersive_pose_received_time_;
   if (pose_age >= kNonImmersivePoseAgeThreshold &&
       non_immersive_pose_request_time_ > non_immersive_pose_received_time_) {
diff --git a/third_party/blink/renderer/modules/vr/vr_display.h b/third_party/blink/renderer/modules/vr/vr_display.h
index 26e3e70..f6bceee 100644
--- a/third_party/blink/renderer/modules/vr/vr_display.h
+++ b/third_party/blink/renderer/modules/vr/vr_display.h
@@ -148,7 +148,7 @@
 
   void FocusChanged();
 
-  void OnNonImmersiveVSync(TimeTicks timestamp);
+  void OnNonImmersiveVSync(base::TimeTicks timestamp);
   int PendingNonImmersiveVSyncId() { return pending_non_immersive_vsync_id_; }
 
   void Trace(blink::Visitor*) override;
@@ -193,8 +193,8 @@
   bool FocusedOrPresenting();
 
   ScriptedAnimationController& EnsureScriptedAnimationController(Document*);
-  void ProcessScheduledAnimations(TimeTicks timestamp);
-  void ProcessScheduledWindowAnimations(TimeTicks timestamp);
+  void ProcessScheduledAnimations(base::TimeTicks timestamp);
+  void ProcessScheduledWindowAnimations(base::TimeTicks timestamp);
 
   // Request delivery of a VSync event for either magic window mode or
   // presenting mode as applicable. May be called more than once per frame, it
@@ -246,8 +246,8 @@
   bool pending_non_immersive_vsync_ = false;
   int pending_non_immersive_vsync_id_ = -1;
   base::OnceClosure non_immersive_vsync_waiting_for_pose_;
-  WTF::TimeTicks non_immersive_pose_request_time_;
-  WTF::TimeTicks non_immersive_pose_received_time_;
+  base::TimeTicks non_immersive_pose_request_time_;
+  base::TimeTicks non_immersive_pose_received_time_;
   bool in_animation_frame_ = false;
   bool did_submit_this_frame_ = false;
   bool display_blurred_ = false;
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc
index 04a20ad..cad20de 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc
@@ -125,13 +125,13 @@
 }
 
 // SQLite measures time according to the Julian calendar.
-WTF::Time SqliteEpoch() {
+base::Time SqliteEpoch() {
   constexpr const double kMicroSecondsPerDay = 24 * 60 * 60 * 1000;
   // The ".5" is intentional -- days in the Julian calendar start at noon.
   // The offset is in the SQLite source code (os_unix.c) multiplied by 10.
   constexpr const double kUnixEpochAsJulianDay = 2440587.5;
 
-  return WTF::Time::FromJsTime(-kUnixEpochAsJulianDay * kMicroSecondsPerDay);
+  return base::Time::FromJsTime(-kUnixEpochAsJulianDay * kMicroSecondsPerDay);
 }
 
 }  // namespace
@@ -290,7 +290,7 @@
 
 int SandboxedVfs::Sleep(int microseconds) {
   DCHECK_GE(microseconds, 0);
-  base::PlatformThread::Sleep(WTF::TimeDelta::FromMicroseconds(microseconds));
+  base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(microseconds));
   return SQLITE_OK;
 }
 
@@ -311,7 +311,7 @@
 int SandboxedVfs::CurrentTimeInt64(sqlite3_int64* result_ms) {
   DCHECK(result_ms);
 
-  WTF::TimeDelta delta = WTF::Time::Now() - sqlite_epoch_;
+  base::TimeDelta delta = base::Time::Now() - sqlite_epoch_;
   *result_ms = delta.InMilliseconds();
   return SQLITE_OK;
 }
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
index c30de109..a907f06 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
@@ -61,7 +61,7 @@
   void RegisterVfs();
 
   sqlite3_vfs sandboxed_vfs_;
-  const WTF::Time sqlite_epoch_;
+  const base::Time sqlite_epoch_;
   Platform* const platform_;
   base::File::Error last_error_;
 };
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
index 2bb26db..f557281 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -121,7 +121,8 @@
 
 namespace {
 
-constexpr TimeDelta kDurationBetweenRestoreAttempts = TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDurationBetweenRestoreAttempts =
+    base::TimeDelta::FromSeconds(1);
 const int kMaxGLErrorsAllowedToConsole = 256;
 
 Mutex& WebGLContextLimitMutex() {
@@ -1550,7 +1551,7 @@
   if (!hidden && isContextLost() && restore_allowed_ &&
       auto_recovery_method_ == kAuto) {
     DCHECK(!restore_timer_.IsActive());
-    restore_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
   }
 }
 
@@ -6627,7 +6628,7 @@
 
   // Always defer the dispatch of the context lost event, to implement
   // the spec behavior of queueing a task.
-  dispatch_context_lost_event_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+  dispatch_context_lost_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 void WebGLRenderingContextBase::HoldReferenceToDrawingBuffer(DrawingBuffer*) {
@@ -6649,7 +6650,7 @@
   }
 
   if (!restore_timer_.IsActive())
-    restore_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+    restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
 }
 
 uint32_t WebGLRenderingContextBase::NumberOfContextLosses() const {
@@ -7821,7 +7822,7 @@
   restore_allowed_ = event->defaultPrevented();
   if (restore_allowed_ && !is_hidden_) {
     if (auto_recovery_method_ == kAuto)
-      restore_timer_.StartOneShot(TimeDelta(), FROM_HERE);
+      restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE);
   }
 }
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access.cc b/third_party/blink/renderer/modules/webmidi/midi_access.cc
index 88c991b..3ae5764 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_access.cc
@@ -181,7 +181,7 @@
 void MIDIAccess::DidReceiveMIDIData(unsigned port_index,
                                     const unsigned char* data,
                                     wtf_size_t length,
-                                    TimeTicks time_stamp) {
+                                    base::TimeTicks time_stamp) {
   DCHECK(IsMainThread());
   if (port_index >= inputs_.size())
     return;
@@ -192,7 +192,7 @@
 void MIDIAccess::SendMIDIData(unsigned port_index,
                               const unsigned char* data,
                               wtf_size_t length,
-                              TimeTicks time_stamp) {
+                              base::TimeTicks time_stamp) {
   DCHECK(!time_stamp.is_null());
   if (!GetExecutionContext() || !data || !length ||
       port_index >= outputs_.size())
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access.h b/third_party/blink/renderer/modules/webmidi/midi_access.h
index bef84dfc..166a026 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_access.h
@@ -120,14 +120,14 @@
   void DidReceiveMIDIData(unsigned port_index,
                           const unsigned char* data,
                           wtf_size_t length,
-                          TimeTicks time_stamp) override;
+                          base::TimeTicks time_stamp) override;
 
   // |timeStampInMilliseconds| is in the same time coordinate system as
   // performance.now().
   void SendMIDIData(unsigned port_index,
                     const unsigned char* data,
                     wtf_size_t length,
-                    TimeTicks time_stamp);
+                    base::TimeTicks time_stamp);
 
   // Eager finalization needed to promptly release m_accessor. Otherwise
   // its client back reference could end up being unsafely used during
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h
index 5dfe38f..24f22af 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h
@@ -82,7 +82,7 @@
   void DidReceiveMIDIData(unsigned port_index,
                           const unsigned char* data,
                           wtf_size_t length,
-                          TimeTicks time_stamp) override {}
+                          base::TimeTicks time_stamp) override {}
 
   void Trace(Visitor*) override;
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_output.cc b/third_party/blink/renderer/modules/webmidi/midi_output.cc
index 5612350..5274fa5 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_output.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_output.cc
@@ -79,7 +79,7 @@
 
   DCHECK(performance);
   return base::TimeTicks() +
-         TimeDelta::FromSecondsD(performance->GetTimeOrigin());
+         base::TimeDelta::FromSecondsD(performance->GetTimeOrigin());
 }
 
 class MessageValidator {
diff --git a/third_party/blink/renderer/modules/xr/xr.h b/third_party/blink/renderer/modules/xr/xr.h
index 986c90e..0f16c363 100644
--- a/third_party/blink/renderer/modules/xr/xr.h
+++ b/third_party/blink/renderer/modules/xr/xr.h
@@ -73,7 +73,7 @@
 
   void ExitPresent();
 
-  TimeTicks NavigationStart() const { return navigation_start_; }
+  base::TimeTicks NavigationStart() const { return navigation_start_; }
 
  private:
   // These values are persisted to logs. Entries should not be renumbered and
@@ -219,7 +219,7 @@
 
   // Time at which navigation started. Used as the base for relative timestamps,
   // such as for Gamepad objects.
-  TimeTicks navigation_start_;
+  base::TimeTicks navigation_start_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
index b1740af..52d8810 100644
--- a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
+++ b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
@@ -268,7 +268,7 @@
   if (!doc)
     return;
 
-  base::TimeTicks monotonic_time_now = TimeTicks() + data->time_delta;
+  base::TimeTicks monotonic_time_now = base::TimeTicks() + data->time_delta;
   double high_res_now_ms =
       doc->Loader()
           ->GetTiming()
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source.cc b/third_party/blink/renderer/modules/xr/xr_input_source.cc
index c0dd0f1..abdccb6 100644
--- a/third_party/blink/renderer/modules/xr/xr_input_source.cc
+++ b/third_party/blink/renderer/modules/xr/xr_input_source.cc
@@ -38,7 +38,7 @@
 XRInputSource::InternalState::InternalState(
     uint32_t source_id,
     device::mojom::XRTargetRayMode target_ray_mode,
-    TimeTicks base_timestamp)
+    base::TimeTicks base_timestamp)
     : source_id(source_id),
       target_ray_mode(target_ray_mode),
       base_timestamp(base_timestamp) {}
@@ -187,7 +187,7 @@
       // TODO(https://crbug.com/955104): Is the Gamepad object creation time the
       // correct time floor?
       gamepad_ = MakeGarbageCollected<Gamepad>(this, 0, state_.base_timestamp,
-                                               TimeTicks::Now());
+                                               base::TimeTicks::Now());
     }
 
     gamepad_->UpdateFromDeviceState(*gamepad);
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source.h b/third_party/blink/renderer/modules/xr/xr_input_source.h
index 31b2ede..c498402 100644
--- a/third_party/blink/renderer/modules/xr/xr_input_source.h
+++ b/third_party/blink/renderer/modules/xr/xr_input_source.h
@@ -96,11 +96,11 @@
     device::mojom::XRHandedness handedness = device::mojom::XRHandedness::NONE;
     device::mojom::XRTargetRayMode target_ray_mode;
     bool emulated_position = false;
-    TimeTicks base_timestamp;
+    base::TimeTicks base_timestamp;
 
     InternalState(uint32_t source_id,
                   device::mojom::XRTargetRayMode,
-                  TimeTicks base_timestamp);
+                  base::TimeTicks base_timestamp);
     InternalState(const InternalState& other);
     ~InternalState();
   };
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 17ac390..aef3511 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1358,6 +1358,7 @@
     "webrtc/track_observer.cc",
     "webrtc/webrtc_logging.cc",
     "webrtc/webrtc_video_frame_adapter.cc",
+    "webrtc/webrtc_video_utils.cc",
     "windows_keyboard_codes.h",
   ]
 
diff --git a/third_party/blink/renderer/platform/cursor.h b/third_party/blink/renderer/platform/cursor.h
index 2d2cf05..4317df0 100644
--- a/third_party/blink/renderer/platform/cursor.h
+++ b/third_party/blink/renderer/platform/cursor.h
@@ -44,7 +44,7 @@
  public:
   Cursor()
       // This is an invalid Cursor and should never actually get used.
-      : type_(static_cast<ui::CursorType>(-1)) {}
+      : type_(ui::CursorType::kNull) {}
 
   Cursor(Image*, bool hot_spot_specified, const IntPoint& hot_spot);
 
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.cc b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
index 3248c5f..0278c81 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
@@ -796,7 +796,6 @@
   // param is not atomic so the display may draw with incorrect params, but its
   // a good enough fix for now.
   resource->needs_gl_filter_reset_ = true;
-  resource->SetGLFilterIfNeeded();
   auto weak_provider = resource->WeakProvider();
   ReleaseFrameResources(std::move(weak_provider), std::move(resource),
                         sync_token, is_lost);
@@ -824,6 +823,8 @@
 }
 
 scoped_refptr<StaticBitmapImage> CanvasResourceSharedImage::Bitmap() {
+  TRACE_EVENT0("blink", "CanvasResourceSharedImage::Bitmap");
+
   // The |release_callback| keeps a ref on this resource to ensure the backing
   // shared image is kept alive until the lifetime of the image.
   // Note that the code in CanvasResourceProvider::RecycleResource also uses the
diff --git a/content/renderer/media/webrtc/webrtc_video_utils.cc b/third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc
similarity index 97%
rename from content/renderer/media/webrtc/webrtc_video_utils.cc
rename to third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc
index 3b63e67..6ef97c2d 100644
--- a/content/renderer/media/webrtc/webrtc_video_utils.cc
+++ b/third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/renderer/media/webrtc/webrtc_video_utils.h"
+#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h"
 
-namespace content {
+namespace blink {
 
 media::VideoRotation WebRtcToMediaVideoRotation(
     webrtc::VideoRotation rotation) {
@@ -170,4 +170,4 @@
   return media::VideoColorSpace(primaries, transfer, matrix, range);
 }
 
-}  // namespace content
+}  // namespace blink
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 851c6cf..cdceabc 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2803,7 +2803,7 @@
 ####crbug.com/613672 [ Mac ] virtual/scroll_customization/fast/events/touch/gesture/touch-gesture-scroll-listbox.html [ Skip ]
 
 crbug.com/802067 [ Mac ] external/wpt/pointerlock/movementX_Y_basic.html [ Failure ]
-crbug.com/802067 [ Mac ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html [ Failure ]
+crbug.com/802067 [ Mac ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html [ Failure ]
 
 # Since there is no compositor thread when running tests then there is no main thread event queue. Hence the
 # logic for this test will be skipped when running Layout tests.
@@ -3310,6 +3310,8 @@
 crbug.com/968164 external/wpt/css/css-ui/webkit-appearance-menulist-button-001.html [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 [ Mac10.12 ] external/wpt/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html [ Timeout ]
+crbug.com/626703 [ Mac10.12 ] external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html [ Timeout ]
 crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html [ Failure ]
 crbug.com/626703 [ Retina ] external/wpt/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-top-left.html [ Timeout ]
 crbug.com/626703 external/wpt/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html [ Timeout ]
@@ -6255,3 +6257,6 @@
 crbug.com/976743 virtual/gpu-rasterization/images/color-profile-image.html [ Pass Failure ]
 crbug.com/976743 virtual/gpu-rasterization/images/color-profile-mask-image-svg.html [ Pass Failure ]
 crbug.com/976743 virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile.html [ Pass Failure ]
+
+# Sheriff 2019-06-19
+crbug.com/959129 [ Linux ] virtual/threaded/http/tests/devtools/tracing/timeline-script-parse.js [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
index 3615e8c1..be5080b 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -6535,36 +6535,6 @@
      {}
     ]
    ],
-   "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [
-    [
-     "pointerevents/pointerlock/pointerevent_movementxy-manual.html",
-     {}
-    ]
-   ],
-   "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [
-    [
-     "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html",
-     {}
-    ]
-   ],
-   "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [
-    [
-     "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html",
-     {}
-    ]
-   ],
-   "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [
-    [
-     "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html",
-     {}
-    ]
-   ],
-   "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [
-    [
-     "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html",
-     {}
-    ]
-   ],
    "pointerlock/movementX_Y_no-jumps-manual.html": [
     [
      "pointerlock/movementX_Y_no-jumps-manual.html",
@@ -156977,9 +156947,6 @@
    "html/semantics/forms/form-submission-0/form-echo.py": [
     []
    ],
-   "html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt": [
-    []
-   ],
    "html/semantics/forms/form-submission-0/getactionurl-expected.txt": [
     []
    ],
@@ -166334,6 +166301,12 @@
    "staticrange/idlharness-expected.txt": [
     []
    ],
+   "std-toast/META.yml": [
+    []
+   ],
+   "std-toast/resources/helpers.js": [
+    []
+   ],
    "storage/META.yml": [
     []
    ],
@@ -261417,6 +261390,15 @@
      }
     ]
    ],
+   "pointerevents/pointerlock/pointerevent_movementxy.html": [
+    [
+     "pointerevents/pointerlock/pointerevent_movementxy.html",
+     {
+      "testdriver": true,
+      "timeout": "long"
+     }
+    ]
+   ],
    "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [
     [
      "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html",
@@ -261425,6 +261407,38 @@
      }
     ]
    ],
+   "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [
+    [
+     "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
+   "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [
+    [
+     "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
+   "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [
+    [
+     "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
+   "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [
+    [
+     "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
    "pointerlock/constructor.html": [
     [
      "pointerlock/constructor.html",
@@ -275945,6 +275959,44 @@
      }
     ]
    ],
+   "std-toast/attributes.html": [
+    [
+     "std-toast/attributes.html",
+     {}
+    ]
+   ],
+   "std-toast/events-open.html": [
+    [
+     "std-toast/events-open.html",
+     {}
+    ]
+   ],
+   "std-toast/events-showhide.html": [
+    [
+     "std-toast/events-showhide.html",
+     {}
+    ]
+   ],
+   "std-toast/methods.html": [
+    [
+     "std-toast/methods.html",
+     {}
+    ]
+   ],
+   "std-toast/options.html": [
+    [
+     "std-toast/options.html",
+     {
+      "timeout": "long"
+     }
+    ]
+   ],
+   "std-toast/show-toast.html": [
+    [
+     "std-toast/show-toast.html",
+     {}
+    ]
+   ],
    "storage/estimate-indexeddb.https.any.js": [
     [
      "storage/estimate-indexeddb.https.any.html",
@@ -427320,10 +427372,6 @@
    "a7f0dc87efd2d3bf8798919649873cb81fc25ade",
    "support"
   ],
-  "html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt": [
-   "dd7c7a3bdcf4a36967ece772c3204916edb2a258",
-   "support"
-  ],
   "html/semantics/forms/form-submission-0/form-submission-algorithm.html": [
    "8f61cbc18c95133561e4dd8cbffd3cdb682420e4",
    "testharness"
@@ -448497,7 +448545,7 @@
    "support"
   ],
   "payment-request/rejects_if_not_active.https.html": [
-   "3c7e85ba970f8c6f2d608f02dd2f60f911124da2",
+   "4ba760ac987746ad9b561377a6b1e4185f7e7331",
    "testharness"
   ],
   "payment-request/resources/page1.html": [
@@ -449064,29 +449112,29 @@
    "a79327252277d3b27e416e885b27ff6cb0b0bf5d",
    "testharness"
   ],
-  "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [
-   "6d903c405e95bd140cc201b7191434fac57931c8",
-   "manual"
+  "pointerevents/pointerlock/pointerevent_movementxy.html": [
+   "2d6147dae562af7efadacee9dfb44cc080005742",
+   "testharness"
   ],
   "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [
    "bdad97df04b2ca67fc1f92e256c979c137a4c66a",
    "testharness"
   ],
-  "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [
-   "8ac35f82856a38e887ec84ad67f5c374014905c5",
-   "manual"
+  "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [
+   "3c768ef0574346a38a05b6153f7133c3adbb2be0",
+   "testharness"
   ],
-  "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [
-   "d8dbeaae172dfd6314341c55ef1fa3b9945f60fc",
-   "manual"
+  "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [
+   "98fec4e74f15984a31714d3b908c87b426aecc5c",
+   "testharness"
   ],
-  "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [
-   "80c01d61c8f906364fea0497d32cbd44ad8fdd3f",
-   "manual"
+  "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [
+   "b2251d660e7176627204e4d48dc591033501554e",
+   "testharness"
   ],
-  "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [
-   "b2fadbfe05f7efcc674f2b4cac61a15a67560597",
-   "manual"
+  "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [
+   "a6f238cbee127353fdab9982fe8a9a75d67b23f7",
+   "testharness"
   ],
   "pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [
    "627af3b61cad74bb112558169b1e66f6a24b1129",
@@ -465192,6 +465240,38 @@
    "0d631ffbeb8d641f947b6d41fe1e1f5cf05556cd",
    "support"
   ],
+  "std-toast/META.yml": [
+   "c54357a03f214572481fc08be473cc308d50097b",
+   "support"
+  ],
+  "std-toast/attributes.html": [
+   "9bfc65c395cd37c07f7499a03e5cdfb6fe16c85e",
+   "testharness"
+  ],
+  "std-toast/events-open.html": [
+   "5442b36d261d0fd91f62cd38396b173429754245",
+   "testharness"
+  ],
+  "std-toast/events-showhide.html": [
+   "73f1df4ae55bba7ef493dc22adae67553576326a",
+   "testharness"
+  ],
+  "std-toast/methods.html": [
+   "7ce0e5adb810294fcc99c4c3bbf696c2fffd0f39",
+   "testharness"
+  ],
+  "std-toast/options.html": [
+   "bd091a128e6474a1d6b6ca4a061ff6f5bafe8595",
+   "testharness"
+  ],
+  "std-toast/resources/helpers.js": [
+   "60068bb2089f957c26174e625b9e6424b59de494",
+   "support"
+  ],
+  "std-toast/show-toast.html": [
+   "07331818df0926f44d5c829a0060e87f0c4d1384",
+   "testharness"
+  ],
   "storage/META.yml": [
    "2aad1fb513710e839ad86c923bf208dae604d3d2",
    "support"
@@ -473129,7 +473209,7 @@
    "testharness"
   ],
   "trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
-   "4bb9569816d03cc37e97db55ea2db6a2d30a15cd",
+   "76a639a622799dcb9769ad4781104d17be8439bc",
    "testharness"
   ],
   "trusted-types/block-string-assignment-to-HTMLElement-generic.tentative-expected.txt": [
diff --git a/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html b/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html
new file mode 100644
index 0000000..08a400df
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/972904">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div style="margin-top:-100000000px;">
+  <div style="margin-bottom:-100000000px; padding-top: 1px;"></div>
+  text <!-- "text" is placed at the highest possible location due to saturated margin top values. -->
+  <div style="float: left; width: 60px; height: 20px;"></div>
+  <div style="margin-top: 10px;">
+    <div style="float: left; width: 10px;"></div>
+    <div style="float: left; width: 100px; height: 100px;"></div>
+  </div>
+</div>
+
+<script>
+test(() => { }, 'test passes if it does not crash');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html
new file mode 100644
index 0000000..23df49cf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/974760">
+<meta name="assert" content="fixed children inside inline container do not crash">
+<style>
+#container {
+  position: relative;
+  overflow: auto;
+  width: 200px;
+  height: 200px;
+}
+#inline-fixed-container {
+  filter:url("");
+}
+#fixed-container {
+  position: fixed;
+}
+#target {
+  position: fixed;
+}
+</style>
+<div id="container">
+  <span id="inline-fixed-container">
+    <div id="fixed-container">
+      <div id="target"></div>
+    </div>
+  </span>
+</div>
+<script>
+test(() => {
+  document.body.offsetTop;
+  document.querySelector("#target").appendChild(
+    document.createTextNode("foo"));
+  document.body.offsetTop;
+}, 'this test passes if it does not crash');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt
index 0d8fb1a5..1fa19f3 100644
--- a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt
@@ -1,4 +1,4 @@
 This is a testharness.js-based test.
-FAIL If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts. promise_test: Unhandled rejection with value: object "InvalidStateError: Already called show() once"
+FAIL If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts. assert_throws: The iframe was navigated away, so showPromise must reject with AbortError function "function() { throw e }" threw object "InvalidStateError: Already called show() once" that is not a DOMException AbortError: property "code" is equal to 11, expected 20
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html
index 3c7e85b..4ba760ac 100644
--- a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html
+++ b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html
@@ -58,8 +58,8 @@
     iframe,
     "/payment-request/resources/page1.html"
   );
-  const showPromise = await test_driver.bless("show payment request", () => {
-    return request.show();
+  const [showPromise] = await test_driver.bless("show payment request", () => {
+    return [request.show()];
   });
   // Navigate the iframe to a new location. Wait for the load event to fire.
   await new Promise(resolve => {
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html
similarity index 74%
rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html
rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html
index 6d903c4..2d6147d 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html
@@ -2,11 +2,14 @@
 <html>
     <head>
         <title>Pointer Events properties tests</title>
-<meta name="timeout" content="long">
+        <meta name="timeout" content="long">
         <meta name="viewport" content="width=device-width">
         <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/resources/testdriver.js"></script>
+        <script src="/resources/testdriver-actions.js"></script>
+        <script src="/resources/testdriver-vendor.js"></script>
         <!-- Additional helper script for common checks across event types -->
         <script type="text/javascript" src="../pointerevent_support.js"></script>
         <style>
@@ -45,8 +48,21 @@
                 lastScreenY = 0;
             }
 
+            function injectInput(pointerType) {
+                var pointerId = pointerType + "Pointer1";
+                return new test_driver.Actions()
+                                     .addPointer(pointerId, pointerType)
+                                     .pointerMove(0, 0, {origin: box1})
+                                     .pointerDown()
+                                     .pointerMove(20, 30, {origin: box1})
+                                     .pointerMove(60, 40, {origin: box1})
+                                     .pointerMove(0, 0, {origin: box2})
+                                     .pointerUp()
+                                     .send();
+            }
+
             function run() {
-                var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ['mouse', 'touch']);
+                var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ALL_POINTERS);
 
                 [document, document.getElementById('innerFrame').contentDocument].forEach(function(element) {
                   on_event(element, 'pointermove', function (event) {
@@ -73,14 +89,22 @@
                   startSummation = false;
                   test_pointerEvent.done();
                 });
+
+                // Inject input
+                injectInput("mouse").then(function(){
+                  return injectInput("touch")
+                }).then(function() {
+                  return injectInput("pen")
+                })
             }
+
         </script>
     </head>
     <body onload="run()">
         <h1>Pointer Events movementX/Y attribute test</h1>
         <h2 id="pointerTypeDescription"></h2>
         <h4>
-            Test Description: This test checks the properties of pointer events that do not support hover.
+            Test Description: This test checks the movementX/Y properties of pointer events.
             <ol>
                  <li>Press down on the black square.</li>
                  <li>Move your pointer  slowly along a straight line to the red square.</li>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html
similarity index 67%
rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html
rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html
index 8ac35f8..c66584a 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html
@@ -6,6 +6,9 @@
         <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/resources/testdriver.js"></script>
+        <script src="/resources/testdriver-actions.js"></script>
+        <script src="/resources/testdriver-vendor.js"></script>
         <!-- Additional helper script for common checks across event types -->
         <script type="text/javascript" src="../pointerevent_support.js"></script>
         <script>
@@ -24,15 +27,6 @@
                 on_event(div1, 'pointerdown', function(event) {
                     div2.setPointerCapture(event.pointerId);
                 });
-                on_event(div1, 'pointermove', function(event) {
-                    if (lost_capture) {
-                        test_pointerEvent.step(function() {
-                            assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1.");
-                            assert_true(lost_capture, "Pointer capture was lost after got a pointer lock.");
-                        });
-                        test_pointerEvent.done(); 
-                    }
-                });
                 on_event(document, 'contextmenu', function(event) {
                     event.preventDefault();
                 });
@@ -51,6 +45,29 @@
                 on_event(document,"pointerlockerror", function() {
                     assert_unreached("Pointer lock error");
                 })
+
+                injectInput().then(function(){
+                    test_pointerEvent.step(function(){
+                        assert_true(lost_capture, "Pointer capture was lost after got a pointer lock.");
+                        assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1.");
+                    });
+                    test_pointerEvent.done();
+                })
+            }
+
+            // Inject mouse input
+            function injectInput() {
+                var actions = new test_driver.Actions();
+                return actions.pointerMove(0, 0, {origin: div1})
+                              .pointerDown({button: actions.ButtonType.LEFT})
+                              .pointerMove(30, 30, {origin: div1})
+                              .pointerMove(30, 0, {origin: div1})
+                              .pointerDown({button: actions.ButtonType.RIGHT})
+                              .pointerMove(60, 30, {origin: div1})
+                              .pointerMove(20, 20, {origin: div1})
+                              .pointerUp({button: actions.ButtonType.RIGHT})
+                              .pointerUp({button: actions.ButtonType.LEFT})
+                              .send();
             }
         </script>
     </head>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html
similarity index 71%
rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html
rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html
index d8dbeaa..f3f61cf 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html
@@ -6,6 +6,9 @@
         <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/resources/testdriver.js"></script>
+        <script src="/resources/testdriver-actions.js"></script>
+        <script src="/resources/testdriver-vendor.js"></script>
         <!-- Additional helper script for common checks across event types -->
         <script type="text/javascript" src="../pointerevent_support.js"></script>
         <script>
@@ -20,14 +23,14 @@
                 var test_pointerEvent = setup_pointerevent_test("no pointercapture while pointerlock", ['mouse']);
                 var div1 = document.getElementById("div1");
                 var div2 = document.getElementById("div2");
-              
+
                 on_event(div1, 'pointerdown', function(event) {
                     div2.setPointerCapture(event.pointerId);
                     div1.requestPointerLock();
                 });
                 on_event(div1, 'pointermove', function(event) {
+                    mouse_move_count++
                     if (lock_change_count == 1) {
-                        mouse_move_count++;
                         if (mouse_move_count == 2) {
                             try {
                                 div2.setPointerCapture(event.pointerId);
@@ -44,14 +47,6 @@
                             mouse_move_count = 0;
                         }
 
-                    } else if (lock_change_count == 2) {
-                        mouse_move_count++;
-                        if (mouse_move_count == 2) {
-                            test_pointerEvent.step(function() {
-                                assert_equals(capture_count, 0, "There shouldn't be any capture events fired.");
-                            });
-                            test_pointerEvent.done();
-                        }
                     }
                 });
                 on_event(div2, 'gotpointercapture', function(event) {
@@ -69,6 +64,30 @@
                             assert_equals(document.pointerLockElement, null, "document.pointerLockElement should be null.");
                     });
                 });
+
+                injectInput().then(function(){
+                    test_pointerEvent.step(function(){
+                        assert_equals(lock_change_count, 2, "Pointer is unlocked");
+                        assert_greater_than(mouse_move_count, 1, "More than 1 pointermove has been received after unlocked");
+                        assert_equals(capture_count, 0, "There shouldn't be any capture events fired.");
+                    });
+                    test_pointerEvent.done();
+                })
+            }
+            // Inject mouse input
+            function injectInput() {
+                var actions = new test_driver.Actions();
+                return actions.pointerMove(0, 0, {origin: div1})
+                              .pointerDown()
+                              .pointerMove(30, 30, {origin: div1})
+                              .pointerMove(60, 30, {origin: div1})
+                              .pointerMove(30, 20, {origin: div1})
+                              .pointerMove(10, 50, {origin: div1})
+                              .pointerMove(40, 10, {origin: div1})
+                              .pointerMove(5,  30, {origin: div1})
+                              .pointerMove(-5, 15, {origin: div1})
+                              .pointerUp()
+                              .send();
             }
         </script>
     </head>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
similarity index 77%
rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html
rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
index 80c01d6..b2251d6 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
@@ -6,6 +6,9 @@
         <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/resources/testdriver.js"></script>
+        <script src="/resources/testdriver-actions.js"></script>
+        <script src="/resources/testdriver-vendor.js"></script>
         <!-- Additional helper script for common checks across event types -->
         <script type="text/javascript" src="../pointerevent_support.js"></script>
     </head>
@@ -58,9 +61,25 @@
                     });
                   }
                 });
+
                 on_event(target0, "click", function(event) {
                   target0.requestPointerLock();
                 });
+
+                var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x;
+                var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y;
+                // Inject mouse input
+                new test_driver.Actions()
+                               .pointerMove(5, 5, {origin: target0})
+                               .pointerDown()
+                               .pointerUp()
+                               .pointerMove(100, 300, {origin: target0})
+                               .pointerMove(x+10, y+10)
+                               .pointerDown()
+                               .pointerUp()
+                               .pointerMove(5, 5, {origin: target0})
+                               .send();
+
             }
 
         </script>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html
similarity index 85%
rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html
rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html
index b2fadbfe..a6f238cb 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html
@@ -7,6 +7,9 @@
         <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/resources/testdriver.js"></script>
+        <script src="/resources/testdriver-actions.js"></script>
+        <script src="/resources/testdriver-vendor.js"></script>
         <!-- Additional helper script for common checks across event types -->
         <script type="text/javascript" src="../pointerevent_support.js"></script>
     </head>
@@ -14,7 +17,7 @@
         <h2>PointerMove</h2>
         <h4>Test Description: This test checks if pointermove event are triggered by button state changes
             <ol>
-                <li>Lick on the black rectangle to lock the pointer </li>
+                <li>Click on the black rectangle to lock the pointer </li>
                 <li>Press a button and hold it</li>
                 <li>Press a second button</li>
                 <li>Release the second button</li>
@@ -86,6 +89,17 @@
                 on_event(target0, "contextmenu", function (event) {
                     event.preventDefault();
                 });
+
+                // Inject mouse input
+                var actions = new test_driver.Actions();
+                actions.pointerMove(0, 0, {origin: target0})
+                       .pointerDown({button: actions.ButtonType.LEFT})
+                       .pointerUp({button: actions.ButtonType.LEFT})
+                       .pointerDown({button: actions.ButtonType.LEFT})
+                       .pointerDown({button: actions.ButtonType.MIDDLE})
+                       .pointerUp({button: actions.ButtonType.MIDDLE})
+                       .pointerUp({button: actions.ButtonType.LEFT})
+                       .send();
             }
         </script>
         <h1>Pointer Lock Pointer Events pointermove on button state changes Tests</h1>
diff --git a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html b/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
index 4a6772f..b7e8fd5 100644
--- a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
+++ b/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
@@ -12,7 +12,7 @@
 
  1) Include <script src="./sms_provider.js"></script> in your test.
  2) Set expectations
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
     // mock behavior
   })
  3) Call navigator.sms.receive()
@@ -24,8 +24,8 @@
  Here are the symbols that are exposed to tests that need to be implemented
  per engine:
 
- - function getNextMessage(): the main/only function that can be mocked.
- - function expect(): the main/only function that enables us to mock it
+ - function receive(): the main/only function that can be mocked.
+ - function expect(): the main/only function that enables us to mock it.
  - enum State {kSuccess, kTimeout}: allows you to mock success/failures.
 
   -->
@@ -34,12 +34,10 @@
 'use strict';
 
 promise_test(async t => {
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          content: "hello",
-          status: Status.kSuccess,
-        }
+        status: Status.kSuccess,
+        message: "hello",
       });
   });
 
@@ -49,20 +47,16 @@
 }, 'Basic usage');
 
 promise_test(async t => {
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          content: "hello1",
-          status: Status.kSuccess,
-        }
+        status: Status.kSuccess,
+        message: "hello1",
       });
   });
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          content: "hello2",
-          status: Status.kSuccess,
-        }
+        status: Status.kSuccess,
+        message: "hello2",
       });
   });
 
@@ -77,19 +71,15 @@
 }, 'Handle multiple requests in different order.');
 
 promise_test(async t => {
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          status: Status.kTimeout
-        }
+        status: Status.kTimeout,
       });
   });
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          content: "success",
-          status: Status.kSuccess
-        }
+        status: Status.kSuccess,
+        message: "success",
       });
   });
 
@@ -109,11 +99,9 @@
 }, 'Handle multiple requests with success and error.');
 
 promise_test(async t => {
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          status: Status.kTimeout,
-        }
+        status: Status.kTimeout,
       });
   });
 
@@ -167,12 +155,10 @@
 }, 'Should throw error with invalid timeout (NaN)');
 
 promise_test(async t => {
-  await expect(getNextMessage).andReturn((timeout) => {
+  await expect(receive).andReturn((timeout) => {
       return Promise.resolve({
-        sms: {
-          content: "hello",
-          status: Status.kSuccess,
-        }
+        status: Status.kSuccess,
+        message: "hello",
       });
   });
 
diff --git a/third_party/blink/web_tests/external/wpt/sms/sms_provider.js b/third_party/blink/web_tests/external/wpt/sms/sms_provider.js
index a475941..eaa31ebe 100644
--- a/third_party/blink/web_tests/external/wpt/sms/sms_provider.js
+++ b/third_party/blink/web_tests/external/wpt/sms/sms_provider.js
@@ -5,7 +5,7 @@
     '/gen/mojo/public/mojom/base/big_buffer.mojom-lite.js',
     '/gen/mojo/public/mojom/base/string16.mojom-lite.js',
     '/gen/mojo/public/mojom/base/time.mojom-lite.js',
-    '/gen/third_party/blink/public/mojom/sms/sms_manager.mojom-lite.js',
+    '/gen/third_party/blink/public/mojom/sms/sms_receiver.mojom-lite.js',
   ].forEach(path => {
     let script = document.createElement('script');
     script.src = path;
@@ -24,8 +24,8 @@
     this.returnValues = {}
   }
 
-  getNextMessage(timeout) {
-    let call = this.returnValues.getNextMessage.shift();
+  receive(timeout) {
+    let call = this.returnValues.receive.shift();
     if (!call) {
       throw new Error("Unexpected call.");
     }
@@ -39,7 +39,7 @@
   }
 }
 
-function getNextMessage(timeout, callback) {
+function receive(timeout, callback) {
   throw new Error("expected to be overriden by tests");
 }
 
@@ -58,9 +58,9 @@
   let provider = new SmsProvider();
 
   let interceptor = new MojoInterfaceInterceptor(
-      blink.mojom.SmsManager.$interfaceName);
+      blink.mojom.SmsReceiver.$interfaceName);
   interceptor.oninterfacerequest = (e) => {
-    let impl = new blink.mojom.SmsManager(provider);
+    let impl = new blink.mojom.SmsReceiver(provider);
     impl.bindHandle(e.handle);
   }
 
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js
deleted file mode 100644
index 1ebba07..0000000
--- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js
+++ /dev/null
@@ -1,7 +0,0 @@
-importAutomationScript('/pointerevents/pointerevent_common_input.js');
-
-function inject_input() {
-  return smoothDrag('#box1', '#box2', 'mouse').then(function() {
-    return smoothDrag('#box1', '#box2', 'touch');
-  });
-}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js
deleted file mode 100644
index f522475..0000000
--- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js
+++ /dev/null
@@ -1,31 +0,0 @@
-importAutomationScript('/pointerevents/pointerevent_common_input.js');
-
-function inject_input() {
-  const targetDocument = document;
-  const targetSelector = '#div1'
-  return new Promise(function(resolve, reject) {
-    if (window.chrome && chrome.gpuBenchmarking) {
-      scrollPageIfNeeded(targetSelector, targetDocument);
-      var target = targetDocument.querySelector(targetSelector);
-      var targetRect = target.getBoundingClientRect();
-      var xPosition = targetRect.left + boundaryOffset;
-      var yPosition = targetRect.top + boundaryOffset;
-      const leftButton = 0;
-      const rightButton = 2;
-
-      chrome.gpuBenchmarking.pointerActionSequence( [
-        {source: 'mouse',
-         actions: [
-            {name: 'pointerMove', x: xPosition, y: yPosition},
-            {name: 'pointerDown', x: xPosition, y: yPosition, button: leftButton},
-            {name: 'pointerMove', x: xPosition + 30, y: yPosition + 30},
-            {name: 'pointerMove', x: xPosition + 30, y: yPosition},
-            {name: 'pointerDown', x: xPosition + 30, y: yPosition, button: rightButton},
-            {name: 'pointerMove', x: xPosition + 60, y: yPosition + 30},
-            {name: 'pointerMove', x: xPosition + 30, y: yPosition + 20},
-        ]}], resolve);
-    } else {
-      reject();
-    }
-  });
-}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js
deleted file mode 100644
index 94765a11..0000000
--- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js
+++ /dev/null
@@ -1,5 +0,0 @@
-importAutomationScript('/pointerevents/pointerevent_common_input.js');
-
-function inject_input() {
-  return mouseRequestPointerLockAndCaptureInTarget('#div1');
-}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js
deleted file mode 100644
index 1e17f64..0000000
--- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js
+++ /dev/null
@@ -1,16 +0,0 @@
-importAutomationScript('/pointerevents/pointerevent_common_input.js');
-
-function inject_input() {
-  innerframe = document.getElementById("innerframe")
-  return mouseClickInTarget('#target0').then(function() {
-    return  mouseMoveIntoTarget('#target0').then(function() {
-      return  mouseMoveIntoTarget('#target1', innerframe).then(function() {
-        return  mouseClickInTarget('#target1', innerframe).then(function() {
-          return  mouseMoveIntoTarget('#target1', innerframe).then(function() {
-            return  mouseMoveIntoTarget('#target0');
-          });
-        });
-      });
-    });
-  });
-}
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js
deleted file mode 100644
index cd42866e..0000000
--- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js
+++ /dev/null
@@ -1,7 +0,0 @@
-importAutomationScript('/pointerevents/pointerevent_common_input.js');
-
-function inject_input() {
-  return mouseClickInTarget('#target0').then(function() {
-    return mouseChordedButtonPress('#target0');
-  });
-}
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html b/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html
new file mode 100644
index 0000000..550b930
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<p>Check if text in a validation bubble is wrapped within the bubble.</p>
+<input type="email" value="emailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddress">
+<script>
+document.querySelector('input').reportValidity();
+</script>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt
index 07762c6..f604f8d 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt
@@ -23,4 +23,12 @@
     id : <number>
     sessionId : <string>
 }
+{
+    error : {
+        code : -32602
+        message : U2F only supports the "usb", "ble" and "nfc" transports
+    }
+    id : <number>
+    sessionId : <string>
+}
 
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js
index 182bf3e..1e47622 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js
@@ -35,5 +35,15 @@
   });
   testRunner.log(transportError);
 
+  const u2fCableError = await dp.WebAuthn.addVirtualAuthenticator({
+    options: {
+      protocol: "u2f",
+      transport: "cable",
+      hasResidentKey: false,
+      hasUserVerification: false,
+    },
+  });
+  testRunner.log(u2fCableError);
+
   testRunner.completeTest();
 })
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..9cc84b7d
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..7037d0a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..b7e5fa4e8
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..eb409a8
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt
new file mode 100644
index 0000000..cfd42aa
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL mouse pointerevent attributes assert_equals: movementX should be the delta between current event's and last event's screenX expected 20 but got 0
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..eb409a8
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png
new file mode 100644
index 0000000..15417b5
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html
new file mode 100644
index 0000000..8394e99
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html
@@ -0,0 +1,16 @@
+<!doctype HTML>
+<html>
+<meta charset="utf8">
+<title>Display Locking: iframe locking (reference)</title>
+<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
+<link rel="help" href="https://github.com/WICG/display-locking">
+
+<style>
+div {
+  background: blue;
+}
+</style>
+
+<div>lorem ipsum</div>
+<iframe id="frame" width=400 height=200 srcdoc=''></iframe>
+<div>consectetur adipiscing elit</div>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html
new file mode 100644
index 0000000..8c805f7
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html
@@ -0,0 +1,43 @@
+<!doctype HTML>
+<html class="reftest-wait">
+<meta charset="utf8">
+<title>Display Locking: iframe locking</title>
+<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
+<link rel="help" href="https://github.com/WICG/display-locking">
+<link rel="match" href="locked-iframe-doesnt-paint-contents-ref.html">
+<script src="/common/reftest-wait.js"></script>
+
+<style>
+div {
+  background: blue;
+}
+iframe {
+  contain: style layout;
+}
+</style>
+
+<div>lorem ipsum</div>
+<iframe id="frame" width=400 height=200 srcdoc='
+  <style>
+  div {
+    background: lightgreen;
+  }
+  </style>
+  <div>dolor sit amet</div>
+'></iframe>
+<div>consectetur adipiscing elit</div>
+
+<script>
+async function runTest() {
+  const container = document.getElementById("frame");
+  await container.displayLock.acquire({ timeout: Infinity });
+  takeScreenshot();
+}
+
+window.onload = () => {
+  requestAnimationFrame(() => {
+    requestAnimationFrame(runTest);
+  });
+};
+</script>
+</html>
diff --git a/third_party/boringssl/BUILD.generated.gni b/third_party/boringssl/BUILD.generated.gni
index b86201d..c07e0ec 100644
--- a/third_party/boringssl/BUILD.generated.gni
+++ b/third_party/boringssl/BUILD.generated.gni
@@ -127,6 +127,7 @@
   "src/crypto/fipsmodule/ec/internal.h",
   "src/crypto/fipsmodule/ec/p256-x86_64-table.h",
   "src/crypto/fipsmodule/ec/p256-x86_64.h",
+  "src/crypto/fipsmodule/fips_shared_support.c",
   "src/crypto/fipsmodule/is_fips.c",
   "src/crypto/fipsmodule/md5/internal.h",
   "src/crypto/fipsmodule/modes/internal.h",
diff --git a/third_party/boringssl/BUILD.generated_tests.gni b/third_party/boringssl/BUILD.generated_tests.gni
index 8a9f0ca..2b07a8f 100644
--- a/third_party/boringssl/BUILD.generated_tests.gni
+++ b/third_party/boringssl/BUILD.generated_tests.gni
@@ -162,6 +162,7 @@
   "src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt",
   "src/third_party/wycheproof_testvectors/eddsa_test.txt",
   "src/third_party/wycheproof_testvectors/kw_test.txt",
+  "src/third_party/wycheproof_testvectors/kwp_test.txt",
   "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt",
   "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt",
   "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt",
diff --git a/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
index 3a57522..067575e 100644
--- a/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
+++ b/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
@@ -2823,15 +2823,22 @@
 	orq	%r8,%r12
 	orq	%r9,%r12
 
-.byte	0x3e
-	jnz	.Ladd_proceedq
 .byte	102,73,15,126,208
 .byte	102,73,15,126,217
-	testq	%r8,%r8
+	orq	%r8,%r12
+.byte	0x3e
 	jnz	.Ladd_proceedq
+
+
+
 	testq	%r9,%r9
 	jz	.Ladd_doubleq
 
+
+
+
+
+
 .byte	102,72,15,126,199
 	pxor	%xmm0,%xmm0
 	movdqu	%xmm0,0(%rdi)
@@ -3944,15 +3951,22 @@
 	orq	%r8,%r12
 	orq	%r9,%r12
 
-.byte	0x3e
-	jnz	.Ladd_proceedx
 .byte	102,73,15,126,208
 .byte	102,73,15,126,217
-	testq	%r8,%r8
+	orq	%r8,%r12
+.byte	0x3e
 	jnz	.Ladd_proceedx
+
+
+
 	testq	%r9,%r9
 	jz	.Ladd_doublex
 
+
+
+
+
+
 .byte	102,72,15,126,199
 	pxor	%xmm0,%xmm0
 	movdqu	%xmm0,0(%rdi)
diff --git a/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
index 237c0a3..1f4a931 100644
--- a/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
+++ b/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
@@ -2772,15 +2772,22 @@
 	orq	%r8,%r12
 	orq	%r9,%r12
 
-.byte	0x3e
-	jnz	L$add_proceedq
 .byte	102,73,15,126,208
 .byte	102,73,15,126,217
-	testq	%r8,%r8
+	orq	%r8,%r12
+.byte	0x3e
 	jnz	L$add_proceedq
+
+
+
 	testq	%r9,%r9
 	jz	L$add_doubleq
 
+
+
+
+
+
 .byte	102,72,15,126,199
 	pxor	%xmm0,%xmm0
 	movdqu	%xmm0,0(%rdi)
@@ -3875,15 +3882,22 @@
 	orq	%r8,%r12
 	orq	%r9,%r12
 
-.byte	0x3e
-	jnz	L$add_proceedx
 .byte	102,73,15,126,208
 .byte	102,73,15,126,217
-	testq	%r8,%r8
+	orq	%r8,%r12
+.byte	0x3e
 	jnz	L$add_proceedx
+
+
+
 	testq	%r9,%r9
 	jz	L$add_doublex
 
+
+
+
+
+
 .byte	102,72,15,126,199
 	pxor	%xmm0,%xmm0
 	movdqu	%xmm0,0(%rdi)
diff --git a/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm b/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm
index cdde93904..215f5d2 100644
--- a/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm
+++ b/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm
@@ -2953,15 +2953,22 @@
 	or	r12,r8
 	or	r12,r9
 
-DB	0x3e
-	jnz	NEAR $L$add_proceedq
 DB	102,73,15,126,208
 DB	102,73,15,126,217
-	test	r8,r8
+	or	r12,r8
+DB	0x3e
 	jnz	NEAR $L$add_proceedq
+
+
+
 	test	r9,r9
 	jz	NEAR $L$add_doubleq
 
+
+
+
+
+
 DB	102,72,15,126,199
 	pxor	xmm0,xmm0
 	movdqu	XMMWORD[rdi],xmm0
@@ -4087,15 +4094,22 @@
 	or	r12,r8
 	or	r12,r9
 
-DB	0x3e
-	jnz	NEAR $L$add_proceedx
 DB	102,73,15,126,208
 DB	102,73,15,126,217
-	test	r8,r8
+	or	r12,r8
+DB	0x3e
 	jnz	NEAR $L$add_proceedx
+
+
+
 	test	r9,r9
 	jz	NEAR $L$add_doublex
 
+
+
+
+
+
 DB	102,72,15,126,199
 	pxor	xmm0,xmm0
 	movdqu	XMMWORD[rdi],xmm0
diff --git a/third_party/webxr_test_pages/webxr-samples/input-tracking.html b/third_party/webxr_test_pages/webxr-samples/input-tracking.html
index 6b5d7fd7..c5ae265 100644
--- a/third_party/webxr_test_pages/webxr-samples/input-tracking.html
+++ b/third_party/webxr_test_pages/webxr-samples/input-tracking.html
@@ -154,8 +154,13 @@
         }, (e) => {
           if (!session.mode.startsWith('immersive')) {
             // If we're in inline mode, our underlying platform may not support
-            // the stationary reference space, but an identity space is guaranteed.
-            return session.requestReferenceSpace('viewer');
+            // the local-floor reference space, but a viewer space is guaranteed.
+            return session.requestReferenceSpace('viewer').then((viewerRefSpace) => {
+              // Adjust the viewer space for an estimated user height. Otherwise,
+              // the poses queried with this space will originate from the floor.
+              let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0});
+              return viewerRefSpace.getOffsetReferenceSpace(xform);
+            });
           } else {
             throw e;
           }
diff --git a/third_party/webxr_test_pages/webxr-samples/positional-audio.html b/third_party/webxr_test_pages/webxr-samples/positional-audio.html
index 6892dfe..2cd7fd1 100644
--- a/third_party/webxr_test_pages/webxr-samples/positional-audio.html
+++ b/third_party/webxr_test_pages/webxr-samples/positional-audio.html
@@ -373,8 +373,13 @@
         }, (e) => {
           if (!session.mode.startsWith('immersive')) {
             // If we're in inline mode, our underlying platform may not support
-            // the stationary reference space, but an identity space is guaranteed.
-            return session.requestReferenceSpace('viewer');
+            // the local-floor reference space, but a viewer space is guaranteed.
+            return session.requestReferenceSpace('viewer').then((viewerRefSpace) => {
+              // Adjust the viewer space for an estimated user height. Otherwise,
+              // the poses queried with this space will originate from the floor.
+              let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0});
+              return viewerRefSpace.getOffsetReferenceSpace(xform);
+            });
           } else {
             throw e;
           }
diff --git a/third_party/webxr_test_pages/webxr-samples/teleportation.html b/third_party/webxr_test_pages/webxr-samples/teleportation.html
index 2bf2b89..bf056d5 100644
--- a/third_party/webxr_test_pages/webxr-samples/teleportation.html
+++ b/third_party/webxr_test_pages/webxr-samples/teleportation.html
@@ -83,14 +83,9 @@
       let xrImmersiveRefSpaceOffset = null;
       let xrNonImmersiveRefSpaceBase = null;
       let xrNonImmersiveRefSpaceOffset = null;
-      let xrViewerSpace = null;
+      let xrViewerSpaces = {};
 
-      // For inline sessions, use an estimated height of 1.5 meters.
-      let trackingSpaceOriginInWorldSpace = {
-        'immersive-vr' : vec3.create(),
-        'inline' : vec3.fromValues(0, 1.5, 0)
-      };
-
+      let trackingSpaceOriginInWorldSpace = vec3.create();
       let trackingSpaceHeadingDegrees = 0;  // around +Y axis, positive angles rotate left
       let floorSize = 10;
       let floorPosition = [0, -floorSize / 2 + 0.01, 0];
@@ -232,13 +227,19 @@
         });
 
         session.requestReferenceSpace('local-floor').then((refSpace) => {
+          console.log("created local-floor reference space for " + session.mode + " session");
           return refSpace;
         }, (e) => {
           if (!session.mode.startsWith('immersive')) {
             // If we're in inline mode, our underlying platform may not support
-            // the stationary reference space, but a viewer space is guaranteed.
-            console.log("falling back to viewer reference space");
-            return session.requestReferenceSpace('viewer');
+            // the local-floor reference space, but a viewer space is guaranteed.
+            console.log("falling back to viewer reference space for " + session.mode + "session");
+            return session.requestReferenceSpace('viewer').then((viewerRefSpace) => {
+              // Adjust the viewer space for an estimated user height. Otherwise,
+              // the poses queried with this space will originate from the floor.
+              let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0});
+              return viewerRefSpace.getOffsetReferenceSpace(xform);
+            });
           } else {
             throw e;
           }
@@ -255,7 +256,7 @@
             // origin, which does not change for the duration of the session.
             // This is used when updating the player position and/or orientation
             // in onSelect.
-            xrViewerSpace = viewerSpace;
+            xrViewerSpaces[session.mode] = viewerSpace;
             session.requestAnimationFrame(onXRFrame);
           });
         });
@@ -281,7 +282,7 @@
         let session = ev.frame.session;
         let refSpace = getRefSpace(session, true);
 
-        let headPose = ev.frame.getPose(xrViewerSpace, refSpace);
+        let headPose = ev.frame.getPose(xrViewerSpaces[session.mode], refSpace);
         if (!headPose) return;
 
         // Get the position offset in world space from the tracking space origin
@@ -291,7 +292,7 @@
         vec3.sub(
           playerOffsetInWorldSpaceOld,
           playerInWorldSpaceOld,
-          trackingSpaceOriginInWorldSpace[session.mode]);
+          trackingSpaceOriginInWorldSpace);
 
         // based on https://github.com/immersive-web/webxr/blob/master/input-explainer.md#targeting-ray-pose
         let inputSourcePose = ev.frame.getPose(ev.inputSource.targetRaySpace, refSpace);
@@ -353,7 +354,7 @@
 
         // Update tracking space origin so that origin + playerOffset == player location in world space
         vec3.sub(
-          trackingSpaceOriginInWorldSpace[session.mode],
+          trackingSpaceOriginInWorldSpace,
           playerInWorldSpaceNew,
           playerOffsetInWorldSpaceNew);
 
@@ -364,7 +365,7 @@
         // Compute the origin offset based on player position/orientation.
         quat.identity(invOrientation);
         quat.rotateY(invOrientation, invOrientation, -trackingSpaceHeadingDegrees * Math.PI / 180);
-        vec3.negate(invPosition, trackingSpaceOriginInWorldSpace[session.mode]);
+        vec3.negate(invPosition, trackingSpaceOriginInWorldSpace);
         vec3.transformQuat(invPosition, invPosition, invOrientation);
         let xform = new XRRigidTransform(
           {x: invPosition[0], y: invPosition[1], z: invPosition[2]},
@@ -376,7 +377,7 @@
         let refSpace = getRefSpace(session, false).getOffsetReferenceSpace(xform);
         setRefSpace(session, refSpace, true);
 
-        console.log('teleport to', trackingSpaceOriginInWorldSpace[session.mode]);
+        console.log('teleport to', trackingSpaceOriginInWorldSpace);
       }
 
       function onEndSession(session) {
diff --git a/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html b/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html
index 595c662..f609781 100644
--- a/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html
+++ b/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html
@@ -256,8 +256,13 @@
         }, (e) => {
           if (!session.mode.startsWith('immersive')) {
             // If we're in inline mode, our underlying platform may not support
-            // the stationary reference space, but an identity space is guaranteed.
-            return session.requestReferenceSpace('viewer');
+            // the local-floor reference space, but a viewer space is guaranteed.
+            return session.requestReferenceSpace('viewer').then((viewerRefSpace) => {
+              // Adjust the viewer space for an estimated user height. Otherwise,
+              // the poses queried with this space will originate from the floor.
+              let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0});
+              return viewerRefSpace.getOffsetReferenceSpace(xform);
+            });
           } else {
             throw e;
           }
diff --git a/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html b/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html
index 696c581..8f49f61 100644
--- a/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html
+++ b/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html
@@ -58,6 +58,7 @@
       import {Gltf2Node} from '../js/cottontail/src/nodes/gltf2.js';
       import {QueryArgs} from '../js/cottontail/src/util/query-args.js';
       import {FallbackHelper} from '../js/cottontail/src/util/fallback-helper.js';
+      import {vec3} from '../js/cottontail/src/math/gl-matrix.js';
 
       // If requested, initialize the WebXR polyfill
       if (QueryArgs.getBool('allowPolyfill', false)) {
@@ -149,8 +150,13 @@
         }, (e) => {
           if (!session.mode.startsWith('immersive')) {
             // If we're in inline mode, our underlying platform may not support
-            // the stationary reference space, but an identity space is guaranteed.
-            return session.requestReferenceSpace('viewer');
+            // the local-floor reference space, but a viewer space is guaranteed.
+            return session.requestReferenceSpace('viewer').then((viewerRefSpace) => {
+              // Adjust the viewer space for an estimated user height. Otherwise,
+              // the poses queried with this space will originate from the floor.
+              let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0});
+              return viewerRefSpace.getOffsetReferenceSpace(xform);
+            });
           } else {
             throw e;
           }
diff --git a/tools/chrome_proxy/webdriver/lofi.py b/tools/chrome_proxy/webdriver/lofi.py
deleted file mode 100644
index 0d0570e..0000000
--- a/tools/chrome_proxy/webdriver/lofi.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import common
-from common import TestDriver
-from common import IntegrationTest
-from decorators import ChromeVersionEqualOrAfterM
-
-class LoFi(IntegrationTest):
-
-  @ChromeVersionEqualOrAfterM(75)
-  def testServerLoFiWithForcingFlag(self):
-    with TestDriver() as test_driver:
-      test_driver.AddChromeArg('--enable-spdy-proxy-auth')
-      test_driver.EnableChromeFeature('Previews')
-      test_driver.EnableChromeFeature('DataReductionProxyDecidesTransform')
-      test_driver.AddChromeArg('--force-effective-connection-type=Slow-2G')
-      test_driver.SetExperiment('force_page_policies_empty_image')
-
-      test_driver.LoadURL('http://check.googlezip.net/static/index.html')
-
-      responses = test_driver.GetHTTPResponses()
-      self.assertNotEqual(len(responses), 0)
-      for response in responses:
-        if response.url.endswith('html'):
-          self.assertIn('empty-image',
-            response.response_headers['chrome-proxy'])
-
-  @ChromeVersionEqualOrAfterM(74)
-  def testNoServerLoFiByDefault(self):
-    with TestDriver() as test_driver:
-      test_driver.AddChromeArg('--enable-spdy-proxy-auth')
-      test_driver.EnableChromeFeature('Previews')
-      test_driver.EnableChromeFeature('DataReductionProxyDecidesTransform')
-      test_driver.AddChromeArg('--force-effective-connection-type=Slow-2G')
-
-      test_driver.LoadURL('http://check.googlezip.net/static/index.html')
-
-      responses = test_driver.GetHTTPResponses()
-      self.assertNotEqual(len(responses), 0)
-      for response in responses:
-        if response.url.endswith('html'):
-          self.assertNotIn('empty-image',
-            response.response_headers['chrome-proxy'])
-
-if __name__ == '__main__':
-  IntegrationTest.RunAllTests()
diff --git a/tools/chrome_proxy/webdriver/subresource_redirect.py b/tools/chrome_proxy/webdriver/subresource_redirect.py
index 9051184..4fe16307 100644
--- a/tools/chrome_proxy/webdriver/subresource_redirect.py
+++ b/tools/chrome_proxy/webdriver/subresource_redirect.py
@@ -12,6 +12,8 @@
 
 class SubresourceRedirect(IntegrationTest):
 
+  # Verifies that image subresources on a page have been returned
+  # from the compression server.
   @ChromeVersionEqualOrAfterM(77)
   def testCompressImage(self):
     with TestDriver() as test_driver:
@@ -31,8 +33,36 @@
 
       self.assertEqual(5, image_responses)
 
-  # TODO(harrisonsean): Add compression server bypass test
+  # Verifies that when the image compression server serves a
+  # redirect, then Chrome fetches the image directly.
+  @ChromeVersionEqualOrAfterM(77)
+  def testOnRedirectImage(self):
+    with TestDriver() as test_driver:
+      test_driver.AddChromeArg('--enable-subresource-redirect')
+      # Image compression server returns a 307 for all images on this webpage.
+      test_driver.LoadURL(
+        'https://testsafebrowsing.appspot.com/s/image_small.html')
 
+      server_bypass = 0
+      image_responses = 0
+
+      for response in test_driver.GetHTTPResponses():
+        content_type = ''
+        if 'content-type' in response.response_headers:
+          content_type = response.response_headers['content-type']
+        if ('image/' in content_type
+          and re.match(LITEPAGES_REGEXP, response.url)
+          and 200 == response.status):
+          image_responses += 1
+        if ('https://testsafebrowsing.appspot.com/s/bad_assets/small.png'
+          == response.url and 200 == response.status):
+          server_bypass += 1
+
+      self.assertEqual(1, server_bypass)
+      self.assertEqual(0, image_responses)
+
+  # Verifies that non-image subresources aren't redirected to the
+  # compression server.
   @ChromeVersionEqualOrAfterM(77)
   def testNoCompressNonImage(self):
     with TestDriver() as test_driver:
@@ -52,6 +82,8 @@
 
       self.assertEqual(0, image_responses)
 
+  # Verifies that non-secure connections aren't redirected to the
+  # compression server.
   @ChromeVersionEqualOrAfterM(77)
   def testNoCompressNonHTTPS(self):
     with TestDriver() as test_driver:
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 8d2d58a..0a42f6e 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -371,13 +371,10 @@
       'Android FYI Release (NVIDIA Shield TV)': 'gpu_tests_android_release_trybot_arm64',
       'Android FYI Release (Pixel 2)': 'gpu_tests_android_release_trybot',
       'Android FYI 32 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot',
-      'Android FYI 32 Vk Release (Pixel XL)': 'gpu_tests_android_vulkan_release_trybot',
       'Android FYI 64 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot_arm64',
-      'Android FYI 64 Vk Release (Pixel XL)': 'gpu_tests_android_vulkan_release_trybot_arm64',
       'Android FYI 32 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot',
-      'Android FYI 32 dEQP Vk Release (Pixel XL)': 'deqp_android_vulkan_release_trybot',
       'Android FYI 64 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot_arm64',
-      'Android FYI 64 dEQP Vk Release (Pixel XL)': 'deqp_android_vulkan_release_trybot_arm64',
+      'Android FYI SkiaRenderer Vulkan (Pixel 2)': 'gpu_tests_android_release_trybot',
       'GPU FYI Linux Builder': 'gpu_fyi_tests_release_trybot',
       'GPU FYI Linux Ozone Builder': 'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot',
       'GPU FYI Linux Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
@@ -652,10 +649,6 @@
       'gpu-fyi-try-android-p-pixel-2-32-deqp-vk': 'deqp_android_vulkan_release_trybot',
       'gpu-fyi-try-android-p-pixel-2-64-vk': 'gpu_tests_android_vulkan_release_trybot_arm64',
       'gpu-fyi-try-android-p-pixel-2-64-deqp-vk': 'deqp_android_vulkan_release_trybot_arm64',
-      'gpu-fyi-try-android-p-pixel-xl-32-vk': 'gpu_tests_android_vulkan_release_trybot',
-      'gpu-fyi-try-android-p-pixel-xl-32-deqp-vk': 'deqp_android_vulkan_release_trybot',
-      'gpu-fyi-try-android-p-pixel-xl-64-vk': 'gpu_tests_android_vulkan_release_trybot_arm64',
-      'gpu-fyi-try-android-p-pixel-xl-64-deqp-vk': 'deqp_android_vulkan_release_trybot_arm64',
       'linux_android_dbg_ng': 'android_debug_trybot',
       'try-nougat-phone-tester': 'android_debug_trybot_arm64',
     },
@@ -750,7 +743,6 @@
       'linux_chromium_compile_dbg_32_ng': 'debug_trybot_x86',
       'linux_chromium_compile_dbg_ng': 'debug_trybot',
       'linux_chromium_compile_rel_ng': 'release_trybot',
-      'linux_chromium_dbg_32_ng': 'gpu_tests_debug_trybot_x86',
       'linux_chromium_dbg_ng': 'gpu_tests_debug_trybot',
 
       # This is intentionally a release_bot and not a release_trybot;
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index fd88da4c..b999799f 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -4645,8 +4645,13 @@
 </action>
 
 <action name="CreateHostedApp">
-  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
-  <description>Please enter the description of this user action.</description>
+  <obsolete>
+    Deprecated as of 06/2019 (replaced by InstallWebAppFromMenu and
+    CreateShortcut).
+  </obsolete>
+  <owner>alancutter@chromium.org</owner>
+  <owner>raymes@chromium.org</owner>
+  <description>The sum of CreateShortcut and InstallWebAppFromMenu</description>
 </action>
 
 <action name="CreateLink">
@@ -4660,9 +4665,12 @@
 </action>
 
 <action name="CreateShortcut">
-  <obsolete>Deprecated as of 04/2017 (replaced by CreateHostedApp).</obsolete>
-  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
-  <description>Please enter the description of this user action.</description>
+  <owner>alancutter@chromium.org</owner>
+  <owner>raymes@chromium.org</owner>
+  <description>
+    Shortcut app creation triggered via &quot;Menu &gt; More Tools &gt; Create
+    Shortcut...&quot;
+  </description>
 </action>
 
 <action name="CredentialManager_AccountChooser_Accepted">
@@ -7713,6 +7721,14 @@
   <description>Please enter the description of this user action.</description>
 </action>
 
+<action name="InstallWebAppFromMenu">
+  <owner>alancutter@chromium.org</owner>
+  <owner>raymes@chromium.org</owner>
+  <description>
+    PWA install triggered via &quot;Menu &gt; Install App name...&quot;
+  </description>
+</action>
+
 <action name="InstantExtended.MostVisitedClicked">
   <obsolete>Deprecated as of 2/2016</obsolete>
   <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
@@ -11528,6 +11544,16 @@
   </description>
 </action>
 
+<action name="MobileExitStackView">
+  <owner>yusufo@chromium.org</owner>
+  <owner>wychen@chromium.org</owner>
+  <description>
+    User exited the Android tab switcher due to one of the listed actions,
+    opened a new normal/incognito tab, selected an existed tab, or pressed
+    system back button.
+  </description>
+</action>
+
 <action name="MobileExternalNavigationDispatched">
   <owner>thildebr@chromium.org</owner>
   <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index a04a8324..eebe868 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -6241,6 +6241,11 @@
   <int value="1" label="Present"/>
 </enum>
 
+<enum name="BooleanProcessReuseDisallowed">
+  <int value="0" label="Process reuse allowed"/>
+  <int value="1" label="Process reuse disallowed"/>
+</enum>
+
 <enum name="BooleanProfileSignedIn">
   <int value="0" label="Profile was not Signed In"/>
   <int value="1" label="Profile was Signed In"/>
@@ -27820,6 +27825,11 @@
   <int value="67" label="User Disabled WIN10_RS5"/>
   <int value="68" label="Fallback to Software WIN10_RS5"/>
   <int value="69" label="Status Unknown WIN10_RS5"/>
+  <int value="70" label="Enabled WIN10_19H1"/>
+  <int value="71" label="Blacklisted WIN10_19H1"/>
+  <int value="72" label="User Disabled WIN10_19H1"/>
+  <int value="73" label="Fallback to Software WIN10_19H1"/>
+  <int value="74" label="Status Unknown WIN10_19H1"/>
 </enum>
 
 <enum name="GPUBlacklistTestResultPerEntry">
@@ -61501,6 +61511,7 @@
   <int value="11" label="Windows 10 RS3"/>
   <int value="12" label="Windows 10 RS4"/>
   <int value="13" label="Windows 10 RS5"/>
+  <int value="14" label="Windows 10 19H1"/>
 </enum>
 
 <enum name="WindowType">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 2d36823..65ffe90 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -2387,9 +2387,9 @@
 </histogram>
 
 <histogram name="Android.Language.WrongLanguageAfterResume" enum="Boolean"
-    expires_after="2019-08-01">
+    expires_after="2020-01-01">
   <owner>tiborg@chromium.org</owner>
-  <owner>digit@chromium.org</owner>
+  <owner>heamy@chromium.org</owner>
   <summary>
     Reports whether Chrome was started in a language other than the system
     language but we support the system language. That can happen if the user
@@ -15297,6 +15297,9 @@
 </histogram>
 
 <histogram name="Bookmarks.LaunchDepth" expires_after="M77">
+  <obsolete>
+    Deprecated as of 6/2019. This histogram is no longer necessary.
+  </obsolete>
   <owner>yfriedman@chromium.org</owner>
   <summary>
     Logs the depth of the bookmark in the bookmark tree hierarchy every time a
@@ -29225,7 +29228,9 @@
 </histogram>
 
 <histogram name="Download.ContentType.Image" enum="DownloadImageType"
-    expires_after="M77">
+    expires_after="never">
+<!-- expires-never: Monitors download system health. -->
+
   <owner>dtrainor@chromium.org</owner>
   <summary>Types of images that are downloaded.</summary>
 </histogram>
@@ -29236,7 +29241,9 @@
 </histogram>
 
 <histogram name="Download.ContentType.Video" enum="DownloadVideoType"
-    expires_after="M77">
+    expires_after="never">
+<!-- expires-never: Monitors download system health. -->
+
   <owner>xingliu@chromium.org</owner>
   <summary>Types of video files that are downloaded.</summary>
 </histogram>
@@ -44837,7 +44844,10 @@
 </histogram>
 
 <histogram name="GPU.BlockStatusForClient3DAPIs"
-    enum="BlockStatusForClient3DAPIs" expires_after="M77">
+    enum="BlockStatusForClient3DAPIs">
+  <obsolete>
+    Removed in M77.
+  </obsolete>
   <owner>kbr@chromium.org</owner>
   <summary>
     Indicates whether WebGL / Pepper3D were blocked, and if so, for all domains,
@@ -59311,6 +59321,9 @@
 
 <histogram name="Memory.Experimental.CompressedPagesPerSecond" units="pages/s"
     expires_after="M77">
+  <obsolete>
+    Deprecated June 2019.
+  </obsolete>
   <owner>bashi@chromium.org</owner>
   <summary>
     The number of pages compressed per second. Recorded every 60 seconds. Only
@@ -59359,6 +59372,9 @@
 
 <histogram name="Memory.Experimental.DecompressedPagesPerSecond"
     units="pages/s" expires_after="M77">
+  <obsolete>
+    Deprecated June 2019.
+  </obsolete>
   <owner>bashi@chromium.org</owner>
   <summary>
     The number of pages decompressed per second. Recorded every 60 seconds. Only
@@ -59960,6 +59976,9 @@
 
 <histogram name="Memory.Experimental.SwapInPerSecond" units="swaps/s"
     expires_after="M77">
+  <obsolete>
+    Deprecated June 2019.
+  </obsolete>
   <owner>bashi@chromium.org</owner>
   <summary>
     The number of swap-ins per second. Recorded every 60 seconds.
@@ -59967,6 +59986,9 @@
 </histogram>
 
 <histogram name="Memory.Experimental.SwapOutPerSecond" units="swaps/s">
+  <obsolete>
+    Deprecated June 2019.
+  </obsolete>
   <owner>bashi@chromium.org</owner>
   <summary>
     The number of swap-outs per second. Recorded every 60 seconds.
@@ -62320,7 +62342,7 @@
 </histogram>
 
 <histogram name="MobileDownload.Location.Dialog.Type"
-    enum="DownloadLocationDialogType" expires_after="M77">
+    enum="DownloadLocationDialogType">
   <owner>xingliu@chromium.org</owner>
   <summary>
     Records the download location dialog type when the dialog is shown to the
@@ -62329,7 +62351,7 @@
 </histogram>
 
 <histogram name="MobileDownload.Location.DirectoryType"
-    enum="DownloadLocationDirectoryType" expires_after="2019-09-24">
+    enum="DownloadLocationDirectoryType">
   <owner>dtrainor@chromium.org</owner>
   <owner>qinmin@chromium.org</owner>
   <owner>xingliu@chromium.org</owner>
@@ -62347,7 +62369,7 @@
 </histogram>
 
 <histogram name="MobileDownload.Location.Setting.DirectoryType"
-    enum="DownloadLocationDirectoryType" expires_after="M77">
+    enum="DownloadLocationDirectoryType">
   <owner>xingliu@chromium.org</owner>
   <summary>
     Records the directory type when the user selects the download directory
@@ -88138,6 +88160,9 @@
 
 <histogram name="PageLoad.Clients.MultiTabLoading.NumTabsWithInflightLoad"
     units="tabs" expires_after="M77">
+  <obsolete>
+    Removed June 2019.
+  </obsolete>
   <owner>ksakamoto@chromium.org</owner>
   <summary>
     Records the number of tabs with inflight loading activities. Recorded when a
@@ -93556,6 +93581,9 @@
 </histogram>
 
 <histogram name="PDF.IsFontSubstituted" enum="Boolean" expires_after="M77">
+  <obsolete>
+    Removed in June 2019.
+  </obsolete>
   <owner>npm@chromium.org</owner>
   <summary>
     Measures if PDFs opened in the PDF viewer require fonts to be substituted.
@@ -101444,6 +101472,17 @@
   </summary>
 </histogram>
 
+<histogram name="Previews.ServerLitePage.PreresolvedToPreviewServer"
+    enum="Boolean" expires_after="M80">
+  <owner>robertogden@chromium.org</owner>
+  <owner>tbansal@chromium.org</owner>
+  <summary>
+    Recorded whenever lite page preview preresolver preresolves a URL. True is
+    recorded when the URL that is preresolved is for the lite pages previews
+    server, False is when the origin is preresolved.
+  </summary>
+</histogram>
+
 <histogram name="Previews.ServerLitePage.ReportedNavigationRestartPenalty"
     units="ms" expires_after="2019-01-25">
   <obsolete>
@@ -101475,8 +101514,8 @@
   <owner>robertogden@chromium.org</owner>
   <owner>tbansal@chromium.org</owner>
   <summary>
-    Recorded whenever the litepage host preresolve state is changed. True is
-    recorded when preresolving starts and False is recorded when it stops.
+    Recorded whenever the lite page preview preresolver state is changed. True
+    is recorded when preresolving starts and False is recorded when it stops.
   </summary>
 </histogram>
 
@@ -103577,6 +103616,9 @@
 </histogram>
 
 <histogram name="Quota.DaysSinceLastAccess" units="days" expires_after="M77">
+  <obsolete>
+    Removed June 2019
+  </obsolete>
   <owner>jarrydg@chromium.org</owner>
   <summary>
     The number of days since an origin's data was last accessed. Logged upon
@@ -103841,6 +103883,9 @@
 </histogram>
 
 <histogram name="Quota.TimeToGetSettings" units="ms" expires_after="M77">
+  <obsolete>
+    Removed June 2019
+  </obsolete>
   <owner>jarrydg@chromium.org</owner>
   <summary>
     Time spent querying the embedder for the settings values. Logged at
@@ -122947,6 +122992,20 @@
   </summary>
 </histogram>
 
+<histogram name="SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse"
+    enum="BooleanProcessReuseDisallowed" expires_after="M82">
+  <owner>alexmos@chromium.org</owner>
+  <owner>creis@chromium.org</owner>
+  <owner>site-isolation-dev@chromium.org</owner>
+  <summary>
+    Whether or not the RenderProcessHost is disqualified from process reuse
+    because it has a pending navigation to a URL for which SiteInstance does not
+    assign a site URL, such as chrome-native://newtab. This is intended to
+    measure how often this scenario results in spinning up extra processes.
+    Measured once per IsSuitableHost() invocation.
+  </summary>
+</histogram>
+
 <histogram name="SiteIsolation.ProxyCount">
   <owner>creis@chromium.org</owner>
   <owner>lukasza@chromium.org</owner>
@@ -140141,6 +140200,9 @@
 </histogram>
 
 <histogram name="Variations.SeedLoadSuccessTime" units="ms" expires_after="M77">
+  <obsolete>
+    Deprecated 2019-06. See results on https://crbug.com/936172#c8.
+  </obsolete>
   <owner>paulmiller@chromium.org</owner>
   <owner>changwan@chromium.org</owner>
   <summary>
@@ -140152,6 +140214,9 @@
 
 <histogram name="Variations.SeedLoadWouldBlockTime" units="ms"
     expires_after="M75">
+  <obsolete>
+    Deprecated 2019-06. See results on https://crbug.com/936172#c8.
+  </obsolete>
   <owner>paulmiller@chromium.org</owner>
   <owner>changwan@chromium.org</owner>
   <summary>
@@ -140623,8 +140688,9 @@
 </histogram>
 
 <histogram base="true" name="VR.Component.Assets.DurationUntilReady.OnEnter"
-    units="ms">
-  <owner>tiborg@chromium.org</owner>
+    units="ms" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>
     Duration from entering a VR mode until the VR assets component is ready to
     use.
@@ -140632,22 +140698,25 @@
 </histogram>
 
 <histogram name="VR.Component.Assets.DurationUntilReady.OnRegisterComponent"
-    units="ms">
-  <owner>tiborg@chromium.org</owner>
+    units="ms" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>
     Duration from registering VR assets component until it is ready to use.
   </summary>
 </histogram>
 
 <histogram base="true" name="VR.Component.Assets.Status.OnEnter"
-    enum="VRComponentStatus">
-  <owner>tiborg@chromium.org</owner>
+    enum="VRComponentStatus" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>Status of the VR assets component when entering a VR mode.</summary>
 </histogram>
 
 <histogram name="VR.Component.Assets.VersionAndStatus.OnLoad"
-    enum="VRAssetsLoadStatus" expires_after="M77">
-  <owner>tiborg@chromium.org</owner>
+    enum="VRAssetsLoadStatus" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>
     The component version and status of loading the VR assets. The value is
     encoded as (XXX)(YYY)(SSS) where XXX is the major component version, YYY the
@@ -140657,8 +140726,9 @@
 </histogram>
 
 <histogram name="VR.Component.Assets.VersionAndStatus.OnUpdate"
-    enum="VRAssetsComponentUpdateStatus" expires_after="M77">
-  <owner>tiborg@chromium.org</owner>
+    enum="VRAssetsComponentUpdateStatus" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>
     The version and update status of the VR assets component. The value is
     encoded as (XXX)(YYY)(SSS) where XXX is the major version, YYY the minor
@@ -140682,14 +140752,16 @@
 </histogram>
 
 <histogram base="true" name="VR.NetworkConnectionType.OnEnter"
-    enum="NetworkConnectionType">
-  <owner>tiborg@chromium.org</owner>
+    enum="NetworkConnectionType" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>Network connection type when entering a VR mode.</summary>
 </histogram>
 
 <histogram name="VR.NetworkConnectionType.OnRegisterComponent"
-    enum="NetworkConnectionType" expires_after="M77">
-  <owner>tiborg@chromium.org</owner>
+    enum="NetworkConnectionType" expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>
     Network connection type when registering the VR component(s).
   </summary>
@@ -140765,8 +140837,10 @@
   </summary>
 </histogram>
 
-<histogram name="VRRuntimeVersion" units="normalized version">
-  <owner>tiborg@chromium.org</owner>
+<histogram name="VRRuntimeVersion" units="normalized version"
+    expires_after="M78">
+  <owner>cassew@chromium.org</owner>
+  <owner>samdrazin@chromium.org</owner>
   <summary>The version of the runtime being used for VR.</summary>
 </histogram>
 
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h
index 2a4c2f07..6403ff0 100644
--- a/ui/base/clipboard/clipboard.h
+++ b/ui/base/clipboard/clipboard.h
@@ -36,16 +36,20 @@
 
 class COMPONENT_EXPORT(BASE_CLIPBOARD) Clipboard : public base::ThreadChecker {
  public:
-  static bool IsSupportedClipboardType(int32_t type) {
+  static bool IsSupportedClipboardType(ClipboardType type) {
     switch (type) {
-      case CLIPBOARD_TYPE_COPY_PASTE:
+      case ClipboardType::kCopyPaste:
         return true;
+      case ClipboardType::kSelection:
 #if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
-      case CLIPBOARD_TYPE_SELECTION:
         return true;
+#else
+        return false;
 #endif
+      case ClipboardType::kDrag:
+        return false;
     }
-    return false;
+    NOTREACHED();
   }
 
   // Sets the list of threads that are allowed to access the clipboard.
diff --git a/ui/base/clipboard/clipboard_android.cc b/ui/base/clipboard/clipboard_android.cc
index b3f20e59..557cab5 100644
--- a/ui/base/clipboard/clipboard_android.cc
+++ b/ui/base/clipboard/clipboard_android.cc
@@ -295,13 +295,13 @@
 bool ClipboardAndroid::IsFormatAvailable(const ClipboardFormatType& format,
                                          ClipboardType type) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   return g_map.Get().HasFormat(format.ToString());
 }
 
 void ClipboardAndroid::Clear(ClipboardType type) {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   g_map.Get().Clear();
 }
 
@@ -309,7 +309,7 @@
                                           std::vector<base::string16>* types,
                                           bool* contains_filenames) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   if (!types || !contains_filenames) {
     NOTREACHED();
@@ -337,7 +337,7 @@
 void ClipboardAndroid::ReadText(ClipboardType type,
                                 base::string16* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   std::string utf8;
   ReadAsciiText(type, &utf8);
   *result = base::UTF8ToUTF16(utf8);
@@ -346,7 +346,7 @@
 void ClipboardAndroid::ReadAsciiText(ClipboardType type,
                                      std::string* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   *result = g_map.Get().Get(ClipboardFormatType::GetPlainTextType().ToString());
 }
 
@@ -357,7 +357,7 @@
                                 uint32_t* fragment_start,
                                 uint32_t* fragment_end) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   if (src_url)
     src_url->clear();
 
@@ -376,7 +376,7 @@
 
 SkBitmap ClipboardAndroid::ReadImage(ClipboardType type) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   std::string input =
       g_map.Get().Get(ClipboardFormatType::GetBitmapType().ToString());
 
@@ -428,7 +428,7 @@
 void ClipboardAndroid::WriteObjects(ClipboardType type,
                                     const ObjectMap& objects) {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   g_map.Get().Clear();
 
   for (const auto& object : objects)
diff --git a/ui/base/clipboard/clipboard_aurax11.cc b/ui/base/clipboard/clipboard_aurax11.cc
index 50426b06..6d4a46c 100644
--- a/ui/base/clipboard/clipboard_aurax11.cc
+++ b/ui/base/clipboard/clipboard_aurax11.cc
@@ -182,7 +182,7 @@
   ::Atom LookupSelectionForClipboardType(ClipboardType type) const;
 
   // Returns the X11 type that we pass to various XSelection functions for
-  // CLIPBOARD_TYPE_COPY_PASTE.
+  // ClipboardType::kCopyPaste.
   ::Atom GetCopyPasteSelection() const;
 
   // Finds the SelectionFormatMap for the incoming selection atom.
@@ -295,7 +295,7 @@
 
 ::Atom ClipboardAuraX11::AuraX11Details::LookupSelectionForClipboardType(
     ClipboardType type) const {
-  if (type == CLIPBOARD_TYPE_COPY_PASTE)
+  if (type == ClipboardType::kCopyPaste)
     return GetCopyPasteSelection();
 
   return XA_PRIMARY;
@@ -327,7 +327,7 @@
 
 void ClipboardAuraX11::AuraX11Details::TakeOwnershipOfSelection(
     ClipboardType type) {
-  if (type == CLIPBOARD_TYPE_COPY_PASTE)
+  if (type == ClipboardType::kCopyPaste)
     return clipboard_owner_.TakeOwnershipOfSelection(clipboard_data_);
   else
     return primary_owner_.TakeOwnershipOfSelection(clipboard_data_);
@@ -419,7 +419,7 @@
 }
 
 void ClipboardAuraX11::AuraX11Details::Clear(ClipboardType type) {
-  if (type == CLIPBOARD_TYPE_COPY_PASTE)
+  if (type == ClipboardType::kCopyPaste)
     clipboard_owner_.ClearSelectionOwner();
   else
     primary_owner_.ClearSelectionOwner();
@@ -528,7 +528,7 @@
 
 uint64_t ClipboardAuraX11::GetSequenceNumber(ClipboardType type) const {
   DCHECK(CalledOnValidThread());
-  if (type == CLIPBOARD_TYPE_COPY_PASTE)
+  if (type == ClipboardType::kCopyPaste)
     return SelectionChangeObserver::GetInstance()->clipboard_sequence_number();
   else
     return SelectionChangeObserver::GetInstance()->primary_sequence_number();
@@ -680,7 +680,7 @@
   DCHECK(CalledOnValidThread());
 
   SelectionData data(aurax11_details_->RequestAndWaitForTypes(
-      CLIPBOARD_TYPE_COPY_PASTE, aurax11_details_->GetAtomsForFormat(format)));
+      ClipboardType::kCopyPaste, aurax11_details_->GetAtomsForFormat(format)));
   if (data.IsValid())
     data.AssignTo(result);
 }
@@ -695,7 +695,7 @@
     DispatchObject(static_cast<ObjectType>(object.first), object.second);
   aurax11_details_->TakeOwnershipOfSelection(type);
 
-  if (type == CLIPBOARD_TYPE_COPY_PASTE) {
+  if (type == ClipboardType::kCopyPaste) {
     auto text_iter = objects.find(CBF_TEXT);
     if (text_iter != objects.end()) {
       aurax11_details_->CreateNewClipboardData();
@@ -705,7 +705,7 @@
         if (char_vector.size())
           WriteText(&char_vector.front(), char_vector.size());
       }
-      aurax11_details_->TakeOwnershipOfSelection(CLIPBOARD_TYPE_SELECTION);
+      aurax11_details_->TakeOwnershipOfSelection(ClipboardType::kSelection);
     }
   }
 }
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index 0a1ae03..dffa16e 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -62,7 +62,7 @@
 
 uint64_t ClipboardMac::GetSequenceNumber(ClipboardType type) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   NSPasteboard* pb = GetPasteboard();
   return [pb changeCount];
@@ -71,7 +71,7 @@
 bool ClipboardMac::IsFormatAvailable(const ClipboardFormatType& format,
                                      ClipboardType type) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   NSPasteboard* pb = GetPasteboard();
   NSArray* types = [pb types];
@@ -87,7 +87,7 @@
 
 void ClipboardMac::Clear(ClipboardType type) {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   NSPasteboard* pb = GetPasteboard();
   [pb declareTypes:@[] owner:nil];
@@ -119,7 +119,7 @@
 
 void ClipboardMac::ReadText(ClipboardType type, base::string16* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   NSPasteboard* pb = GetPasteboard();
   NSString* contents = [pb stringForType:NSPasteboardTypeString];
 
@@ -129,7 +129,7 @@
 void ClipboardMac::ReadAsciiText(ClipboardType type,
                                  std::string* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   NSPasteboard* pb = GetPasteboard();
   NSString* contents = [pb stringForType:NSPasteboardTypeString];
 
@@ -145,7 +145,7 @@
                             uint32_t* fragment_start,
                             uint32_t* fragment_end) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   // TODO(avi): src_url?
   markup->clear();
@@ -172,14 +172,14 @@
 
 void ClipboardMac::ReadRTF(ClipboardType type, std::string* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   return ReadData(ClipboardFormatType::GetRtfType(), result);
 }
 
 SkBitmap ClipboardMac::ReadImage(ClipboardType type, NSPasteboard* pb) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   // If the pasteboard's image data is not to its liking, the guts of NSImage
   // may throw, and that exception will leak. Prevent a crash in that case;
@@ -234,7 +234,7 @@
                                   const base::string16& type,
                                   base::string16* result) const {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(clipboard_type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(clipboard_type, ClipboardType::kCopyPaste);
 
   NSPasteboard* pb = GetPasteboard();
   if ([[pb types] containsObject:kWebCustomDataPboardType]) {
@@ -273,7 +273,7 @@
 
 void ClipboardMac::WriteObjects(ClipboardType type, const ObjectMap& objects) {
   DCHECK(CalledOnValidThread());
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   NSPasteboard* pb = GetPasteboard();
   [pb declareTypes:@[] owner:nil];
diff --git a/ui/base/clipboard/clipboard_mac_unittest.mm b/ui/base/clipboard/clipboard_mac_unittest.mm
index fdd0bde..ed7dddc4 100644
--- a/ui/base/clipboard/clipboard_mac_unittest.mm
+++ b/ui/base/clipboard/clipboard_mac_unittest.mm
@@ -79,7 +79,7 @@
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard);
 
-  SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste,
                                              pasteboard->get());
   EXPECT_EQ(2 * width, bitmap.width());
   EXPECT_EQ(2 * height, bitmap.height());
@@ -95,7 +95,7 @@
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard);
 
-  SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste,
                                              pasteboard->get());
   EXPECT_EQ(width, bitmap.width());
   EXPECT_EQ(height, bitmap.height());
@@ -109,7 +109,7 @@
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard);
 
-  SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste,
                                              pasteboard->get());
   EXPECT_EQ(0, bitmap.width());
   EXPECT_EQ(0, bitmap.height());
@@ -132,7 +132,7 @@
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard);
 
-  SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste,
                                              pasteboard->get());
   EXPECT_EQ(width, bitmap.width());
   EXPECT_EQ(height, bitmap.height());
diff --git a/ui/base/clipboard/clipboard_ozone.cc b/ui/base/clipboard/clipboard_ozone.cc
index 439e141..f437d249 100644
--- a/ui/base/clipboard/clipboard_ozone.cc
+++ b/ui/base/clipboard/clipboard_ozone.cc
@@ -52,7 +52,7 @@
   base::span<uint8_t> ReadClipboardDataAndWait(ClipboardType type,
                                                const std::string& mime_type) {
     // TODO(tonikitoo): add selection support.
-    if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION)
+    if (type == ClipboardType::kSelection)
       return base::span<uint8_t>();
 
     // We can use a fastpath if we are the owner of the selection.
@@ -104,7 +104,7 @@
   void ClearOfferedData() { offered_data_.clear(); }
 
   uint64_t GetSequenceNumber(ClipboardType type) {
-    if (type == ClipboardType::CLIPBOARD_TYPE_COPY_PASTE)
+    if (type == ClipboardType::kCopyPaste)
       return clipboard_sequence_number_;
     // TODO(tonikitoo): add sequence number for the selection clipboard type.
     return 0;
@@ -273,7 +273,7 @@
                                        ClipboardType type) const {
   DCHECK(CalledOnValidThread());
   // TODO(tonikitoo): add selection support.
-  if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION)
+  if (type == ClipboardType::kSelection)
     return false;
 
   auto available_types = async_clipboard_ozone_->RequestMimeTypes();
@@ -297,7 +297,7 @@
   types->clear();
 
   // TODO(tonikitoo): add selection support.
-  if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION)
+  if (type == ClipboardType::kSelection)
     return;
 
   auto available_types = async_clipboard_ozone_->RequestMimeTypes();
@@ -382,14 +382,14 @@
                               std::string* result) const {
   DCHECK(CalledOnValidThread());
   auto clipboard_data = async_clipboard_ozone_->ReadClipboardDataAndWait(
-      ClipboardType::CLIPBOARD_TYPE_COPY_PASTE, format.ToString());
+      ClipboardType::kCopyPaste, format.ToString());
   result->assign(clipboard_data.begin(), clipboard_data.end());
 }
 
 void ClipboardOzone::WriteObjects(ClipboardType type,
                                   const ObjectMap& objects) {
   DCHECK(CalledOnValidThread());
-  if (type == ClipboardType::CLIPBOARD_TYPE_COPY_PASTE) {
+  if (type == ClipboardType::kCopyPaste) {
     async_clipboard_ozone_->ClearOfferedData();
 
     for (const auto& object : objects)
diff --git a/ui/base/clipboard/clipboard_test_template.h b/ui/base/clipboard/clipboard_test_template.h
index c0ee5e1..1e7047c 100644
--- a/ui/base/clipboard/clipboard_test_template.h
+++ b/ui/base/clipboard/clipboard_test_template.h
@@ -106,16 +106,16 @@
 
 TYPED_TEST(ClipboardTest, ClearTest) {
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(ASCIIToUTF16("clear me"));
   }
-  this->clipboard().Clear(CLIPBOARD_TYPE_COPY_PASTE);
+  this->clipboard().Clear(ClipboardType::kCopyPaste);
 
-  EXPECT_TRUE(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE).empty());
+  EXPECT_TRUE(this->GetAvailableTypes(ClipboardType::kCopyPaste).empty());
   EXPECT_FALSE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste));
   EXPECT_FALSE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste));
 }
 
 TYPED_TEST(ClipboardTest, TextTest) {
@@ -123,20 +123,20 @@
   std::string ascii_text;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(text);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeText)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE));
-  this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste));
+  this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result);
 
   EXPECT_EQ(text, text_result);
-  this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text);
+  this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text);
   EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
 }
 
@@ -146,18 +146,18 @@
   std::string url("http://www.example.com/"), url_result;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(plain);
     clipboard_writer.WriteHTML(markup, url);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeHTML)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result,
+  this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_LE(markup.size(), fragment_end - fragment_start);
   EXPECT_EQ(markup,
@@ -176,16 +176,16 @@
       "}";
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteRTF(rtf);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeRTF)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetRtfType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetRtfType(), ClipboardType::kCopyPaste));
   std::string result;
-  this->clipboard().ReadRTF(CLIPBOARD_TYPE_COPY_PASTE, &result);
+  this->clipboard().ReadRTF(ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(rtf, result);
 }
 
@@ -198,37 +198,37 @@
   std::string url("http://www.example.com/"), url_result;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(text);
   }
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_SELECTION);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kSelection);
     clipboard_writer.WriteHTML(markup, url);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeText)));
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_SELECTION),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kSelection),
               Contains(ASCIIToUTF16(kMimeTypeHTML)));
 
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste));
   EXPECT_FALSE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_SELECTION));
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kSelection));
 
   EXPECT_FALSE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_SELECTION));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kSelection));
 
-  this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
+  this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result);
   EXPECT_EQ(text, text_result);
 
   base::string16 markup_result;
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_SELECTION, &markup_result,
+  this->clipboard().ReadHTML(ClipboardType::kSelection, &markup_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_LE(markup.size(), fragment_end - fragment_start);
   EXPECT_EQ(markup,
@@ -243,18 +243,18 @@
   base::string16 plain(ASCIIToUTF16("Bye!")), plain_result;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(plain);
     clipboard_writer.WriteHTML(markup, url);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeHTML)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result,
+  this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_LE(markup.size(), fragment_end - fragment_start);
   EXPECT_EQ(markup,
@@ -274,17 +274,17 @@
   std::string url, url_result;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteHTML(markup, url);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeHTML)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result,
+  this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_LE(markup.size(), fragment_end - fragment_start);
   EXPECT_EQ(markup,
@@ -301,12 +301,12 @@
   std::string url("http://www.example.com/"), url_result;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteBookmark(title, url);
   }
 
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetUrlWType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetUrlWType(), ClipboardType::kCopyPaste));
   this->clipboard().ReadBookmark(&title_result, &url_result);
   EXPECT_EQ(title, title_result);
   EXPECT_EQ(url, url_result);
@@ -320,24 +320,24 @@
   std::string ascii_text;
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteHTML(markup, url);
     clipboard_writer.WriteText(text);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeHTML)));
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeText)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste));
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result,
+  this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_LE(markup.size(), fragment_end - fragment_start);
   EXPECT_EQ(markup,
@@ -347,9 +347,9 @@
   // this.
   EXPECT_EQ(url, url_result);
 #endif  // defined(OS_WIN)
-  this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
+  this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result);
   EXPECT_EQ(text, text_result);
-  this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text);
+  this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text);
   EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
 }
 
@@ -357,23 +357,23 @@
   base::string16 url(ASCIIToUTF16("http://www.google.com/"));
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteText(url);
   }
 
-  EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE),
+  EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste),
               Contains(ASCIIToUTF16(kMimeTypeText)));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste));
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste));
   base::string16 text_result;
-  this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
+  this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result);
 
   EXPECT_EQ(text_result, url);
 
   std::string ascii_text;
-  this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text);
+  this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text);
   EXPECT_EQ(UTF16ToUTF8(url), ascii_text);
 
 // TODO(tonikitoo, msisov): enable back for ClipboardOzone implements
@@ -381,7 +381,7 @@
 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \
     !defined(OS_CHROMEOS) && !defined(USE_OZONE)
   ascii_text.clear();
-  this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_SELECTION, &ascii_text);
+  this->clipboard().ReadAsciiText(ClipboardType::kSelection, &ascii_text);
   EXPECT_EQ(UTF16ToUTF8(url), ascii_text);
 #endif
 }
@@ -397,7 +397,7 @@
                             const T* bitmap_data,
                             const U8x4* expect_data) {
   {
-    ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
     SkBitmap bitmap;
     ASSERT_TRUE(bitmap.setInfo(info));
     bitmap.setPixels(
@@ -406,8 +406,8 @@
   }
 
   EXPECT_TRUE(clipboard->IsFormatAvailable(ClipboardFormatType::GetBitmapType(),
-                                           CLIPBOARD_TYPE_COPY_PASTE));
-  const SkBitmap& image = clipboard->ReadImage(CLIPBOARD_TYPE_COPY_PASTE);
+                                           ClipboardType::kCopyPaste));
+  const SkBitmap& image = clipboard->ReadImage(ClipboardType::kCopyPaste);
   ASSERT_EQ(image.info().colorType(), kN32_SkColorType);
   ASSERT_NE(image.info().alphaType(), kUnpremul_SkAlphaType);
   EXPECT_EQ(gfx::Size(info.width(), info.height()),
@@ -530,12 +530,12 @@
   write_pickle.WriteString(payload);
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WritePickledData(write_pickle, kFormat);
   }
 
   ASSERT_TRUE(
-      this->clipboard().IsFormatAvailable(kFormat, CLIPBOARD_TYPE_COPY_PASTE));
+      this->clipboard().IsFormatAvailable(kFormat, ClipboardType::kCopyPaste));
   std::string output;
   this->clipboard().ReadData(kFormat, &output);
   ASSERT_FALSE(output.empty());
@@ -561,14 +561,14 @@
   write_pickle2.WriteString(payload2);
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WritePickledData(write_pickle1, kFormat1);
     // overwrite the previous pickle for fun
     clipboard_writer.WritePickledData(write_pickle2, kFormat2);
   }
 
   ASSERT_TRUE(
-      this->clipboard().IsFormatAvailable(kFormat2, CLIPBOARD_TYPE_COPY_PASTE));
+      this->clipboard().IsFormatAvailable(kFormat2, ClipboardType::kCopyPaste));
 
   // Check string 2.
   std::string output2;
@@ -582,14 +582,14 @@
   EXPECT_EQ(payload2, unpickled_string2);
 
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WritePickledData(write_pickle2, kFormat2);
     // overwrite the previous pickle for fun
     clipboard_writer.WritePickledData(write_pickle1, kFormat1);
   }
 
   ASSERT_TRUE(
-      this->clipboard().IsFormatAvailable(kFormat1, CLIPBOARD_TYPE_COPY_PASTE));
+      this->clipboard().IsFormatAvailable(kFormat1, ClipboardType::kCopyPaste));
 
   // Check string 1.
   std::string output1;
@@ -614,15 +614,15 @@
   std::string url_result;
   base::string16 html_result;
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl);
   }
 
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
-      ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste));
   uint32_t fragment_start;
   uint32_t fragment_end;
-  this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &html_result,
+  this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &html_result,
                              &url_result, &fragment_start, &fragment_end);
   EXPECT_EQ(kExpectedHtml,
             html_result.substr(fragment_end - kExpectedHtml.size(),
@@ -632,13 +632,13 @@
 
 TYPED_TEST(ClipboardTest, WebSmartPasteTest) {
   {
-    ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste);
     clipboard_writer.WriteWebSmartPaste();
   }
 
   EXPECT_TRUE(this->clipboard().IsFormatAvailable(
       ClipboardFormatType::GetWebKitSmartPasteType(),
-      CLIPBOARD_TYPE_COPY_PASTE));
+      ClipboardType::kCopyPaste));
 }
 
 #if defined(OS_WIN)  // Windows only tests.
@@ -690,7 +690,7 @@
 // Test writing all formats we have simultaneously.
 TYPED_TEST(ClipboardTest, WriteEverything) {
   {
-    ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter writer(ClipboardType::kCopyPaste);
     writer.WriteText(UTF8ToUTF16("foo"));
     writer.WriteHTML(UTF8ToUTF16("foo"), "bar");
     writer.WriteBookmark(UTF8ToUTF16("foo"), "bar");
@@ -709,13 +709,13 @@
 #if !defined(OS_ANDROID)
 // Simple test that the sequence number appears to change when the clipboard is
 // written to.
-// TODO(dcheng): Add a version to test CLIPBOARD_TYPE_SELECTION.
+// TODO(dcheng): Add a version to test ClipboardType::kSelection.
 TYPED_TEST(ClipboardTest, GetSequenceNumber) {
   const uint64_t first_sequence_number =
-      this->clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE);
+      this->clipboard().GetSequenceNumber(ClipboardType::kCopyPaste);
 
   {
-    ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE);
+    ScopedClipboardWriter writer(ClipboardType::kCopyPaste);
     writer.WriteText(UTF8ToUTF16("World"));
   }
 
@@ -724,7 +724,7 @@
   base::RunLoop().RunUntilIdle();
 
   const uint64_t second_sequence_number =
-      this->clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE);
+      this->clipboard().GetSequenceNumber(ClipboardType::kCopyPaste);
 
   EXPECT_NE(first_sequence_number, second_sequence_number);
 }
@@ -733,37 +733,37 @@
 // Test that writing empty parameters doesn't try to dereference an empty data
 // vector. Not crashing = passing.
 TYPED_TEST(ClipboardTest, WriteTextEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteText(base::string16());
 }
 
 TYPED_TEST(ClipboardTest, WriteHTMLEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteHTML(base::string16(), std::string());
 }
 
 TYPED_TEST(ClipboardTest, WriteRTFEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteRTF(std::string());
 }
 
 TYPED_TEST(ClipboardTest, WriteBookmarkEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteBookmark(base::string16(), std::string());
 }
 
 TYPED_TEST(ClipboardTest, WriteHyperlinkEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteHyperlink(base::string16(), std::string());
 }
 
 TYPED_TEST(ClipboardTest, WritePickledData) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WritePickledData(base::Pickle(), ClipboardFormatType::GetPlainTextType());
 }
 
 TYPED_TEST(ClipboardTest, WriteImageEmptyParams) {
-  ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE);
+  ScopedClipboardWriter scw(ClipboardType::kCopyPaste);
   scw.WriteImage(SkBitmap());
 }
 
diff --git a/ui/base/clipboard/clipboard_types.h b/ui/base/clipboard/clipboard_types.h
index dc12e88..5a57c07a 100644
--- a/ui/base/clipboard/clipboard_types.h
+++ b/ui/base/clipboard/clipboard_types.h
@@ -7,12 +7,13 @@
 
 namespace ui {
 
-// |ClipboardType| designates which clipboard the action should be applied to.
-enum ClipboardType {
-  CLIPBOARD_TYPE_COPY_PASTE,
-  CLIPBOARD_TYPE_SELECTION,  // Only supported on systems running X11.
-  CLIPBOARD_TYPE_DRAG,       // Only supported on Mac OS X.
-  CLIPBOARD_TYPE_LAST = CLIPBOARD_TYPE_DRAG
+// |ClipboardType| designates which clipboard buffer the action should be
+// applied to.
+enum class ClipboardType {
+  kCopyPaste,
+  kSelection,  // Only supported on systems running X11.
+  kDrag,       // Only supported on Mac OS X.
+  kMaxValue = kDrag
 };
 
 }  // namespace ui
diff --git a/ui/base/clipboard/clipboard_util_mac.mm b/ui/base/clipboard/clipboard_util_mac.mm
index 1707d30..42316fc9 100644
--- a/ui/base/clipboard/clipboard_util_mac.mm
+++ b/ui/base/clipboard/clipboard_util_mac.mm
@@ -217,13 +217,13 @@
 NSPasteboard* ClipboardUtil::PasteboardFromType(ui::ClipboardType type) {
   NSString* type_string = nil;
   switch (type) {
-    case ui::CLIPBOARD_TYPE_COPY_PASTE:
+    case ui::ClipboardType::kCopyPaste:
       type_string = NSGeneralPboard;
       break;
-    case ui::CLIPBOARD_TYPE_DRAG:
+    case ui::ClipboardType::kDrag:
       type_string = NSDragPboard;
       break;
-    case ui::CLIPBOARD_TYPE_SELECTION:
+    case ui::ClipboardType::kSelection:
       NOTREACHED();
       break;
   }
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index 17dee83..7ed451d 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -239,18 +239,18 @@
 void ClipboardWin::OnPreShutdown() {}
 
 uint64_t ClipboardWin::GetSequenceNumber(ClipboardType type) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   return ::GetClipboardSequenceNumber();
 }
 
 bool ClipboardWin::IsFormatAvailable(const ClipboardFormatType& format,
                                      ClipboardType type) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   return ::IsClipboardFormatAvailable(format.ToFormatEtc().cfFormat) != FALSE;
 }
 
 void ClipboardWin::Clear(ClipboardType type) {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   ScopedClipboard clipboard;
   if (!clipboard.Acquire(GetClipboardWindow()))
     return;
@@ -295,7 +295,7 @@
 }
 
 void ClipboardWin::ReadText(ClipboardType type, base::string16* result) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   if (!result) {
     NOTREACHED();
     return;
@@ -320,7 +320,7 @@
 
 void ClipboardWin::ReadAsciiText(ClipboardType type,
                                  std::string* result) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
   if (!result) {
     NOTREACHED();
     return;
@@ -348,7 +348,7 @@
                             std::string* src_url,
                             uint32_t* fragment_start,
                             uint32_t* fragment_end) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   markup->clear();
   // TODO(dcheng): Remove these checks, I don't think they should be optional.
@@ -401,14 +401,14 @@
 }
 
 void ClipboardWin::ReadRTF(ClipboardType type, std::string* result) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   ReadData(ClipboardFormatType::GetRtfType(), result);
   TrimAfterNull(result);
 }
 
 SkBitmap ClipboardWin::ReadImage(ClipboardType type) const {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   // Acquire the clipboard.
   ScopedClipboard clipboard;
@@ -495,7 +495,7 @@
 void ClipboardWin::ReadCustomData(ClipboardType clipboard_type,
                                   const base::string16& type,
                                   base::string16* result) const {
-  DCHECK_EQ(clipboard_type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(clipboard_type, ClipboardType::kCopyPaste);
 
   // Acquire the clipboard.
   ScopedClipboard clipboard;
@@ -557,7 +557,7 @@
 }
 
 void ClipboardWin::WriteObjects(ClipboardType type, const ObjectMap& objects) {
-  DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
+  DCHECK_EQ(type, ClipboardType::kCopyPaste);
 
   ScopedClipboard clipboard;
   if (!clipboard.Acquire(GetClipboardWindow()))
diff --git a/ui/base/clipboard/test/test_clipboard.cc b/ui/base/clipboard/test/test_clipboard.cc
index 6e299a4..3355aed 100644
--- a/ui/base/clipboard/test/test_clipboard.cc
+++ b/ui/base/clipboard/test/test_clipboard.cc
@@ -16,7 +16,7 @@
 namespace ui {
 
 TestClipboard::TestClipboard()
-    : default_store_type_(CLIPBOARD_TYPE_COPY_PASTE) {}
+    : default_store_type_(ClipboardType::kCopyPaste) {}
 
 TestClipboard::~TestClipboard() = default;
 
@@ -153,7 +153,7 @@
   default_store_type_ = type;
   for (const auto& kv : objects)
     DispatchObject(static_cast<ObjectType>(kv.first), kv.second);
-  default_store_type_ = CLIPBOARD_TYPE_COPY_PASTE;
+  default_store_type_ = ClipboardType::kCopyPaste;
 }
 
 void TestClipboard::WriteText(const char* text_data, size_t text_len) {
@@ -161,8 +161,8 @@
   GetDefaultStore().data[ClipboardFormatType::GetPlainTextType()] = text;
   // Create a dummy entry.
   GetDefaultStore().data[ClipboardFormatType::GetPlainTextWType()];
-  if (IsSupportedClipboardType(CLIPBOARD_TYPE_SELECTION))
-    GetStore(CLIPBOARD_TYPE_SELECTION)
+  if (IsSupportedClipboardType(ClipboardType::kSelection))
+    GetStore(ClipboardType::kSelection)
         .data[ClipboardFormatType::GetPlainTextType()] = text;
   ui::ClipboardMonitor::GetInstance()->NotifyClipboardDataChanged();
 }
diff --git a/ui/base/ime/win/tsf_text_store.cc b/ui/base/ime/win/tsf_text_store.cc
index 44c6954..4770dfa 100644
--- a/ui/base/ime/win/tsf_text_store.cc
+++ b/ui/base/ime/win/tsf_text_store.cc
@@ -566,6 +566,8 @@
   if (string_pending_insertion_.empty()) {
     if (!text_input_client_->HasCompositionText()) {
       if (has_composition_range_) {
+        string_pending_insertion_ = string_buffer_document_.substr(
+            composition_range_.GetMin(), composition_range_.length());
         StartCompositionOnExistingText();
       } else {
         composition_start_ = selection_.start();
@@ -593,25 +595,29 @@
   // TextInputClient::InsertText() or TextInputClient::SetCompositionText().
   const size_t new_composition_start = composition_start_;
 
-  // If new_composition_start is greater than last_composition_start,
-  // then we know that there are some committed text. we need to call
-  // TextInputClient::InsertText to complete the current composition. When there
-  // are some committed text, it is not necessarily true that composition_string
-  // is empty. We need to complete current composition with committed text and
-  // start new composition with composition_string. Another scenario would be if
-  // the replacement text is coming from on-screen keyboard, we should replace
-  // current selection with new text.
-  if (((new_composition_start > last_composition_start) ||
+  // There are several scenarios that we want to commit composition text. For
+  // those scenarios, we need to call TextInputClient::InsertText to complete
+  // the current composition. When there are some committed text.
+  // 1. If new_composition_start is greater than last_composition_start and
+  // there is active composition, then we know that there are some committed
+  // text. It is not necessarily true that composition_string is empty. We need
+  // to complete current composition with committed text and start new
+  // composition with composition_string.
+  // 2. If the replacement text is coming from on-screen keyboard, we should
+  // replace current selection with new text.
+  // 3. User commits current composition text.
+  if (((new_composition_start > last_composition_start &&
+        text_input_client_->HasCompositionText()) ||
        (wparam_keydown_fired_ == 0 && !has_composition_range_ &&
-        !text_input_client_->HasCompositionText())) &&
+        !text_input_client_->HasCompositionText()) ||
+       (wparam_keydown_fired_ != 0 && !has_composition_range_)) &&
       text_input_client_) {
     CommitTextAndEndCompositionIfAny(last_composition_start,
                                      new_composition_start);
   }
 
   const base::string16& composition_string = string_buffer_document_.substr(
-      composition_range_.start(),
-      composition_range_.end() - composition_range_.start());
+      composition_range_.GetMin(), composition_range_.length());
 
   // Only need to set composition if the current composition string
   // (composition_string) is not the same as previous composition string
@@ -632,6 +638,15 @@
     previous_composition_start_ = composition_range_.start();
     previous_composition_selection_range_ = selection_;
 
+    // We need to remove replacing text first before starting new composition if
+    // there are any.
+    if (new_text_inserted_ && !replace_text_range_.is_empty() &&
+        !text_input_client_->HasCompositionText() &&
+        last_composition_start > replace_text_range_.start()) {
+      text_input_client_->ExtendSelectionAndDelete(
+          last_composition_start - replace_text_range_.start(), 0);
+    }
+
     StartCompositionOnNewText(new_composition_start, composition_string);
   }
 
@@ -1214,8 +1229,7 @@
 
 void TSFTextStore::CommitTextAndEndCompositionIfAny(size_t old_size,
                                                     size_t new_size) const {
-  if (new_text_inserted_ &&
-      (replace_text_range_.start() != replace_text_range_.end()) &&
+  if (new_text_inserted_ && !replace_text_range_.is_empty() &&
       !text_input_client_->HasCompositionText()) {
     // This is a special case to handle text replacement scenarios during
     // English typing when we are trying to replace an existing text with some
@@ -1246,7 +1260,7 @@
     // This is a special case. We should only replace existing text and commit
     // the new text if replacement text has already been inserted into Blink.
     if (new_text_inserted_ && (old_size > replace_text_range_.start()) &&
-        (replace_text_range_.start() != replace_text_range_.end())) {
+        !replace_text_range_.is_empty()) {
       new_committed_string_offset = replace_text_range_.start();
       new_committed_string_size = replace_text_size_;
     }
@@ -1296,8 +1310,7 @@
     } else {
       // User wants to commit the current composition
       const base::string16& committed_string = string_buffer_document_.substr(
-          composition_range_.start(),
-          composition_range_.end() - composition_range_.start());
+          composition_range_.GetMin(), composition_range_.length());
       text_input_client_->SetActiveCompositionForAccessibility(
           composition_range_, committed_string,
           /*is_composition_committed*/ true);
diff --git a/ui/base/ime/win/tsf_text_store_unittest.cc b/ui/base/ime/win/tsf_text_store_unittest.cc
index 79c1215d..b162d32 100644
--- a/ui/base/ime/win/tsf_text_store_unittest.cc
+++ b/ui/base/ime/win/tsf_text_store_unittest.cc
@@ -1119,6 +1119,7 @@
 
     // Need to set |has_composition_range_| to indicate composition scenario.
     *has_composition_range() = true;
+    text_store_->OnKeyTraceDown(66u, 3145729u);
     return S_OK;
   }
 
@@ -1577,7 +1578,6 @@
     composition_range()->set_end(0);
 
     *has_composition_range() = false;
-    text_store_->OnKeyTraceUp(66u, 3145729u);
     return S_OK;
   }
 
@@ -1593,8 +1593,7 @@
   }
 
   HRESULT LockGranted4(DWORD flags) {
-    text_store_->OnKeyTraceDown(8u, 917505u);
-    text_store_->OnKeyTraceUp(8u, 917505u);
+    text_store_->OnKeyTraceUp(66u, 3145729u);
     return S_OK;
   }
 
@@ -2527,16 +2526,9 @@
     composition_range()->set_end(0);
 
     *has_composition_range() = false;
-    text_store_->OnKeyTraceUp(65u, 1966081u);
     return S_OK;
   }
 
-  ui::EventDispatchDetails DispatchKeyEventPostIME3(KeyEvent* key) {
-    EXPECT_EQ(ui::ET_KEY_RELEASED, key->type());
-    EXPECT_EQ(VKEY_PROCESSKEY, key->key_code());
-    return ui::EventDispatchDetails();
-  }
-
   void InsertText3(const base::string16& text) {
     EXPECT_EQ(L"a", text);
     SetHasCompositionText(false);
@@ -2553,13 +2545,13 @@
     *edit_flag() = true;
     *composition_start() = 3;
 
+    text_store_->OnKeyTraceUp(65u, 1966081u);
     text_store_->OnStartComposition(nullptr, nullptr);
-    text_store_->OnKeyTraceDown(67u, 1966081u);
     return S_OK;
   }
 
   ui::EventDispatchDetails DispatchKeyEventPostIME4(KeyEvent* key) {
-    EXPECT_EQ(ui::ET_KEY_PRESSED, key->type());
+    EXPECT_EQ(ui::ET_KEY_RELEASED, key->type());
     EXPECT_EQ(VKEY_PROCESSKEY, key->key_code());
     return ui::EventDispatchDetails();
   }
@@ -2585,7 +2577,6 @@
     composition_range()->set_start(3);
     composition_range()->set_end(4);
 
-    text_store_->OnKeyTraceUp(67u, 1966081u);
     text_store_->OnKeyTraceDown(65u, 1966081u);
 
     *has_composition_range() = true;
@@ -2593,13 +2584,7 @@
     return S_OK;
   }
 
-  ui::EventDispatchDetails DispatchKeyEventPostIME5a(KeyEvent* key) {
-    EXPECT_EQ(ui::ET_KEY_RELEASED, key->type());
-    EXPECT_EQ(VKEY_PROCESSKEY, key->key_code());
-    return ui::EventDispatchDetails();
-  }
-
-  ui::EventDispatchDetails DispatchKeyEventPostIME5b(KeyEvent* key) {
+  ui::EventDispatchDetails DispatchKeyEventPostIME5(KeyEvent* key) {
     EXPECT_EQ(ui::ET_KEY_PRESSED, key->type());
     EXPECT_EQ(VKEY_PROCESSKEY, key->key_code());
     return ui::EventDispatchDetails();
@@ -2660,13 +2645,9 @@
       .WillOnce(
           Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME2b))
       .WillOnce(
-          Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME3))
-      .WillOnce(
           Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME4))
       .WillOnce(
-          Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME5a))
-      .WillOnce(Invoke(&callback,
-                       &RegressionTestCallback::DispatchKeyEventPostIME5b));
+          Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME5));
 
   EXPECT_CALL(text_input_client_, InsertText(_))
       .WillOnce(Invoke(&callback, &RegressionTestCallback::InsertText2))
@@ -2706,5 +2687,111 @@
   EXPECT_EQ(S_OK, result);
 }
 
+// Some IMEs may replace existing text with new text and start new composition
+// on the new text. We should replace old text with new text and start new
+// composition. This test covers the above scenario.
+class RegressionTest2Callback : public TSFTextStoreTestCallback {
+ public:
+  explicit RegressionTest2Callback(TSFTextStore* text_store)
+      : TSFTextStoreTestCallback(text_store) {}
+
+  HRESULT LockGranted1(DWORD flags) {
+    SetTextTest(0, 0, L"abc", S_OK);
+    SetSelectionTest(3, 3, S_OK);
+
+    *composition_start() = 3;
+    return S_OK;
+  }
+
+  HRESULT LockGranted2(DWORD flags) {
+    GetTextTest(0, -1, L"abc", 3);
+    SetTextTest(1, 3, L"DE", S_OK);
+    GetTextTest(0, -1, L"aDE", 3);
+    SetSelectionTest(3, 3, S_OK);
+
+    text_spans()->clear();
+    ImeTextSpan text_span;
+    text_span.start_offset = 1;
+    text_span.end_offset = 3;
+    text_span.underline_color = SK_ColorBLACK;
+    text_span.thickness = ImeTextSpan::Thickness::kThin;
+    text_span.background_color = SK_ColorTRANSPARENT;
+    text_spans()->push_back(text_span);
+    *edit_flag() = true;
+    *composition_start() = 1;
+    composition_range()->set_start(1);
+    composition_range()->set_end(3);
+    text_store_->OnKeyTraceDown(65u, 1966081u);
+    *has_composition_range() = true;
+
+    return S_OK;
+  }
+
+  void SetCompositionText2(const ui::CompositionText& composition) {
+    EXPECT_EQ(L"DE", composition.text);
+    EXPECT_EQ(2u, composition.selection.start());
+    EXPECT_EQ(2u, composition.selection.end());
+    ASSERT_EQ(1u, composition.ime_text_spans.size());
+    EXPECT_EQ(SK_ColorBLACK, composition.ime_text_spans[0].underline_color);
+    EXPECT_EQ(SK_ColorTRANSPARENT,
+              composition.ime_text_spans[0].background_color);
+    EXPECT_EQ(0u, composition.ime_text_spans[0].start_offset);
+    EXPECT_EQ(2u, composition.ime_text_spans[0].end_offset);
+    EXPECT_EQ(ImeTextSpan::Thickness::kThin,
+              composition.ime_text_spans[0].thickness);
+    SetHasCompositionText(true);
+  }
+
+  HRESULT LockGranted3(DWORD flags) {
+    GetTextTest(0, -1, L"aDE", 3);
+
+    text_spans()->clear();
+    *edit_flag() = true;
+    *composition_start() = 3;
+    composition_range()->set_start(0);
+    composition_range()->set_end(0);
+
+    *has_composition_range() = false;
+    return S_OK;
+  }
+
+  void InsertText3(const base::string16& text) {
+    EXPECT_EQ(L"DE", text);
+    SetHasCompositionText(false);
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(RegressionTest2Callback);
+};
+
+TEST_F(TSFTextStoreTest, RegressionTest2) {
+  RegressionTest2Callback callback(text_store_.get());
+  EXPECT_CALL(text_input_client_, SetCompositionText(_))
+      .WillOnce(
+          Invoke(&callback, &RegressionTest2Callback::SetCompositionText2));
+
+  EXPECT_CALL(text_input_client_, InsertText(_))
+      .WillOnce(Invoke(&callback, &RegressionTest2Callback::InsertText3));
+
+  EXPECT_CALL(*sink_, OnLockGranted(_))
+      .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted1))
+      .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted2))
+      .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted3));
+
+  ON_CALL(text_input_client_, HasCompositionText())
+      .WillByDefault(
+          Invoke(&callback, &TSFTextStoreTestCallback::HasCompositionText));
+
+  HRESULT result = kInvalidResult;
+  EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result));
+  EXPECT_EQ(S_OK, result);
+  result = kInvalidResult;
+  EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result));
+  EXPECT_EQ(S_OK, result);
+  result = kInvalidResult;
+  EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result));
+  EXPECT_EQ(S_OK, result);
+}
+
 }  // namespace
 }  // namespace ui
diff --git a/ui/base/mojo/clipboard_blink_struct_traits.h b/ui/base/mojo/clipboard_blink_struct_traits.h
index 8a6cfc9..656a95c 100644
--- a/ui/base/mojo/clipboard_blink_struct_traits.h
+++ b/ui/base/mojo/clipboard_blink_struct_traits.h
@@ -15,8 +15,8 @@
   static blink::mojom::ClipboardBuffer ToMojom(
       ui::ClipboardType clipboard_type) {
     // We only convert ui::Clipboardtype to blink::mojom::ClipboardBuffer
-    // in tests, and they use ui::CLIPBOARD_TYPE_COPY_PASTE.
-    DCHECK(clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE);
+    // in tests, and they use ui::ClipboardType::kCopyPaste.
+    DCHECK(clipboard_type == ui::ClipboardType::kCopyPaste);
     return blink::mojom::ClipboardBuffer::kStandard;
   }
 
@@ -24,11 +24,11 @@
                         ui::ClipboardType* out) {
     switch (clipboard_type) {
       case blink::mojom::ClipboardBuffer::kStandard:
-        *out = ui::CLIPBOARD_TYPE_COPY_PASTE;
+        *out = ui::ClipboardType::kCopyPaste;
         return true;
       case blink::mojom::ClipboardBuffer::kSelection:
 #if defined(USE_X11)
-        *out = ui::CLIPBOARD_TYPE_SELECTION;
+        *out = ui::ClipboardType::kSelection;
         return true;
 #else
         return false;
diff --git a/ui/base/mojo/clipboard_host.cc b/ui/base/mojo/clipboard_host.cc
index 769dde85..59e2346c 100644
--- a/ui/base/mojo/clipboard_host.cc
+++ b/ui/base/mojo/clipboard_host.cc
@@ -15,7 +15,7 @@
 
 ClipboardHost::ClipboardHost()
     : clipboard_(Clipboard::GetForCurrentThread()),
-      clipboard_writer_(new ScopedClipboardWriter(CLIPBOARD_TYPE_COPY_PASTE)) {}
+      clipboard_writer_(new ScopedClipboardWriter(ClipboardType::kCopyPaste)) {}
 
 ClipboardHost::~ClipboardHost() {
   clipboard_writer_->Reset();
diff --git a/ui/base/mojo/clipboard_struct_traits.h b/ui/base/mojo/clipboard_struct_traits.h
index 518cb04..1961c30 100644
--- a/ui/base/mojo/clipboard_struct_traits.h
+++ b/ui/base/mojo/clipboard_struct_traits.h
@@ -14,11 +14,11 @@
 struct EnumTraits<ui::mojom::ClipboardType, ui::ClipboardType> {
   static ui::mojom::ClipboardType ToMojom(ui::ClipboardType type) {
     switch (type) {
-      case ui::CLIPBOARD_TYPE_COPY_PASTE:
+      case ui::ClipboardType::kCopyPaste:
         return ui::mojom::ClipboardType::COPY_PASTE;
-      case ui::CLIPBOARD_TYPE_SELECTION:
+      case ui::ClipboardType::kSelection:
         return ui::mojom::ClipboardType::SELECTION;
-      case ui::CLIPBOARD_TYPE_DRAG:
+      case ui::ClipboardType::kDrag:
         return ui::mojom::ClipboardType::DRAG;
     }
   }
@@ -26,13 +26,13 @@
   static bool FromMojom(ui::mojom::ClipboardType type, ui::ClipboardType* out) {
     switch (type) {
       case ui::mojom::ClipboardType::COPY_PASTE:
-        *out = ui::CLIPBOARD_TYPE_COPY_PASTE;
+        *out = ui::ClipboardType::kCopyPaste;
         return true;
       case ui::mojom::ClipboardType::SELECTION:
-        *out = ui::CLIPBOARD_TYPE_SELECTION;
+        *out = ui::ClipboardType::kSelection;
         return true;
       case ui::mojom::ClipboardType::DRAG:
-        *out = ui::CLIPBOARD_TYPE_DRAG;
+        *out = ui::ClipboardType::kDrag;
         return true;
     }
     NOTREACHED();
diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc
index 89f324a5..e7f06ef 100644
--- a/ui/native_theme/common_theme.cc
+++ b/ui/native_theme/common_theme.cc
@@ -305,18 +305,6 @@
     case NativeTheme::kColorId_UnfocusedBorderColor:
       return SkColorSetA(SK_ColorBLACK, 0x66);
 
-    // Results Tables
-    case NativeTheme::kColorId_ResultsTableNormalBackground:
-      return SK_ColorWHITE;
-    case NativeTheme::kColorId_ResultsTableHoveredBackground:
-      return SkColorSetA(base_theme->GetSystemColor(
-                             NativeTheme::kColorId_ResultsTableNormalText),
-                         0x0D);
-    case NativeTheme::kColorId_ResultsTableNormalText:
-      return SK_ColorBLACK;
-    case NativeTheme::kColorId_ResultsTableDimmedText:
-      return SkColorSetRGB(0x64, 0x64, 0x64);
-
     // Material spinner/throbber
     case NativeTheme::kColorId_ThrobberSpinningColor:
       return gfx::kGoogleBlue600;
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
index 66f5488e..68d9f2a 100644
--- a/ui/native_theme/native_theme.h
+++ b/ui/native_theme/native_theme.h
@@ -367,11 +367,6 @@
     kColorId_TableHeaderText,
     kColorId_TableHeaderBackground,
     kColorId_TableHeaderSeparator,
-    // Results Tables, such as the omnibox.
-    kColorId_ResultsTableNormalBackground,
-    kColorId_ResultsTableHoveredBackground,
-    kColorId_ResultsTableNormalText,
-    kColorId_ResultsTableDimmedText,
     // Colors for the material spinner (aka throbber).
     kColorId_ThrobberSpinningColor,
     kColorId_ThrobberWaitingColor,
diff --git a/ui/native_theme/native_theme_dark_aura.cc b/ui/native_theme/native_theme_dark_aura.cc
index e97ba31f..bccba2f2 100644
--- a/ui/native_theme/native_theme_dark_aura.cc
+++ b/ui/native_theme/native_theme_dark_aura.cc
@@ -54,14 +54,6 @@
     case kColorId_TextfieldSelectionBackgroundFocused:
       return kTextSelectionBackgroundFocused;
 
-    // Results Tables
-    case kColorId_ResultsTableNormalBackground:
-      return SkColorSetRGB(0x28, 0x28, 0x28);
-    case kColorId_ResultsTableNormalText:
-      return SK_ColorWHITE;
-    case kColorId_ResultsTableDimmedText:
-      return SkColorSetA(GetSystemColor(kColorId_ResultsTableNormalText), 0x80);
-
     // FocusableBorder
     case kColorId_FocusedBorderColor:
       return SkColorSetA(gfx::kGoogleBlue300, 0x66);
@@ -78,7 +70,6 @@
     case kColorId_LabelDisabledColor:
     case kColorId_TextOnProminentButtonColor:
     case kColorId_ButtonPressedShade:
-    case kColorId_ResultsTableHoveredBackground:
     case kColorId_ProminentButtonDisabledColor:
     case kColorId_ButtonBorderColor:
     case kColorId_DefaultIconColor:
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc
index ed5b1ef..0e10023 100644
--- a/ui/native_theme/native_theme_win.cc
+++ b/ui/native_theme/native_theme_win.cc
@@ -539,17 +539,6 @@
     case kColorId_TableGroupingIndicatorColor:
       return system_colors_[COLOR_GRAYTEXT];
 
-    // Results Tables
-    case kColorId_ResultsTableNormalBackground:
-      return system_colors_[COLOR_WINDOW];
-    case kColorId_ResultsTableHoveredBackground:
-      return color_utils::AlphaBlend(system_colors_[COLOR_HIGHLIGHT],
-                                     system_colors_[COLOR_WINDOW], 0.25f);
-    case kColorId_ResultsTableNormalText:
-      return system_colors_[COLOR_WINDOWTEXT];
-    case kColorId_ResultsTableDimmedText:
-      return color_utils::AlphaBlend(system_colors_[COLOR_WINDOWTEXT],
-                                     system_colors_[COLOR_WINDOW], 0.5f);
     default:
       break;
   }
diff --git a/ui/ozone/platform/scenic/BUILD.gn b/ui/ozone/platform/scenic/BUILD.gn
index 67d670f..59d1d8ae 100644
--- a/ui/ozone/platform/scenic/BUILD.gn
+++ b/ui/ozone/platform/scenic/BUILD.gn
@@ -63,11 +63,16 @@
     "//ui/platform_window",
   ]
 
+  data_deps = []
   if (enable_vulkan) {
     sources += [
       "vulkan_implementation_scenic.cc",
       "vulkan_implementation_scenic.h",
     ]
     defines += [ "VK_USE_PLATFORM_MAGMA_KHR" ]
+    data_deps += [
+      "//third_party/angle:libEGL",
+      "//third_party/angle:libGLESv2",
+    ]
   }
 }
diff --git a/ui/ozone/platform/scenic/scenic_surface_factory.cc b/ui/ozone/platform/scenic/scenic_surface_factory.cc
index af49373..409a38d 100644
--- a/ui/ozone/platform/scenic/scenic_surface_factory.cc
+++ b/ui/ozone/platform/scenic/scenic_surface_factory.cc
@@ -84,14 +84,17 @@
 
 std::vector<gl::GLImplementation>
 ScenicSurfaceFactory::GetAllowedGLImplementations() {
-  // TODO(spang): Remove this after crbug.com/897208 is fixed.
-  return std::vector<gl::GLImplementation>{gl::kGLImplementationSwiftShaderGL,
-                                           gl::kGLImplementationStubGL};
+  return std::vector<gl::GLImplementation>{
+      gl::kGLImplementationSwiftShaderGL,
+      gl::kGLImplementationEGLGLES2,
+      gl::kGLImplementationStubGL,
+  };
 }
 
 GLOzone* ScenicSurfaceFactory::GetGLOzone(gl::GLImplementation implementation) {
   switch (implementation) {
     case gl::kGLImplementationSwiftShaderGL:
+    case gl::kGLImplementationEGLGLES2:
       return egl_implementation_.get();
     default:
       return nullptr;
diff --git a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc
index 3102ce8d..b7bf51c 100644
--- a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc
+++ b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc
@@ -114,10 +114,14 @@
 
 std::vector<const char*>
 VulkanImplementationScenic::GetRequiredDeviceExtensions() {
-  return {VK_KHR_SWAPCHAIN_EXTENSION_NAME,
-          VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME,
-          VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME,
-          VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME};
+  return {
+      VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME,
+      VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME,
+      VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME,
+      VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME,
+      VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME,
+      VK_KHR_SWAPCHAIN_EXTENSION_NAME,
+  };
 }
 
 VkFence VulkanImplementationScenic::CreateVkFenceForGpuFence(
diff --git a/ui/views/controls/label.cc b/ui/views/controls/label.cc
index 90a54d5..bc082eb 100644
--- a/ui/views/controls/label.cc
+++ b/ui/views/controls/label.cc
@@ -734,7 +734,7 @@
 void Label::UpdateSelectionClipboard() {
 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
   if (!obscured()) {
-    ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_SELECTION)
+    ui::ScopedClipboardWriter(ui::ClipboardType::kSelection)
         .WriteText(GetSelectedText());
   }
 #endif
@@ -959,7 +959,7 @@
 void Label::CopyToClipboard() {
   if (!HasSelection() || obscured())
     return;
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(GetSelectedText());
 }
 
diff --git a/ui/views/controls/label_unittest.cc b/ui/views/controls/label_unittest.cc
index 2cab103d..66fd7c7f 100644
--- a/ui/views/controls/label_unittest.cc
+++ b/ui/views/controls/label_unittest.cc
@@ -1053,7 +1053,7 @@
   EXPECT_STR_EQ(" mouse drag", GetSelectedText());
 
   event_generator()->PressKey(ui::VKEY_C, kControlCommandModifier);
-  EXPECT_STR_EQ(" mouse drag", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ(" mouse drag", GetClipboardText(ui::ClipboardType::kCopyPaste));
 }
 
 TEST_F(LabelSelectionTest, MouseDragMultilineLTR) {
@@ -1249,14 +1249,14 @@
   // selection clipboard.
   label()->SelectRange(gfx::Range(2, 5));
   EXPECT_STR_EQ("bel", GetSelectedText());
-  EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty());
+  EXPECT_TRUE(GetClipboardText(ui::ClipboardType::kSelection).empty());
 
   // Verify text selection using the mouse updates the selection clipboard.
   PerformMousePress(GetCursorPoint(5));
   PerformMouseDragTo(GetCursorPoint(0));
   PerformMouseRelease(GetCursorPoint(0));
   EXPECT_STR_EQ("Label", GetSelectedText());
-  EXPECT_STR_EQ("Label", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
+  EXPECT_STR_EQ("Label", GetClipboardText(ui::ClipboardType::kSelection));
 }
 #endif
 
@@ -1275,7 +1275,7 @@
   EXPECT_EQ(initial_text, GetSelectedText());
 
   event_generator()->PressKey(ui::VKEY_C, kControlCommandModifier);
-  EXPECT_EQ(initial_text, GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_EQ(initial_text, GetClipboardText(ui::ClipboardType::kCopyPaste));
 
   // The selection should get cleared on changing the text, but focus should not
   // be affected.
diff --git a/ui/views/controls/message_box_view.cc b/ui/views/controls/message_box_view.cc
index 94173b3c..6c0b2c9 100644
--- a/ui/views/controls/message_box_view.cc
+++ b/ui/views/controls/message_box_view.cc
@@ -168,7 +168,7 @@
   if (message_labels_.size() == 1u && message_labels_[0]->selectable())
     return false;
 
-  ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste);
   scw.WriteText(std::accumulate(
       message_labels_.cbegin(), message_labels_.cend(), base::string16(),
       [](base::string16& left, Label* right) { return left + right->text(); }));
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 72ce49ef..67d069f 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -617,8 +617,8 @@
 gfx::Size Textfield::CalculatePreferredSize() const {
   DCHECK_GE(default_width_in_chars_, minimum_width_in_chars_);
   return gfx::Size(
-      views::style::GetExpectedTextWidth(
-          style::CONTEXT_TEXTFIELD, GetTextStyle(), default_width_in_chars_),
+      GetFontList().GetExpectedTextWidth(default_width_in_chars_) +
+          GetInsets().width(),
       LayoutProvider::GetControlHeightForFont(style::CONTEXT_TEXTFIELD,
                                               GetTextStyle(), GetFontList()));
 }
@@ -626,11 +626,10 @@
 gfx::Size Textfield::GetMinimumSize() const {
   DCHECK_LE(minimum_width_in_chars_, default_width_in_chars_);
   gfx::Size minimum_size = View::GetMinimumSize();
-  if (minimum_width_in_chars_ >= 0) {
-    int expected_text_width = views::style::GetExpectedTextWidth(
-        style::CONTEXT_TEXTFIELD, GetTextStyle(), minimum_width_in_chars_);
-    minimum_size.set_width(expected_text_width + GetInsets().width());
-  }
+  if (minimum_width_in_chars_ >= 0)
+    minimum_size.set_width(
+        GetFontList().GetExpectedTextWidth(minimum_width_in_chars_) +
+        GetInsets().width());
   return minimum_size;
 }
 
@@ -1705,7 +1704,7 @@
       return readable && model_->HasSelection();
     case ui::TextEditCommand::PASTE:
       ui::Clipboard::GetForCurrentThread()->ReadText(
-          ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+          ui::ClipboardType::kCopyPaste, &result);
       return editable && !result.empty();
     case ui::TextEditCommand::SELECT_ALL:
       return !text().empty() && GetSelectedRange().length() != text().length();
@@ -1803,7 +1802,7 @@
 
 base::string16 Textfield::GetSelectionClipboardText() const {
   base::string16 selection_clipboard_text;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_SELECTION,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kSelection,
                                                  &selection_clipboard_text);
   return selection_clipboard_text;
 }
@@ -2104,10 +2103,10 @@
 void Textfield::UpdateSelectionClipboard() {
 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
   if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD) {
-    ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_SELECTION)
+    ui::ScopedClipboardWriter(ui::ClipboardType::kSelection)
         .WriteText(GetSelectedText());
     if (controller_)
-      controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_SELECTION);
+      controller_->OnAfterCutOrCopy(ui::ClipboardType::kSelection);
   }
 #endif
 }
@@ -2263,7 +2262,7 @@
   if (!read_only() && text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD &&
       model_->Cut()) {
     if (controller_)
-      controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      controller_->OnAfterCutOrCopy(ui::ClipboardType::kCopyPaste);
     return true;
   }
   return false;
@@ -2272,7 +2271,7 @@
 bool Textfield::Copy() {
   if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD && model_->Copy()) {
     if (controller_)
-      controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_COPY_PASTE);
+      controller_->OnAfterCutOrCopy(ui::ClipboardType::kCopyPaste);
     return true;
   }
   return false;
diff --git a/ui/views/controls/textfield/textfield_model.cc b/ui/views/controls/textfield/textfield_model.cc
index 5b9f9db..45f6d9c7 100644
--- a/ui/views/controls/textfield/textfield_model.cc
+++ b/ui/views/controls/textfield/textfield_model.cc
@@ -522,8 +522,8 @@
 
 bool TextfieldModel::Cut() {
   if (!HasCompositionText() && HasSelection() && !render_text_->obscured()) {
-    ui::ScopedClipboardWriter(
-        ui::CLIPBOARD_TYPE_COPY_PASTE).WriteText(GetSelectedText());
+    ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
+        .WriteText(GetSelectedText());
     // A trick to let undo/redo handle cursor correctly.
     // Undoing CUT moves the cursor to the end of the change rather
     // than beginning, unlike Delete/Backspace.
@@ -539,8 +539,8 @@
 
 bool TextfieldModel::Copy() {
   if (!HasCompositionText() && HasSelection() && !render_text_->obscured()) {
-    ui::ScopedClipboardWriter(
-        ui::CLIPBOARD_TYPE_COPY_PASTE).WriteText(GetSelectedText());
+    ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
+        .WriteText(GetSelectedText());
     return true;
   }
   return false;
@@ -548,7 +548,7 @@
 
 bool TextfieldModel::Paste() {
   base::string16 text;
-  ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE,
+  ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste,
                                                  &text);
   if (text.empty())
     return false;
diff --git a/ui/views/controls/textfield/textfield_model_unittest.cc b/ui/views/controls/textfield/textfield_model_unittest.cc
index 27a7566..2f06aaf 100644
--- a/ui/views/controls/textfield/textfield_model_unittest.cc
+++ b/ui/views/controls/textfield/textfield_model_unittest.cc
@@ -591,7 +591,7 @@
   ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
   const base::string16 initial_clipboard_text =
       base::ASCIIToUTF16("initial text");
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(initial_clipboard_text);
 
   base::string16 clipboard_text;
@@ -601,14 +601,14 @@
   // Cut with an empty selection should do nothing.
   model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, gfx::SELECTION_NONE);
   EXPECT_FALSE(model.Cut());
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_EQ(initial_clipboard_text, clipboard_text);
   EXPECT_STR_EQ("HELLO WORLD", model.text());
   EXPECT_EQ(11U, model.GetCursorPosition());
 
   // Copy with an empty selection should do nothing.
   model.Copy();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_EQ(initial_clipboard_text, clipboard_text);
   EXPECT_STR_EQ("HELLO WORLD", model.text());
   EXPECT_EQ(11U, model.GetCursorPosition());
@@ -617,7 +617,7 @@
   model.render_text()->SetObscured(true);
   model.SelectAll(false);
   EXPECT_FALSE(model.Cut());
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_EQ(initial_clipboard_text, clipboard_text);
   EXPECT_STR_EQ("HELLO WORLD", model.text());
   EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText());
@@ -625,7 +625,7 @@
   // Copy on obscured (password) text should do nothing.
   model.SelectAll(false);
   EXPECT_FALSE(model.Copy());
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_EQ(initial_clipboard_text, clipboard_text);
   EXPECT_STR_EQ("HELLO WORLD", model.text());
   EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText());
@@ -635,7 +635,7 @@
   model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, gfx::SELECTION_NONE);
   model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, gfx::SELECTION_RETAIN);
   EXPECT_TRUE(model.Cut());
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_STR_EQ("WORLD", clipboard_text);
   EXPECT_STR_EQ("HELLO ", model.text());
   EXPECT_EQ(6U, model.GetCursorPosition());
@@ -643,7 +643,7 @@
   // Copy with non-empty selection.
   model.SelectAll(false);
   EXPECT_TRUE(model.Copy());
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text);
   EXPECT_STR_EQ("HELLO ", clipboard_text);
   EXPECT_STR_EQ("HELLO ", model.text());
   EXPECT_EQ(6U, model.GetCursorPosition());
@@ -1741,7 +1741,7 @@
 TEST_F(TextfieldModelTest, Clipboard_WhiteSpaceStringTest) {
   // Test 1
   // Clipboard text with a leading tab should be pasted with the tab stripped.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("\tB"));
 
   TextfieldModel model(nullptr);
@@ -1760,7 +1760,7 @@
   // Test 2
   // Clipboard text with multiple leading tabs and spaces should be pasted with
   // all tabs and spaces stripped.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("\t\t\t B"));
 
   model.Append(base::ASCIIToUTF16("HELLO WORLD"));
@@ -1777,7 +1777,7 @@
   // Test 3
   // Clipboard text with multiple tabs separating the words should be pasted
   // with one space replacing all tabs.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("FOO \t\t BAR"));
 
   model.Append(base::ASCIIToUTF16("HELLO WORLD"));
@@ -1795,7 +1795,7 @@
   // Clipboard text with multiple leading tabs and multiple tabs separating
   // the words should be pasted with the leading tabs stripped and one space
   // replacing the intermediate tabs.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("\t\tFOO \t\t BAR"));
 
   EXPECT_TRUE(model.Paste());
@@ -1808,7 +1808,7 @@
   // Test 5
   // Clipboard text with multiple trailing tabs should be pasted with all
   // trailing tabs stripped.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("FOO BAR\t\t\t"));
   EXPECT_TRUE(model.Paste());
   EXPECT_STR_EQ("FOO BAR", model.text());
@@ -1820,7 +1820,7 @@
   // Test 6
   // Clipboard text with only spaces and tabs should be pasted as a single
   // space.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("     \t\t"));
   EXPECT_TRUE(model.Paste());
   EXPECT_STR_EQ(" ", model.text());
@@ -1832,7 +1832,7 @@
   // Test 7
   // Clipboard text with lots of spaces between words should have all spaces
   // replaced with a single space.
-  ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)
+  ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)
       .WriteText(base::ASCIIToUTF16("FOO      BAR"));
   EXPECT_TRUE(model.Paste());
   EXPECT_STR_EQ("FOO BAR", model.text());
diff --git a/ui/views/controls/textfield/textfield_unittest.cc b/ui/views/controls/textfield/textfield_unittest.cc
index d422612..2358e37 100644
--- a/ui/views/controls/textfield/textfield_unittest.cc
+++ b/ui/views/controls/textfield/textfield_unittest.cc
@@ -416,7 +416,7 @@
 
   ui::ClipboardType GetAndResetCopiedToClipboard() {
     ui::ClipboardType clipboard_type = copied_to_clipboard_;
-    copied_to_clipboard_ = ui::CLIPBOARD_TYPE_LAST;
+    copied_to_clipboard_ = ui::ClipboardType::kMaxValue;
     return clipboard_type;
   }
 
@@ -730,7 +730,7 @@
               menu->IsEnabledAt(menu_index++ /* CUT */));
     EXPECT_EQ(textfield_has_selection,
               menu->IsEnabledAt(menu_index++ /* COPY */));
-    EXPECT_NE(GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE).empty(),
+    EXPECT_NE(GetClipboardText(ui::ClipboardType::kCopyPaste).empty(),
               menu->IsEnabledAt(menu_index++ /* PASTE */));
     EXPECT_EQ(textfield_has_selection,
               menu->IsEnabledAt(menu_index++ /* DELETE */));
@@ -803,7 +803,7 @@
 
   // Position of the mouse for synthetic mouse events.
   gfx::Point mouse_position_;
-  ui::ClipboardType copied_to_clipboard_ = ui::CLIPBOARD_TYPE_LAST;
+  ui::ClipboardType copied_to_clipboard_ = ui::ClipboardType::kMaxValue;
   std::unique_ptr<ui::test::EventGenerator> event_generator_;
 
  private:
@@ -1283,7 +1283,7 @@
   EXPECT_STR_EQ("password", textfield_->text());
   EXPECT_TRUE(last_contents_.empty());
   model_->SelectAll(false);
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "foo");
 
   // Cut and copy should be disabled.
   EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_CUT));
@@ -1293,7 +1293,7 @@
   textfield_->ExecuteCommand(IDS_APP_COPY, 0);
   SendKeyEvent(ui::VKEY_C, false, true);
   SendAlternateCopy();
-  EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("password", textfield_->text());
   // [Shift]+[Delete] should just delete without copying text to the clipboard.
   textfield_->SelectAll(false);
@@ -1304,7 +1304,7 @@
   textfield_->ExecuteCommand(IDS_APP_PASTE, 0);
   SendKeyEvent(ui::VKEY_V, false, true);
   SendAlternatePaste();
-  EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("foofoofoo", textfield_->text());
 }
 
@@ -1579,7 +1579,7 @@
 
   EXPECT_TRUE(textfield_->context_menu_controller());
   textfield_->SetText(ASCIIToUTF16("hello world"));
-  ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste);
   textfield_->ClearEditHistory();
   EXPECT_TRUE(GetContextMenuModel());
   VerifyTextfieldContextMenuContents(false, false, GetContextMenuModel());
@@ -1594,7 +1594,7 @@
   VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel());
 
   // Exercise the "paste enabled?" check in the verifier.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "Test");
   VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel());
 }
 
@@ -1965,12 +1965,12 @@
   EXPECT_STR_EQ("read only", textfield_->GetSelectedText());
 
   // Cut should be disabled.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "Test");
   EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_CUT));
   textfield_->ExecuteCommand(IDS_APP_CUT, 0);
   SendKeyEvent(ui::VKEY_X, false, true);
   SendAlternateCut();
-  EXPECT_STR_EQ("Test", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("Test", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("read only", textfield_->text());
 
   // Paste should be disabled.
@@ -1981,16 +1981,16 @@
   EXPECT_STR_EQ("read only", textfield_->text());
 
   // Copy should work normally.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "Test");
   EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_COPY));
   textfield_->ExecuteCommand(IDS_APP_COPY, 0);
-  EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
+  EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste));
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "Test");
   SendKeyEvent(ui::VKEY_C, false, true);
-  EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
+  EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste));
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "Test");
   SendAlternateCopy();
-  EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste));
 
   // SetText should work even in read only mode.
   textfield_->SetText(ASCIIToUTF16(" four five six "));
@@ -2304,70 +2304,70 @@
   textfield_->SelectAll(false);
   EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_CUT));
   textfield_->ExecuteCommand(IDS_APP_CUT, 0);
-  EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Ensure [Ctrl]+[x] cuts and [Ctrl]+[Alt][x] does nothing.
   textfield_->SetText(ASCIIToUTF16("456"));
   textfield_->SelectAll(false);
   SendKeyEvent(ui::VKEY_X, true, false, true, false);
-  EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("456", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
   SendKeyEvent(ui::VKEY_X, false, true);
-  EXPECT_STR_EQ("456", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("456", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Ensure [Shift]+[Delete] cuts.
   textfield_->SetText(ASCIIToUTF16("123"));
   textfield_->SelectAll(false);
   SendAlternateCut();
-  EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Reset clipboard text.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "");
 
   // Ensure [Shift]+[Delete] is a no-op in case there is no selection.
   textfield_->SetText(ASCIIToUTF16("123"));
   textfield_->SelectRange(gfx::Range(0));
   SendAlternateCut();
-  EXPECT_STR_EQ("", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("123", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 
   // Ensure IDS_APP_COPY copies.
   textfield_->SetText(ASCIIToUTF16("789"));
   textfield_->SelectAll(false);
   EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_COPY));
   textfield_->ExecuteCommand(IDS_APP_COPY, 0);
-  EXPECT_STR_EQ("789", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("789", GetClipboardText(ui::ClipboardType::kCopyPaste));
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Ensure [Ctrl]+[c] copies and [Ctrl]+[Alt][c] does nothing.
   textfield_->SetText(ASCIIToUTF16("012"));
   textfield_->SelectAll(false);
   SendKeyEvent(ui::VKEY_C, true, false, true, false);
-  EXPECT_STR_EQ("789", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("789", GetClipboardText(ui::ClipboardType::kCopyPaste));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
   SendKeyEvent(ui::VKEY_C, false, true);
-  EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("012", GetClipboardText(ui::ClipboardType::kCopyPaste));
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Ensure [Ctrl]+[Insert] copies.
   textfield_->SetText(ASCIIToUTF16("345"));
   textfield_->SelectAll(false);
   SendAlternateCopy();
-  EXPECT_STR_EQ("345", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("345", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("345", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard());
 
   // Ensure IDS_APP_PASTE, [Ctrl]+[V], and [Shift]+[Insert] pastes;
   // also ensure that [Ctrl]+[Alt]+[V] does nothing.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "abc");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "abc");
   textfield_->SetText(base::string16());
   EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_PASTE));
   textfield_->ExecuteCommand(IDS_APP_PASTE, 0);
@@ -2382,9 +2382,9 @@
   // Ensure [Ctrl]+[Shift]+[Insert] is a no-op.
   textfield_->SelectAll(false);
   SendKeyEvent(ui::VKEY_INSERT, true, true);
-  EXPECT_STR_EQ("abc", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
+  EXPECT_STR_EQ("abc", GetClipboardText(ui::ClipboardType::kCopyPaste));
   EXPECT_STR_EQ("abcabcabc", textfield_->text());
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 }
 
 TEST_F(TextfieldTest, CutCopyPasteWithEditCommand) {
@@ -2863,13 +2863,13 @@
                          ui::EF_LEFT_MOUSE_BUTTON);
   textfield_->OnMouseReleased(release);
   EXPECT_EQ(gfx::Range(1, 3), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("12", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
+  EXPECT_STR_EQ("12", GetClipboardText(ui::ClipboardType::kSelection));
 
   // Select-all should update the selection clipboard.
   SendKeyEvent(ui::VKEY_A, false, true);
   EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
 
   // Shift-click selection modifications should update the clipboard.
   NonClientMouseClick();
@@ -2886,25 +2886,25 @@
                            ui::EF_LEFT_MOUSE_BUTTON);
   textfield_->OnMouseReleased(release_2);
   EXPECT_EQ(gfx::Range(0, 2), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("01", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
 
   // Shift-Left/Right should update the selection clipboard.
   SendKeyEvent(ui::VKEY_RIGHT, true, false);
-  EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("012", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
   SendKeyEvent(ui::VKEY_LEFT, true, false);
-  EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("01", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
   SendKeyEvent(ui::VKEY_RIGHT, true, true);
-  EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
 
   // Moving the cursor without a selection should not change the clipboard.
   SendKeyEvent(ui::VKEY_LEFT, false, false);
   EXPECT_EQ(gfx::Range(0, 0), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 
   // Middle clicking should paste at the mouse (not cursor) location.
   // The cursor should be placed at the end of the pasted text.
@@ -2914,7 +2914,7 @@
   textfield_->OnMousePressed(middle);
   EXPECT_STR_EQ("01230123", textfield_->text());
   EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
+  EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection));
 
   // Middle clicking on an unfocused textfield should focus it and paste.
   textfield_->GetFocusManager()->ClearFocus();
@@ -2923,27 +2923,27 @@
   EXPECT_TRUE(textfield_->HasFocus());
   EXPECT_STR_EQ("012301230123", textfield_->text());
   EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
+  EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection));
 
   // Middle clicking with an empty selection clipboard should still focus.
-  SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, std::string());
+  SetClipboardText(ui::ClipboardType::kSelection, std::string());
   textfield_->GetFocusManager()->ClearFocus();
   EXPECT_FALSE(textfield_->HasFocus());
   textfield_->OnMousePressed(middle);
   EXPECT_TRUE(textfield_->HasFocus());
   EXPECT_STR_EQ("012301230123", textfield_->text());
   EXPECT_EQ(gfx::Range(4, 4), textfield_->GetSelectedRange());
-  EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty());
+  EXPECT_TRUE(GetClipboardText(ui::ClipboardType::kSelection).empty());
 
   // Middle clicking in the selection should insert the selection clipboard
   // contents into the middle of the selection, and move the cursor to the end
   // of the pasted content.
-  SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo");
+  SetClipboardText(ui::ClipboardType::kCopyPaste, "foo");
   textfield_->SelectRange(gfx::Range(2, 6));
   textfield_->OnMousePressed(middle);
   EXPECT_STR_EQ("0123foo01230123", textfield_->text());
   EXPECT_EQ(gfx::Range(7, 7), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
+  EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kSelection));
 
   // Double and triple clicking should update the clipboard contents.
   textfield_->SetText(ASCIIToUTF16("ab cd ef"));
@@ -2963,25 +2963,25 @@
   textfield_->OnMousePressed(double_click);
   textfield_->OnMouseReleased(release_word);
   EXPECT_EQ(gfx::Range(3, 5), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("cd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("cd", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
   textfield_->OnMousePressed(press_word);
   textfield_->OnMouseReleased(release_word);
   EXPECT_EQ(gfx::Range(0, 8), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
 
   // Selecting a range of text without any user interaction should not change
   // the clipboard content.
   textfield_->SelectRange(gfx::Range(0, 3));
   EXPECT_STR_EQ("ab ", textfield_->GetSelectedText());
-  EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 
-  SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "other");
+  SetClipboardText(ui::ClipboardType::kSelection, "other");
   textfield_->SelectAll(false);
-  EXPECT_STR_EQ("other", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("other", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 }
 
 // Verify that the selection clipboard is not updated for selections on a
@@ -2994,8 +2994,8 @@
   // textfield.
   SendKeyEvent(ui::VKEY_A, false, true);
   EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange());
-  EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard());
 
   // Move focus to the next textfield.
   widget_->GetFocusManager()->AdvanceFocus(false);
@@ -3008,20 +3008,20 @@
   textfield2->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD);
   SendKeyEvent(ui::VKEY_A, false, true);
   EXPECT_EQ(gfx::Range(0, 4), textfield2->GetSelectedRange());
-  EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 
   // Shift-Left/Right should not modify the selection clipboard for a password
   // textfield.
   SendKeyEvent(ui::VKEY_LEFT, true, false);
   EXPECT_EQ(gfx::Range(0, 3), textfield2->GetSelectedRange());
-  EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 
   SendKeyEvent(ui::VKEY_RIGHT, true, false);
   EXPECT_EQ(gfx::Range(0, 4), textfield2->GetSelectedRange());
-  EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION));
-  EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard());
+  EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection));
+  EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard());
 }
 #endif
 
diff --git a/ui/views/examples/native_theme_example.cc b/ui/views/examples/native_theme_example.cc
index 7818147..680988f 100644
--- a/ui/views/examples/native_theme_example.cc
+++ b/ui/views/examples/native_theme_example.cc
@@ -156,12 +156,6 @@
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderText));
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderBackground));
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderSeparator));
-  InsertColorRow(layout,
-                 COLOR_LABEL_ARGS(kColorId_ResultsTableNormalBackground));
-  InsertColorRow(layout,
-                 COLOR_LABEL_ARGS(kColorId_ResultsTableHoveredBackground));
-  InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ResultsTableNormalText));
-  InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ResultsTableDimmedText));
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberSpinningColor));
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberWaitingColor));
   InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberLightColor));
diff --git a/ui/views/style/typography.cc b/ui/views/style/typography.cc
index 98983f2..0fc46aa 100644
--- a/ui/views/style/typography.cc
+++ b/ui/views/style/typography.cc
@@ -37,11 +37,5 @@
                                                                       style);
 }
 
-int GetExpectedTextWidth(int context, int style, int length) {
-  ValidateContextAndStyle(context, style);
-  return LayoutProvider::Get()->GetTypographyProvider().GetExpectedTextWidth(
-      context, style, length);
-}
-
 }  // namespace style
 }  // namespace views
diff --git a/ui/views/style/typography.h b/ui/views/style/typography.h
index d630e605..e5a6c3c 100644
--- a/ui/views/style/typography.h
+++ b/ui/views/style/typography.h
@@ -94,7 +94,6 @@
 VIEWS_EXPORT const gfx::FontList& GetFont(int context, int style);
 VIEWS_EXPORT SkColor GetColor(const views::View& view, int context, int style);
 VIEWS_EXPORT int GetLineHeight(int context, int style);
-VIEWS_EXPORT int GetExpectedTextWidth(int context, int style, int length);
 
 }  // namespace style
 }  // namespace views
diff --git a/ui/views/style/typography_provider.cc b/ui/views/style/typography_provider.cc
index 5756db3..2f0f271 100644
--- a/ui/views/style/typography_provider.cc
+++ b/ui/views/style/typography_provider.cc
@@ -99,14 +99,6 @@
   return 0;
 }
 
-int DefaultTypographyProvider::GetExpectedTextWidth(int context,
-                                                    int style,
-                                                    int length) const {
-  // TODO(etienneb): Do not rely on font.GetExpectedTextWidth(...) to retrieve
-  // the expected text width.
-  return GetFont(context, style).GetExpectedTextWidth(length);
-}
-
 // static
 void DefaultTypographyProvider::GetDefaultFont(int context,
                                                int style,
diff --git a/ui/views/style/typography_provider.h b/ui/views/style/typography_provider.h
index 3a52348..0e3c6e04 100644
--- a/ui/views/style/typography_provider.h
+++ b/ui/views/style/typography_provider.h
@@ -35,13 +35,6 @@
   // Gets the line spacing, or 0 if it should be provided by gfx::FontList.
   virtual int GetLineHeight(int context, int style) const = 0;
 
-  // Returns the expected number of horizontal pixels needed to display the
-  // specified length of characters. Call gfx::GetStringWidth() to retrieve the
-  // actual number.
-  virtual int GetExpectedTextWidth(int context,
-                                   int style,
-                                   int length) const = 0;
-
   // Returns the weight that will result in the ResourceBundle returning an
   // appropriate "medium" weight for UI. This caters for systems that are known
   // to be unable to provide a system font with weight other than NORMAL or BOLD
@@ -68,7 +61,6 @@
                    int context,
                    int style) const override;
   int GetLineHeight(int context, int style) const override;
-  int GetExpectedTextWidth(int context, int style, int length) const override;
 
   // Sets the |size_delta| and |font_weight| that the the default GetFont()
   // implementation uses. Always sets values, even for styles it doesn't know
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
index d9013f9..e321103 100644
--- a/ui/views/view_unittest.cc
+++ b/ui/views/view_unittest.cc
@@ -1998,21 +1998,21 @@
   normal->SelectAll(false);
   normal->ExecuteCommand(IDS_APP_CUT, 0);
   base::string16 result;
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(kNormalText, result);
   normal->SetText(kNormalText);  // Let's revert to the original content.
 
   read_only->SelectAll(false);
   read_only->ExecuteCommand(IDS_APP_CUT, 0);
   result.clear();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   // Cut should have failed, so the clipboard content should not have changed.
   EXPECT_EQ(kNormalText, result);
 
   password->SelectAll(false);
   password->ExecuteCommand(IDS_APP_CUT, 0);
   result.clear();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   // Cut should have failed, so the clipboard content should not have changed.
   EXPECT_EQ(kNormalText, result);
 
@@ -2024,19 +2024,19 @@
   read_only->SelectAll(false);
   read_only->ExecuteCommand(IDS_APP_COPY, 0);
   result.clear();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(kReadOnlyText, result);
 
   normal->SelectAll(false);
   normal->ExecuteCommand(IDS_APP_COPY, 0);
   result.clear();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   EXPECT_EQ(kNormalText, result);
 
   password->SelectAll(false);
   password->ExecuteCommand(IDS_APP_COPY, 0);
   result.clear();
-  clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
+  clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result);
   // Text cannot be copied from an obscured field; the clipboard won't change.
   EXPECT_EQ(kNormalText, result);
 
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js b/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js
index 7f9c2b96..41bcfa3 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js
@@ -522,28 +522,28 @@
     if (this.error_ == ErrorType.NONE) {
       return '';
     }
-    // TODO(stevenjb): Translate
-    let msg;
+    const retriesLeft = (this.simUnlockSent_ && this.deviceStateProperties_ &&
+                         this.deviceStateProperties_.simLockStatus) ?
+        this.deviceStateProperties_.simLockStatus.retriesLeft :
+        0;
+
     if (this.error_ == ErrorType.INCORRECT_PIN) {
-      msg = 'Incorrect PIN.';
-    } else if (this.error_ == ErrorType.INCORRECT_PUK) {
-      msg = 'Incorrect PUK.';
-    } else if (this.error_ == ErrorType.MISMATCHED_PIN) {
-      msg = 'PIN values do not match.';
-    } else if (this.error_ == ErrorType.INVALID_PIN) {
-      msg = 'Invalid PIN.';
-    } else if (this.error_ == ErrorType.INVALID_PUK) {
-      msg = 'Invalid PUK.';
-    } else {
-      return 'UNKNOWN ERROR';
+      return this.i18n('networkSimErrorIncorrectPin', retriesLeft);
     }
-    const retriesLeft = this.simUnlockSent_ && this.deviceStateProperties_ &&
-        this.deviceStateProperties_.simLockStatus &&
-        this.deviceStateProperties_.simLockStatus.retriesLeft;
-    if (retriesLeft) {
-      msg += ' Retries left: ' + retriesLeft.toString();
+    if (this.error_ == ErrorType.INCORRECT_PUK) {
+      return this.i18n('networkSimErrorIncorrectPuk', retriesLeft);
     }
-    return msg;
+    if (this.error_ == ErrorType.MISMATCHED_PIN) {
+      return this.i18n('networkSimErrorPinMismatch');
+    }
+    if (this.error_ == ErrorType.INVALID_PIN) {
+      return this.i18n('networkSimErrorInvalidPin', retriesLeft);
+    }
+    if (this.error_ == ErrorType.INVALID_PUK) {
+      return this.i18n('networkSimErrorInvalidPuk', retriesLeft);
+    }
+    assertNotReached();
+    return '';
   },
 
   /**
diff --git a/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn b/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn
index 47f3122..04f8ef77 100644
--- a/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn
+++ b/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn
@@ -65,8 +65,10 @@
   js_library("cr_network_select") {
     deps = [
       ":cr_network_list_types",
+      ":cr_network_listener_behavior",
       ":cr_onc_types",
       "//ui/webui/resources/js:util",
+      "//ui/webui/resources/js/chromeos:onc_mojo",
     ]
     externs_list = [ "$externs_path/networking_private.js" ]
   }
diff --git a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html
index 98640a6..b60466f 100644
--- a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html
+++ b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html
@@ -2,7 +2,9 @@
 
 <link rel="import" href="../../chromeos/network/cr_network_list.html">
 <link rel="import" href="../../chromeos/network/cr_onc_types.html">
+<link rel="import" href="cr_network_listener_behavior.html">
 <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
+<link rel="import" href="chrome://resources/html/chromeos/onc_mojo.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html">
 
 <dom-module id="cr-network-select">
diff --git a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js
index f1d8f2e..52899343 100644
--- a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js
+++ b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js
@@ -10,6 +10,8 @@
 Polymer({
   is: 'cr-network-select',
 
+  behaviors: [CrNetworkListenerBehavior],
+
   properties: {
     /**
      * Show all buttons in list items.
@@ -65,54 +67,31 @@
     cellularDeviceState_: Object,
   },
 
-  /**
-   * Returns network list object for testing.
-   */
-  getNetworkListForTest: function() {
-    return this.$.networkList.$$('#networkList');
-  },
-
   /** @type {!CrOnc.NetworkStateProperties|undefined} */
   defaultNetworkState_: undefined,
 
-  focus: function() {
-    this.$.networkList.focus();
-  },
-
-  /**
-   * Listener function for chrome.networkingPrivate.onNetworkListChanged event.
-   * @type {function(!Array<string>)}
-   * @private
-   */
-  networkListChangedListener_: function() {},
-
-  /**
-   * Listener function for chrome.networkingPrivate.onDeviceStateListChanged
-   * event.
-   * @type {function(!Array<string>)}
-   * @private
-   */
-  deviceStateListChangedListener_: function() {},
 
   /** @private {number|null} */
   scanIntervalId_: null,
 
+  /** @private {?chromeos.networkConfig.mojom.CrosNetworkConfigProxy} */
+  networkConfigProxy_: null,
+
+  /** @override */
+  created: function() {
+    this.networkConfigProxy_ =
+        network_config.MojoInterfaceProviderImpl.getInstance()
+            .getMojoServiceProxy();
+  },
+
   /** @override */
   attached: function() {
-    this.networkListChangedListener_ = this.refreshNetworks.bind(this);
-    chrome.networkingPrivate.onNetworkListChanged.addListener(
-        this.networkListChangedListener_);
-
-    this.deviceStateListChangedListener_ = this.refreshNetworks.bind(this);
-    chrome.networkingPrivate.onDeviceStateListChanged.addListener(
-        this.deviceStateListChangedListener_);
-
     this.refreshNetworks();
 
     /** @const */ const INTERVAL_MS = 10 * 1000;
-    chrome.networkingPrivate.requestNetworkScan();
+    this.networkConfigProxy_.requestNetworkScan(OncMojo.NetworkType.kAll);
     this.scanIntervalId_ = window.setInterval(function() {
-      chrome.networkingPrivate.requestNetworkScan();
+      this.networkConfigProxy_.requestNetworkScan(OncMojo.NetworkType.kAll);
     }.bind(this), INTERVAL_MS);
   },
 
@@ -121,10 +100,27 @@
     if (this.scanIntervalId_ !== null) {
       window.clearInterval(this.scanIntervalId_);
     }
-    chrome.networkingPrivate.onNetworkListChanged.removeListener(
-        this.networkListChangedListener_);
-    chrome.networkingPrivate.onDeviceStateListChanged.removeListener(
-        this.deviceStateListChangedListener_);
+  },
+
+  /**
+   * Returns network list object for testing.
+   */
+  getNetworkListForTest: function() {
+    return this.$.networkList.$$('#networkList');
+  },
+
+  focus: function() {
+    this.$.networkList.focus();
+  },
+
+  /** CrosNetworkConfigObserver impl */
+  onNetworkStateListChanged: function() {
+    this.refreshNetworks();
+  },
+
+  /** CrosNetworkConfigObserver impl */
+  onDeviceStateListChanged: function() {
+    this.refreshNetworks();
   },
 
   /**
diff --git a/ui/webui/resources/cr_elements/cr_button/BUILD.gn b/ui/webui/resources/cr_elements/cr_button/BUILD.gn
index 1425406..b625d82 100644
--- a/ui/webui/resources/cr_elements/cr_button/BUILD.gn
+++ b/ui/webui/resources/cr_elements/cr_button/BUILD.gn
@@ -13,7 +13,6 @@
 js_library("cr_button") {
   deps = [
     "//third_party/polymer/v1_0/components-chromium/paper-behaviors:paper-ripple-behavior-extracted",
-    "//ui/webui/resources/js:cr",
     "//ui/webui/resources/js/cr/ui:focus_outline_manager",
   ]
 }
diff --git a/ui/webui/resources/cr_elements/cr_button/cr_button.html b/ui/webui/resources/cr_elements/cr_button/cr_button.html
index 58c3d13..8c1636e 100644
--- a/ui/webui/resources/cr_elements/cr_button/cr_button.html
+++ b/ui/webui/resources/cr_elements/cr_button/cr_button.html
@@ -1,6 +1,5 @@
 <link rel="import" href="../../html/polymer.html">
 
-<link rel="import" href="chrome://resources/html/cr.html">
 <link rel="import" href="chrome://resources/html/cr/ui/focus_outline_manager.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-behaviors/paper-ripple-behavior.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
diff --git a/ui/webui/resources/cr_elements/cr_button/cr_button.js b/ui/webui/resources/cr_elements/cr_button/cr_button.js
index 2dd96d21..301a0606 100644
--- a/ui/webui/resources/cr_elements/cr_button/cr_button.js
+++ b/ui/webui/resources/cr_elements/cr_button/cr_button.js
@@ -34,6 +34,7 @@
     keydown: 'onKeyDown_',
     keyup: 'onKeyUp_',
     pointerdown: 'onPointerDown_',
+    tap: 'onTap_',
   },
 
   /** @override */
@@ -109,4 +110,13 @@
   onPointerDown_: function() {
     this.ensureRipple();
   },
+
+  /**
+   * Need to handle tap events to enable tap events for where they are still
+   * used with |button.addEventListener('tap', handler)|.
+   * TODO(crbug.com/812035): Remove function and listener after Chrome OS no
+   *     longer uses tap event at least with addEventListener().
+   * @private
+   */
+  onTap_: function() {}
 });
diff --git a/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html b/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html
index 97965d2..c8f6922 100644
--- a/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html
+++ b/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html
@@ -13,8 +13,6 @@
         --avatar-size: 96px;
         --avatar-spacing: 24px;
         display: inline-flex;
-
-        @apply --avatar-selector;
       }
 
       #avatar-grid .avatar {
@@ -37,8 +35,6 @@
         padding: 0;
         transition: none !important;  /* Polymer's :host([animated]) rule. */
         width: var(--avatar-size);
-
-        @apply --avatar-selector-avatar;
       }
 
       @media (prefers-color-scheme: dark) {
diff --git a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html
index a2dc60b..180680c0 100644
--- a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html
+++ b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html
@@ -72,7 +72,7 @@
       explicitly used. -->
     <cr-input label="[[label]]" on-click="onClick_" value="[[value]]"
         on-input="onInput_" id="search" autofocus="[[autofocus]]"
-        placeholder="[[placeholder]]"
+        placeholder="[[placeholder]]" readonly="[[readonly]]"
         error-message="[[getErrorMessage_(errorMessage, errorMessageAllowed)]]"
         invalid="[[shouldShowErrorMessage_(errorMessage, errorMessageAllowed)]]">
       <div id="progress-container" slot="suffix">
diff --git a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js
index 22ae2af..031473f3 100644
--- a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js
+++ b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js
@@ -20,6 +20,11 @@
       reflectToAttribute: true,
     },
 
+    readonly: {
+      type: Boolean,
+      reflectToAttribute: true,
+    },
+
     /**
      * Whether space should be left below the text field to display an error
      * message. Must be true for |errorMessage| to be displayed.
@@ -102,7 +107,9 @@
 
   /** @private */
   onClick_: function() {
-    this.$$('iron-dropdown').open();
+    if (!this.readonly) {
+      this.$$('iron-dropdown').open();
+    }
   },
 
   /** @private */
diff --git a/ui/webui/resources/html/cr/ui/focus_outline_manager.html b/ui/webui/resources/html/cr/ui/focus_outline_manager.html
index 666ab0c..db17b1e 100644
--- a/ui/webui/resources/html/cr/ui/focus_outline_manager.html
+++ b/ui/webui/resources/html/cr/ui/focus_outline_manager.html
@@ -1 +1,2 @@
+<link rel="import" href="../../../html/cr.html">
 <script src="../../../js/cr/ui/focus_outline_manager.js"></script>